운영체제의 역사는 흐름을 파악하기 위해서 중요하다. 또한 P2P와 클라우드 컴퓨팅 같은 용어들의 등장배경도 알아볼 수 있다.
1. 초창기 컴퓨터(1940) - '애니악' 2진법 사용의 배경이 되었다. 아직까지 운영체제는 없다.
2. 일괄 처리 시스템 (1950)
IC(Integrated Circuit)이라고 논리회로를 아주 작게 구현하였다. 천공카드리더punch card reader라는 입력장치(OMR의 원조라고 보면 된다)와 라인프린터라는 출력장치를 가지고 있게 되었다. 모든 작업을 한꺼번에 처리해야 하고 실행 중간에 사용자가 데이터를 입력하거나 수정이 불가하다. 여기에 사용되는 운영체제의 방식이 일괄 처리 시스템 방식이다.
3. 대화형 시스템(1960)
키보드와 모니터가 등장하였다. 작업 중간에 사용자가 입력이 가능해서 중간 결과값도 출력 가능하다. 이것을 대화형 시스템이라고 한다. CPU집중작업(CPU bound job)은 프로그램 실행 도중 입출력이 불가능하다. (일괄 처리 시스템의 특징이다) 대화형 시스템은 입출력 집중 작업으로 I/O bound job이라고 한다.
4. 시분할 시스템(1960년대 후반)
다중 프로그래밍 기술이 개발되었다. 하나의 CPU로 여러 작업을 동시에 실행한다. 따라서 효율성이 올라간다. 다중 프로그래밍 기술은 CPU 사용시간을 잘게 쪼개어 여러 작업에 나누어주어 동시에 진행되는 것처럼 보이게 한다. 오늘날 대부분의 컴퓨터도 시분할 시스템을 사용한다. 그렇지만 시분할 시스템을 쓰지 못하는 경우도 있다. 이런 것들은 예외적으로 일정시간 안에 끝나지 않으면 심각한 문제가 생기는 것들이다. 원자력이나 미사일같은것들을 조절하는 프로그램은 실시간 시스템 방식을 사용한다.
*유닉스(C언어로 개발됨) : 멀티 프로그래밍과 다중 사용자를 지원하는 운영체제로 개발되었다.
5. 분산 시스템(1970년대 후반)
이즈음 스티브 잡스가 애플II를 만들면서 개인용 컴퓨터 시대를 열었다. 개인용 컴퓨터의 운영체제는 대부분 애플의 매킨토시나 마이크로소프트의 MS-DOS를 사용하였다.
이때 인터넷도 등장한다. 서로 호환되지 않는 LAN을 하나로 묶어 아르파넷ARPnet이 생성되고 컴퓨터 간의 네트워킹을 위한 TCP/IP 프로토콜도 정의된다. 아르파넷은 냉전시기에 개발되었는데 이후 대학교에서 학문 연구를 이유로 서로 컴퓨터를 연결하려는 시도가 늘어나자 아르파넷을 민간에 풀어버린다. 이것이 이후에 인터넷으로 진화했다.
개인용 컴퓨터가 보급되면서 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 시스템을 생성하였다. 이것을 분산 시스템 distributed system 이라고 한다.
6. 클라이언트/서버 시스템(1990~현재)
분산 시스템의 문제는 모든 컴퓨터가 동일한 지위를 갖는 것이였다. 클라이언트/서버 시스템은 웹 시스템 보급 후 알려졌는데 서버에 데이터를 요청하면 클라이언트가 정보를 받는 역할을 하는 것이다. 클라이언트/서버는 상대적인 개념으로 누구든지 서버와 클라이언트가 될 수있다.
데몬
클라이언트/서버 시스템에서 서버는 멈추지 않고 계속 작동해야 한다. 이렇게 멈추지 않고 계속 작동하는 프로그램을 데몬demon이라고 한다. 웹 데몬(웹 서버) 역할을 하는 프로그램은 아파티 톰캣, IIS 등이 있다.
7. P2P 시스템
P2P 시스템은 클라이언트/서버 시스템에서 불편한 점을 해결하기 위해 시작되었다. 클라이언트/서버 시스템에서 너무 많은 클라이언트가 서버에 요청을 하면 서버가 과부화 수도 있다. 보통 게임을 많이 하는 사람들은 경험해본적이 있을것이다. (서버가 터졌다니, 서버가 과부화되었다니,,그런 말들)
P2P 시스템(peer to peer)은 서버를 거치지 않고 사용자와 사용자를 연결해 준다. 각각 서버와 클라이언트가 되는 것이다. 메인 서버의 부하가 적다는 장점이 있다. P2P시스템의 예는 메신저 프로그램이나 MP3, 파일 공유 같은 P2P 시스템이 있다. 또한 비트코인, 블록체인 같은 것은 거래 장부를 분산시켜서 안정성을 확보한다.
(P2P 시스템도 서버가 있을 수는 있다. 예를 들면, P2P 메신저 프로그램같은 것은 사용자 인증, 출석과 같은 기능은 서버에서 한다.)
파일 공유
만약 기존에 MP3 P2P에서 전송하는 쪽에서 프로그램을 종료해버리면 어떻게 될까? 전송 중단이 되어 P2P 시스템에 치명적인 오류가 발생한다. 그래서 해결한 방안이 파일 공유이다. 파일 공유는 같은 파일을 가진 여러 사람으로부터 데이터를 나누어 받아서 속도를 향상할 수 있다.
8. 기타 컴퓨터 환경
1) 그리드 컴퓨팅 : 컴퓨팅 자원을 구매하여 사용하는 컴퓨팅 환경이다. 서로 다른 기종의 컴퓨터들을 하나로 묶어 가상의 대용량 고성능 컴퓨터를 구성하여 고도의 연산 작업 혹은 대용량 처리를 수행하는 것을 일컫는다. 보통 연구용이나 상업용으로 이용한다. 일반인은 웹 하드 서비스에서 경험을 할 수 있다.
ex) 웹 하드 서비스 : 웹 하드에서 파일을 내려받을려고 하면 서버에서 주는 것이 아니라 파일을 내려받은 컴퓨터로부터 몰래 데이터를 빼와서 전달한다. 이것을 '그리드 딜리버리' 라고 한다.
(그래서 파일노리, 큐다운 같은 웹하드를 다운받으면 컴퓨터 속도가 느려지는 것이다. 무료로 웹하드 이용권을 나누어주는 것도 서비스 가입자 몰래 그리드 딜리버리를 깔아서 서버의 부하를 줄이기 위함이다.)
SaaS
그리드 컴퓨팅의 소프트웨어적 버전. 소프트웨어를 영구 구매할 필요 없어 사용자의 초기 비용이 줄어든다. 단, 서비스 성능이 인터넷 연결 속도에 좌우되므로 사용자가 빠른 네트워크 하드웨어에 투자해야 된다.
(ex: Google Docs, Microsoft Office 365, IDE)
2) 클라우드 컴퓨팅 : 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용하는 환경이다. 그리드 컴퓨팅+SaaS라고 생각하면 된다.
클라우드 컴퓨팅이라는 이름은 시스템(하드웨어 포함)이 구름에 가려진 것처럼 사용자에게 보이지 않아서 붙여진 것이다.
ex) 회사 홈페이지를 제작하고 싶으면 클라우드 서버에 회사 홈페이지를 올려놓고 사용한 만큼 비용을 지불하는 식이다. 그렇지 않으면 직접 서버 관리와 많은 초기 자원이 필요한데 클라우드 컴퓨팅을 통해 절감할 수 있다.
ex) 또 휴대전화를 바꿀때 클라우드 백업을 통해서 직접 옮기지 않고도 손쉽게 전화번호부, 사진 등을 전달할 수 있게 된다.
3) 사물 인터넷 IOT : 사물에 인터넷이 연결된 것.
'CS > 운영체제' 카테고리의 다른 글
병렬처리 (0) | 2020.10.26 |
---|---|
인터럽트 (0) | 2020.10.26 |
[운영체제] 컴퓨터 기본 구성 (0) | 2020.10.13 |
[운영체제] 운영체제의 구조 (0) | 2020.10.11 |
[운영체제] 운영체제란 무엇일까... (0) | 2020.10.07 |