포스트잇
인터럽트 : Interrupts 본문
오늘은 운영체제에서 지원하는 인터럽트를 공부해 보자. 일반적인 컴퓨터 작업을 생각해보면, 입출력 작업을 시작하기 위해 장치 드라이버는 장치 컨트롤러의 적절한 레지스터에 값을 적재한다. 그런 다음 장치 컨트롤러는 이러한 레지스터의 내용을 검사하여 수행할 작업을 결정한다. 이때 컨트롤러에서 로컬 버퍼로 데이터 전송이 시작된다. 전송이 완료되면 장치 컨트롤러는 장치 드라이버에게 작업이 완료되었음을 알린다. 후에 운영체제의 다른 부분에 제어를 넘긴다. 이때 작업 완료를 알리는 방식이 인터럽트이다.
위 사진은 인터럽트가 이루어지는 과정을 나타내는 그림이다. 하드웨어는 어느 순간이든 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생 시킬 수 있다. CPU가 인터럽트 되면 위와 같이 하던일을 중단하고, 서비스 루틴의 시작 주소를 가지고 있는 위치로 이동한다. 서비스 루틴 실행이 완료되면, CPU는 인터럽트 발생한 지점부터 연산을 재개한다.
위는 하드웨어 인터럽트에 대해 간략히 설명해봤는데 인터럽트는 크게 두가지로 나뉜다.
- 하드웨어 인터럽트 : 하드웨어가 발생시키는 인터럽트로, CPU가 아닌 다른 하드웨어 장치가 cpu에 어떤 사실을 알려주거나 cpu 서비스를 요청해야 할 경우 발생시킨다.
- 소프트웨어 인터럽트 : 소프트웨어가 발생시키는 인터럽트로, 소프트웨어가 스스로 인터럽트 라인을 세팅한다.
'운영체제' 카테고리의 다른 글
커널 : Kernel (0) | 2022.09.19 |
---|---|
운영체제 : Operating System (0) | 2022.09.13 |