[OS] Lecture 3. Process Management (2/2) / 운영체제 강의
* 인터럽트(interrupt)
예상치 못한, 외부에서 발생한 이벤트
Unexpected, external events
게임을 하는 데 게임 안에는 프로세스가 돈다.
프로세스가 예상하지 못한 순간에 마우스를 클릭한 상황
인터럽트의 종류
I/O interrupt / 키보드, 마우스 외부에서 발생한
Clock interrupt
Console interrupt / 콘솔에서 발생한
Program check interrupt
Machine check interrupt
Inter-process interrupt
System call interrupt
인터럽트라는 개념을 이해하는 게 중요하다
보통 왜 방해하는 지 묻겠죠?
인터럽트 처리과정 역시
커널이 개입해서 프로세스를 중단하고 인터럽트를 처리하게 된다.
어디서 왜 발생했는지 원인을 파악해야하고, 처리/무시 결정해야한다.
커널이 중간에 개입해서
Context saving(문맥 저장) 발생
내가 열심히 공부를 하고 있는데 누가 찔러서 커피를 마시러 나가려면
책갈피를 꽂아놓아야한다. 내가 어디까지 공부했는지 흐름을 저장하는 것
커널이 개입하면, interrupt가 어디서 발생하고 어디서 발생했는지 원인을 파악해야 함
> interrupt handlnig
어떤 서비스를 호출해야 하는지 확인
> interupt service
서비스가 끝나면 프로세서가 비어있고,
기다리고 있던 녀석 중 하나를 주게 된다.
PI가 다시 들어올 수도 있지만 PJ가 들어올 수도 있다.
자신의 책갈피를 꽂아 놓을 테고 복구 하게 될 것이고
Context Switching( 문맥 교환 )
CPU 안에는 레지스터(메모리)가 있고 main 메모리가 있다.
cpu가 어떤 작업을 처리할 때 레지스터에 무조건 올린 후에 main은 그 안에 있는 것을 가지고 처리한다.
그외의 것들은 memory 안에 저장되어 있을 것이다.
현재 뺏긴 자원은 cpu이다. interrupt 때문에
cpu안에 저장되어 있던 것들을
cpu register 안에 저장이 되어 있을 것이다.