오늘부터 내가 잘만 한다면 공부한 내용을 블로그에 정리하며 공부할 예정이다. 이번 학기 과목은 운영체제, 시스테 프로그래밍, 컴퓨터 네트워크를 정리 해보겠다.
출처: Operating System Concept 10th Edition - Silberschatz, Galvin and Gagne (2018)
1주차 내용에서는 운영체제에 대한 전반적이 내용을 얕게 다루며 중요한 키워드 중심으로 정리할 것이다.
1. 컴퓨터 시스템
컴퓨터 시스템은 다음 4가지 요소로 분류할 수 있다.
- 하드웨어: 기본적인 하드웨어 리소스를 제공
- 운영체제: 다양한 어프릴케이션과 유저들을 컨트롤하고 조직화
- Appllication Program: 시스템 리소스가 유저의 문제를 해결할수 있는법을 제시하는 프로그램
- Users: 사용하는 사람 + 컴퓨터 기계
그래서 운영체제는 컴퓨터 하드웨어와 application program 사이에서 중계해주는 역할을 할수 있다.
2. 운영체제가 하는 일
- User입장: 높은 사용성과 좋은 성능을 제공해주고 리소스 분배에 신경쓰지 않도록 대신 자동으로 관리 해준다.
- 다양한 유저가 사용하는 mainframe이나 miniComputer에서 운영체제는 모든 유저가 행복하도록 Resource allocator와 Control Program을 통해 하드웨어의 효율성을 최대한 극대화한채 유저의 프로그램을 실행해야한다.
- User를 위해 사용되어지는 WorkStation의 경우 리소스를 종종 다양한 유저가 이용하는 서버를 사용하고 있다.
- 모바일 디바이스에서는 배터리가 제한적이기 때문에 운영체제는 이를 염두해두고 디바이스를 관리하게 된다.
- 일부 컴퓨터의 경우 유터 인터페이스가 전혀 없는 경우도 있는데 이를 임베디드 컴퓨터라고 하며, 이곳에도 별도의 운영체제가 쓰인다.
3. 운영체제의 정의
- "운영체제를 주문했을때 기본적으로 탑재되어 오는 모든 것"
- 이때 컴퓨터가 켜지는 동안 항상 구동되는 프로그램을 "커널"이라고 하며 운영체제의 일부이다.
- 이외 커널을 제외한 나머지 부분을 "System program이라고 하며"
- OS와 관련되지 않은 모든 부분을 "Application program"이라고 한다.
- 오늘날의 OS는 포괄적인 목적을 제외하고 특정목적의 개발을 위해 제공하는 "Middle ware" 또한 제공하고 있다.
4. Computer System Organization
- 컴퓨터의 CPU는 각 디바이스와 일반적으로 BUS를 통해 할당된 메모리에 접근한다.
- 각 부품은 CPU와 병렬적으로 실행되고 있으며 System Bus를 통해 Memory Cycle에 경쟁하고 있다.
- 즉, I/O디바이스는 CPU에서 병렬적으로 실행중이며
- 각 디바이스 Controller는 각각의 장치를 담당하고 장치마다 각자의 Locla Buffer를 가진다.
- 그리고 디바이스 Controller들은 OS의 통제를 받기 위해 Device Driver를 가진다.
- CPU는 데이터를 Main Memory에서 Local Buffer로 이동시키고
- I/O는 디바이스에서 Local Buffer로 이동시킨다.
- 그리고 Device Controller는 CPU에 일이 들어왔다고 통보하는 역할을 하는데 이때 CPU에서 진행중인 일을 방해 받는다고 표현하여 "Interrupt"라고 한다.
5. Interrupt의 구동
- Interrupt transfer가 Interrupt Service에 Interrupt당하고 처리해야할 일이 담긴 정보는 Interrupt vector에 담겨 진행하게된다. Interrupt vector에는 사건이 일어난 코드의 주소값을 가져서 발생한 일을 처리하도록 한다.
- 다만 이때 Interrupt되고 나서 진행중이던 일은 따로 저장을 하게된다.
- 보통의 Interrupt라고 하면 하드웨어에서 발생한 Interrupt를 말한다면 소프트웨어에서 발생되는 Interrupt는 "Trap" 혹은 "Software-generated Interrupt"라고 한다.
- 그래서 운영체제는 거의 Interrupt에 의해 구동되게 된다.
- CPU는 이러한 Interrupt를 감지하기위해 Interrupt-request line이라는 장치를 통해 매 instruction마다 Interrupt가 존재하는지를 검사하게 된다.
'공부 학습' 카테고리의 다른 글
운영체제 1주차 - 3 (0) | 2021.03.04 |
---|---|
시스템 프로그래밍 1주차 (0) | 2021.03.03 |
운영체제 1주차 - 2 (0) | 2021.03.03 |
9.7 유우럽 여행 2일차 프랑스 파리 1부 (0) | 2018.09.10 |
유우럽 여행기 9.6 중국 베이징 (0) | 2018.09.06 |