티스토리 뷰

컴퓨터공학/운영체제

[운영체제] 개요

최성훈 2019. 10. 28. 16:54
반응형

운영체제란?


  • 하드웨어를 관리하기 위한 프로그램
  • 컴퓨터 하드웨어와 사용자 사이에서 중간자 역할을 하는 프로그램

 

운영체제의 목표


  1. 사용자 프로그램을 실행하고 사용자 문제를 더 쉽게 해결한다.
  2. 컴퓨터 시스템을 더 사용하기 쉽게 만든다.
  3. 컴퓨터 하드웨어를 효율적으로 사용한다.

 

컴퓨터 시스템 구조


Device controller: 다른 device들은 메모리를 할당받기 위해 서로 경쟁해야 한다.

  • CPU와 Device controller는 동시에 작동한다.
  • Memory controller는 메모리에 대한 접근을 동기화한다. (CPU 클럭에 의해 메모리 접근이 이루어진다. 아무 때나 메모리에 접근해서 값을 가져올 수 있는 게 아님)

 

컴퓨터 연산


  • Start-up
    • Bootstrap 프로그램: 컴퓨터 전원이 켜질 때 가장 먼저 실행되는 프로그램
      • ROM이나 EEPROM에 저장된다.
      • CPU 레지스터, device controller, 메모리를 초기화한다.
      • OS 커널을 로드하고 시작한다.
    • System daemon
      • 커널이 백그라운드에서 작동하는 전체 시간 동안 작동한다.
      • "init"이 첫 프로세스이며, 이 프로세스가 많은 다른 daemon 프로세스를 시작한다.
  • Interrupt
    • Interrupt 핸들러를 실행하기 위해 CPU를 멈추는 이벤트
    • interrupt 핸들링은 CPU의 핵심 동작 중 하나이다.
    • 메모리의 다른 위치로 넘어가기 전에 interrupt 된 instruction의 현재 주소와 레지스터의 상태를 저장해야 한다.

 

폰 노이만 아키텍처


Instruction과 data가 CPU와 단일 링크로 연결된 메모리에 저장되는 구조. (Instruction과 data가 같은 메모리에 저장되는 게 특징이다.)

 

I/O 구조


  • Device controller
    • Device 안에 있는 하나의 하드웨어
    • CPU와 Device controller는 bus를 통해 연결되어있다.
  • Device driver
    • OS가 device를 컨트롤하기 위한 명령을 수행하는 소프트웨어
    • OS별로 다른 device driver가 필요하다.
  • I/O 연산
    1. Device driver는 device controller의 레지스터로부터 값을 가져온다.
    2. Device controller가 레지스터의 내용을 검사한다.
    3. Device controller가 데이터를 전송한다.
    4. 데이터 전송이 끝나고 device controller는 interrupt를 발생시킨다.
    5. Device driver는 OS로 제어를 넘긴다.

 

DMA (Direct Memory Access)


주변 장치들이 메모리에 접근하여 값을 읽고 쓸 수 있도록 하는 기능

  • DMA가 없을 때

Byte당 1개의 interrupt를 발생시켜 CPU가 메모리로부터 값을 읽어온다. 데이터 양이 많아지면 CPU 성능저하가 일어난다.

  • DMA가 있을 때

Device controller는 data block 전체를 CPU의 간섭없이 바로 메모리에 저장한다. 모든 연산이 끝난 후 1개의 interrupt만 발생시키고, CPU는 해당 interrupt 신호를 받고 메모리에서 값을 읽어온다.

 

멀티 프로세서 시스템


  • Multiprocessor를 사용하는 이유
    • CPU 한 개의 성능 향상이 기술적으로 한계에 도달함. 따라서 성능 향상을 위해 Core의 개수를 증가시킴.
  • 장점
    1. Throughput이 증가한다. (But, CPU개수와 성능은 비례하지 않는다. why? CPU가 늘어갈수록 CPU 간의 오버헤드가 증가하기 때문)
    2. Reliability가 증가한다.
      • Graceful degration, fault tolerant: CPU 1개가 고장 나더라도 이에 맞춰서 성능이 저하될 뿐, 컴퓨터가 망가지지 않는다.
  • 단점
    1. 싱글 프로세서 시스템에서 실행하던 프로그램을 멀티 프로세서 시스템에서 실행하면 CPU 1개의 성능밖에 나오지 않는다. 그래서 프로그램을 멀티 프로세서에 맞게 프로그램을 다시 만들어야 한다.

 

운영체제의 핵심 기능


  1. Multi-Programming
    • CPU utilization을 향상시킨다.
    • Job pooling과 Job switching을 통해 CPU를 최대한 활용한다.
  2. Time sharing (multitasking)
    • 매우 빠른 속도로 작업을 switching 해서 동시에 작업을 처리하는 것처럼 보인다.
  3. Process
  4. Job scheduling from job queue, run queue
  5. Swapping
  6. Physical memory & Logical memory

 

Kernel mode vs. User mode


  • Kernel mode와 User mode를 나눈 이유
    • 모든 사용자 및 프로그램이 시스템의 아주 낮은 단계로부터 여러 심각한 오류를 발생시킬 수 있기 때문
  • Kernel mode
    • 모든 시스템 메모리에 접근할 수 있고 모든 CPU명령을 실행할 수 있다.
  • User mode
    • 사용자 프로그램의 코드가 실행된다.
    • 접근할 수 있는 메모리 범위와 실행할 수 있는 instruction에도 제약이 있고, 하드웨어에 직접적으로 접근이 불가능하다.
    • System call을 호출 시 mode bit를 사용하여 kernel mode로 전환된다.

Kernel mode로 전환될 때 mode bit가 0으로 설정되고, 값을 반환할 때 mode bit가 1로 설정된다.

  • Priviliaged instruction
    • 커널 모드에서만 실행할 수 있는 인스트럭션. 부주의하게 사용할 시 시스템을 손상시킬 수 있다.
  • System call
    • 사용자 프로그램이 OS로 어떠한 서비스를 요청할 수 있는 방법
    • 소프트웨어 interrupt에 해당한다.
반응형
댓글