[OS 1-3] 고등운영체제 & 인터럽트 기반 운영체제

KOCW에 오픈된 경성대학교 양희재 교수님의 강의를 기반으로 정리한 내용입니다.

고등운영체제

다중 프로세서 시스템

말 그대로 CPU가 여러개 있는 시스템이다. 이런 시스템에서는 기존의 CPU가 하나 있었을 때의 운영체제와는 다른(더 진보된?) 운영체제가 필요하다.

장점

속도

여러개의 CPU를 관리하는 운영체제를 만드는 사람은 엄청 머리 아팠겠지만, 덕분에 프로그램을 실행하는 속도는 많이 빨라졌다. 개인적으로는 Background에서 실행되는 프로그램들이 아주 잘 실행될것 같다.

비용

3GHz CPU 하나가 30만원이라면, 1.5GHz CPU는 3만원이다. 성능은 절반인데 가격은 1/10이다. 그래서 좋은 CPU하나보다 더 안좋은 CPU여러개 쓰는게 가성비가 더 좋다.

안정성

CPU하나가 고장나도 다른 CPU가 있으니까 더 안정적이다.

분산 처리 시스템

같은 LAN에 있는 여러대의 컴퓨터가 일을 나눠서 하는 시스템이다. 이것도 역시 이런 시스템에 맞는 운영체제가 필요하다. 서로 계속 일의 경과가 어디까지 진행됬는지 메세지를 주고 받아야 하기 때문이다.

실시간 시스템

특정 시간안에 끝나야 하는 일들을 처리하는 시스템이다. 예를들어, 공장에서 돌아가는 기계들은 딱딱딱 특정시간 안에 어떤 일을 끝내야 전체가 잘 돌아갈 수 있다. 이럴때 쓰는 OS를 RTOS(Real Time Operating System)이라고 부른다.

인터럽트 기반 운영체제

현대 운영체제는 모두 인터럽트 기반 운영체제이다. 특정 이벤트가 발생하면 OS안에 있는 ISR(Interupt Service Routine) 프로그램이 작동하는 방식이다. 컴퓨터 부팅이 끝나면 운영체제는 이벤트가 발생하기를 기다린다. 아마 무한 루프를 돌리고 있을 것이다.

하드웨어 인터럽트

우리가 마우스를 움직이면 화면에 커서도 같이 따라 움직이는데, 이는 운영체제 안에 ISR이 작동하기 때문이다. 마우스 이벤트가 발생하면 운영체제는 하던일을 잠시 멈추고(혹은 하던일을 같이 하면서) 커서 움직이는 코드(ISR)을 실행한다. 구체적인 순서는 아래와 같다.

  1. 마우스나 키보드를 쓴다
  2. 전기적인 신호가 CPU에 전달된다
  3. CPU는 운영체제한테 이벤트가 발생했다고 알린다
  4. 운영체제는 해당 이벤트에 맞는 ISR을 실행시킨다

소프트웨어 인터럽트

개념은 하드웨어 인터럽트랑 같은데, 이벤트를 보내는 주체가 현재 실행되고 있는 소프트웨어(프로그램)이다.

CPU가 A프로그램을 잘 실행하고 있다가 특정 파일을 읽어들여달라는 요청(SWI)을 받으면 CPU는 OS에게 그 이벤트를 전달하고 OS의 하드디스크 관련 ISR이 작동되면서 하드디스크에서 해당 파일을 찾아 A프로그램에게 돌려준다. 그리고 나서 CPU는 다시 아까 잠깐 멈춘대부터 다시 A프로그램을 실행한다. 핵심은 A프로그램이 직접 하드디스크에 접근하는게 아니라, 이벤트를 발생시켜서 OS에게 대신 해달라고 부탁하는것이다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Up Next:

e.currentTarget 에러

e.currentTarget 에러