Computer System Components
- Hardware - CPU, memory, I/O ...
- OS => 사용자가 System & Application Programs를 사용하여 Hardware를 사용하고자 할때 중간에서 이를 연결하고 조정하는 역할
- System & Application Programs - S/W
- Users
OS⭐
- application view
- system view - CPU가 항상 바쁘게 일하도록 해야함.
-OS가 가춰야 할 특성-
Sharring, Protection, Fairness, Efficiency, Concurrency - implementaion view
OS는 event, interrupt-dirven software이다.
OS History
Early System⭐
가장 초창기 OS가 없는 시스템으로 추후에 compiler나 utilites들이 추가되어 사용됨. 대표적으로 ENIAC이 있다.
Batch Processing System⭐
일괄 처리 시스템. 2세대. 처리할 일들을 Job이라고 칭했으며 punched card에 직접 구멍을 뚫어서 코드를 작성. Operator들이 작업을 처리하며 결과는 On-line 방식이 아닌 Off-line방식으로 실시간이 아님. 시스템의 성능은 I/O장치의 성능에 따라 좌우됨.

Multi-programming System⭐
2세대 기술로 IO/CPU overlap을 이용하여 Job을 분할, 동시에 처리하는것과 같은 효과를 사용하여 "OS 성능을 개선". I/O가 동작중일때 노는 CPU에세 다른 Job을 실행하도록하여 성능을 향상시킴. Batch System의 card, printer와 같은 장치는 계속 사용하여 여전히 Off-line 동작. ICs(집적 회로)의 등장으로 가능.

Time-Sharing System (Multi-tasking System)⭐
3세대 기술로 현대 시스템에 기반이 되는 기술. On-line으로 유저와 상호작용 가능. CPU 사용 시간을 나눔. 이 나눈 시간을 time-slice, quantum 이라고 부른다. OS가 time-slice에 맞게 돌아가며 어려 process에서 동작. 이를 Round-Robin scheduling이라고 부른다.

Multi-processor System (SMP Symmetrics Multi-processer System)⭐
여러개의 CPU가 존재. 각각의 loacl cache memory가 존재하여 처리 속도를 향상시킨다. SW는 쉽기만 HW 설계가 어려움.

Distributed System⭐
분산 시스템. 여러 컴퓨터가 하나의 큰 시스템 처럼 동작. internet, network-based lossely multi-processor system 이라고도 부른다. 목적: Resource sharing, Parallel computing, Reliability. HW는 쉽기만 SW 설계가 어려움.
Cloud Computing

Embedded System
특수한 목적으로 설계된 시스템. 주로 real-time system으로 설계된다. 따라서 목적에 맞는 특수한 특성을 가짐.