인터럽트(Interrupt)

예비 개발자·2021년 5월 14일
0
post-custom-banner

0. 운영체제와 인터럽트
- 현대의 운영체제는 인터럽트에 의해 구동됨. CPU는 명령어(기계어)읽고 인터럽트를 확인하고를 반복.
- 동기적(synchronous, 서로 맞추는것) 입출력 : 입출력 작업동안 다른 프로그램이 CPU차지, 입출력 작업완료후 프로세스 진행. (각각의 자리에서 조화롭게 맞추는 것)
- 비동기적 입출력 : 입출력작업이 끝나는걸 기다리지 않고, 제어가 사용자 프로그램에 즉시 넘어감. (조화를 무시하고 자기할 것만 하기)

1. 인터럽트의 정의 (넓은 의미)
- Interrupt (하드웨어 인터럽트, 비동기적 인터럽트) : 좁은 의미의 인터럽트로써, 하드웨어가 발생시킨 인터럽트. 하드디스크 읽기 오류, 메모리 불량 등. 키보드 인터럽트, 마우스 인터럽트 등.
- Trap (소프트웨어 인터럽트) :
Exception(동기적 인터럽트, 비자발적) : 다른 메모리에 접근, 오버플로, 언더플로, Ctrl+C, 입출력장치에 의한 인터럽트, 0으로 나눈셈,
System call(시스템 호출, 자발적) : 프로그램이 커널 함수를 호출하는 경우

2. 인터럽트 처리
- 인터럽트 벡터 : 동시에 발생하는 인터럽트를 하나로 묶어서 처리하는 개념.

- 인터럽트 핸들러 : 인터럽트 처리 루틴으로써, 해당 인터럽트가 발생하면 어떤 일을 처리할것인지가 이 함수에 정의됨. 사용자가 다시 정의 가능.
- 인터럽트 발생하면, 현재 프로세스 일시정지상태가 되고 재시작을 위한 현재 프로세스 관련 정보 임시 저장. 인터럽트 컨트롤러 실행돼 인터럽트의 처리 순서 결정하고, 인터럽트 벡터에 등록된 인터럽트 핸들러가 실행됨, 일시정지된 프로세스 다시 실행(하드웨어 인터럽트)되거나 종료(exception)됨.

3. Mode bit
- mode bit을 통해 하드웨어적으로 이중모드 지원.
- 이중모드 : 운영체제가 사용자모드와 커널모드로 전환하며 일 처리하는 것.
- mode bit이 0인경우, 커널모드(모니터모드, 시스템 모드) : 운영체제와 관련된 커널 프로세스가 실행되는 상태.
- mode bit이 1인경우, 사용자 모드 : 사용자 프로세스가 실행되는 상태.

4. 시스템 호출
- 사용자가 하드디스크 입출력, 프로세스등과 같이 운영체제의 서비스를 받기위해 커널함수를 호출.
- 소프트웨어가 인터럽트를 스스로 거는 것(자발적).
- 커널이 제공하는 시스템 호출은 사용하기가 어렵고 매우 제한적, 다양한 방법으로 시스템 호출을 사용하기 위해 운영체제는 API를 제동. API가 준비한 함수를 이용해 시스템 자원에 접근 가능.

profile
기록 == 데이터
post-custom-banner

0개의 댓글