공부 자료/운영체제

운영체제 CH2. 운영체제의 소개

뚜루뚜루세니 2021. 4. 14. 21:25
728x90

03. 운영체제의 발전 과정과 유형

 

1. 운영체제의 발전 과정

 

1940년대 : 운영체제 개념 없다.

순차(직렬) 처리 시스템을 사용하였고 사람들은 기계어를 직접 사용하여 프로그램을 작성하였다.

 

1950년대 : 일괄처리 시스템

일괄처리 = 직렬 처리 기술

작업 준비시간을 줄이기 위하여 데이터를 즉각적으로 처리하지 않고 일정 시간, 일정량을 모았다가 한꺼번에 처리하는 방식

 

- 일괄 처리의 장점

1. 많은 사용자와 프로그램이 컴퓨터 자원을 공유할 수 있다.

2. 컴퓨터 자원을 덜 사용 중일 때 작업 처리 시간 교대가 가능하다.

3. 시시각각 수동 개입이 가능하여 컴퓨터 자원의 유휴를 피할 수 있다.

 

- 일괄 처리의 단점

1. 준비 작업의 유형들이 동일하고, 모든 유형을 작업에 입력할 수 없다.

2. 프로세서와 입출력 장치 사이에 속도 차이로 인해 프로세서의 유휴가 종종 발생하게 된다.

3. 작업 우선순위 부여가 곤란하다.

 

따라서 이를 해결하기 위해 모니터링, 버퍼링, 스풀링의 개념이 등장하게 되었다.

 

- 버퍼링

프로세서와 입출력 장치 사이의 속도차를 줄이기 위해 모든 입출력 장치에 입출력 버퍼를 두어서 프로세서가 연산을 수행하는 동안 다른 작업을 입출력한다.

버퍼는 프로세서가 작업을 수행하는 동안 버퍼는 다음에 수행할 작업의 내용을 읽어 저장해두는 메모리이다.

 

- 스풀링

속도가 빠른 디스크를 버퍼처럼 사용하여 입출력 장치에서 미리 읽는 것이다. 

버퍼링이 하드웨어의 일부인 버퍼를 이용한다면 스풀링은 오프라인 장치를 사용한다는 점에서 차이점이 있다.

버퍼링은 한 번에 하나의 입출력 작업과 그 작업의 계산을 진행한다면, 스풀링은 여러 가지의 입출력 작업과 계산을 수행할 수 있다.

 

스풀링은 성능에 직접적인 영향을 준다. 프로세서에 일정한 디스크 공간과 테이블만 있다면 하나의 계산 작업과 다른 입출력 작업을 중복 처리할 수 있다. 따라서 프로세서와 입출력 장치가 고효율로 작업할 수 있게 해 준다.

 

1960년대 : 다중 프로그래밍 , 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템

1. 다중 프로그래밍 : 여러 프로그램을 나눠서 메모리에 적재한 후에 프로세서를 번갈아 할당하여 프로세서의 활용을 극대화하면서 여러 프로그램을 동시에 실행한다.

2. 시분할 시스템 : 다중 프로그래밍에 프로세서 스케줄링 개념을 더한 것이다. 일정한 프로세서 사용 시간을 할당하여 빠른 응답이 가능해져서 사용자와 대화하는 방법으로 프로그램을 실행한다.

3. 다중 처리 시스템 : 시스템 하나에 여러 프로세서를 할당하여 처리 능력을 높인 것

4. 실시간 처리 시스템 : 즉각 응답이 특징이다.

 

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

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

1970년대- 명령어 중심의 시스템

1980년대- 사용자에게 편리한 메뉴 지향적 시스템

1990년대- GUI 중심 시스템

 

분산 처리 개념이 확립됨에 따라 데이터가 발생하는 곳으로 컴퓨터의 능력을 가져오는데 관심이 생겼다.

 

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

모바일 장치와 가전제품을 위한 모바일 및 임베디드 운영체제가 보편화되었다. 

다양한 기능을 제공하고, 확장성&호환성이 극대화되었다.

다양한 통신망의 확대와 개발형 시스템이 발달하였다.

가상화 기술이 본격적으로 확산됨 

가상화 기술은 적용대상에 따라 서버 가상화, 네트워크 가상화, 데스크톱 가상화, 스토리지 가상화, 소프트웨어 가상화로 구분할 수 있는데 이 중 운영체제와 관련돼 가상화 핵심은 서버 가상화이다.

 

* 서버 가상화 : 물리적 서버 하나에 여러 가상 서버를 구성하는 방법

서버 하나에서 운영체제를 독립된 환경으로 사용할 수 있어서 여러 운영체제가 한 시스템의 자원을 공유하게 된다.

가상화 방법에 따라

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

2. 베어 메탈 기반 가상화: 호스트 운영체제 설치 전 가상화 솔루션을 탑재하여 가상의 CPU, 메모리, 디스크, 네트워크 카드 등을 생성한다.

 

* 클라우딩 컴퓨팅: 서버 가상화 기술 이용하는 사용자에게 컴퓨팅 자원, 스토리지, 소프트웨어 등을 서비스 형태로 제공

그리드 컴퓨팅의 분산 컴퓨팅 개념 + 유틸리티 컴퓨팅의 과금 모델 + 서버 기반 컴퓨팅 처리 모델 특징들을 차용해서 만듦

1. 클라우드 데이터 센터에서 원하는 만큼 컴퓨터 자원 무한대로 사용 가능

2. 컴퓨터 자원 원하는 만큼, 원할 때 늘리거나 줄이기 가능

3. 컴퓨터 자원을 사용한 만큼 사용료를 지불

 

- 이용 서비스 :laaS, PaaS, SaaS

 

 

2. 운영체제의 유형

 

운영체제 유형에는

1. 일괄 처리 시스템

2. 다중 프로그래밍 시스템

프로세서가 유휴 상태일 때, 실행 중인 둘 이상의 작업이 프로세서를 전환하여 사용할 수 있도록 동작한다.다중 프로그래밍은 높고 효율적인 프로세서의 사용률이 증가하고, 많은 사용자의 프로그램이 동시에 할당받는 듯한 느낌을 준다. 따라서 매우 복잡한 운영체제를 가지고 있다. 여러 작업을 준비상태로 두려면 이를 메모리에 보관해야 하고, 일정 메모리를 관리해야 한다. 또한 준비상태를 갖춘 여러 작업들 중에서 하나를 선택할 결정 방법이 필요하다. 이것이 인터럽트를 이용하여 수행하는 프로세서 스케줄링의 다중 프로그래밍이다.

 

3. 시분할 시스템

다중 프로그래밍 + 프로세서 스케줄링 개념 다수의 사용자가 동시에 컴퓨터 자원을 공유할 수 있는 기술일정 프로세서 사용시간을 할당하여 사용자와 대화하는 형식으로 실행. 

여러 사용자에게 짧은 간격으로 프로세서를 할당하여, 마치 프로세서 하나를 독점하는 듯한 착각으로 주면서 여러 사용자가 단일 컴퓨터를 동시에 사용 가능하게 해 준다.

장점

- 빠른 응답 제공
- 소프트웨어 중복 회피 가능
- 프로세서 유휴시간 감소

단점

- 신뢰성 문제
- 보안 의문 및 사용자 프로그램과 데이터의 무결성
- 데이터 통신 문제

 

* 다중 프로그래밍과 시분할 시스템의 특징- 메모리에 여러 프로그램을 나눠 적재하므로 일정 메모리 관리 필요- 어떤 작업을 먼저 처리할 것 인지 스케쥴링 개념 필요- 다중 프로그래밍의 목표 : 프로세서 최대화- 시분할 시스템의 목표 : 응답 시간 최소화

 

4. 다중 처리 시스템

다중 처리 시스템은 단일 컴퓨터 시스템 내에서 둘 이상의 프로세서를 이용하고, 동시에 둘 이상의 프로세스를 지원한다. 하나의 프로세서를 2개 이상의 프로그램에 사용하는 다중 프로그래밍과 헷갈리면 NOPE!빠르고, 하나의 프로세서가 고장 나도 다른 프로세서를 사용하여 작업을 계속 진행할 수 있기 때문에 신뢰성이 높다.여러 프로세서들과 시스템 버스, 클록, 메모리와 주변 장치들을 공유한다.프로세서가 여러 개이기 때문에 프로세서 간의 상호작용, 연결, 역할 분담 등을 고려해야 한다.구성하는 방법에는 대칭/비대칭 구성이 있다.

 

5. 실시간 처리 시스템

데이터 처리 시스템으로 정의한다.

항상 온라인 상태여야 한다. 

실시간 처리 시스템은 높은 적시 응답을 요구하는 장소에서 사용하거나, 데이터 흐름 또는 프로세서 연산에 엄격한 시간 요구가 있을 때 사용할 수 있다.

고정 시간 제약을 잘 정의하지 않으면 시스템이 실패한다.

- 경성 실시간 처리 시스템 : 시간 제약 조건을 지키지 않으면 시스템에 치명적인 영향을 주는 시스템

- 연성 실시간 처리 시스템 : 작업 실행에 시간 제약이 있지만 지키지 못해도 치명적인 영향은 미치지 않는다

 

6. 분산 처리 시스템

시스템마다 독립적인 운영체제와 메모리로 운영하고 필요시 통신한다.

중앙 집중식 시스템처럼 보이지만 독립적인 프로세서에서 실행한다. 

데이터를 여러 위치에서 처리& 저장하며 여러 사용자가 공유한다.하나의 프로그램을 여러 프로세서가 동시에 실행한다.

 

 

728x90