반응형
Why study operating systems?
컴퓨터 과학에 종사하는 사람은 많지만 운영체제를 만들거나 수정하는 데는 소수만이 참여한다.
그렇다면 왜 운영체제와 그 작동방식을 공부할까?
단순하게 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고 효율적이며 안전한 프로그래밍에 중요하기 때문이다.
운영체제의 기본 지식, 컴퓨터 하드웨어 구동 방식 및 응용 프로그램에 제공하는 내용을 이해하는 것은 운영체제를 작성하는 사람들에게 필수적일 뿐만 아니라 그 위에서 프로그램을 작성하고 운영체제를 사용하는 사람들에게도 매우 유용하다.
폰 노이만 구조(von Neumann architecture)
폰 노이만이라는 사람이 제시한 프로그램 내장 방식이다.
- 현재 모든 컴퓨터는 폰 노이만 구조이다.
- 폰 노이만 구조는 CPU, Memory, I/O devices로 이루어지고, 이 구성 요소들은 Bus를 통해 연결되어 있다.
- CPU는 device(키보드, 모니터)등에게 입출력을 요청한다.
- CPU와 device는 서로 데이터를 통신한다.
- device에서 CPU에게 interrupt를 전송할 수 있다.
- CPU는 메모리로부터 명령어를 인출하고 실행하여 다시 결과를 메모리에 적재할 수 있다.
- 디바이스와 메모리는 DMA(Direct Memory Access)를 할 수 있다.
- DMA란?
- 하드웨어(HDD, 그래픽 카드 등)들이 메모리에 직접 접근하여 읽거나 쓸 수 있게 해주는 기능
- CPU가 해야할 주변 device와의 전송을 DMA장치가 대신 해준다. -> CPU 효율 향상
- DMA란?
- 작동방식
- 첫번째로 명령어 실행 사이클(Instruction-execution cycle)은 메모리에서 명령어를 인출(fetches)하고 명령어 레지스터(Instruction Register)에 명령어를 저장함
- 그다음 명령어는 decoding되어 메모리에서 피연산자(처리될 데이터 그자체)를 가져올 수 있다. 그리고 내부 레지스터(Internal Register)에 저장된다.
- 피연산자들에게서 명령어가 실행된 이후의 결과는 메모리에 다시 저장된다.
CPU
- A.k.a processor
- 프로세서는 컴퓨터의 하드웨어에 장착한 모든 장치의 동작을 제어하고 메모리에서 가져온 명령어를 실행하는 주체이다.
- 대부분의 processor들은 general-purpose processor이다.
- GPU나 TPU같은 special-purpose processors(hardware accelerators)또한 존재한다.
Computer System Organization
- 컴퓨터 시스템은 하나 이상의 CPU, 구성요소와 공유 메모리 사이의 액세스를 제공하는 공통 Bus를 통해 연결된 여러 device controller로 구성된다.
- CPU와 device controller는 병렬로 실행되어 memory cycle을 놓고 경쟁한다.
Device Controller
- 각 DC들은 공통 Bus를 통해 연결되어 있다.
- 각 DC들은 local buffer를 가지고 있다.
- CPU는 DC의 data에 직접적으로 접근할수 없다.
- Bus를 통해 command를 보내고 interrupt를 보낸다.
Interrupt
- DC가 CPU에게 event 발생을 알리는 방법
- CPU는 interrupt를 감지하면 해당하는 function을 실행하도록 구현되어 있다.
- 어떤 interrupt에 대해서 어떤 함수를 실행시켜야 하는지 IDT(interrupt descriptor table)또는 interrupt vector를 참고해서 function을 실행시킨다.
- IDT에는 해당하는 function, service routines의 주소가 담겨있다.
I/O structure
- Device driver : OS와 DC간의 communication을 도와주는 것(device에 대한 일관된 interface를 제공.)
- DC는 device와 buffer사이의 data를 transfer해준다.
- DC는 디바이스에게 전송이 완료되었다고 device driver에게 알린다.
Storage structure
Main memory(random-access memory 또는 RAM)
- CPU가 직접적으로 접근 가능한 유일한 Storage media
- byte addressable : byte단위로 주소에 접근 가능
이상적으로는, 프로그램과 데이터가 메인 메모리에 영구히 존재하기를 원한다. 그러나 대부분의 시스템에서 두 가지 이유로 불가능하다.
- 메인 메모리는 모든 필요한 프로그램과 데이터를 저장하기에 너무 작다.
- 메인 메모리는 전원이 공급되지 않으면 그 내용을 잃어버리는 휘발성 저장장치이다.
그러므로 대부분의 컴퓨터 시스템은 메인 메모리의 확장으로 보조저장장치를 제공한다. 보조저장장치의 주요 요건은 대량의 데이터를 영구히 보존할 수 있어야 한다는 점이다.
Secondary storage(보조저장장치)
- HDD(하드 디스크 드라이브), NVM(비휘발성 메모리)처럼 RAM을 제외한 나머지 storage를 말한다.
- block addressable : block단위로 storage에 접근 가능
반응형
'운영체제' 카테고리의 다른 글
06. Process Scheduling(2) (0) | 2024.04.24 |
---|---|
05. Process Scheduling (0) | 2024.04.24 |
04. Inter-Process Communication (0) | 2024.04.18 |
03. System Call (10) | 2024.04.03 |
02. Processes (5) | 2024.04.03 |