[운영체제] 운영체제의 역사

728x90
반응형

40년대 진공관 (0,1) 사용

50년대 카드 리더, 라인 프린터 (일괄작업시스템, 운영체제등장)

60년대 초반 키보드, 모니터 (대화형 시스템)

60년대 후반 c언어 (다중 프로그래밍 기술 개발, 시분할 시스템)

70년대 pc (개인용 컴퓨터 등장, 분산시스템)

90년대 웹 (클라이언트/서버 시스템)

2000년대 스마트폰 (p2p시스템, 그리드 컴퓨팅, 클라우드 컴퓨팅, 사물 인터넷)

 

40년대 

진공관 최초 컴퓨터 에니악이 미사일 탄도 계산을 위해 제작됨 (2진법의 시초)

하드와이어링 방식: 전선으로 논리회로를 구성하는 것, 운영체제 없었음

 

50년대

일괄작업시스템

ic칩으로 만들어짐(진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 만든 것)

cpu있으나 키보드, 모니터 같은 입출력 장치 없었음. 천공카드 리더(omr시초)와 라인프린터 사용.

모든 작업을 한꺼번에 처리하고 프로그램 실행 중간에 사용자가 데이터 입력하거나 수정하는 것이 불가능함(일괄 작업시스템)

.bat은 batch job을 의미하는 확장자

 

60년대 초반 

대화형 시스템, 키보드와 모니터 등장 

작업 중간에 사용자가 입력하거나 중간 결과값 볼 수 있게 됨. 컴퓨터와 사용자 간 대화를 통해 작업이 이루어진다(대화시스템). 문서 편집기, 게임 같은 응용 프로그램을 만들 수 있게 되었다

단점은 대화형 시스템의 경우 작업 시간을 예측하기가 어려웠다. 입출력이 얼마 만에 완료될지 예측하기 어렵고 사용자 반응시간도 추정 불가하기 때문이다. 

 

60년대 후반

시분할 시스템 

컴퓨터 크기가 작아지고 계산 능력이 향상됨. 값비싼 기계로 한 번에 하나의 작업만 수행하는 것이 낭비이기 때문에 이를 줄이기 위해 다중 프로그래밍 기술이 개발됨

하나의 cpu로 여러 작업을 동시에 실행한다. 다중 프로그래밍 기술의 원리는 시분할시스템이다. 작업 시간을 아주 작은 시간 단위로 쪼개 작업에 나눠줌으로서 여러 작업이 동시에 처리되는 것처럼 보인다. (쪼갠 시간 조각은 타임 슬라이스, 퀀텀이라고 한다)

단점: 여러 작업을 동시에 실행시키기 위한 추가 작업이 필요함. 중요한 작업이 일정시간안에 끝나는 것을 보장 못함 

(미사일 제어 시스템)

일정 시간안에 작업이 처리되도록 보장하는 실시간 시스템 사용한다 (경성: 지정한 응답시간을 지킴, 연성: 융통성 있음)

 

다중 사용자 시스템

멀티프로그래밍수준: 시분할 시스템에서 동시에 처리되는 작업의 개수 

시분할 시스템은 하나의 컴퓨터에서 여러 명이 작업할 수 있는 다중 사용자 시스템을 가능하게 했다.

이 시기에 AT&T 벨연구소에서 C언어로 유닉스를 개발함. 

 

70년대 후반

분산 시스템

77년 스티브 잡스가 최초의 개인용 컴퓨터인 애플2를 발표함. 소프트웨어가 급속도로 발전. 개인 컴퓨터 운영체제로 애플의 매킨토시와 마이크로소프트의 MS-DOS가 많이 사용됨.

70년대 후반은 인터넷이 등장한 시기. 60년대 미국의 ARPA가 서로 호환되지 않는 LAN을 하나로 묶는 연구로 아르파넷이 만들어짐. 대중에게 개방되었고 컴퓨터 간 네트워킹 위한 TCP/IP 프로토콜이 정의됨. 

 

개인용 컴퓨터와 인터넷이 보급되면서 값싸고 작은 컴퓨터를 묶어 분산 시스템을 만들었다. 네트워크 상 분산된 여러 컴퓨터로 작업을 처리하고 결과를 상호 교환하는 방식이다.

 

90년대 ~ 현재

클라이언트/서버 시스템

클라이언트가 작업을 요청하면 서버가 응답해 요청받은 작업을 처리하는 이중 구조.

문제는 서버 과부하이다. 모든 요청이 서버로 집중되어 수십만 명의 클라이언트를 처리하기 위해서 많은 서버와 큰 용량의 네트워크가 필요하다. 

데몬: 멈추지 않고 계속 작동하는 프로그램. 데몬을 가진 컴퓨터를 서버라고 한다. 

 

2000년대 초반 ~ 현재

P2P 시스템 

MP3파일 공유하기에 클라이언트/서버 시스템의 서버 과부하가 심함.

P2P: 서버를 거치지 않고 사용자와 사용자가 직접 연결함. 

메신저, 파일 공유에 사용됨

블록 체인은 서버 없는 완전 P2P 시스템이다.

 

그리드 컴퓨팅

필요한 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경. 분산 시스템의 한 분야

서로 다른 기종의 컴퓨터를 묶어 대용량 컴퓨터 풀을 구성하고 원격지와 연결해 대용량 연산을 수행한다. 보통 연구용이나 상업용으로 사용됨. 웹 하드 서비스 등에서 사용자 컴퓨터에서 몰래 데이터 빼오는데, 이를 그리드 딜리버리라고 한다. 

그리드는 하드웨어적 컴퓨터 환경의 통합이고 SaaS는 소프트웨어 기능을 이용한 만큼 비용을 지불한다. 

 

클라우드 컴퓨팅

언제 어디서나 응용 프로그램과  데이터를 자유롭게 사용하는 컴퓨팅 환경. 그리드 컴퓨팅 + SaaS 합친 형태

회사는 클라우드 서버에 회사 홈페이지를 올려놓고 사용한 만큼 비용을 지불하며 서버 관리와 네트워크 관리는 클라우드 서버 제공자가 알아서 해준다.

 

사물 인터넷

사물에 센서와 통신 기능 내장해 인터넷에 연결하는 기술

 

 

728x90
반응형
TAGS.

Comments