컴퓨터 시스템 동작원리 1 - hochan222/Everything-in-JavaScript GitHub Wiki
- 컴퓨터 구성요소
- 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가 운영체제한테 넘어가는거지 그렇지 않으면 항상 사용자 프로그램이 사용한다.
- 인터럽트 처리 루틴
- 각각의 인터럽트 종류마다 처리해야할 실제 코드
- 인터럽트 벡터
- 각각의 인터럽트 종류마다 실행될 함수의 주소