다중 프로세서 시스템
메모리는 하난데 CPU가 여러개이다. 이를 병렬 시스템이라고도 한다.
장점 :
- 병렬 시스템을 통한 성능향상을 목표
- 비용 : 하나의 강한 CPU 보다 여러개의 저렴한 CPU로 구성하는것이 일반적으로 저렴하다.
- 신뢰성 제공 : 하나가 고장나도 다른 CPU로 돌릴 수 있다.
CPU가 여러개일 때 운영체제를 다중 프로세서 운영체제라 한다. 또한 강결합이라 한다.
분산 시스템
멀티컴퓨터 시스템이라고도 하며 네트워크(LAN) 등으로 연결되어 있다.
이는 메인메모리가 따로있고 랜으로 연결되어있으므로 소결합이라 한다.
OS도 서로 다 따로따로 있다. 이를 분산 운영체제라 한다.
다중프로세서 시스템, 분산시스템의 공통점
신뢰성, 성능, 비용절감을 목표로 한다.
실시간 시스템
특정 시간내에 반드시 연산이 끝나야 하는것.
시간제약 즉 Deadline를 정해둔다. 실시간 시스템은 네비게이션에서도 쓰인다. 실시간 경로안내할때 그 지점에 도착하기 전에 계산이 끝나야하기 때문에
주로 공장자동화, 군사, 항공, 우주 분야에서도 쓰인다.
실시간 시스템을 위한 운영체제는 실시간 운영체제(Real-time OS = RTOS)라 한다.
인터럽트
현대 운영체제는 인터럽트 기반 시스템이다.
컴퓨터를 키면 ROM에 있는 부트로더가 디스크에서 O/S를 메모리로 갖고온다. 이를 부팅이라 한다.
이 후 운영체제는 메모리에 상주하게 된다.
이 다음에는 아이콘이 나타나고 깜빡거린다.
이러다 우리가 마우스를 움직이면 전기신호가 발생하고 CPU에 인터럽트 선을 통해 전기신호를 올려준다.
그럼 CPU는 지금하던일을 중지하고 OS안에 마우스가 어떤 전기신호를 보냈을 때 어떤 행동을 하라고 정의되어있는지(mouse interrupt service routine)에 따라 처리한다.
하드웨어 인터럽트
인터럽트 결과 운영체제 내의 특정코드를 실행한다.(ISR)
interrupt Service Routine 종료 후 다시 대기
소프트웨어 인터럽트
SWI 명령어는 인터럽트가 걸리는것이다. 보통 인터럽트는 하드웨어가 걸리는데
SWI(Software interrupt) - ARM에서의 소프트웨어 인터럽트 명령
INT - 팬티엄에서의 인터럽트 명령
hwp 프로그램이 실행되다가 하드디스크에 있는 내용을 읽어온다고 가정하자.
하드디스크를 읽어오는 루틴은 O/S안에 존재한다. 이것또한 ISR이다. 아무튼 하드디스크 내용을 읽기위해 소프트웨어 인터럽트가 걸리게 되고 O/S안에 있는 하드디스크를 읽어오는 루틴을 실행하고 원래 실행중인 곳으로 돌아온다.
운영체제는 평소에는 대기상태이다
운영체제는 평소에는 대기상태이다. 그러나 하드웨어 인터럽트, 소프트웨어 인터럽트, 내부인터럽트에 의해 운영체제 코드를 실행한다.
내부 인터럽트는 5를 0으로 나누는것과 같은 논리적인 오류가 있을 때 발생하는 인터럽트이다. 이 땐 divide by zero를 처리하는 ISR이 호출된다.