1. No Operating System
- 1940년대말 ~ 1950년대
- Card Reader > memory > processing > line printer
2. Batch Processing(일괄 처리)
- 최초의 운영체제
- 다음과 같은 일련의 과정을 컴퓨터가 대신한다.
1. 소스코드 카드를 카드리더기에 넣는다.
2. 소스코드를 메모리에 적재한다.
3. 컴파일러를 다시 카드리더기에 넣는다.
4. 컴파일러를 메모리에 적재하여 소스코드를 번역한다.
5. 라이브러리와 링크한다.
6. 로딩
그 전까지는 위 과정을 사람(Operator)가 직접 했다.
- 메모리 안에 들어가는 작은 프로그램을 resident monitor라고 불렀다. (resident = 상주한다)
3. Multiprogramming system (다중 프로그래밍 시스템)
- 1960년대
- 이때부터 메모리에 다수의 user program을 올리기 시작했다.
- CPU를 최대로 이용하기 위해 고안되었다.
- user program은 CPU > I/O > CPU > I/O 과정을 반복할는데 I/O에선 CPU가 아무일도 안하게 된다. 이를 CPI idle이라 한다.
- u.p1이 I/O 처리중일때, u.p2로 넘어가고 u.p2가 I/O 처리중일때 u.p3으로 넘어가 CPU가 노는 시간을 대폭 줄일수 있게 되었다. => CPU 이용률 대폭 상승
- 그러나, 메모리에 여러 프로그램을 올리면서 다양함 문제가 발생했다.
- CPU 스케쥴링(어떤 순서대로 프로그램을 실행할지.), 메모리관리, 보호
4. TSS(Time-Sharing system, 시공유 시스템)
- 1960년대말
- Multiprogramming system의 문제점 : CPU는 하나이므로 하나의 프로그램이 실행중이면 나머지 프로그램을 실행을 못한다.
- 어떻게하면 한번에 동시에 여러 프로그램을 사용할 수 있을까?
- 아주 짧은 시간동안 CPU가 u.p1, u.p2, u.p3...을 스위칭하면서 처리하도록 만든다.
- TSS 특징:
1. 강제절환 : 일정 시간이 지나면 스위칭한다.
2. interative system(대화형 시스템) : 컴퓨터에게 명령을 내리고 응답을 받는 상호작용이 가능해졌다.
- TSS가 나오면서 다음 기술이 등장했다.
1. 프로세스간 통신 : 다른 사용자에게 메시지를 보내는 것과 같은 기술이 가능해졌다.
2. 동기화 : 여러 프로그램이 동시에 실행되기에 어떤 프로그램이 앞설지 결정해야만 한다.
3. 가상메모리 : 메모리에 여러 프로그램이 적재되면서 메인메모리가 부족해지게 된다. 그래서 하드디스크의 일부를 메인메모리처럼 보이도록 하는 기술을 사용하는데 이를 가상메모리 한다.
- 1960년대말에 출시되어 70년대 보급된 대표적인 TSS로는 유닉스(Unix)가 있다.
컴퓨터 구조별 분류
- Supercomputer > Mainframe > Mini > Micro (1980년대까지의 분류)
- Supercomputer > Server > Workstation > PC > Handheld > Embedded
고성능 컴퓨터의 OS 기술이 Handheld/Embedded 까지 순차적으로 적용되었다.
'Programming > 운영체제' 카테고리의 다른 글
CPU 스케쥴링 알고리즘(1) - FCFS (0) | 2021.07.24 |
---|---|
프로세스 관리 (Process Management) (0) | 2021.07.23 |
운영체제 서비스 (0) | 2021.07.13 |
이중모드, 하드웨어 보호 (0) | 2021.07.13 |
고등운영체제, 인터럽트 기반 운영체제 (0) | 2021.07.12 |