1950년대

- ENIAC : 번째 컴퓨터

+ 운영체제가 없었음

+ 1개의 응응프로그램을 실행시키도 바쁘다.

+ 응용프로그램이 직접 시스템 자원을 제어하며 실행.


1960년대 초반

- 프로그램 종류도 많아지고, 사용자도 슬슬 많아지기 시작했다.

+ 프로그램이 많아지면 단일 프로그램을 실행시키는 상황은 여러 프로그램을 실행시키기엔 

시간이 너무 오래 걸렸다.


- 배치 처리 시스템(batch processing system) 출현

+ 여러 응용 프로그램을 등록시켜놓으면, 순차적으로 실행하는 시스템

+ 배치 처리 시스템을 기반으로 운영체제가 출현


1960년대 후반

- 새로운 개념이 제안됨

+ 시분할 시스템(Time Sharing System)

+ 멀티 태스팅(Multi Tasking)


멀티 프로그래밍(다중 프로그래밍)

+ 최대한 CPU 많이 활용하도록 하는 시스템(시간 대비 CPU활용도를 높인다.)

프로세서가 항상 수행할 작업을 가지도록 하여 프로세스 이용률을 증진 시키는 방법이다.


- 시분할 시스템, 멀티태스킹이 아이디어로 나왔지 운영체제로 구현되지는 않았다.


- 시분할 시스템, 멀티태스킹 공통점

+ 응용 프로그램이 CPU 사용하는 시간을 잘개 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법


- 시분할 시스템 

+ 다중 프로그래밍을 논리적으로 확장한 개념이다.

+ 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템

ex) 리눅스에 여러 사용자가 로그인하여 사용하면 각자 컴퓨터를 사용하고있는것처럼 지원해준다.

+ 다중 사용자가 사용하려면 응답시간을 줄여야한다(최소화).

+ 배치 프로그램보다 컴퓨터 응답시간을 줄어드는 장점이 있다.


- 멀티태스킹

+ 가능한 CPU 많이 활용하도록 하는 기능(시간대비 CPU 사용율을 높이는것)

+ 단일 CPU에서, 여러 응용프로그램의 병렬 실행을 가능하게 하는 시스템

(시간을 잘게 쪼개서 응용프로그램을 바꿔가면서 실행, 여러응용프로그램이 동시 실행되는것처럼 보임)


- 시분할 시스템,멀티태스킹은 유사한 기술이다.


- 시분할 시스템,멀티태스킹은 스케줄러를 사용한다.


- 배치 처리 시스템의 단점

+ 컴퓨터 응답 시간이 오래 걸릴 있다.(앞단에 실행시간이 많이 필요로 하는 응용 프로그램이 실행될 경우)

+ 실행 시간도 오래걸릴 있다.(CPU 필요 없음에도 응용프로그램이 CPU 점유할 있다.


- 1960년대 후반부 정리

+ 시분할 시스템, 멀티태스킹 기술이 아이디어로 제공 (구현 X)

+ 기술 : CPU 시간을 쪼개서 사용한다.

+ 결과 : 다중 사용자 지원, 응용 프로그램 동시 실행


1970년대

- 제대로된 운영체제가 나왔다.(UNIX)

+ 미국 AT&T 사의 연구소

+ 켐톰슨, 데니스 리치 개발

+ 데니스 리치는 C언어를 개발


- 운영체제 개발에 C언어가 필요했던 이유

+ 1970년대 이전 : Assembly 언어로 소프트웨어 개발

+ CPU(명령어), Memory(주소) 물리적 주소를 직접 지정해서 활용

+ 각각 컴퓨터마다 사양이 다르기에 컴퓨터마다 다시 개발해줘야 하는 단점이 있다.

+ 프로그래밍 복잡도가 높음(활용도는 좋다)


+ 1970년대 C언어가 개발된

+ 컴파일러 : 다시 작성할 필요가 없음

+ 여러 컴퓨터에 같은 C언어를 사용 가능하다.

+ Assembly 언어에 비해 복잡도가 낮다.


- 이러한 이유로 C언어를 기반으로 운영체제를 개발했다.


- UNIX 특징

+ 현대 운영체제의 기본 기술을 모두 포함한 최초의 운영체제

+ 멀티 태스킹, 시분할 시스템, 멀티프로그래밍

+다중 사용자 지원 



+ Recent posts