고등 운영체제
다중 프로세서 시스템 (Multiprocessor System)
하나의 메모리와 여러개의 CPU로 구성된 시스템.

병렬 시스템 (Parallel System)
여러 개의 CPU가 병렬로 위치해있다.
강결합 시스템 (Tightly-Coupled System)
하나의 메모리에 여러 개의 CPU가 강하게 결합 (Tightly-Coupled) 되어 있다.
분산 시스템 (Distributed Sytstem)
하나의 일을 여러 개의 CPU로 분산하여 처리하는 시스템

다중 컴퓨터 시스템 (Multi-Computer System)
여러 개의 컴퓨터가 하나의 LAN (근거리 통신망)으로 연결되어 있음.
소결합 시스템 (Loosely-Coupled System)
메인 메모리를 공유하지 않고 하나의 메모리, 하나의 cpu를 사용.
분산 운영체제 (Distributed OS)
각 컴퓨터의 OS가 서로 메시지를 주고받으며 하나의 일을 공통으로 나눠서 수행.
다중 프로세서 시스템과 같이 Performance, Cost, Reliability의 장점을 목표로 하는 시스템.
다중 프로세서 시스템과 분산 시스템의 장점 & 목표
- 성능 (Performance) : 한번에 더 많은 양의 계산이 가능하다.
- 비용 절감 (Cost) : 덜 강하지만 더 저렴한 여러 개의 OS를 운영하는 것이 더 가성비가 좋다.
- 신뢰도 (Reliability) : 하나가 고장나도 여분의 CPU가 있기 때문에 신뢰도가 높다.
실시간 시스템 (Real-Time System)
실시간 ?
주어진 시간 (Deadline) 안에 계산, 작업 등을 반드시 끝내야 하는 경우를 일컫는다.
자동화 공장 (FA), 군사, 항공, 우주, 네비게이션 등의 분야에서 사용된다.
실시간 운영체제 (Real-Time OS = RTOS)
주어진 시간 (Deadline) 안에 끝내지 못할 것 같다면, 바쁘지 않은 다른 프로그램을 희생하더라도 반드시 끝내도록 하는 운영체제.
인터럽트 기반 시스템 (Interrupt-Based System)
현대 운영체제는 인터럽트 기반 시스템
인터럽트 (Interrupt)란 가로채기라는 뜻으로, 하나의 전기 신호를 일컫는다.
기기의 부팅이 끝나면?
- 컴퓨터에 전원이 들어와 부팅이 시작되면 POST 과정이 시작되고, Boot Loader가 하드 디스크의 OS를 RAM 메인 메모리에 가져와 실행시킨다.
- 운영체제는 메모리 상에 상주 (Resident)한 채, 사건 (Event)를 기다리며 대기한다.
- 운영체제는 평소에는 대기 상태를 유지하다가 인터럽트 발생 시 동작함.
- 키보드, 마우스 등등의 이벤트.
마우스를 움직일 때
- 마우스를 움직일 때 마다 전기 신호가 발생한다. (전기 신호를 Interrupt라고 부른다.)
- 이 Interrupt가 CPU로 전달된다.
- CPU가 Interrupt를 수신하면 지금 하고 있는 일을 중지하고 OS 안에 있는 Mouse Interrupt Service Routine (ISR) 으로 점프 이동한다.
- Service Routine에서 설정된 코드에 의해 실시간으로 커서를 움직인다.
마우스를 더블클릭할 때
- 마우스를 더블클릭 하면 전기 신호 (Interrupt)가 발생한다.
- OS 안에 있는 Mouse Interrupt Service Routine (ISR) 으로 점프 이동한다.
- Service Routine 안의 마우스 더블 클릭 전용 루틴이 실행된다.
- 더블 클릭한 지점의 (x, y) 좌표를 통해 알맞은 동작을 실행한다.
- 만약에 어떤 파일을 더블클릭 했다면 하드디스크 안에서 해당 파일을 찾은 후 메인 메모리로 이동시킨다.
- 바탕화면에서 해당 파일이 실행된다.
키보드의 경우 Keyboard Interrupt Service Routine 으로 동작한다.
하드웨어 인터럽트 (Hardware Interrupt)
마우스, 키보드 등의 하드웨어로 인해 발생한 인터럽트이다.
- 인터럽트가 발생하면 ISR을 통해 운영체제 내의 특정 코드를 실행한다.
- ISR 종료 후 OS는 다시 대기 상태로 돌아간다.
소프트웨어 인터럽트 (Software Interrupt)
사용자 프로그램 (소프트웨어)이 실행되면서 발생하는 인터럽트이다.
어셈블리어 명령어로 직접 인터럽트 신호를 CPU에게 보낼 수 있다.
- 마찬가지로 인터럽트 결과 ISR을 통해 운영체제 내의 특정 코드를 실행한다.
- ISR 종료 후 OS는 다시 사용자 프로그램으로 복귀한다.
내부 인터럽트 (Internal Interrupt)
프로그램이 동작하는 과정에서, 연산의 결과 값이 없는 코드를 맞닥뜨리면 발생하는 인터럽트이다.
대표적으로 Divide by Zero ISR이 있다.
- 어떠한 값을 0으로 나눈다는 잘못된 연산이 실행될 경우 동작하는 ISR이다.
- 잘못 실행된 프로그램을 강제 종료한다.