본문 바로가기
컴퓨터 공학/운영체제

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

by tempus 2021. 8. 7.
반응형

운영체제의 역사

이번에는 운영체제가 시대의 흐름에 따라 어떻게 발전되어 왔는지 간략하게 정리해보았습니다. 아래의 표는 시기에 따라 어떠한 시스템과 장치들이 개발되었는지 보여줍니다.

 

구분 시기 주요 기술 특징
0기 1940년대 없음 * 진공관 사용 
1기 1950년대 카드 리더, 라인 프린터 * 일괄 작업 시스템
* 운영체제의 등장
2기 1960년대 초반 키보드, 프린터 * 대화형 시스템
3기 1960년대 후반 C 언어 * 다중 프로그래밍 기술 개빌
* 시분할 시스템
4기 1970년대  PC * 개인용 컴퓨터 등장
* 분산 시스템
5기 1990년대 * 클라이언트/서버 시스템
6기 2000년대 스마트폰 * P2P 시스템
* 그리드 컴퓨팅
* 클라우드 컴퓨팅
* 사물 인터넷

 

🔶  1940년대

최초의 컴퓨터 애니악이 나왔던 시기입니다. 애니악은 사람이 주판으로 7시간 동안 계산했던 것을 단 3초 만에 끝냈습니다. 하지만 이 때는 운영체제가 없어서 계산 이상의 복잡한 기능들을 구현할 수 없었습니다.

 

🔶  1950년대

IC(integrated Circuit)라는 칩이 만들어진 시기입니다. 이를 통해 현대적인 모습의 컴퓨터가 탄생했습니다. 키보드, 모니터와 같은 장치는 없었지만 천공카드 리더와 라인 프린터를 사용함으로써 지금의 프로그래밍과 유사한 방식으로 다양한 소프트웨어를 개발할 수 있게 되었습니다. 이때의 프로그램은 모든 작업을 한꺼번에 처리해야 하고 프로그램 실행 중간에 데이터 입력, 수정이 불가능했는데 이런 시스템을 일괄 작업 시스템(batch job system)이라고 부릅니다.  

 

bath_system_img
일괄 작업 시스템

🔶  1960년대 초반

키보드와 모니터가 등장하여 일괄 작업 시스템 방식을 획기적으로 바꾸어 놓았습니다. 이제는 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결괏값을 보여줄 수 있게 되었습니다. 또한 중간에 입력을 받음으로써 작업의 흐름을 바꾸는 것도 가능해졌습니다. 이러한 시스템을 대화형 시스템(interactive system)이라고 부릅니다.


하지만 일괄 작업 시스템과 달리 대화형 시스템은 응용 프로그램의 입력과 출력이 얼마 만에 완료될지 예측하기 어렵고 사용자가 언제 반응할지 알 수 없어 작업 시간을 예측하기 어려웠습니다.

 

conversation_system_img
대화형 시스템

🔶  1960년대 후반 

이제 컴퓨터가 작아지고 계산 능력이 향상되었습니다. 하지만 기계가 비싸고 허가받은 몇몇 사용자만 사용할 수 있었습니다. 이로 인해 한 번에 하나의 작업만 수행하는 것은 낭비라 여겨 다중 프로그래밍(multiprogramming)이 등장하였습니다. 이는 앞서 나온 일괄 작업 시스템에 비해 효율성이 굉장히 올라갔습니다. 이때 등장한 시스템이 바로 시분할 시스템입니다. CPU가 사용 시간을 잘게 쪼개어 각각의 작업에 할당하여 마치 영화의 필름처럼 하나의 연속된 작업처럼 할 수 있게 해 주었습니다.   


시분할 시스템은 하나의 컴퓨터에서 여러 명이 작업할 수 있는 다중 사용자 시스템을 가능하게 했습니다. 그리고 이때 우리가 잘 아는 C언어로 UNIX를 개발했습니다. 

timeslice_system_img
시분할 시스템 

🔶  1970년대 

드디어 개인용 컴퓨터가 등장하였습니다. 이 시기에 소프트웨어가 급속도로 발전했습니다. Windows와 Mac OS의 선조 격인 MS-DOS와 매킨토시가 이때 보급되었습니다. 그리고 인터넷이 보급되면서 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가는 시스템을 만들게 되었는데 이를 분산 시스템(Distributed system)이라고 부릅니다. 

 

distribution_system_img
분산 시스템

🔶  1990년대

분산 시스템은 시스템에 참가하는 모든 컴퓨터가 동일한 지위이기 때문에 컴퓨터가 고장 나거나 추가되면 작업을 분배하고 결과를 모으기 쉽지 않았습니다. 그래서 클라이언트/서버 시스템이 등장하였습니다. 이 시스템은 클라이언트가 작업을 요청하면 거기에 서버가 응답하여 작업을 처리해줍니다. 


하지만 이는 서버의 과부하라는 문제가 발생하였습니다. 우리 주변에서도 서버가 다운되었다는 이야기를 심심치 않게 확인할 수 있습니다.  

 

client_server_system_img
클라이언트/ 서버 시스템

🔶  2000년대

서버의 부하를 줄일 수 있는 P2P 시스템이 만들어졌습니다. 이는 서버를 거치지 않고 사용자와 사용자를 직접 연결한다는 의미입니다. 클라우드 컴퓨팅도 등장하였는데 하드웨어적인 컴퓨터 환경 통합인 그리드 컴퓨팅과 사용자가 필요할 때 소프트웨어 기능을 이용하고 비용을 지불하는 SaaS를 합쳐놓은 것입니다.


이는 언제 어디서나 응용 프로그램이나 데이터를 자유롭게 사용할 수 있게 되었습니다. AWS, 네이버 클라우드가 그 예라고 할 수 있습니다. 우리는 클라우드 서버를 관리하는 업체에게 사용한 만큼의 비용을 지불하면 됩니다.

마지막으로 사물 인터넷은 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술입니다. 

 

clouding_system_img
클라우드 컴퓨팅

반응형

댓글


loading