현대 운영체제는 대부분 인터럽트 기반이다. OS는 부팅이 끝난 후, 메인 메모리에 상주하는데 상시에는 아무것도 하지 않다가, 인터럽트가 발생했을 때 OS의 코드가 실행된다.
하드웨어 인터럽트
예시 : 마우스 움직임 => 프로세서에게 전기 신호 =>cpu는 하던 일을 멈추고 마우스의 인터럽트 서비스 루틴을 실행한다.
소프트웨어 인터럽트
명령어 중에 swi에 해당한다.
예시 : 외부프로그램에서 하드디스크 파일 읽기 명령 실행 => 소프트웨어 인터럽트 => os의 파일 읽기 코드 실행=>하드디스크안에 파일 읽음
즉, 하드디스크의 파일을 읽는 코드는 프로그램이 아니라 OS 코드 안에 있다.
내부 인터럽트
i=10,j=0 => i/j => cpu는 0으로 못나누기 때문에 DivideByZero 인터럽트 발생 => 보통 잘못된 시도를 한 프로그램 강제 종료
'ComputerScience > OS' 카테고리의 다른 글
운영체제의 기능 (0) | 2020.08.26 |
---|---|
이중모드 (0) | 2020.08.26 |
운영체제 개론 (0) | 2020.08.15 |