Skip to content

Latest commit

 

History

History
69 lines (34 loc) · 2.05 KB

2_3_컴퓨터_시스템_구조.md

File metadata and controls

69 lines (34 loc) · 2.05 KB

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

인터럽트가 운영체제를 구동시키는 원리, 인터럽트의 한 종류인 시스템콜,동기식/비동기식 입출력에서의 인터럽트, DMA를 이용한 인터럽트 조절, 계층구조에 의해 I/O에서 입출력명령어가 다름

시스템콜

사용자 프로그램이 하고싶은데 자기 혼자 못해서 OS한테 부탁하는거. ex) I/O작업

OS의 서비스를 받기 위해 커널 함수를 호출함


인터럽트

인터럽트 당한 시점의 레지스터와 PC를 저장하고 CPU의 제어를 인터럽트 처리 루틴에 넘김

  • Interrupt(하드웨어 인터럽트) : HW가 발생시킨 인터럽트
  • Trap(소프트웨어 인터럽트)
    • Exception : 프로그램이 오류를 발생함
    • System call : 프로그램이 커널 함수를 호출함

인터럽트 벡터 : 해당 인터럽트의 처리 루틴 주소를 가지고 있음

인터럽트 처리 루틴 : 해당 인터럽트를 처리하는 커널 함수

현대의 운영체제는 인터럽트에 의해 구동된다.


Device Controller

디바이스 컨트롤러는 하드웨어임

제어 정보를 위해 Control Register, Status Register를 가짐, Local Buffer를 가짐

I/O가 끝나면 인터럽트로 CPU에 알림

  • Device Driver : 소프트웨어임. OS 내부에 있는 코드 중. CPU가 실행하는 기계어
  • Firmware펌웨어 : Device Controller 내부에 있는 코드

동기식 입출력, 비동기식 입출력

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

  • I/O 요청 후 그 작업이 끝나야 제어가 사용자 프로그램한테 넘어감
  • I/O 완료는 인터럽트로 알려줌

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

  • I/O가 시작된 후 작업 끝날때까지 기다리지않고 제어가 사용자 프로그램한테 즉시 넘어감
  • I/O 완료는 인터럽트로 알려줌

DMA(Direct Memory Access)

인터럽트가 너무 잦은게 싫음.

특정 block 단위의 작업을 메모리에 저장해두고 그게 다 차면 DMA controller가 CPU에 인터럽트 검