09 운영체제란

10 프로세스, 스레드

11 CPU 스케줄링

12 동기화

13 교착 상태

14 메모리 관리

그림번호 설명 CPU 모드
외부에서 신호(read()시스템 콜)가 CPU로 들어오면, 수행하던 명령어를 중단하고 커널 모드로 전환 **(소프트웨어 인터럽트)
유저모드 → 커널모드**
1 OS에서 디바이스 controller(하드웨어)로 명령,
디바이스는 I/O 작업 수행 커널모드
현재 프로세스는 waiting 상태로 변경,
ready중인 프로세스가 있다면 running으로 변경 커널모드 → 유저모드
2 디바이스가 작업을 완료하면, Interrupt controller에게 종료 시그널을 전송 유저모드
3 Interrupt controller에서 CPU에게 디바이스가 작업 완료했음을 알림.
이때 여러 개의 디바이스 controller가 연결되어 있을 수 있으나 우선순위에 의해서 처리됨. **(하드웨어 인터럽트)
유저모드 → 커널모드**
4 3번에서 interrupt 신호를 전송함과 동시에, interrupt를 발생시킨 디바이스의 번호를 같이 보냄.
그림번호 설명 CPU 모드
1 interrupt 발생 (위 3번) (하드웨어 인터럽트)
유저모드 → 커널모드
2 Interrupt vector(위 4번에서 얻은 정보)를 통해서 interrupt handler 불러내 수행.
waiting으로 변경되었던 프로세스 ready로 변경. 커널모드
3 return해서 다음 작업 ㄱㄱ 커널모드 → 유저모드