※ 질문/내용오류/공유할 내용이 있다면 jinkilee73@gmail.com으로 메일 주세요 :-)


이 전의 포스팅에서 Interrupt를 다음과 같이 정의했다.


Interrupt : In systems programming, an interrupt is a signal to the processor or an instruction in software usually indicating an event that needs immediate attention. An interrupt signals the processor of a high-priority condition requiring the interruption of the current code the processor is executing, the current thread.

출저 : 위키피디아


이번 포스팅에서는 Interrupt가 어떻게 동작하는지 알아보도록 하자.

Interrupt가 발생하면 OS는 유저모드에서 커널모드로 전환된다. 이 때 커널모드로 동작하고 있는 OS에서는 어떤 일이 벌어지고 있을까?


위와 같은 일이 벌어진다.

처음에 Interrupt가 발생하면 메모리 상의 특정 고정된 위치로 간다. 그 위치에 가면 어떤 주소 값이 저장되어있다. 그 주소 값으로 다시 가서 그 곳에 있는 코드를 수행하게 된다.

쉽게 설명하면, 예를 들어, 키보드 하나를 눌렀을 때 키보드 입출력 처리 루틴을 수행하는 과정을 설명해보자. 키보드 하나를 누르면, Interrupt가 발생하게 되고 키보드 처리 루틴?인 0x00000AB로 이동한다. 그 값에 저장되어있는 포인터 값이 0x177B82C6이기 때문에 그 메모리 주소로 이동하여 그 곳에 저장되어있는 코드(키보드 입출력 루틴 관련 코드)를 수행하게 된다. 

'Operating Systems' 카테고리의 다른 글

[OS] 스케쥴러 (scheduler)  (2) 2012.12.31
[OS] 프로세스 상태(Process State)  (2) 2012.12.31
[OS] OS의 역할 (more details)  (0) 2012.12.24
[OS] OS의 역할  (0) 2012.12.24
[OS] 운영체제 공부를 시작하기에 앞서...  (3) 2012.12.24
Posted by 빛나유
,