본문 바로가기

6. 컴퓨터 공학 공부

[69] 운영체제 01차시 운영체제 개요

1. 운영체제의 개념과 목적

가. 운영체제의 개념

컴퓨터 하드웨어컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어

1) 하드웨어

기본 연산 자원을 제공하는 프로세서(CPU, 중앙처리장치), 메모리, 주변 장치 등

2) 사용자

컴퓨터를 사용하는 사람이나 장치, 다른 컴퓨터 등을 의미

3) 소프트웨어

컴퓨터의 기능 수행에 필요한 모든 프로그램

나. 운영체제의 역할

1) 조정자

운영 요소 사용을 제어하면서 사용자와 응용 프로그램 간에 통신할 수 있게 함.

작업을 할 수 있는 환경만 제공함.

하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 인터페이스를 제공

2) 자원 할당자나 관리자

각 응용 프로그램에 필요한 자원 할당, 자원 할당 방법을 결정

프로세서, 메모리, 입출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 조정, 관리함.

3) 응용 프로그램과 입출력장치 제어자

다양한 입출력장치와 응용 프로그램 제어

컴퓨터 시스템의 부적절한 사용이나 오류를 방지하기 위해 사용자 프로그램의 실행을 제어

메일 전송, 파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 응용 프로그램을 제어

다양한 사용자에게서 컴퓨터 시스템을 보호하려고 입출력을 제어하며 데이터를 관리

다. 운영체제의 목적

1) 편리성

사용자에게 편리한 환경 제공

하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 인터페이스를 제공

프로그램 개발 환경 뿐만 아니라 응용 프로그램에 대한 사용자 인터페이스, 즉 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공

2) 효율성

시스템 성능 향상(처리량 향상, 지연/응답시간 단축, 신뢰도 향상, 사용 가능도(가동률) 향상)

사용자가 많은 대형 컴퓨터 시스템에서 특히 중요함.

운영체제는 각 프로그램을 유기적으로 결합하여 시스템 전체 성능을 향상

3) 제어 서비스 향상

입출력장치의 동작 관리

시스템 오류 예방

시스템 확장, 효율적 운영을 위해 새로운 기능의 효과적인 개발을 허용하는 방법으로 발전

입출력장치의 동작 관리 및 제어, 시스템 오류 예방 등으로 컴퓨터 자원을 여러 사용자에게 효율적으로 할당하고 관리할 수 있도록 제어 서비스를 발전

2. 운영체제의 종류

가. 운영체제의 분류

1) 동시 사용자 수에 따라

Single-user system

OS가 한 순간 한 사용자만이 시스템을 사용할 수 있도록 지원

시스템의 모든 자원들이 사용자에 귀속

주로 Micro computer나 Personal computer에서 사용

예) MS-DOS, Windows 95/98

 

Multi-user system

동시에 여러 사용자들이 시스템을 사용할 수 있도록 지원

각종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요

기본적으로 Multi-tasking 기능 필요

OS의 기능 및 구조가 복잡해짐.

예) Unix, VMS(Digital), MVS(IBM), VM(IBM), AOS/VS(DG)

2) 작업 처리 방법에 따라

Single-tasking system

시스템 내에 하나의 작업(프로그램, 프로세스)만 존재, 실행 가능

하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행을 시작

 

Multi-tasking system(Multiprogramming system)

동시에 여러 작업의 수행을 지원

병행 수행으로 인한 문제점들의 관리 필요

https://ko.wikipedia.org/wiki/다중작업

 

다중작업 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 전산학 분야에서 멀티태스킹(영어: multitasking) 또는 다중작업(이하 멀티태스킹)은 다수의 작업(혹은 프로세스, 이하 태스크[1])이 중앙 처리 장치(이하 CPU)와 같

ko.wikipedia.org

3) 사용 환경에 따라

Batch processing system(일괄 처리 시스템)

사용자의 요청 작업들을 일정 시간 모아 두었다가 한꺼번에 처리하는 방식

작업을 실행하면 끝날 때까지 아무것도 못함.

급여계산처리 등에 사용

다량의 작업을 일괄적으로 모아서 처리하는 것으로 전송 속도가 빠른 자기 테이프, 자기 디스크 등의 보조기억장치를 이용하여 CPU의 효율을 높일 수 있음.

준비 작업들의 유형이 동일해야 하고, 작업에 모든 유형의 입력 불가능

입출력장치가 프로세서보다 속도 느려 프로세서의 유휴 상태 발생

하나의 작업이 수행되면 그 작업이 시스템의 모든 자원을 독점하기 때문에 CPU 유휴시간을 가짐.

https://ko.wikipedia.org/wiki/일괄_처리

 

일괄 처리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 일괄 처리(batch processing)란 최종 사용자의 개입 없이 또는 (자원이 허가한다면) 실행을 스케줄링할 수 있는 작업(job)의 실행을 의미한다.[1] 컴퓨터 프로그램 흐

ko.wikipedia.org

Time-sharing system(시분할 시스템)

여러 사용자에게 짧은 간격으로 프로세서 번갈아 할당해서 마치 자기 혼자 프로세서를 독점하고 있는 양 착각하게 하여 여러 사용자가 단일 컴퓨터 시스템을 동시에 사용 가능하도록 하는 기술

다수의 사용자가 동시에 컴퓨터의 자원을 공유할 수 있는 기술

대화형 체제 가능

실행중인 프로세스 간 통신 및 I/O 장치의 사용에 대한 제어 및 관리 능력이 필요

https://ko.wikipedia.org/wiki/시분할_시스템

 

시분할 시스템 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 시분할 시스템(時分割 system, 영어: time-sharing)은 컴퓨터를 대화식으로 사용하려는 시도에서 탄생하였다. 시분할 운영 체제는 CPU 스케줄링과 다중 프로그래밍을

ko.wikipedia.org

Distributed processing system(분산 처리 시스템)

하나의 대형 컴퓨터에서 수행하던 기능을 지연적으로 분산된 여러 개의 미니 컴퓨터에 분담시킨 후 통신망을 통하여 상호 간에 교신, 처리하는 방식

이러한 자료 처리 시스템들의 상호 연결은 컴퓨터 네트워크에 의해 이루어짐.

적은 비용으로 높은 효율이 가능하나, 구축이 어려움.

https://ko.wikipedia.org/wiki/분산_컴퓨팅

 

분산 컴퓨팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 분산 컴퓨팅(distributed computing)은 분산 시스템(distributed systems)을 연구하는 컴퓨터 과학의 한 분야로, 인터넷에 연결된 여러 컴퓨터들의 처리 능력을 이용하여 메

ko.wikipedia.org

 Real-time system(실시간 처리 시스템)

단말기나 제어 대상으로부터 처리를 요구하는 자료가 발생할 때마다 즉시 처리하여 그 결과를 구동기를 통해 출력하거나 요구에 대하여 응답하는 방식

온라인 개념 도입

자료가 발생한 지점에서 단말기를 통하여 직접 입출력 되기 때문에 사용자의 노력이 절감

처리 시간이 단축

자료가 무작위하게 도착하므로 입출력 자료의 일시 저장 및 대기가 필요

https://ko.wikipedia.org/wiki/실시간_컴퓨팅

 

실시간 컴퓨팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 실시간 컴퓨팅(real-time computing, RTC)이란 사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리해 결과를 내주

ko.wikipedia.org

3. 운영체제의 발달 과정

가. 1940년대: 운영체제 없음(작업별 순차 처리)

사용자가 기계어로 직접 프로그램 작성, 실행하는 작업별 순차 처리 시스템 사용

운영체제 개념 존재하지 않음

프로세서에는 명령어 저장 방법, 계산 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등

모두 명령어로 명시적으로 표현

나. 1950년대: 일괄 처리 시스템

초기 운영체제인 일괄 처리 시스템

작업을 올리는 시간과 해제하는 시간을 줄이는 데 관심(일괄 처리, 버퍼링 등 방법 도입)

1) GM OS(IBM 701)

1952년 초 자동차 제조회사 GM에서 운영체제의 효시 개발

2) GM-NAA I/O(IBM 704)

1955년 GM과 북아메리카 항공사가 공동 개발

3) IBM 704 자체 운영체제

1957년까지 IBM 사용자협회에서 개발

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

1) 다중 프로그래밍

장치 독립성을 이용한 편리한 하드웨어 관리와 다중 프로그래밍

여러 프로그램을 메모리에 나눠 적재한 후 프로세서를 번갈아 할당 프로세서 사용 극대화하여 여러 프로그램을 동시에 실행

2) 시분할, 다중 처리, 실시간 시스템

시분할 시스템: 다중 프로그래밍 시스템에 프로세서 스케줄링이라는 개념을 더한 것

다중 처리 시스템: 하나의 시스템에서 프로세서를 여러 개 사용하여 처리 능력을 높인 것

실시간 처리 시스템: 즉시 응답

라. 1970년대 ~ 1990년대: 분산 처리 시스템

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

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

마이크로프로세서가 등장, 개인용 컴퓨터 보유

사용자가 지역적으로 원격의 여러 시스템과 통신할 수 있어 정보 보호가 주요 관심사

마. 2000년대 이후: 모바일, 사물인터넷 운영체제

1) 모바일 운영체제

21세기에 접어들어 스마트폰이나 태블릿 같은 모바일 기기 대중화

노키아(심비안), 구글(안드로이드), 애플(iOS), RIM(블랙베리 OS), 마이크로소프트(윈도우) 등

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

각종 사물에 컴퓨터칩과 통신 기능 내장

대규모 네트워크에서 데이터 전송 시 전력 소모를 줄이는 기술 필요

저비용, 저전력, 저메모리 환경에서 동작할 수 있는 운영체제 필요성

삼성전자의 타이젠 RT 개발

https://ko.wikipedia.org/wiki/타이젠

 

타이젠 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 타이젠(Tizen)스마트폰의 타이젠 2.2 베타 화면 (2013년)[1]개발자리눅스 재단리모 재단삼성전자인텔프로그래밍 언어HTML5, C, C++OS 계열유닉스 계열상태개발 중소스

ko.wikipedia.org

3) 클라우드 컴퓨팅

사용자가 인터넷을 통해 컴퓨터 하드웨어와 소프트웨어를 원격으로 액세스하여 사용할 수 있는 수단

언제 어디서나 운영체제를 이용하여 개인 파일 및 데이터 전송이 가능한 운영체제의 클라우드화가 실현