OS

[OS] System call, Interrupt, Trap, 등

Binceline 2018. 9. 24. 23:38

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