* 인터럽트
- 인터럽트 벡터 : 인터럽트 서비스 루틴 주소를 담고 있는 테이블
- 인터럽트 서비스 루틴 : = 핸들러, 인터럽트 발생 시 무조건 수행해야 하는 것
- 인터럽트 발생 시 인터럽트 서비스 루틴 수행을 위해 인터럽트 벡터에서 핸들러 주소를 찾음
- 인터럽트 서비스루틴 수행 전에 기존 수행중이던 프로세스의 주소를 저장하고 핸들러를 수행함
- time interrupt : timer 디바이스에서 주기적으로 발생하는 인터럽트
* interrupt driven IO
3. io 트렌잭션 수행 -> cpu는 그 동안 다른 일을 하고 있음
4. 인터럽트 -> 핸드러를 수행. 이때 멈춘 수행 주소를 저장
*program counter register
1. 원래 cpu에서 처리 중인 프로세스는 100번지를 가리키고 있음
2. 인터럽트 발생 시 인터럽트 벡터에서 서비스 루틴을 찾음
3. 찾아서 해당 핸들러를 수행
4. 수행 완료 시 원래 처리 중인 프로세스로 이동
* 인터럽트와 트랩의 차이
- 인터럽트 : 하드웨어에서 발생, 외부에서 비동기적 발생
- 트랩 : 소프트웨어 인터럽트. 프로그램 수행중에 동기적 발생 e.g. 시스템콜, 예외
'CS > 오퍼레이팅 시스템' 카테고리의 다른 글
6. 오퍼레이팅 시스템이 제공하는 서비스 (0) | 2020.04.08 |
---|---|
5. 유저와 커널 (0) | 2020.04.08 |
4. 멀티프로그래밍 : 멀티프로세서, 멀티코어 (0) | 2020.04.07 |
3. 스토리지 구조 Storage Structure (0) | 2020.04.07 |
1. 오퍼레이팅 시스템 (0) | 2020.04.07 |