본문 바로가기
운영체제

01. Introduction to Operating Systems

by kwon5346 2024. 4. 2.
반응형

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 효율 향상
  • 작동방식
    1. 첫번째로 명령어 실행 사이클(Instruction-execution cycle)은 메모리에서 명령어를 인출(fetches)하고 명령어 레지스터(Instruction Register)에 명령어를 저장함
    2. 그다음 명령어는 decoding되어 메모리에서 피연산자(처리될 데이터 그자체)를 가져올 수 있다. 그리고 내부 레지스터(Internal Register)에 저장된다.
    3. 피연산자들에게서 명령어가 실행된 이후의 결과는 메모리에 다시 저장된다.


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단위로 주소에 접근 가능
    이상적으로는, 프로그램과 데이터가 메인 메모리에 영구히 존재하기를 원한다. 그러나 대부분의 시스템에서 두 가지 이유로 불가능하다.
  1. 메인 메모리는 모든 필요한 프로그램과 데이터를 저장하기에 너무 작다.
  2. 메인 메모리는 전원이 공급되지 않으면 그 내용을 잃어버리는 휘발성 저장장치이다.
    그러므로 대부분의 컴퓨터 시스템은 메인 메모리의 확장으로 보조저장장치를 제공한다. 보조저장장치의 주요 요건은 대량의 데이터를 영구히 보존할 수 있어야 한다는 점이다.

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