안경잡이개발자

728x90
반응형

운영체제 강좌 4- 컴퓨터의 작동 과정

 

컴퓨터 시스템에서 CPU와 각 장치들은 서로 연결되어 메모리를 공유합니다. 각각의 장치마다 장치 제어기(Controller)가 작업을 도와주며 모든 기계들은 동기화되어 적절히 작동합니다.



컴퓨터의 부팅 과정

 

- 전원이 켜질 때 ROM에 저장된 초기 프로그램을 실행합니다.

- 초기 프로그램은 메모리, CPU 레지스터 등을 초기화시킵니다.

- 이후에 운영체제를 찾아서 메모리에 적재합니다.

- 운영체제는 첫 번째 프로세스를 즉시 실행합니다.

- 인터럽트가 발생하면서 CPU가 각종 작업을 처리합니다.

 

하드웨어와 소프트웨어는 모두 CPU에 인터럽트를 발생시킬 수 있습니다. 일반적으로 인터럽트는 입출력 연산이 종료되었을 때, 예외가 발생했을 때, 운영체제의 다양한 서비스를 요구할 때 등 다양한 이유로 발생할 수 있습니다.

 

인터럽트가 발생했을 때 CPU는 현재 하던 일을 중단하고, 그 인터럽트에 대한 처리를 먼저 하게 됩니다. 그러한 처리를 '서비스 루틴이라고 하며 일반적으로 OS가 이를 처리합니다. 서비스 루틴이 종료가 되면 다시 CPU는 인터럽트 되었던 그 연산을 재개합니다.



인터럽트가 요청되었을 때 처리할 수 있는 방법은 2가지입니다.

 

(방법 1)

 

- 운영체제가 어떠한 종류의 인터럽트인지 확인합니다.

- 인터럽트 핸들러(Handler)를 호출해서 인터럽트를 처리합니다.

 

(방법 2)

 

- 인터럽트가 요청이 되면 인터럽트 서비스 루틴의 주소를 가리키는 포인터들로 구성된 인터럽트 벡터 테이블을 참조합니다.

- 참조된 포인터가 가리키는 인터럽트 처리 루틴을 호출해서 인터럽트를 처리합니다.



최근에는 방법 2를 채택한 운영체제가 많습니다. 인터럽트가 발생하면, OS는 하던 일에 대한 정보를 저장하고 중단합니다. 인터럽트 벡터로 제어를 옮겨 요청한 인터럽트 처리 루틴의 주소를 가리키는 포인터를 참조합니다. 포인터를 따라 이동하여 인터럽트 처리 루틴을 완료한 뒤에 다시 하던 일로 돌아갑니다.

 

인터럽트가 실행이 되고 있을 때 다른 인터럽트가 또 발생하는 경우에는 다른 인터럽트들을 대기시킵니다. 대기를 시키는 이유는 데이터 소실을 막기 위함입니다. 또한 인터럽트 사이에는 우선순위가 있어서 우선순위에 따라서 인터럽트 처리 순서를 조절합니다.

728x90
반응형