- 다중 프로세서 시스템(Multiprocessor system)
- 프로세서가 여러 개(CPU가 여러 대, 메모리가 한 개)
- 병럴 시스템(페러렐 시스템)
- 강결합 시스템(하나의 메모리에 CPU가 여러 개 강하게 연결)
- 왜 여러개 달린 걸까?
1) 퍼포먼스 : 더 많은 계산을 할 수 있음, 성능 향상의 목표
2) 비용 : 하나의 강한 CPU를 구입하는 것보다는 더 약한 CPU 여러 개 구매하는 것이 더 저렴
3) 신뢰성 : 하나가 고장나더라도 다른 CPU가 동작함
- CPU가 여러개 있을 때와 하나 있을 때와의 OS 는 달라야 함 => 다중 프로세서 운영체제 (Multiprocessor OS)
- 분산 시스템(Distributed system)
- 강한 컴퓨터를 만드는 방법 중 하나로 CPU-Memory들을 LAN에 연결함
- 하나의 LAN에 들어있기 때문에 서로 메세지를 주고 받음
- 멀티 컴퓨터 시스템 : CPU-메모리가 하나의 컴퓨터이기 때문 멀티 컴퓨터 시스템으로 불림
- 소결합 시스템 : 서로 떨어져있고 랜 상으로 느슨하게 연결
- 각각 OS가 들어 있음, 하나의 일을 여러 컴퓨터에서 나눠서하고 있으며 메세지로 주고 받음 => 분산 운영체제
- 실시간 시스템(Real-time system)
- 위의 시스템들과 목적이 다름, 실시간 시스템은 꼭 정해진 시간에 끝내야 함 - deadline이 강력하게 제한되어 있음
- ex) 내비게이션
- 공장 자동화(FA),군사,항공,우주 => 미사일,
- 실시간 운영체제 (RTOS)
인터럽트 기반 시스템
가로채기?
- 현대 운영체제는 인터럽트 기반 시스템
- 부팅이 끝나면?
- OS는 메모리에 상주 => 대기 중
- 마우스를 움직이면 전기 신호가 발생 => 인터럽트
- 마우스의 인터럽트 서비스 루틴이 발동
- OS안의 코드는 인터럽트가 발생할 때 구동
- 하드웨어인터럽터(마우스, 키보드 등)
- 소프트웨어 인터럽터
- 특정 명령어를 실행하면 인터럽터가 구동됨
- int - 인터럽터의 약자
- 내부 인터럽트
- 대표적인 예 : 자기 자신한테 거는 interrupt는 exception
- 아무 일 안하는 OS가 하드웨어 인터럽터에 의해 전기 신호가 발생 => OS 루틴으로 실행 -> 소프트웨어 인터럽터가 실행 => 인터럽트 기반 시스템