농장/독&필 <쉽게 배우는 운영체제>

1-2 운영체제의 역사 / 운영체제, OS시스템, 컴퓨팅 환경

귤발자 2021. 7. 26. 01:17
728x90
반응형

일괄 작업 시스템 batch job system

1950년대. 아주 작은 논리회로인 IC칩으로 컴퓨터가 만들어지면서 등장했다. 현대적인 프로그래밍과 컴퓨터의 시작(진공관&전선 탈출)!

CPU, 메인메모리가 있었고 입력장치로는 *천공카드 리더(OMR의 원조)를, 출력장치로는 *라인프린터를 사용했다.

 

* 천공카드 리더: 구멍을 뚫어 문자와 숫자를 표현했다. 흔히 시험에 쓰이는 OMR카드에 까만 점을 칠하는 것과 비슷하다. 구멍을 뚫었다니 꼭 오르골을 사용하는 것 같기도.

사진을 보니... 오르골이란 말은 취소.

* 라인프린터의 '라인'은 한줄씩만 출력한다는 의미이다.

 

그러나 이러한 입출력 기기로 인해 일괄 처리 시스템(batch processing system)이다.  

 

 

 

시분할 시스템 time sharing system

1960년대 후반. 다중 프로그래밍 기술의 개발로 여러 작업을 동시에 실행할 수 있게 되었다. 다중 프로그래밍이란 하나의 CPU가 여러 작업을 동시에 수행하는 것인데, 일괄작업 시스템과 반대되는 개념이라고 볼 수 있다. 보다 효율성이 뛰어나다.

그렇다면 왜 '시분할' 시스템이라 부르는 것일까?

사실 CPU가 여러 작업을 정말 '동시에' 실행하는 것은 아니다. 여러 작업을 조금씩 나누어서 하는 것이다. 그 시간 분배의 속도가 아주 빨라서 우리에겐 동시에 작업을 실행하는 것처럼 보이게 되는 것이다. 멀티태스킹 시스템이라고도 불린다. 

 

분할된 시간 단위의 명칭은 time slice 또는 time quantum이다.

동시에 실행되는 작업의 개수를 멀티프로그래밍 수준/정도(level of multiprogramming)라고 부른다. 위 그림에선 멀티프로그래밍 수준이 3이다.

 

시분할 시스템에선 다중 사용자 시스템(multi-user system)이 가능하다. 여러 사용자가 동시에 작업을 할 수 있는 것이다. 시분할 시스템이 적용된 OS론 유닉스가 있다.

 

단점으론 이러한 멀티태스킹을 위해선 추가적인 작업이 필요하다는 것이다. 또한 중요한 작업을 우선 관리하는 게 어려울 수 있다. 중요한 작업을 일정 시간 내에 끝내기 위한 목적으론 더욱 안전한 실시간 시스템(real-time system)을 사용한다.

 

 

 

분산 시스템 distributed system

1970년대 후반. 네트워크 상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성한 시스템이다. 개인용 컴퓨터와 인터넷의 등장 덕분에 가능했다. 저렴하고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터 못지않은 시스템을 만들 수 있게 되었다.

 

1. 개인용 컴퓨터(스티브 잡스의 애플2)의 등장으로 소프트웨어가 급속도로 발전했다. 더 많은 사람들이 컴퓨터를 소유하고 사용할 수 있게 된 것이다. 개인용 컴퓨터의 운영체제로 매킨토시와 MS-DOS가 많이 사용되었다.

Apple II Personal Computer

2. 1960년대, ARPAnet(아르파넷)이 만들어졌다. 인터넷의 등장이다. 이것이 점점 대중화되며 컴퓨터 간의 네트워킹을 위해 TCP/IP 프로토콜이 정의되었다.

 

 

 

클라이언트/서버 시스템

분산 시스템의 단점을 개선하는 시스템이다. 분산 시스템은 모든 컴퓨터가 동일한 지위이기 때문에 상호 교환에 있어서 컴퓨터의 개수 변동에 따라 문제가 생기거나 번거로워 진다.

 

이 시스템은 작업을 요청하는 클라이언트와 응답을 받아 요청된 작업을 처리하는 서버의 이중구조로 이루어진다. 클라이언트와 서버 사이에 요청과 응답을 다루기 위한 네트워크가 존재한다.

우리가 잘 알고 있듯 웹 시스템에서 이용되며, 웹 시스템을 통해 대중화되었다.

 

단점으론 많은 요청으로 인해 서버 과부화가 발생할 수 있다. 많은 요청을 처리하기 위해선 그만큼 많은 서버와 큰 용량의 네트워크가 필요하기 때문이다. (서버터졌다, 유리서버, 서버 다운..., Yes24 티켓팅)

 

클라이언트/서버 시스템에서는 서버가 멈추지 않고 계속 작동하여 클라이언트의 요청을 처리한다. 이렇게 멈추지 않고 계속 작동하는 프로그램을 데몬(demon)이라고 한다. 종류는 웹데몬, FTP데몬 등 여러가지가 있다.

 

 

P2P 시스템 peer-to-peer system

클라이언트/서버 시스템의 서버 과부화 문제를 개선하는 시스템이다. peer는 사용자의 컴퓨터(말단 노드)를, P2P는 서버를 거치지 않고 사용자 간을 직접 연결한다는 의미를 가지고 있다.

이 시스템에선 파일 검색만 서버가, 파일 전송은 사용자 간에 이루어져 서버 부하가 적다. 메신저 프로그램이 대표적이다.

 

+ 대용량 파일 공유를 위한 P2P 시스템의 경우 (MP3 공유 등)

 1. 같은 파일을 가진 여러 사람에게 해당 데이터를 일부씩 나누어 받는다. 퍼즐조각처럼.

 2. 더 많은 사람에게 나누어 받을 수록 그 속도는 더욱 빨라진다.

 3. 대용량의 데이터 전송 중 문제가 생겨 전송이 취소되면 곤란한데, 이 방법은 여러명에게 받기 때문에 모든 사람에게 문제가 생기지 않는 한 전송이 취소될 위험이 매우 적어 안전하다(누군가의 전송이 취소되도 그 양이 크지 않기에 다른 사람이 메꾸면 된다).

 

 

728x90
반응형