Interrupt
- 하드웨어(I/O 포트, 그래픽 카드, 하드 디스크, 등)에서 발생. 처리가 필요할 경우에 CPU에게 그 상황을 처리할 수 있도록 알려주는 것
- 인터럽트가 발생하면 실행 중인 코드를 중단하고, 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리함.
- 인터럽트가 발생하면 해당 프로세스는 ready queue에 들어가고 다시 스케줄링됨.
- I/O 혹은 Event가 발생하면 해당 작업이 완료될 때까지 wait queue에 들어가게 된다(block 상태). 완료되면 다시 ready_queue로 들어감.
System Call
- 커널 기능을 커널에 요청하는 방식. Trap을 통해서 실제로 커널에 정보가 전달된다. System Call은 그 Interface라고 할 수 있음.
Exception
- Trap
- Register와 스택 포인터가 저장되고, Context Switching이 일어나고, 실행이 재개될 수 있다는 면에서 인터럽트와 굉장히 흡사하다. 그래서 이를 CPU 내부 인터럽트라고도 한다.
- User Mode -> Kernel Mode 전환해 준다.
- System Call은 주변 장치, 메모리 관리, 등의 커널 모드에서만 조작 가능한 코드를 실행하기 위해 Trap을 통해 구현됨.
- Fault
- 0으로 나누기, 잘못된 메모리 엑세스, 등으로 발생
- abort
- 하드웨어 고장, 등
반응형
'OS' 카테고리의 다른 글
Context Switching에서의 Thread와 Process의 관계 + PCB, TCB (2) | 2020.05.30 |
---|---|
컴퓨터 자원의 구조와 동작, RAM과 Disk에 대해 (0) | 2020.05.26 |
[OS] 정리7 : 가상 메모리 (0) | 2018.09.27 |
[OS] 정리6 : 메모리 관리 (0) | 2018.09.26 |
[OS] 정리5 (0) | 2018.09.24 |
[OS] 정리4 (0) | 2018.09.24 |
[OS] 정리3 (0) | 2018.09.24 |
[OS] 정리2 (0) | 2018.09.23 |
[OS] 정리1 (0) | 2018.09.21 |
pintos information (0) | 2014.02.13 |