운영체제

운영체제의 역사

하늘하늘 . 2022. 1. 19. 02:06

0기 - 1940년대 - 없음 - 진공관(0과 1) 사용

1기 - 1950년대 - 카드 리더, 라인프린터 - 일괄 작업 시스템 / 운영체제의 등장

2기 - 1960년대 초반 - 키보드, 모니터 - 대화형 시스템

3기 - 1960년대 후반 - C언어 - 다중 프로그래밍 기술 개발, 시분할 시스템

4기 - 1970년대 - PC - 개인용 컴퓨터의 등장, 분산 시스템

5기 - 1990년대 - 웹 - 클라이언트/서버 시스템

6기 - 2000년대 - 스마트폰 - P2P 시스템(메신저, 파일 공유), 그리드 컴퓨팅, 클라우드 컴퓨팅, 사물 인터넷

 

초창기 컴퓨터 - 전선을 잭에 꼽아 회로를 연결하여 구성한 에니악은 30톤 규모의 거대한 계산기로 미사일 탄도를 계산하기 위해 제작 - 사람이 주판으로 7시간 동안 계산했던 것을 3초 만에 끝냈다. 백열전구 같은 모양의 진공관이라는 소자를 사용하여 진공관이 켜지면 1, 꺼지면 0이라고 판단 -> 컴퓨터가 2진법을 사용하는 계기

18000개의 진공관을 전선으로 연결한 것이 오늘날의 프로그램을 대신, 이렇게 전선을 연결하여 논리회로를 구성하는 것이 하드와이어링 방식

하드와이어링은 전선으로 논리회로를 구성하여 원하는 결과만 얻는 방식 -> 다른 계산이나 수식을 사용하려면 전선을 다시 연결, 초창기의 컴퓨터에는 운영체제가 없다.

 

일괄 작업 시스템

이후 IC라는 칩으로 만들어졌고 이 침은 진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 구현 

현대적인 모습의 컴퓨터 탄생 (CPU와 메인메모리 O) (키보드(입력장치), 모니터(출력장치) X) 

천공카드 리더를 입력장치로, 라인프린터를 출력장치로 사용

천공카드 리더 : OMR의 원조 / OMR은 OMR 카드에 특수한 펜으로 표시 -> 기계가 마크를 읽어서 데이터 수집

1950년대의 천공카드는 구멍을 뚫어 문자나 숫자를 표현

라인프린터 : 문자만 출력하는 프린터, 한 번에 한 줄씩 출력

천공카드시스템 -> 현대적인 프로그래밍 가능하게

천공카드 리더 -> 한 번에 한 가지 작업만

모든 작업을 한꺼번에 처리해야 하고 중간에 데이터 입력하거나 수정 X -> 일괄 작업 시스템 or 일괄 처리 시스템

운영 체제 전반에 걸쳐 자주 인용되는 시스템

 

대화형 시스템(1960년대 초반)

키보드와 모니터 등장

키보드는 타자기의 쿼티 자판에 다양한 키를 추가

브라운관 기반의 TV와 유사했던 초기의 모니터는 컬러가 아니라 단색(초록색 또는 오렌지색)

-> 작업 중간에 사용자가 입력 혹은 중간 결괏값을 보여 줄 수 있도록 (컴퓨터와 사용자의 대화 -> 대화형 시스템)

작업시간 예측 X -> 입력과 출력이 얼마 만에 완료될지 예측 X 사용자가 얼마 만에 반응할 수도 X

 

시분할 시스템(1960년대 후반)

다중 프로그래밍 기술 개발 -> 하나의 CPU로 여러 작업을 동시에 실행하는 기술

시간을 분할하는 방법 CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 나누어준다.

잘게 나뉜 시간 한조각 - 타임 슬라이스 또는 타임 퀀텀

단점 : 여러 작업을 동시에 처리하기 위한 추가 작업 필요

많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장 X -> 일정 시간 안에 작업이 처리되도록 보장하는 실시간 시스템 사용

경성 실시간 시스템 - 지정한 응답 시간을 정확히 지키는 시스템

연성 실시간 시스템 - 지정한 응답 시간을 최대한 지키지만 융통성이 어느 정도 허용된 시스템

  (동영상 재생기는 응답 시간 안에 작업이 처리되지 않으면 끊김 현상이 발생 치명 X)

 

다중 사용자 시스템

시분할 시스템에서 동시에 실행되는 작업의 개수를 멀티프로그래밍 수준 또는 멀티프로그래밍 정도

여러 작업을 동시에 실행할 수 있다는 것은 한 사람이 여러 프로그램을 동시에 실행 O,

여러 사람이 동시에 작업할 수 있다 O

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

 

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

유닉스는 멀티프로그래밍과 다중 사용자를 지원하는 운영체제로서, 소스코드를 공개하고 다양한 업체 및 프로그래머와 공동 작업 끝에 탄생한 작고 안정적인 운영체제

 

분산 시스템(1970년대 후반)

스티브 잡스가 최초의 개인용 컴퓨터 애플2 발표

소프트웨어 급속도로 발전

운영체제 시장이 커졌으며 애플의 매킨토시와 마이크로소프트의 MS-DOS가 많이 사용

인터넷도 등장

미국의 ARPA가 서로 호환되지 않는 LAN들을 하나로 묶기 위한 연구 -> 아르파넷 생성

아르파넷은 차츰 대중에게 개방 -> 컴퓨터 간의 네트워킹을 위한 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜을 정의

분산 시스템 - 개인용 컴퓨터와 인터넷이 보급되면서 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가는 시스템 / 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성한 시스템

 

클라이언트/서버 시스템(1990년대 ~ 현재)

분산 시스템은 모든 컴퓨터가 동일한 지위라 컴퓨터가 고장 나거나 추가되면 작업을 분배하고 결과를 모으기가 쉽지 X

클라이언트/서버 시스템 - 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중 구조로 나뉜다.

클라이언트/서버 구조가 일반인들에게 알려진 것은 웹 시스템이 보급된 이후

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

 

데몬 : 클라이언트/서버 시스템에서 서버가 멈추지 않고 계속 작동 / 데몬을 가진 컴퓨터를 서버 / 웹 데몬이 설치된 컴퓨터틑 웹 서버, FTP 데몬이 설치된 컴퓨터는 FTP 서버, 이메일 데몬이 설치된 컴퓨터는 이메일 서버 웹 데몬의 역할을 하는 프로그램으로는 아파치 톰캣 IIS

 

P2P 시스템(2000년대 초반 ~ 현재)

P2P시스템의 개념

전 세계의 MP3 음악 파일을 공유하려는 시도 -> 클라이언트/서버 시스템의 서버 과부하

기존의 클라이언트/서버 구조로 MP3 파일 공유 시스템을 구현-> 서버 과부하

서버의 부화를 줄일 수 있는 새로운 시스템으로 P2P 시스템

peer는 말단 노드, 즉 사용자의 컴퓨터를 가리키며, P2P는 서버를 거치지 않고 사용자와 사용자를 직접 연결

P2P 시스템에서는 서버가 파일 검색만 사용자 간에 파일 전송 -> 서버의 부하 적음

 

예 : 메신저

P2P 기술은 불법 소프트웨어 기술 규제 때문에 발전하지 못하다가 메신저 프로그램에 도입되어 큰 발전

수만 명이 동시에 채팅을 하고 파일을 주고받는 메신저 시스템은 클라이언트/서버 구조로 만들 수 X

P2P 기술을 이용하면 서버의 부하 없이 구현할 수 있다.

메신저에 로그인을 하면 먼저 서버에 접속하여 사용자 인증과 출석 등의 정보

 

예 : 파일 공유

대용량 파일 공유도 P2P 시스템의 발전에 한몫

P2P 시스템은 MP3 파일 공유 시스템의 단점을 보완하며 발전

 

서버가 없는 P2P 시스템과 서버가 있는 P2P 시스템

메신저는 사용자 인증과 출석 정보, 과거 데이터 보관 등을 위해 서버가 있는 P2P 시스템

서버가 없는 P2P 시스템의 대표적인 예 - 비트코인, 블록체인

비트코인은 인터넷상에 존재하는 가상화폐, 실물이 없는 가상화폐이기 때문에 블록체인 기법을 사용하여 서버가 없는 완전한 P2P 방식으로 거래 장부의 문제를 해결

대용량 파일 공유 P2P 시스템은 같은 파일을 가진 여러 사람으로부터 데이터를 나누어 받는다.

10명에게 데이터를 받는다면 1명에게 데이터를 받을 때보다 속도가 10배 빠를 뿐 아니라, 데이터를 받는 도중 1~2명이 프로그램을 중단해도 다른 사람에게 나머지를 받을 수 있다.

 

기타 컴퓨팅 환경(2000년대 초반 ~ 현재)

2000년대 초반에는 P2P 컴퓨팅 환경과 더불어 그리드 컴퓨팅, 클라우드 컴퓨팅, 사물 인터넷 등의 새로운 컴퓨팅 환경이 탄생

 

그리드 컴퓨팅

필요한 기간만 컴퓨터를 사용하고 비용을 지불할 수 있도록 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경을 그리드 컴퓨팅

분산 시스템의 한 분야, 서로 다른 기종의 컴퓨터들을 묶어 대용량의 컴퓨터 풀을 구성하고 이를 원격지와 연결 대용량 연산을 수행하는 컴퓨팅 환경 / 대용량 데이터의 연상을 소규모 연산으로 나누어 여러 대의 컴퓨터로 분산시킨다는 점에서 분산 시스템

그리드 컴퓨팅 - CPU 관리, 저장소 관리, 보안 조항, 데이터 이동, 모니터링과 같은 서비스를 위한 표준 규약 생성 기약

그리드 시스템 - 연구용이나 상업용으로 이용되는 시스템

서버에 엄청난 양의 데이터를 보관하고 있는 웹 하드는 사용자에게 데이터를 전송할 때 과부하가 걸리기도 하여 이를 해결하기 위해 대용량 데이터 P2P 시스템 기술을 사용

그리드 딜리버리 - 누군가가 웹 하드에서 파일을 내려받으려고 하면 서버에서 주는 것이 아니라 전에 파일을 내려받은 컴퓨터로부터 몰래 데이터를 빼와서 전달, 컴퓨터를 느리게 하는 주범, 일부 웹 하드 서비스 업체가 그리드 딜리버리 프로그램을 깔아서 서버의 부하를 줄이기 위함

그리드 컴퓨팅 - 하드웨어적인 컴퓨팅 환경의 통합

SaaS(Software as a Service) 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼만 비용을 지불하는 개념

SaaS의 경우 필요한 기능을 모아 서버에서 실행하고 사용자는 인터넷을 통해 필요한 서비스만 제공받으며 월별로 혹은 서비스를 이용한 만큼 비용을 지불, 프로그램을 깔거나 업데이트를 할 필요 없이 인터넷에 접속하면 누구나 이용

 

클라우드 컴퓨팅 -언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경 (그리드 컴퓨팅과 SaaS를 합쳐놓은 형태), 하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨팅 환경

기기 간의 데이터 이동이 자유로운 컴퓨팅 환경

IT 산업 전반에 많이 활용

클라우드 서버에 올려놓고 사용한 만큼 비용을 지불하며 되며, 서버 관리와 네트워크 관리를 클라우드 서버 제공자가 알아서 해주기 떄문에 편리

많은 계산을 해야 해서 구현하기 어려웠던 기술을 가능하게 함으로써 4차 산업혁명을 이끌고 있음

 

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

인터넷으로 연결된 사물들이 데이터를 주고받아 스스로 분석하고 학습한 정보를 사용자에게 제공, 새로운 서비스를 창출하는 사물 인터넷은 인공지능, 로봇 공학, 무인 운송 수단, 3D 인쇄, 나노 기술과 더불어 4차 산업혁명을 이끄는 기술