[#3] 운영체제의 개요 -2-

Fuji ㅣ 2022. 7. 18. 11:38

학습 목표 
- 운영체제의 필요성과 정의, 역할, 목표를 이해한다.
- 초창기부터 현재까지 운영체제의 발전 과정을 살펴본다.
- 현대의 컴퓨팅 환경을 파악한다.

 

 

 


 

목차

  • 개요
  • 초창기 컴퓨터(1940년대)
  • 일괄 작업 시스템(1950년대)
  • 대화형 시스템(1960년대 초반)
  • 시분할 시스템(1960년대 후반)
  • 분산 시스템(1970년대 후반)
  • 클라이언트/서버 시스템(1990년대 ~ 현재)
  • P2P 시스템(2000년대 초반 ~ 현재)
  • 기타 컴퓨팅 환경(2000년대 초반 ~ 현재)

개요

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

 


 

초창기 컴퓨터 (1940년대)

최초의 컴퓨터 에니악

 

에니악펜실베니아 대학의 존 모클리(John Mauchly), 존 에커트(John Eckert)에 의해 만들어졌다. 30톤 규모의 거대한 기계였고 미사일 탄도를 계산하기 위해 제작되었다. 초창기 컴퓨터에는 운영체제가 없었다.

 

하지만, 알려진 사실과 달리 최초의 컴퓨터는 1차 세계대전 당시 암호 해독을 위해 제작되었던 "콜로서스"였다고 한다. 콜로서스는 프로그래밍이 가능한 최초의 디지털 컴퓨터였으며, 모든 범주를 포함해서 최초를 논한다면 "안티키티라"가 최초의 컴퓨터라고 한다.

 

hard wiring (하드 와이어링)

초기 컴퓨터는 주변 장치가 없었다. 18,000개의 진공관을 전선으로 연결한 것으로 프로그램을 대신했다. 이렇게 진공관과 전선으로 논리회로를 구성한 것hard wiring이라 한다.

 


 

일괄 작업 시스템 (1950년대)

IC(Integrated Circuit)

초창기 진공관 전선으로 연결했던 방식에서 IC(Integrated Circuit)칩으로 만들어지게 된다. IC칩은 진공관과 전선 방식의 논리회로를 아주 작은 크기로 축소 구현한 것이고 이게 현대적인 모습의 컴퓨터의 시초이다.

 

  • 천공카드 리더
    OMR의 원조격 : 카드에 구멍을 뚫어 문자를 입력했다.
  • 라인 프린터
    문자만 출력하는 프린터로 한 줄에 하나만 출력해서 라인 프린터라는 이름이 붙었다.

 

Batch Job System or Batch Processing System (일괄 작업 시스템)

프로그램이 시작되기 전에 천공카드 리더로 모든 입력을 마치고 결과를 일괄적으로 라인 프린터로 출력하는 방식 즉, 입력과 출력이 한번에 진행되어야 하는 것을 뜻한다. 

 

일괄 작업 시스템의 흔적
일괄 작업 시스템은 비록 작기는 하지만 운영체제가 사용되었기 때문에 메인메모리가 운영체제의 상주 영역과 사용자의 사용 영역으로 나뉘어 있으며, 현재 거의 사용되지 않지만 흔적이 남아 있다. 윈도우 운영체제가 사용되는 부팅 시 읽는 config.sys, autoexec.bat 파일이 있는데, autoexec.bat의 확장자 bat은 'batch job'을 의미한다. autoexec.bat 파일은 운영체제가 시작할 때 한꺼번에 처리해야할 작업을 모아놓은 것이다.

 


 

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

1960년대 초반에 키보드와 모니터가 등장했다. 모니터는 단색으로 출력되었다. 키보드와 마우스의 등장으로 프로그램 중간에 입력이 가능해지게 됨으로써 입력 값에 따라 작업의 흐름도 바꾸는 것이 가능해졌다. 이렇게 사용자와 컴퓨터가 대화를 통해 작업이 이루어지는 방식대화형 시스템(interactive system)이라 부른다.

 

대화형 시스템의 문제점

일괄 작업 시스템과 다르게 대화형 시스템은 작업 완료 시간을 예측하기 어려웠다. 

 


 

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

시분할 시스템의 개념

고가의 컴퓨터 장비로 한 번에 하나의 작업만 수행하는 것은 비효율적이라 판단하여 연구가 진행된 결과 multiprogamming(다중 프로그래밍) 기술이 개발되었다.

 

  • Multiprogamming(다중 프로그래밍)의 원리
    하나의 시간 단위를 여러 작업에 잘개 쪼개 분 할 시켜 한 템포마다 한 번의 작업을 수행한다. 예를 들어, 4개의 프로세스의 작업 진행을 원한다면 1초의 시간을 각 0.1초씩 배분하여 각 작업을 한 번씩 수행한다. 그리고 0.4초후 다시 반복한다. 이렇게하면 사용자 입장에서 마치 프로세스의 작업이 모두 동시에 이루어지는 것처럼 느끼게 된다. 
  • Time Sharing System(시분할 시스템) or Multitasking(다중 작업)의 정의
    여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는것을 뜻한다.
  • Time Slice(타임 슬라이스) or Time Quantum(타임 퀀텀)
    CPU 사용 시간을 잘게 쪼개어 작업들에 나누어주는 시분할 시스템에서 잘게 쪼개진 각 시간 단위를 뜻한다.

 

시분할 시스템의 단점
  1. 여러 작업을 동시에 처리하기 위한 추가 작업이 필요하다.
  2. 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못한다.
    그래서 원자력이나 미사일 제어등 중요한 작업은 실시간 시스템(real-time system)을 사용한다
- hard real-time system: 지정한 응답 시간을 정확히 지키는 시스템 (원자력, 온도 제어, 미사일 요격)
- soft real-time system: 응답 시간에 융통성이 어느정도 보장된 시스템

 

Multi-user System (다중 사용자 시스템)

하나의 컴퓨터에서 여러 명이 작업할 수 있는 환경

 

Level of Multiprogramming or Degree of Multiprogramming (멀티프로그래밍 수준, 정도)

시분할 시스템에서 동시에 실행되는 작업의 개수 (ex. 일괄 작업 시스템: 멀티프로그래밍 수준 1)

 


 

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

  • 개인용 컴퓨터 애플2가 출시했다.
  • 운영체제로 Apple의 매킨토시와 MS-DOS가 많이 사용되었다. 
  • 인터넷이 등장하였다.
  • ARPA에서 서로 호환되지 않는 LAN들을 하나로 묶어 ARPAnet을 개발했다.
  • ARPAnet은 컴퓨터간의 네트워킹을 위한 TCP/IP라는 프로토콜을 정의했다.
분산 시스템의 의미

값이 싸고 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가는 시스템을 만드는 것을 의미한다.

 

분산 시스템의 단점

분산 시스템은 모든 컴퓨터가 동일한 지위를 갖는 문제점이 있었다. 컴퓨터가 고장나거나 추가되면 작업을 분해하고 모으기가 쉽지 않다.


 

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

분산 시스템처럼 컴퓨터가 동일한 지위를 가진 형태가 아닌 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버로 동작하는 클라이언트/서버 시스템 방식이 탄생했다. 대표적으로 웹 시스템(Web system)이 있다.

 

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

모든 요청이 서버로 집중되기 때문에 서버 과부하가 발생하는 경우가 많다.

 

- 데몬(Daemon)
클라이언트/서버 시스템에서는 서버가 멈추지 않고 계속 작동하면서 클라이언트 요청을 처리해야 하는데, 이렇게 멈추지 않고 계속 작동하는 프로그램을 데몬이라고 한다.
1. 데몬을 가진 컴퓨터 = 서버
2. 웹 데몬이 설치된 컴퓨터 = 웹서버
3. FTP 데몬이 설치된  컴퓨터 = FTP 서버
4. 이메일 데몬이 설치된 컴퓨터 = 이메일 서버
웹 데몬의 역할을 하는 프로그램 Apache Tomecat, IIS 등이 있다.

 


 

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

P2P 시스템의 개념

각 사용자끼리 peer(말단 노드)를 갖고 서버를 거치지않으며 서로 데이터를 공유하는 방식을 뜻한다. P2P 방식 덕분에,클라이언트/서버 구조에서 서버과부화 문제를 일부 해소하였다.

 

P2P 시스템을 사용하는 서비스
  • 메신저
    수만 명이 동시에 채팅을 하고 파일을 주고받는 메신저 시스템은 P2P기술을 적용했다. 메신저에 로그인을 하면 먼저 서버에 접속하여 사용자 인증(certification)과 출석(presence)등의 정보를 받는다. 이런 절차가 완료되면 서버를 거치지 않고 사용자 간에 직접 채팅을 하거나 데이터를 전달할 수 있다.
  • 파일 공유
    대용량 파일 공유도 P2P 시스템 발전으로 생겨났다. 데이터의 조각들을 여러 사람으로 부터 나누어 받는 방식이다.
  • 서버가 없는 P2P 시스템 : 비트코인의 블록체인
    장부 기록이 필요한 거래 시스템을 P2P 시스템 전체에 거래 장부를 분산 시킴으로써 하나의 장부가 조작되거나 유실 되더라도 거래에 영향을 미치지 않게한다. 전체 시스템의 50%이상이 동의했을 때만 거래 장부의 변경이 가능하도록 하였다. 흔히 은행중앙 집중형 네트워크라고 부르고 비트코인블록체인형 네트워크라고 부르기도 한다.

 


 

 

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

그리드 컴퓨팅 (grid computing)

필요한 컴퓨팅 자원을 그때 그때마다 구매하여 사용하는 환경을 그리드 컴퓨팅이라고 한다. 서로 다른 기종의 컴퓨터들을 묶어 대용량 컴퓨터 풀을 구성하고 원격지와 연결하여 대용량 연산을 수행하는 컴퓨팅 환경이다. 보통 연구용이나 상업용으로 많이 사용된다.

 

SaaS (Software as a Sevice) ★

그리드 컴퓨팅이 하드웨어적인 컴퓨팅 환경의 통합이라면 SaaS는 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼만 비용을 지불하는 개념이다. 일반적으로는 소프트웨어를 사용자의 컴퓨터에 설치해 사용하지만 SaaS의 경우 필요한 기능을 모아 서버에서 실행하고 사용자는 인터넷을 통해 필요한 서비스만 제공받으며 월별로 혹은 서비스를 이용한 만큼 비용을 지불한다. SaaS의 가장 큰 장점은 프로그램을 깔거나 업데이트를 할 필요없이 인터넷에 접속하면 누구나 이용할 수 있다는 것이다.

 

클라우드 컴퓨팅 (cloud computing)

2006년 구글의 Christophe Bisciglia가 처음 제안한 것으로 알려졌다. 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경으로 그리드 컴퓨팅과 SaaS를 합쳐놓은 형태이다. 하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨팅 환경이라는 의미에서 클라우드라는 명칭이 붙게되었다.

 

 

사물 인터넷 (Internet of Things, IOT)

사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술이다. 인공지능, 로봇 공학, 무인 운송 수단, 3D 인쇄, 나노 기술과 더불어 4차 산업혁명을 이끄는 기술이다.

 


'운영체제' 카테고리의 다른 글

[#6] 컴퓨터 구조와 성능 향상 -2  (0) 2022.07.23
[#5] 컴퓨터 구조와 성능 향상 -1  (0) 2022.07.23
[#4] 운영체제의 개요 -3-  (0) 2022.07.23
[#2] 운영체제의 개요 -1-  (0) 2022.07.16
[#1] 운영체제 공부 시작  (0) 2022.07.16