[Operating System] OS Structures

hina·2023년 7월 6일
0

Operating System

목록 보기
1/9

Computer Hardware


Computer System Architecture

  • 하나 또는 여러 개의 CPU에서, 디바이스 컨트롤러는 bus를 통해 memory와 연결되고, 접근하고, 메모리를 공유한다.

  • bus의 두 종류

    • Data bus
    • Command/Address bus: Read, write
  • bus 컴포넌트 분류

    1. Bus arbiter: 관리자. 여러 컴포넌트들의 우선순위를 지정한다.
    2. Bus master: request를 bus slave에게 보낸다. (e.g., CPU, DMA controller)
    3. Bus slave: Bus master로부터 request를 받는다. (e.g., Memory, Device controller)

I/O Operations

  • I/O Controller: I/O operation을 통해 CPU의 명령을 수행한다.

  • I/O controller registers: Data register, Control register

Polling I/O vs. Interrupt-driven I/O

  • Polling I/O: CPU가 주기적으로 I/O status register를 확인한다. 따라서 CPU가 계속 관여해야 한다는 단점 존재
  • Interrupt-driven I/O: I/O controller가 CPU에게 연산이 끝났음을 알리면 interrupt를 발생시킨다.

Memory-mapped I/O vs. Port-mapped I/O

  • Memory-mapped I/O: 메모리와 다른 I/O의 주소공간을 통합한다.
    • I/O device 접근 시 instruction이 메모리와 똑같다는 장점이 있지만, 확장될수록 버거워진다는 단점이 존재한다.
  • Port-mapped I/O: 메모리와 I/O의 주소공간을 각각의 port로 분리한다.
    • 확장성에서의 문제는 없으나, port에 대한 접근을 위해 별도의 instruction이 필요하다.

DMA (Direct Memory Access)

  • DMA가 있기 전에는 disk에서 memory로 접근하기 위해 disk -> disk controller -> CPU -> Memory 순서대로 접근해야 했다. -> CPU가 있어야 memory 저장이 가능했음.
  • DMA가 생긴 후에는, disk -> disk controller -> DMA -> memory 순서대로 접근한다. -> cpu의 개입 없이도 메모리 접근이 가능해짐. OS의 성능이 향상됨.

Interrupts Mechanism


Common Functions of Interrupts

  • Interrupt: CPU 밖에서 CPU로 전달되는 모든 외부 신호를 일컫는다.
  • ISR (interrupt service routine): interrupt 신호에 따라 처리하는 방식이 정해져 있음.
  • Trap or exception: 소프트웨어적인 인터럽트
  • OS는 Interrupt driven이다. = 인터럽트에 의해 동작한다. 각각의 interrupt 번호마다 OS의 수행이 정해져 있다.

Interrupt Handling

  • OS는 레지스터와 Program counter를 저장하여 CPU 상태를 유지한다.

    Interrupt mechanism

    • 인터럽트 발생 시
      • 현재 진행 중인 명령을 완료한 후, 프로그램의 실행을 중지한다.
      • 중단된 명령의 주소를 저장한다. (next PC)
      • IRQ 번호 및 인터럽트 벡터 테이블을 통해 ISR의 주소를 가져온다.
      • ISR로 이동한다.
    • 인터럽트가 처리되는 동안
      • 실행 중 다른 인터럽트가 도착하면 -> 중요한 것부터 처리한다.
      • 수신 인터럽트를 사용하지 않도록 설정하여 인터럽트 손실을 방지한다.
    • ISR을 실행한 후
      • 저장되어 있는 주소를 통해 중단되었던 프로그램으로 돌아간다.
  • Interrupt Timeline

profile
🖥️

0개의 댓글