클럭마다 메모리에서 instruction 을 읽어서 실행한다.
cpu 내부에는 메모리보다 더 빠르게 동작하는 저장 공간인 Register 가 있다.
mode bit 은 cpu 에서 실행되는 것이 운영프로그램인지 사용프로그램인지 구분하여 준다.
(0 이면 OS, 1 이면 사용자 프로그램)
mode bit 이 1일 때는 제한된 Instruction 만 수행할 수 있다(보안목적)
-> 모든 입출력 명령은 특권명령(OS 만 수행가능)으로 되어있기 때문에 사용자 프로그램이 I/O 를 하려면 운영체제를 통해서만 I/O 장치에 접근할 수 있다
그리고 이렇게 사용자 프로그램이 운영체제의 함수를 호출하는 것을 System Call 이라고 한다
인터럽트 에는 여러가지 종류가 있고, 각 종류의 인터럽트 마다 수행해야 할 일들이 다르다.
각각의 인터럽트 종류마다 어떤일을 해야할 지는 운영체제의 코드에 정의 되어있고
각 인터럽트 마다 처리해야할 실제 코드를 인터럽트 처리 루틴 이라고 하며,
특정 종류의 인터럽가 들어왔을 때 특정 인터럽트 처리 루틴을 수행하라는 정의
(ex - 1번 인터럽트는 A 인터럽트 처리 루틴을 수행한다) 를 인터럽트 벡터에 저장해둔다.
Interrput line
interrupt 들이 저장되며 CPU 는 instruction 을 수행후 interrupt line을 확인해 interrupt 가 있다면 CPU 제어권을 OS 로 넘김
Timer
특정 프로그램이 CPU를 독점하는 것을 막아주는 하드웨어 장치
프로그램이 특정 시간동안 CPU를 점거하면 interrupt 발생시켜 CPU제어권을 운영체제로 넘김
매 클럭 틱 때마다 1씩 감소
타이머 값이 0이 되면 인터럽트 발생
DMA Controller
메모리를 접근할 수 있는 장치가 CPU 뿐이라면 I/O device 의 과도한 interrupt 로 overhead 가 너무 커질 수 있다.
그래서 DMA Controller 가 I/O device 의 작업수행결과를 메모리에 적재해주고 최종적으로 CPU에 한번만 interrupt를 걸음으로써, CPU에 걸리는 과도한 interrupt 를 방지한다.
Memory Controller
CPU 와 DMA Controller 가 동시에 특정 메모리영역을 접근해 발생하는 문제를 방지하기 위해 이를 중재하는 역할을 담당함
이 포스팅은 KOCW가 제공하는 반효경님의 운영체제 수업을 참고하였습니다.
사용된 모든 이미지 자료는 해당강의의 일부입니다.