본문 바로가기

Computer Science/OS

운영체제의 소개 - 발전과정

1940년대 : 운영체제 없음

- 작업 별 예약 후 순차 처리

- 사용자가 기계어로 직접 프로그램 작성

 

 

1950년대 : 일괄 처리 시스템 batch processing system

일괄 처리

중간에 사용자의 개입 없이 한꺼번에 작업 묶음을 처리

오퍼레이터는 비슷한 유형의 작업을 묶습니다. 

그것이 batch입니다.

 

한번에 하나 batch씩 작업이 실행됩니다.

 

 

장점

- 작업 설치 시간Setup Time , 철거 시간Teardown Time 시간 감소

 

단점

- 일괄 처리할 작업들의 유형이 동일해야 함

- 사용자 중간 개입 불가

   •Paper tapePunched cards 로 입출력

- 작업 우선순위 부여 곤란

- 프로세서 유휴 - (i/o하면 계속 i/o를 수행합니다. 그동안은 프로세서가 놀게됩니다.)

   •프로세서보다 입출력장치가 느림

   •설치/철거 시간

 

문제 해결하려고 나온 제시들 

상주 모니터resident monitor - 항상 감시하는 컴퓨터

파랑 빨강이 메인 메모리 입니다.

메인 메모리에 상주하는 감시자가 있습니다.

 

앞에 batch작업을 교체하는데 사람이 필요했습니다.

근데 상주모니터는 batch작업을 교체하는데 작업 카드만 필요합ㄴ디ㅏ.

 

- 작업묶음 (batch job)간의 전이를  사람(오퍼레이터)의 개입없이 자동적으로 수행하는 역할

- 작업 제어 카드 (JCC: Job Control Card) 해석기를 포함

 

 

버퍼링 도입

-프로세서가 연산하는 동안

- 입력 장치의 데이터를 미리 주기억장치에 저장

- 주기억장치의 데이터를 출력장치로 내보냄

 

cpu에서 나갈 것이 있다면 주기억장치에 담았다가 입출력장치에 보냅니다.

cpu의 유효시간을 줄이고자 하는 노력입니다.

 

 

스풀링 도입

- 데이터를 장치,프로그램, 혹은 시스템에 의해 사용되거나 수행되게 하기 위해 임시로 보관하는 행위

 

디스크를 버퍼로 사용

cpu가 입력받을 게 있다면 카드 판독기로부터 받지 않고 디스크에 저장된 것을 받는 것입니다.

출력할게 있다면 디스크에다 옮긴후 라인프린터에 출력합니다.

cpu가 입출력 하는 동안 미리 디스크에서 읽어두거나, 나중에 출력하거나 하는 것이 가능해집니다.

 

여러 작업의 데이터를  버퍼에 모아 둠

 

 

여러 작업의 입출력과 계산을 동시 진행

다른 작업이 cpu에서 돌고 있을 때 카드 판독기로 부터 디스크에 저장해 둡니다.

 

 

실시간 처리는 훨씬 뒤에 이야기 입니다.

 

1번 - ROM은 read only memory이다.

ROM이 아니라 주기억 장치에 넣습니다.

 

 

1970년대 초반 : 다중 모드/ 범용 시스템

다중 모드 시스템

- 일괄처리, 시분할 처리, 실시간 처리, 다중 처리를 모두 제공

 

범용 시스템

- 모든 사용자에게 모든 기능을 제공

 

시스템 유지 비용 큼, 고가

사용을 위해 고도의 훈련 필요

 

C언어로 Unix 개발(1973)

- 이식성

 

 

1970년대 중반~1990년대 : 분산 처리 시스템, 병렬/분산 계산 시스템

분산처리 - 네트워크의 발전과 연관이 깊습니다.

 

컴퓨터 네트워크와 온라인 처리 방법 널리 사용

- 네트워크 이용하여 멀리 떨어진 컴퓨터 사용

 

분산 처리 개념 확립

 

원격의 여러 시스템과 통신할 수 있어 정보 보호가 주요 관심사가 됨

1970년대 : 명령어 중심의 인터페이스 - CLI

1980년대 : 메뉴 지향적인 인터페이스 - 1번을 누르세요, q를 누르세요

1990년대 : GUIGraphical User Interface 보편화

 

개인용 컴퓨터 보급

DOS(Disk Operating System) 등장(1978)

l리눅스 커널 공개(1991)

 

일괄 처리 시스템 -> 일괄 처리 다중 프로그래밍 시스템 ->  실시간 시스템 -> 다중 모드 시스템  -> 분산 처리 시스템 

 

 

3번 - cpu가 노는 것을 방지하려고

 

 

2000년대 이후 : 모바일임베디드, 가상화 및 클라우드 컴퓨팅

스마트폰이나 태블릿 같은 모바일 기기 대중화

모바일 운영체제Mobile Operating System

- 노키아(심비안), 구글(안드로이드android,), 애플(iOS), RIM(블랙베리 OS), 마이크로소프트(Windows Phone)

임베디드 시스템

- 특정 제품이나 솔루션에서 특정한 목적을 가지고 주어진 작업을 수행하도록 설계된 내장 컴퓨터

사물 인터넷 IoT, Internet of Things 기술 등장

- 각종 사물에 컴퓨터칩과 통신 기능 내장하여 인터넷에 연결

 

 

 

 

가상화virtualization  : 물리적 자원 추상화, 논리적 자원 형태로 표현하는 기술

컴퓨터가 빠르니깐 가상화가 가능해졌습니다.

 

- 기술 발달로 경제성이 높아지면서 성능, 안정성, 효율성 향상 등 강점으로 본격적 확산

- 적용 대상에 따라 서버 가상화, 데스크톱 가상화, 스토리지 가상화, 네트워크 가상화, 소프트웨어 가상화로 구분

 

이 중 운영체제와 깊이 관련된 것은 서버 가상화,데스크톱 가상화

각 기계가 따로 있고 운영체제도 따로 놓여있습니다.

 

서버 가상화를 하고 한 기계에 하이퍼바이저를 깔고 그 위에 게스트 운영체제를 깔아서 여러개의 기계를 사용할 수 있게끔 합니다.

 

하이퍼바이저란? 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼(platform)

 

vmware가 하이퍼바이저 입니다.

 

 

 

서버 가상화 : 물리적 서버 하나에 가상 서버를 여러 개

- 호스트 기반 가상화 : 호스트 운영체제에서 가상 머신 구동

- 베어메탈bare-metal 기반 가상화 : 호스트 운영체제 설치 전 가상화 솔루션을 탑재

호스트 기반 가상화는 호스트 운영체제 위에 하이퍼바이저를 둬서 가상 머신을 구동시킵니다.

 

베어 메탈은 하드웨어 위에 운영체제 없이 하이퍼를 바이저를 두고 가상머신을 동작합니다.

 

 

클라우드 컴퓨팅

 

인터넷를 통해 가상화된 컴퓨터 시스템을 요구하는 만큼 즉시 제공(on-demand availability)받는 기술

 

그리드 컴퓨팅의 분산 컴퓨팅 개념,

유틸리티 컴퓨팅의 과금 모델, - (쓴만큼 돈을 낸다.)

서버-클라이언트 모델을 적용

 

서비스 종류 : IaaS, PaaS, SaaS

 

IaaS(Infrastructure as a Service) 

- infrastructure란? 서버, 스토리지, 네트워크 것

- 서버, 스토리지, 네트워크 등의 자원 제공

- 아마존AmazonEC2 (Elastic Compute Cloud) S3(Simple Storage Service)

 

PaaS(Platform as a Service)

- 응용 프로그램의 구축, 테스트 및 설치가 가능한 통합 개발 환경 제공

- 구글, 다음, 네이버에서 제공하는 Open API

 

SaaS(Software as a Service)

- 특정 소프트웨어를 인터넷으로 제공

- 해당 소프트웨어와 관련된 데이터도 클라우드에서 관리

 

platform은 개발 환경이다.

 

 

 

가상 머신 메니저 위에 가상머신들이 있고

 

각각 다른 컴퓨터 마냥 프로세스들을 돌리고 있습니다.

 

가상화 기술중에 베어메탈입니다.

 

하드웨어 위에 바로 os가 없고 하이퍼 바이저가 있기 때문입니다.

 

 

 

 

728x90