Frog is cry

운영체제 : 1-운영체제의 개요 본문

자격증/정보처리산업기사

운영체제 : 1-운영체제의 개요

Frog is cry 2020. 7. 15. 19:38

1. 운영체제의 개념

 

운영체제의 정의

하드웨어를 제어하는 소프트웨어이다.

하드웨어를 활용할 수 있도록 펌웨어(Firmware)나 소프트웨어로 만들어진 프로그램이다.

컴퓨터 본체 및 각 주변 장치를 가장 능률적이고, 경제적으로 사용할 수 있도록 하는 프로그램이다.

컴퓨터를 편리하게 사용하고, 하드웨어를 효율적으로 사용할 수 있도록 하는 프로그램이다.

컴퓨터 자원들인 프로세서, 기억 장치, 파일 및 정보, 네트워크 및 보호 등을 효율적으로 관리할 수 있는 프로그램의 집합이다.

 

운영체제의 목적

컴퓨터 시스템의 처리량, 신뢰성을 최대화한다.

컴퓨터 시스템의 반환 시간, 응답 시간, 처리 시간, 대기 시간, 경과 시간을 최소화 한다.

컴퓨터를 구성하고 있는 자원을 효율적으로 운영하고 제어한다.

사용자와 컴퓨터 시스템과의 인터페이스를 제공한다.

제한된 자원(CPU, 메모리 등)을 효율적으로 공유하기 위해 스케쥴링한다.

데이터를 공유한다.

주변장치를 관리한다.

시스템의 이식성(호환성)을 높인다.

 

운영체제의 역할

운영체제는 스스로 어떤 기능도 수행하지 않고 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 마련하여 준다.

하드웨어와 사용자 사이에 내부 및 외부 인터페이스를 제공한다.

컴퓨터 자원을 여러 사용자가 효율적으로 나누어 사용할 수 있도록 자원을 관리한다.

프로세서(처리기,CPU), 프로세스, 기억장치(주, 보조), 입출력 장치를 관 리한다.

컴퓨터를 초기화시켜 작업(JOB)을 수행할 수 있는 상태로 유지시키는 역할을 한다.

소프트웨어나 하드웨어에 오류가 발생하면 운영체제는 회복을 위해 활동한다.

시스템 사용 도중 발생하는 내, 외부적인 오류로부터 시스템을 보호한다.

응용 프로그램들이 컴퓨터의 제한된 자원들을 공유할 수 있도록 자원을 관리한다.

 

2. 시스템 소프트웨어

어셈블러의 역할

어셈블리어로 작성된 소스 프로그램을 기계어(0과 1로 구성된 언어)로 번역하고 로더(실행 가능한 파일로 만드는 프로그램)에 필요한 정보를 생성한다.

 

어셈블러의 기능

1.명령어를 생성한다

>원시 프로그램에 있는 기호 명령어를 분석하여 명령어로 변경한다.

2. 기계 주소를 할당한다

>원시 프로그램에 있는 기호 번지(변수)나 상수의 기억 장소(절대 번지)를 할당한다.

3. 의사 명령어를 처리한다.

> 프로그램의 시작과 종료, 재배치 정보 등 프로그램의 안내자 역할을 하는 명령어들을 처리한다.

 

매크로 프로세서의 기본기능

 

매크로 정의 인식 :

원시 프로그램 내에 존재하는 매크로를 파악하여 매크로를 정의한 부분의 시작과 종료를 파악한다.

 

매크로 정의 저장 :

매크로 프로세서는 매크로명과 정의된 내용을 매크로 호출 시 확장하기 위해 저장한다.

 

매크로 호출 인식 :

원시 프로그램 내에 매크로가 확장하기 위한 준비가 되어 있는지 확인한다.

 

매크로 확장 및 인수

치환 매크로를 호출하면 매크로명이 있는 원시 프로그램 위치에 저장된 내용과 인수를 치환한다.

 

로더(Loader)

로더의 역할

목적 프로그램(기계어로 구성된 파일)을 실행 가능한 파일로 변환하기 위해 주기억 장소를 할당(Allocation)하거나, 여러 개의 목적 프로그램을 연계 편집하여 CPU가 처리될 수 있는 프로그램으로 변환한다.

 

로더의 일반적인 기능

일반적으로 로더는 프로그램을 실행하기 위하여 프로그램을 보조 기억 장치로부터 컴퓨터의 주기억 장치에 올려놓는 기능을 가진 프로그램으로 할당 -> 연결 -> 재배치 -> 적재 순서로 진행된다.

 

할당(Allocation)

1. 목적 프로그램이 실행될 주기억 장치(메모리,RAM) 공간을 확보한다.

2. 단일 프로그램은 프로그램 전체를 적재하여 실행할 수 있는 주기억 장치 공간을 확보한다.

3. 다중 프로그램은 프로그램의 일부(페이지,세그먼트)를 적재한 후 실행 도중에 필요한 부분을 적재할 수 있는 주기억 장치 공간을 확보한다.

 

연결(Linking)

1. 여러 개의 독립적인 모듈(부분적으로 작성된 프로그램 단위)을 연결한다.

2. 독립적인 주기억 장치의 일부 공간을 논리적인 주소 공간으로 연결한다.

3. 링키지 에디터(Linkage Editor)는 프로그램 적재 시 필요한 프로그램들을 결합하여 주기억 장치에 적재함은 물론 보조 기억 장치에 로드 이미지를 보관해 두는 역할을 한다.

 

재배치(Relocation)

1. 프로그램이 주기억 장치 공간 안에서 위치를 변경할 수 있게 한다.

2. 베이스 레지스터를 관리한다.

3. 기억 장치 관리에서 Fragmentation을 해결하기 위해 Compaction을 실행하며, 이 과정에서 프로그램의 주소를 새롭게 지정해 주는 기법이다.

 

적재(Loading)

프로그램 전체를 주기억 장치에 한 번에 적재하게 하거나 실행 시 필요한 일부분만을 차례로 적재하게 한다.

 

로더의 종류

 

Compile and Go  로더

1. 번역 프로그램(어셈블러, 컴파일러)과 로더가 하나로 구성되어 번역 프로그램이 로더의 역할까지 담당하는 방식이다.

2. 매우 단순하여 프로그램하기가 용이하며 주기억 장소의 제한이 없다면 가장 이상적이라고 할 수 있다.

 

절대 로더(Absolute Loader)

1. 로더의 역할이 축소되어 가장 간단한 프로그램으로 구성된 것으로 기억 장소 할당(Allocation)이나 연결(Linking)을 프로그래머가 직접 지정하는 방식이다.

2. 프로그래머 입장에서는 매우 어렵고 한번 지정한 주기억 장소의 위치는 변경이 힘들다는 단점이 있다.

 

절대 로더의 수행 주체

할당 : 프로그래머에 의해서 프로그램이 저장될 기억 장소가 지정된다.

연결 : 프로그래머에 의해서 여러 프로그램이 연결되는 정보가 기록된다.

재배치 : 번역 프로그램(어셈블러)에 의해서 주기억 장치에 있는 프로그램의 위치 이동 정보가 정해진다.

적재 :  로더에 의해서 보조 기억 장치에 있는 프로그램이나 데이터가 주기억 장치에 상주된다.

 

직접 연결 로더(Direct Linking Loader)

1. 로더가 할당, 연결, 재배치, 적재를 모두 수행하는 일반적인 형태이다.

2. 기억 장소를 자동으로 재배치하고, 독립적으로 프로그래밍된 프로그램들을 연결하여 수행하기 때문에 재배치 로더 혹은 상대적 로더라고 한다.



3. 운영체제의 발달과 분류

 

운영체제 시스템의 발달순서

1. 일괄 처리(Batch Processing) 시스템

2. 다중 프로그래밍(Multi Programming) 시스템

3. 온라인(On-Line Processing System)시스템

4. 시간 분할 처리(Time-Sharing Processing) 시스템

5. 실시간 처리(Real Time Processing) 시스템

6. 다중 모드 처리(Multi Mode Processing)

7. 분산(Distributed) 처리 시스템

8. 병렬(Parallel) 처리 시스템

 

운영체제 발달 시스템의 특징

일괄 처리(Batch Processing) 시스템

1. 운영체제 형태 중 시대적으로 가장 먼저 생겨난 시스템이다.

2. 시스템의 효율 향상을 위하여 작업량이 일정한 수준이 될 때까지 모아두었다가 한꺼번에 처리한다.

3. 주기억 장치에 어셈블리어로 작성한 프로그램을 적재해 컴퓨터 시스템을 운영한다.

4. 컴퓨터 시스템을 중단 없이 효율적으로 사용할 수 있다.

 

다중 프로그래밍(Multiprogramming) 시스템

1. 하나의 컴퓨터 시스템에서 여러 프로그램이 같이 컴퓨터 시스템에 입력되어 주기억 장치에 적재되고, 이들이 처리 장치를 번갈아 사용하며 실행하도록 하는 방식이다.

2. 하나뿐인 자원(CPU, 메모리 등)을 여러 개의 프로그램이 공동으로 사용한다.

3. 동일한 기억 장소를 둘 이상의 프로그램들이 사용하는 시스템이다.

4. 처리량의 극대화를 꾀한다.

 

온라인(On-Line Processing System)시스템

1. 통신 회선으로 각 시스템을 연결하여 처리한다.

2. 장소를 이동하지 않아도 처리 결과를 받아 볼 수 있다.

3. 다중 프로그래밍 방식, 일괄 처리 방식으로 처리된 결과를 원격지에서 받아 볼 수 있다.

4. 대화식(Interactive) 처리로 운영체제에 적당하다.

 

시분할 처리(Time-sharing Processing) 시스템

1. 사용자는 단말 장치를 이용하여 운영체제와 상호작용하며, 시스템은 일정 시간 단위로 CPU를 한 사용자에서 다음 사용자로 신속하게 전환함으로써, 각각의 사용자들은 실제로 자신만이 컴퓨터를 사용하고 있는 것처럼 사용할 수 있는 처리 방식이다.

2. 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것과 같은 대화식(Interactive) 처리를 한다.

3. 하나의 CPU를 여러 개의 작업이 정해진 시간 동안 번갈아 사용한다.

4. 라운드 로빈(Round Robin)방식이라고도 한다.

5. 다중 프로그래밍은 처리량의 극대화를 꾀하고, 시간 분할 처리는 응답 시간의 최소화를 꾀한다.

6. 컴퓨터 시스템의 전체 효율(처리량)은 좋아지나 개인 사용자 입장에서는 반응 속도가 느려질 수 있다.

7. 다중 프로그래밍을 전제로 하기 때문에 단일 프로그래밍보다는 복잡하다.

8. H/W를 보다 능률적으로 사용할 수 있는 시스템이다.

9. 시분할 시스템에서 하나의 작업에 할당된 시간을 Time Slice라고 한다.

 

실시간 처리(Real Time Processing) 시스템

1. 우주 왕복선이나 레이더 추적기 등은 정해진 시간에 반드시 수행되어야 하는 작업들에 적당한 방식이다.

2. 한정된 시간 제약조건에서 자료를 분석하여 처리하는 시스템으로 비행기 제어 시스템이나 교통 제어 등에 사용된다.

3. 실행 결과를 즉시 받아 볼 수 있어 응답 시간이 짧다.

 

운영체제의 성능 평가 기준 4가지

 

1. 처리량(Throughput)

일정한 시간(단위 시간) 내에서 얼마나 많은 작업량을 처리할 수 있는가의 기준이다.

처리량이 극대화 되어야 성능 좋은 컴퓨터 시스템이라 할 수 있다.

 

2. 반환 시간(Turn-around Time)

요청한 작업에 대하여 그 결과를 사용자에게 되돌려 줄 때까지 소요되는 시간이다. 반환 시간이 최소화되어야 성능 좋은 시스템이라 할 수 있다. 특히 반환 시간 안에 포함된 응답 시간은 대화형 시스템에서 가장 중요한 기준이 된다.

 

3. 신뢰도(Reliability)

작업의 결과가 얼마나 정확하고 믿을 수 있는가의 기준이다. 처리량이 높은 시스템이라도 처리 결과에 오류가 많다면 좋은 성능의 시스템이라고 할 수 없다. 따라서 신뢰도가 높을수록 성능 좋은 컴퓨터 시스템이라 할 수 있다.\

 

4. 사용 가능도(Availability)

컴퓨터 시스템 내의 한정된 각종 자원을 여러 사용자가 요구할 때, 어느정도 신속하고 충분하게 지원해 줄 수 있는지의 정도이다. 동일한 시간(단위 시간) 내에서 얼마나 많은 작업량을 처리할 수 있는가의 요인이다. 이는 사용 가능한 하드웨어 자원의 수나 다중 프로그래밍 정도 등의 요소가 좌우하는 것으로 같은 종류의 시스템 자원수가 많을 경우에는 이것이 높아질수 있다.

 

운영체제의 구성

운영체제는 제어 프로그램(Control Program)과 처리 프로그램(Processing Program)으로 구성된다.

제어 프로그램은 운영체제가 관리하는 모든 자원을 효율적으로 제공하기 위해 시스템 전체의 움직임을 감시, 감독 관리 및 지원하는 프로그램이고, 처리 프로그램은 운영체제를 사용하는 사용자의 편이성을 제공하고 데이터를 처리하는 프로그램이다.

 

제어 프로그램(Control Program)
운영체제에서 가장 기초적인 시스템의 기능을 담당하는 프로그램으로 프로세스 관리, CPU 스케쥴링, 입출력 제어, 기억 장치 관리 등의 기능을 담당한다. 이러한 제어 프로그램이 항상 작동중이라면 이를 커널(Kernel)이라고 한다.

 

감시 프로그램(Supervisor Program)

제어 프로그램의 중추적인 역할을 담당하는 프로그램으로 각종 운영체제 제어 루틴의 호출을 인식하여 해당 제어 루틴을 지시하고 루틴의 동작을 감시, 감독하는 프로그램이다. 운영체제 초기에는 감시 프로그램을 모니터(Monitor)라는 용어로 사용했다.

 

데이터 관리 프로그램(Data Management Program)

주기억 장치와 보조 기억 장치 사이의 자료 전송, 파일의 조작 및 처리, 입출력 자료와 프로그램의 논리적인 연결 등 운영체제 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리한다. IOCS(Input Output Control System)라고도 하며, 세부적으로 구분하여 정리하면 다음과 같다.

> Open, Close : 파일의 조작 및 처리, 입출력 자료와 프로그램을 논리적으로 연결

> Read, Write : 주기억 장치와 보조 기억 장치 사이의 자료 전송

> Blocking, Deblocking : 운영체제 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리

 

작업 제어 프로그램(Job Control Program)

어떤 업무를 처리한 후 다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 처리 완료를 담당하는 기능을 수행한다. 즉, 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 등을 담당한다. 운영체제의 각종 제어 루틴(프로세스 관리, CPU 스케쥴링 등) 의 수행 순서를 관리하며 사용자의 명령어 및 프로그램에 따라 제어 루틴들의 작업 시기를 조절해주는 기능을 수행한다.

 

 

 

Comments