운영체제란

10 프로세스, 스레드

11 CPU 스케줄링

12 동기화

13 Deadlock (교착 상태)

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해서 다음 작업 ㄱㄱ 커널모드 → 유저모드