본문 바로가기
개발하자/🐧 운영체제

운영체제 2. System Structure & Program Execution

by 밈밈무 2022. 9. 18.

컴퓨터 시스템 구조

  • Computer
    • CPU : 매 clock cycle 마다 메모리에서 instruction(기계어)를 하나씩 읽어서 실행
    • Memory : CPU의 작업공간
  • I/O device
    • disk : input&output 동시 수행

  • device controller : 디바이스 각각을 전담하는 작은 CPU
    • cf) device driver : SW. OS 코드 중 각 장치별 처리 루틴
  • local buffer : device controller의 작업공간. 실제 데이터 저장(일종의 data register)
  • CPU 내부
    • register : 메모리보다 더 빠른 작은 정보 저장 공간
    • mode bit : 지금 CPU에서 실행되는 게 OS인지 사용자 프로그램인지 구분
      • 1 : 사용자 모드 - 사용자 프로그램 수행. 제한된 instruction만 수행 가능(보안 상 목적)
      • 0 : 모니터 모드 - OS 코드 수행. 무슨 일이든지 다 할 수 있도록 정의
      • interrupt line : I/O device에서 작업을 요청해야하는지, 작업이 끝났는지 CPU에게 알려주는 역할 수행(scanf, printf와 같은 작업 처리) → IO 요청 들어오면 IO controller에게 작업 시킴(CPU가 직접 작업 x)
  • timer : 특정 프로그램이 CPU 독점하는 것을 막기 위한 장치. CPU의 time sharing 구현을 위해 필요.
    • timer 시간이 되면 program A → OS로 CPU 제어권 넘어가고 OS는 CPU를 program B가 사용할 수 있도록 할당
  • DMA controller : Directly Memory Access
    • 메모리를 CPU도 접근할 수 있고 DMA도 접근할 수 있도록
    • memory controller가 CPU와 DMA가 접근하는 메모리 영역을 조율하는 역할
    • I/O 장치가 너무 자주 interrupt를 걸면 CPU 작업에 방해 → local buffer 의 내용을 메모리로 복사하는 일을 DMA가 담당
    • ⇒ CPU는 interrupt 한번만! CPU를 더 효과적으로 사용할 수 있다.

I/O의 수행

  • 모든 입출력 명령은 특권명령
  • 사용자 프로그램이 I/O하는 방법
    • 시스템콜(System call) : 운영체제에게 I/O 요청
    • 프로그램이 운영체제에게 요청하기 위해 interrupt 걸 수 있음 → mode bit가 0으로 설정되어 운영체제가 CPU 할당
    • OS가 올바른 IO 요청인지 확인 후 수행
    • IO 요청 : 소프트웨어 인터럽트
    • IO 끝난 거 알려줌 : 하드웨어 인터럽트

Interrupt

일반적으로 하드웨어 인터럽트를 의미(소프트웨어 인터럽트 : trap)

  • 운영체제는 interrupt가 일어날 때만 CPU 제어권이 운영체제에게 넘어감
  • 평소에는 사용자 프로그램이 제어권
  • 인터럽트 벡터 : 인터럽트 종류마다 실행해야할 함수(인터럽트 처리 루틴)의 주소를 가지고 있음
  • 인터럽트 처리 루틴 : 실제로 인터럽트를 처리하는 커널 함수(코드)

'개발하자 > 🐧 운영체제' 카테고리의 다른 글

운영체제 1. Introduction to Operating System  (0) 2022.08.14