OS의 주목적
- Convenience : user에게 편리성 제공
- Efficiency : hardware를 관리, 실행하는 효율성
- Ability to evolve : 발전가능성
OS is a
- Mediator : software와 hardware를 중재하며, 프로그래머에게 편리한 interface를 제공한다.
- Resource manager : os는 컴퓨터자원을 관리할 필요가 있다.
<OS의 발전과정>
Serial Processing -> Simple batch -> Multiprogrammed batch system -> Time sharing
과거에는 시스템 이용률을 최대화 하기 위한 목적으로 OS 개발
현대에는 인간의 생산성을 높이는 것이 주목적. 평균 response time 중요
1. Serial Processing
- 진공관, 펀치카드/테이프 , light/printer 등을 사용한 과거의 컴퓨터 시스템
- Os가 없다 : 인간이 os의 역할을 함 -> 수동으로 모든 작업이 이루어짐
- Job to job transition : job수행이 끝나야 다른 job수행
- 모든 activity가 연속적
- 프로그래머가 하드웨어 자원과 직접적으로 상호작용
Problems
- 비싸고 비효율적
- Job-to-job transition 매우 느림
-> scheduling time :
-> high setup-time : 수동으로 이루어지기에 set-up time이 높다.
2. Simple Batch Systems
- 유사한 job끼리 batch함으로써 setup time을 줄임
- Automatic job sequencing : 프로그램의 시작과 끝을 기계화
Monitor 등장
- 그 당시 잡들을 batching processing하기 위해 나온 최초의 OS
- 항상 메인memory에 상주
- User program이 monitor에 침범하거나 job끼리 침범하는 경우가 생김
Desirable features(아래의 특징들이 완벽히 구현되어 있진 않은 것 같음)
- Memory protection for monitor
- System timer : 독점문제 막기위함
- Privileged instructions : 모니터에 의해서만 수행됨. 대부분의 I/O instructions 해당
- I/O device controller : 당시 I/O 디바이스 너어무 느려서 등장. CPU 대신하여 I/O device 제어. I/O device,CPU 동시에 수행될 수 있음.
- Synchronous I/O는 종속적(read). 입력될 때까지 계속 기다려야함 -> overlapping 불가능!
- Asynchronous I/O한 job에 대해 overlapping 하는 데 초점 -> interrupt
Problems
- Card reader very slow
- CPU 종종 idle (synchronous I/O 와 CPU는 overlap 안됨 -> CPU이용률 낮음)
3. Multiprogrammed Batch Systems
- CPU Utilization 높이기 위함
- 비동기, 동기 I/O 모두 overlap하기 위해 나옴
- 완료되지 않은 다수 프로그램을 메모리에 올려놓는다. 스케줄러가 선택.
Problems
- Relocation : 시작 번지가 바뀌는 문제. Job이 해당 위치에 올라간다는 보장 x
- Memory protection : 모니터에 침범하거나 job이 다른 job의 영역에 침범
-> 그래서 도입한 MMU(memory management unit)
base register, bound register 을 두어 relocation문제 해결
4. Time sharing systems
등장배경
- Integrated circuit : 직접회로 적용. 빨라지고 싸짐.
- 유저가 실행되는 job과 interact할 수 없음
- 하드웨어는 좀 싸졌는데 사람의 노동력이 비싸짐
Goal
- 인간의 생산성을 높이기
- Interactive jobs를 다중으로 다루기 위함
- Response time 최소화
Interactive timesharing
- 모두에게 터미널(ex. 키보드,모니터)을 주어 모든 유저가 한 번에 같은 machine을 사용할 수 있게 한다.
- Time slice(어떤 작업에 정의된 시간 할당량)가 모든 job에 할당된다.
- 시간초과시 OS가 뺏어버림 : preemption
Time Sharing Example
'Operating System' 카테고리의 다른 글
Process Description andControl 2 (2) | 2021.04.13 |
---|---|
Process Description and control 1 (0) | 2021.04.11 |
User program and System Call (2) | 2021.04.11 |
Computer System Overview (2) (0) | 2021.04.03 |
Computer System Overview (1) (2) | 2021.04.02 |