* 인터럽트(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 안에 저장이 되어 있을 것이다.
'운영체제 (Operation System)' 카테고리의 다른 글
[OS] Lecture 5. Process Scheduling (1/4) / 운영체제 강의 (0) | 2021.12.16 |
---|---|
[OS] Lecture 4. Thread management / 운영체제 강의 (0) | 2021.12.10 |
[OS] Lecture 3. Process Management (1/2) / 운영체제 강의 (0) | 2021.12.09 |
[OS] Lecture 2. OS Overview (3/3) / 운영체제 강의 (0) | 2021.12.08 |
[OS] Lecture 2. OS Overview (2/3) / 운영체제 강의 (0) | 2021.12.08 |