개발세발

운영체제의 역사 본문

코딩공부/OS

운영체제의 역사

뉼👩🏻‍💻 2022. 12. 22. 11:40
728x90
반응형
SMALL

 

운영체제의 역사 

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

 

📍 일괄 처리 시스템(Batch processing system)[일괄 작업 시스템(Batch job system)

: 모든 작업을 한꺼번에 처리해야 하고, 프로그램 실행 중간에 사용자가 데이터를 입력하거나 수정하는 것이 불가능함 

- 작지만 운영체제가 사용되었기에 메인 메모리가 운영체제의 상주 영역과 사용자의 사용 영역으로 나뉘어 있음 

- 프로그램과 데이터를 같이 입력하여 작업의 최종 결과만 얻을 수 있어서 작업 중간에 새로운 값을 입력하거나 데이터를 변경하는 것이 불가능함 

- 단순 계산 위주의 작업만 가능

 

* CPU 집중 작업 (CPU bound job / CPU편향 작업 / 컴퓨터 집중작업(coumputer bound job)

: 일괄 작업 시스템에서는 프로그램이 실행되는 동안에 입출력이 불가능하기 때문에 대부분의 작업이 CPU만 사용하는 계산 작업이었음 

ex. 수학 계산

 

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

: 컴퓨터와 사용자의 대화를 통해 작업이 이루어 지는 것 

- 1960년대 초반에 키보드와 모니터가 등장하며 이루어짐

➡️ 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결과값을 보여줄 수 있게 됨 

: 중간값을 출력하여 프로그램에 이상이 있느지 혹은 프로그램이 정상적으로 진행되고 있는지도 확인할 수 있게 됨 

- 문서 편집, 게임 등과 같은 다양한 종류의 응용프로그램을 만들 수 있게 됨 

 

* 입출력 집중 작업(I/O bound job)

: 대화형 시스템 에서는 프로그램이 실행되는 동안에 입출력이 가능하면서 생겨남

- 대부분의 작업 시간을 주변장치의 입력과 출력에 사용함 

ex. 동영상 플레이, 데이터 베이스 

 

📍 시분할 시스템(time sharing system) [다중 작업(multitasking)]  (1960년대 후반)

: 하나의 CPU로 여러 작업을 동시에 실행하는 기술

: CPU 사용 시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것 처럼 보임 

 (ex. 영화 필름 한장한장 -> 움직임)

 

- 시분할 시스템의 단점

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

:  시스템 내에 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못함 

 

* 타임 슬라이스(time slice) [타임 퀀텀(time quantum)] : 잘게 나뉜 시간 한 조각

 

* 멀티프로그래밍 수준(level of multiprogramming) [멀티 프로그래밍 정도(degree of multiprogramming)]

: 시분할 시스템에서 동시에 실행되는 작업의 개수

➡️ 하나의 컴퓨터에서 여러 명이 작업할 수 있는 다중 사용자 시스템(multi-user system)이 가능해짐

 

* 유닉스Unix

: 멀티프로그맹과 다중 사용자를 지원하는 운영체제 

- 소스코드를 공개하고 다양한 업체 및 프로그래머와 공동 작업 끝에 탄생한 작고 안정적인 운영체제 

 

 

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

: 개인용 컴퓨터와 인터넷이 보급되면서 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가는 시스템을 만든 것 

➡️ 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구상한 시스템

 

- 분산 시스템의 단점

: 시스템에 참가하는 모든 컴퓨터가 동일한 지위이기 때문에 컴퓨터가 고장나거나 추가되면 작업을 분배하고 결과를 모으기가 쉽지 않음 

 

* LAN (Local Area Network) : 서로 호환되지 않음

- LAN을 묶기 위해 아르파넷ARPanet이 만들어짐 

- 아르파넷이 대중에게 개방되면서 컴퓨터간의 네트워킹을 위한 TCP/IP (Transmission Control Protocol / Internet Protocol) 라는 프로토콜을 정의함. 

 

 

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

: 분산 시스템의 단점을 극복하기 위한 기술로

- 모든 컴퓨터의 지위가 동일한 분산 시스템과 달리 작업을 요청하는 클라이언트

- 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중구조로 나뉨 

 

-클라이언트/서버 시스템의 단점

- 서버 과부하 

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

 

 

* 데몬 Daemon 

: 클라이언트/서버 시스템에서 서버가 멈추지 않고 계속 작동하여 클라이언트의 요청을 처리하기 위해 계속 작동하는 프로그램

 

서버 웹 서버 FTP 서버 이메일 서버
데몬을 가진 컴퓨터 웹 데몬이 설치된 컴퓨터

*웹 데몬
- 아파치 톰캣 Apache Tomcat
- IIS Internet Information Services
FTP 데몬이 설치된 컴퓨터 이메일 데몬이 설치된 컴퓨터

 

 

📍 P2P(Peer-to-Peer system) 시스템(2000년대 초반 ~ 현재)

: P2P 시스템은 기술 규제로 발전하지 못하다가 메신저 프로그램이 도입되어 큰 발전을 이루었다 

: 메신저에 로그인하면 먼저 서버에 접속하여 사용자 인증(certification)과 출석(presence)등의 정보를 받는데 이 절차가 완료되면 서버를 거치지 않고 직접 채팅을 하거나 데이터를 전달할 수 있다

 

서버가 없는 P2P 시스템 서버가 있는 P2P 시스템
- 메신저
: 사용자 인증, 출석 정보, 과거 데이터 보관 등 
- 비트코인 Bitcoin의 블록체인 Block chain

 

 

📍그리드 컴퓨팅 grid computing

: 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경 

: 분산 시스템의 한 분야, 서로 다른 기종의 컴퓨터들을 묶어 대용량의 컴퓨터 풀Computer pool을 구성하고 이를 원격지와 연결하여 대용량 연산을 수행하는 컴퓨팅 환경

➡️ 대용량 데이터의 연산을 소규모 연산으로 나누어 여러 대의 컴퓨터로 분산시킨다는 점에서 분산 시스템이라고 볼 수 있음 

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

 

* 그리드 딜리버리 grid delevery

: 웹하드를 운영하는 측에서 데이터를 사용자의 컴퓨터에 분산 저장하여 서버에서 파일을 주는 것이 아니라 전에 해당 파일을 내려받은 컴퓨터로부터 몰래 데이터를 빼와서 전달하는 것 

➡️ 웹하드 서비스 업체가 무료로 웹 하드 이용권을 나누어주는 것은 서비스 가입자 몰래 그리드 딜리버리 프로그램을 깔아서 서버의 부하를 줄이기 위함 

 

 

↔️ SaaS(Software as a Service)

: 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼만 비용을 지불하는 개념 

- 필요한 기능을 모아 서버에서 실행하고 사용자는 인터넷을 통해 필요한 서비스만 제공받으며 월별, 혹은 서비스를 이용한 만큼 비용을 지불함 

 

 

 

📍 클라우드 컴퓨팅 Cloud Computing 

: 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨터 환경 (그리드 컴퓨팅 + SaaS)

: 하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨터 환경이라는 의미 

- PC, 휴대전화, 스마트 기기등을 통해 인터넷에 접속하고, 다양한 작업을 수행하며, 기기 간의 데이터 이동이 자유로운 컴퓨팅 환경 

 

 

 

📍 사물인터넷 Internet of Things IoT

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

인터넷으로 연결된 산업들이 데이터를 주고 받아 스스로 분석하고 학습한 정보를 사용자에게 제공하거나 새로운 서비스를 창출함 

- 인공지능, 로봇 공학, 무인 운송수단, 3D 인쇄,나노 기술 등에 사용

 

728x90
반응형

'코딩공부 > OS' 카테고리의 다른 글

04. 컴퓨터의 기본 구성  (0) 2022.12.26
03. 운영체제의 구조  (0) 2022.12.23
CPU bound, io bound  (0) 2022.12.20
운영체제란  (0) 2022.12.20
URL, URL, URN (정리중)  (0) 2022.06.23