[KOCW] 운영체제, 2. 컴퓨터시스템의 구조(3)

임창묵·2022년 6월 15일
0

Computer science

목록 보기
5/11
post-thumbnail

KOCW > 이화여자대학교 반효경 교수님 > 운영체제 > 2. 컴퓨터시스템의 구조(3)

2. 컴퓨터시스템의 구조(3)

시스템콜(System Call)

  • 모든 I/O 관련 명령은 CPU 직통이 아닌 OS를 통한 특권 권한을 필요로 함.
    • 시스템콜: 사용자 프로그램이 운영체제의 서비스를 받기 위해 OS의 커널 함수를 호출하는 것
      • 인터럽트에 의해 작동함

인터럽트(Interrupt)

  • 인터럽트 당한 시점의 레지스터와 프로그램 카운터를 저장한 후, CPU의 제어를 인터럽트 처리 루틴에 넘긴다
  • Interrupt(하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트
  • Trap(소프트웨어 인터럽트)
    • Exception: 프로그램이 오류를 범한 경우
    • System call: 프로그램이 커널 함수를 호출하는 경우
  • 인터럽트 벡터: 해당 인터럽트의 처리 루틴 주소를 가지고 있음
    • 인터럽트 처리 루틴(= Interrupt Service Routine, 인터럽트 핸들러): 해당 인터럽트를 처리하는 커널 함수

Device Controller

  • I/O device controller
    • 해당 I/O 장치를 관리하는 일종의 작은 CPU
      • 제어 정보를 위해 controller register, status register를 가짐
      • local buffer를 가짐(일종의 data register)
    • I/O는 실제 device와 local buffer 사이에서 일어남
    • I/O가 끝났을 경우 interrupt로 CPU에 그 사실을 알림
  • device driver(장치구동기): CPU가 device controller에 명령을 전달하기 위한 소프트웨어
  • device controller(장치제어기): 각 장치를 통제하는 작은 CPU, 하드웨어
  • firmware: device controller가 장치를 제어 및 구동하기 위한 내장 소프트웨어

동기식 입출력과 비동기식 입출력

동기식 입출력(synchronous I/O)

  • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    • 구현 방법 1
      • I/O가 끝날 때까지 CPU를 낭비시킴
      • 매시점 하나의 I/O만 일어날 수 있음
    • 구현 방법 2
      • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음
      • I/O 처리를 기다리는 줄에 그 프로그램을 줄 세우고, 다른 프로그램에게 CPU 자원을 할당

비동기식 입출력(asynchronous I/O)

  • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

DMA(Direct Memory Access)

  • 고속 I/O 장치로 인한 인터럽트가 너무 빈번한 경우를 방지하기 위해 사용
    • 메모리와 가까운 속도로 처리하기 위해 사용
  • CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
    • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시켜 빈도를 줄일 수 있음

서로 다른 입출력 기계어

  1. I/O를 수행하는 special instruction에 의해: 전담하는 기계어를 두는 방식
  2. Memory Mapped I/O에 의해: 메모리 주소를 매핑해서 할당하는 방식

0개의 댓글