본문 바로가기
카테고리 없음

인터럽트와 운영체제

by by이종호기자 2022. 5. 23.
반응형

프로그램 인터럽트는 정상적인 프로그램의 진행을 벗어나 여러 문제를 다루는데, 이것이 운영시스템에서 어떻게 작용을 하는지에 대해서 알아보겠습니다.

운영시스템

컴퓨터는 그 안에 들어 있는 여러가지 프로그램을 통제하기 위해 운영시스템 (operating system) 을 가지고 있는데, 운영시스템이 수행될 때에는 감독자 모드 또는 시스템 모드라고 합니다. 어떤 특수한 명령어들은 단지 이 모드에서만 실행이 가능합니다. 사용자 프로그램을 수행하고 있을 때는 사용자 모드라 합니다.

인터럽트와 운영시스템

어떤 기종에서는 인터럽트 발생시에 프로그램 카운터만 대피하는 것도 있는데, 어떤 때에 서비스 프로그램이 레지스터나 상태 비트 등을 가리키게 된다면 그 이전에 그 내용을 보관하는 명령어가 있어야 합니다. 대부분의 컴퓨터에서는 프로그램 카운터와 PSW만을 인터럽트시에 보관하며 모든 레지스터의 내용까지 보관하는 경우는 거의 없습니다. 어떤 경우 두 집합의 레지스터가 있어 각 CPU 의 모드에 따라 레지스터를 사용할 때도 있는데, 이 경우에는 감독자 모드로 프로그램이 바뀌어도 사용자 모드에서 사용하던 레지스터의 내용을 저장할 필요가 없습니다.

인터럽트와 서브루틴 call은 매우 유사한 점이 있습니다. 인터럽트시에 CPU 의 상태가 스택에 저장되며, 서비스 프로그램 카운터가 바뀌게 됩니다. 단, 이때 서비스 프로그램의 시작 위치는 하드웨어적 요건에 의해 결정됩니다. 어떤 기종에 서는 인터럽트가 발생하면 항상 일정한 주소에서 프로그램이 수행되게 하는데, 여기에서 어떤 요인이 인터럽트를 발생하게 했는가를 조사하고 그에 대한 서비스를 해줍니다.

CPU와 인터럽트

CPU는 실행 사이클이 한 번씩 완료될 때마다 인터럽트가 발생했는가를 확인하고, 이때 발생했다면 인터럽트 사이클로 들어가게 됩니다. 이 사이클 동안 PC 와 PSW가 스택에 저장되고, 분기해야 할 주소가 PC에 놓여지고, 새로운 PSW가 결정됩니다. 이렇게 됨으로 해서 서비스 프로그램이 진행될 수 있습니다.

서비스 프로그램의 마지막 명령어는 return from interrupt 인데, 이 명령어가 수행될 때에는 스택에서 이전의 PC와 PSW를 받아내어 리턴 주소를 결정하게 됩니다. PSW는 이전의 상태 그대로 유지될 수 있게 됨으로써 원래의 프로그램이 진행될 수가 있습니다.

반응형

댓글