0. Operating System Concept을 보고 아주대 김상훈 교수님의 강의를 들으며 공부한 내용입니다.
1. 컴퓨터 시스템
1) HW : CPU + memory + I/O device
2) OS
3) Application Program
4) User
: User는 Application Program을 통해 연산을 요청하고
OS는 이 연산을 하기 위해 HW의 자원을 어떻게 사용할지 결정(제어)
2. 컴퓨터 시스템 구조
현대의 모든 컴퓨터는 Von Neuman(폰 노이만) 구조를 갖는다.
# Von Neuman 구조 : Stored-program computer model
# BUS 구조
- CPU와 Device Controller(DC)는 공유되는 Memory와 함께 하나의 버스 구조로 연결되어 있다.
- 각각의 DC는 Local Buffer를 갖고 있으며, CPU와 DC는 Data를 Memory로부터 Local Buffer로 혹은 그 반대로 옮긴다.
- 해당 동작을 수행하기 위해 DC는 Interrupt를 통해 CPU에게 Event 발생을 알린다.
* 이때 CPU와 DC는 Memory cycle을 얻기 위해 경쟁하며 병행 실행하고, 질서있는 접근을 위해 메모리 제어기가 접근을 동기화 시킨다.
- CPU는 Interrupt 발생 시 현재 State를 Register에 보존 후 해당 Event를 수행한 뒤 Register에 가장 나중에 보존된 State로 복귀한다.
* CPU는 오직 Memory로부터 명령을 Load할 수 있다.
즉, 실행하고자하는 프로그램은 모두 Memory에 저장되어야함
#Data Transfer
1) Mode
- Programmed I/O(PIO) : CPU를 거쳐 Data 전송
- Direct Memory Access(DMA) : DC가 CPU를 거치지 않고 직접 Memory로 Data전송
2) 연산 과정 예시
(Device driver, Device controller, Register, Local buffer , OS)
연산 요청
> Device driver가 DC register에 필요한 값 Load
> DC는 취할 동작을 결정하기 위해 register을 읽음
> 내용에 따라 DC는 Device로부터 자신의 Local Buffer로 Data를 전송한다.
> 전송 완료 후, DC는 자신의 연산이 완료됐다는 Interrupt를 Device Driver에게 통보한다.
> 그러면 Device Driver는 제어를 OS에게 반환한다.
이렇게 Data를 전송할 때 적은 양의 Data 전송 시에는 문제가 없지만, 대량의 Data 전송 시 Overhead가 발생할 수 있다.
이 때 DMA 방식을 이용한다.
3. 저장장치 구조
컴퓨터는 구동을 시작하기 위해서 실행항 초기 Program이 있어야한다.
이것을 Bootstrap Program 또는 Firmware라고하며, ROM 또는 EEPROM에 저장되어 있다. ex) BIOS
이 프로그램이 CPU register로부터 시스템을 초기화 한다.
* CPU : processor라고도 하며 특별한 목적을 지닌 CPU가 존재하기도 한다. ex) GPU, TPU
범용 컴퓨터는 대부분의 프로그램은 주 메모리인 RAM에서 실행시킨다. 또한 CPU는 명시적인 Load/Store 명령 외의 실행은 자동적으로 주 메모리로부터 명령을 Load한다.
모든 형태의 Memory는 Word 배열을 제공하며 이 단위로 명령이 이루어진다.
ex) Win 32bit, 64 bit == Size of 1 Word
주 메모리는 모든 프로그램과 데이터를 저장할 만큼 크지 않고, 전원이 공급되지 않으면 Data가 사라지는 휘발성 저장장치이다.
때문에 Disk를 사용하며 대부분의 프로그램은 Memory에 적재될 때까지 Disk에 저장된다.
'CS > OS' 카테고리의 다른 글
[OS] CPU, Processor, Core, Process, Thread 그리고 관계 정리 (0) | 2020.11.04 |
---|---|
[OS] 5. Thread (0) | 2020.11.03 |
[OS] 4. 프로세스(2) (0) | 2020.11.02 |
[OS] 3. 프로세스(1) (0) | 2020.10.30 |
[OS] 2. 시스템 구조 (0) | 2020.10.28 |