컴퓨터 시스템 동작원리 1 - hochan222/Everything-in-JavaScript GitHub Wiki

바로가기1

  • 컴퓨터 구성요소
  • timer
    • 특정 프로그램이 CPU를 독점하지 못하게 막아줌
    • CPU 제어권을 프로그램으로부터 운영체제로 넘어옴
    • 매 클럭마다 1 감소되고 0되면 인터럽트 발생
  • mode bit
    • 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 필요
  • I/O device controller
    • 해당 I/O 장치 유형을 관리하는 일종의 작은 CPU
    • local buffer를 가짐
    • I/O는 실제 device와 local buffer 사이에서 일어남
  • DMA controller
    • I/O 장치의 인터럽트로부터의 CPU 부하를 줄이기위해

인터럽트 (Interrupt)

인터럽트 당한 시점의 레지스터와 program counter를 저장 한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

  • Interrupt (넓은 의미)
    • Interrupt(하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트
    • Trap(소프트웨어 인터럽트):
      • Exception: 프로그램이 오류를 범한 경우
      • System call: 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 경우
        • ex1) 사용자 프로그램이 CPU한테 인터럽트를 걸어서 mode bit을 0으로 바꾸고 제어권이 운영체제로 넘어간다. 그 후 device controller를 통해 처리한다.

I/O 요청은 소프트웨어 인터럽트를 통해 요청하고 I/O 처리가 끝나면 하드웨어 인터럽트를 통해서 알려준다.

인터럽트가 들어올때만 CPU가 운영체제한테 넘어가는거지 그렇지 않으면 항상 사용자 프로그램이 사용한다.

  • 인터럽트 처리 루틴
    • 각각의 인터럽트 종류마다 처리해야할 실제 코드
  • 인터럽트 벡터
    • 각각의 인터럽트 종류마다 실행될 함수의 주소