반응형

목차

01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템




운영체제의 역사

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

 

초창기 컴퓨터(1940년대)

최초의 컴퓨터인 애니악은 전선을 쟁게 꼽아 회로를 연결했다.
30톤 규모의 거대한 계산기로 미사일 탄도계산을 위해서 제작되었다.
진공관이 켜지면 1꺼지면 0 이런식으로 컴퓨터 2진법을 사용하는 계기가 되었다.
(TMI : 최초의 컴퓨터는 애니악이 아니라 ABC컴퓨터(?)로 밝혀졋다는 후문이..)

애니악은 키보드, 마우스와 같은 다른 하드웨어들의 존재하지 않았고 운영체제 또한 존재하지 않았다.

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

IC라는 칩을 통해 현대적인 모습의 컴퓨터가 탄생했다.
중앙처리장치인 CPU와 메인 메모리가 존재 했으나 입력장치, 출력장치는 존재하지 않았다.
대신 천공카드 리더를 입력장치, 라인 프린터는 출력장치로 사용했다.
이들을 사용함으로써 프로그래밍과 유사한 방식으로 다양한 소프트웨어를 개발할 수 있게 되었다.
하지만 요즘엔 음악을 들으면서 문서작업을 할 수 있지만 당시에는 한번에 한 가지 작업만 가능했다. 이러한 시스템은 일괄 작업 시스템이라고 불린다.
일괄 작업 시스템은 작업에 필요한 프로그램과 데이터를 동시에 입력해야 작업이 가능하다.

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

드디어 입력장치와 출력장치가 생겨났다.
기존의 일괄 작업 시스템은 출력장치가 존재하지 않기 떄문에 작업 중간에 데이터를 수정하는 일이 불가능했다.
또, 오류가 있을지라도 그 사실을 최종 출력물로만 확인할 수 있었다.

그런데, 입력장치와 출력장치가 생겨나면서 프로그램의 진척도를 알 수 있고 도중에 입력을 받아 결과를 바꿀 수 있게 되었다. 사용자와 컴퓨터가 마치 대화한다고 하여 대화형 시스템이라고 한다.

이때부터 문서 편집기, 게임 등이 개발되어졌다.

하지만, 대화형 시스템에는 단점이 존재했다. 응용 프로그램의 입력과 출력이 언제 완료 될지 예측하기 어렵고 사용자가 얼마만에 반응할지 모르기 때문에 작업 시간을 예측하기 어려웠다.

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

1960년대 컴퓨터가 좋아지긴 했지만 여전히 고가의 기계였다. 그런데 이 비싼 기계로 한 번에 하나의 작업만을 수행하는 것이 낭비라고 생각해 고안해낸 방법이 다중 프로그래밍 기술이다.

다중프로그래밍은 하나의 CPU로 여러 작업을 동시에 실행하는 기술이다.
그 방법은 CPU 시간을 잘게 쪼개 여러 작업에 나눈다. 그리고 A작업에 0.1초 B작업에 0.1초  C작업에 0.1초를 할당한다.
그러면 운영체제가 빠르게 A→B→C 순으로 작업을 한다. 그러면 동시에 실행되는 것처럼 보여지게 된다.

여러작업을 조금씩 처리하여 작업이 동시에 이루어지것 처럼 보이게 하는 것을 시분할 시스템이라고 한다.
CPU 사용 시간을 잘게 쪼개어 작업들을 나눠 동시에 처리되는 것처럼 보여지게 하낟. 이런 한 조각을 타임 슬라이스라고 부른다.

시분할 시스템의 단점은 여러 작업을 동시에 처리하기 위한 추가 작업이 필요하고 많은 양의 작업이 공존할 경우, 중요한 작업의 우선순위가 밀릴 수도 있다.

시분할 시스템에서 여러 작업을 동시에 한다는것은 한 사람이 여러 프로그램을 실현하는 의미일 수도 있고 여러 사람이 동시에 작업한다는 의미이기도 하다.

이떄 유닉스가 등장하는데, 유닉스는 멀티프로그래밍과 다중 사용자를 지원하는 운영체제이다.

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

1998년 애플2 발매후로 개인용 컴퓨터가 발달하고 소프트웨어도 급속도로 발전했다.
개인용 컴퓨터로 애플의 매킨토시, 마이크로소프트의 MS-DOS가 많이 이용됬다.
이 시기에는 인터넷에 등장한 시기이다. 개인용 컴퓨터와 인터넷이 보급되면서 값이 싸고 크기가 작은 컴퓨터들을 하나로 묶어 대형 컴퓨터에 버금가는 시스템을 만들게 되었는데 이를 분산 시스템이라고 한다.

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

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

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

클라이언트 / 서버 시스템은 이런 문제점을 해결했다.
작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중 구조로 나뉘어진다.
웹 시스템의 등장으로 그림이나 링크를 통한 다양한 서비스가 생겨났다. 이러한 구조가 클라이언트 / 서버 구조이다.
문제점으로는 서버 과부하가 있다.

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

서버 과부하를 막을 수 있는 방법으로 P2P시스템이 만들어졌다.
이 시스템은 서버를 거치지 않고 사용자와 사용자를 직접 연결한다는 의미이다.
예를 들면 메신저, 파일공유가 있다.
메신저는 로그인하면 서버에 접속해 사용자 인증과 출석등의 정보를 받는다. 출석은 친구나 관련자가 어떤 상태인지 확인하는 과정이다.
이런 절치가 완료되면 서버를 거치지 않고 사용자간 채팅등이 가능하다.
파일 공유는 같은 파일을 가진 여러 사람으로부터 데이터를 나눠 받는다. 

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

필요한 컴퓨팅 자원을 구매하여 사용하는 컴퓨터의 환경을 그리드 컴퓨팅이라고 한다.
분산 시스템의 한 분야로, 다른 컴퓨터를 묶어 컴퓨터 풀을 구성해 연산을 수행하는 컴퓨팅 환경이다.

누군가가 웹 하드에서 파일을 다운 받을 때 서버에서 주는 것이 아니라 그 파일을 내려 받은 컴퓨터에서 몰래 데이터를 뺴와 전달해 주는 기법을 그리드 딜리버리 기법이라고 한다.(웹하드 저장소 사이트에서 무료 쿠폰을 주는 이유이다.)

그리드 컴퓨팅이 하드웨어적인 컴퓨팅 환경의 통합이면 SaaS는 사용자가 필요할 때 소프트웨어 기능을 이용하고 그만큼만 비용을 지불하는 개념이다.

클라우드 컴퓨팅은 언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경으로 그리드컴퓨팅 + SaaS 합쳐놓은 형태이다.

하드웨어를 포함한 시스템이 구름에 가려진 것처럼 보인다는 환경이라는 의미로 클라우드라는 명칭이 붙게 되었다.

클라우드 시스템으로 인해 이동 저장장치로 데이터를 가지고 다닐 필요없이 클라우드에 저장해놓으면 언제 어디서나 접근할 수 있게 되었다. 이 환경은 인공지능과 빅데이터 분야에 많은 기여를 하고 있다.

사물 인터넷은 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술이다.
인터넷으로 연결된 사물들의 데이터를 주고받아 스스로 분석하고 학습한 정보를 제공하거나 창출하는 기술이다.
인공지능, 로봇 공학, 무인 운송 수단, 3D 프린터 등에 쓰인다.

반응형

'Operating System' 카테고리의 다른 글

CPU와 메모리  (0) 2022.03.29
컴퓨터의 기본 구성  (0) 2022.03.28
운영체제의 구조  (0) 2022.03.27
운영체제 소개  (0) 2022.03.27
운영체제 (feat. 쉽게 배우는 운영체제)  (0) 2022.03.27