본문 바로가기
CS/OS

[OS] 1. 개요

by 두둠칫 2020. 10. 28.

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

 

Von Neuman 구조

 

# 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