[운영체제/OS] 운영체제 발달 과정
운영체제 시스템의 발달 과정
일괄 처리(Batch Processing) 시스템
운영체제 형태 중 시대적으로 가장 먼저 생겨난 시스템으로 시스템의 효율 향상을 위하여 작업량이 일정한 수준이 될 때까지 모아두었다가 한꺼번에 처리
- 주기억 장치에 어셈블리어로 작성한 프로그램을 적재해 컴퓨터 시스템을 운영
- 컴퓨터 시스템을 중단 없이 효율적으로 사용 가능
다중 프로그래밍(Multiprogramming) 시스템
하나의 컴퓨터 시스템에서 여러 프로그램이 같이 컴퓨터 시스템에 입력되어 주기억 장치에 적재되고, 이들이 처리 장치를 번갈아 사용하며 실행하도록 하는 방식
- 하나뿐인 자원을 여러 개의 프로그램이 공동으로 사용
- 동일한 기억 장소를 둘 이상의 프로그램들이 사용하는 시스템
- 처리량의 극대화를 꾀한다
온라인(On-Line Processing) 시스템
통신 회선으로 각 시스템을 연결하여 처리하며 장소를 이동하지 않아도 처리 결과를 받아볼 수 있다.
- 다중 프로그램밍 방식, 일괄 처리 방식으로 처리된 결과를 원격지에서 받아볼 수 있다
- 대화식(Interactive) 처리로 운영체제에 적당
시분할 처리(Time-Sharing Processing) 시스템
사용자는 단말 장치를 이용하여 운영체제와 상호작용하며, 시스템은 일정 시간 단위(Time Slice / Quantum)로 CPU를 한 사용자에서 다음 사용자로 신속하게 전환함으로써, 각각의 사용자들은 실제로 자신만의 컴퓨터를 사용하고 있는 것처럼 사용할 수 있는 처리 방식
- 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것과 같은 대화식 처리를 진행
- 하나의 CPU를 여러 개의 작업이 정해진 시간 동안 번갈아 사용
- 라운드 로빈(Round-Robin) 방식이라고도 한다
- 응답 시간의 최소화를 꾀한다
- 컴퓨터 시스템의 전체 효율은 좋아지나 개인 사용자 입장에서는 반응 속도가 느려질 수 있다
- 다중 프로그램밍을 전제로 하기 때문에 다중 프로그래밍보다 복잡
- H/W를 보다 능률적으로 사용할 수 있는 시스템
실시간 처리(Real Time Processing) 시스템
우주 왕복선이나 레이더 추적기 등 정해진 시간에 반드시 수행되어야 하는 작업들에 적당한 방식으로 한정된 시간 제약 조건에서 자료를 분석하여 처리하는 시스템
- 실행 결과를 즉시 받아볼 수 있어 응답 시간이 짧다
다중 모드(Multi Mode) 처리 시스템
일괄 처리, 시간 분할 처리, 실시간 처리를 모두 수행할 수 있는 운영 방식
분산 처리(Distributed) 시스템
하나의 작업을 여러 개의 컴퓨터 시스템이 공동으로 작업할 수 있는 운영 방식
- 각 컴퓨터 시스템은 독립적인 CPU와 메모리를 사용
- 약 결합(Loosely Coupled) 형태의 시스템 운영에 적합
- 통신 회선을 통하여 각 시스템에서 처리된 작업들을 모아 중앙 컴퓨터에서 처리
- 클라이언트 / 서버 운영체제
-
전송 지연이 길고 데이터 처리율이 낮다
-
약 결합 시스템 :
각 프로세스마다 독립된 메모리를 가진 시스템으로 분산 처리 시스템이라고도 한다. 둘 이상의 독립된 컴퓨터 시스템을 통신망을 통해 연결한 시스템.각 시스템마다 독자적인 운영체제를 가지고 있으며, 독립적으로 작동할 수 있고 필요한 경우 메시지 전달이나 원격 프로시저 호출을 통해 프로세스 간 상호통신이 가능하다
병렬 처리(Parallel) 시스템
하나의 메모리를 여러 개의 CPU가 사용하는 컴퓨터 시스템
- 강 결합 형태의 시스템에 적합
- 복잡한 수치 연산, 과학 기술 처리에 적합한 방식
-
강 결합 시스템 :
동일 운영체제 하에서 여러 개의 프로세스가 하나의 메모리를 공유하여 사용하는 시스템으로 다중(병렬)처리 시스템이라고도 한다.하나의 운영체제가 모든 프로세스와 시스템 하드웨어를 제어하며, 프로세스 간 통신은 공유메모리를 통해 이루어지기에 공유 메모리를 차지하려는 프로세스 간의 경쟁을 최소화하여야 한다. 하나의 메모리를 사용하므로 프로세스 간의 결합력은 강하다.
운영체제 성능 평가 기준
-
처리량(
Throughput
)
일정한 시간 내에서 얼마나 많은 작업량을 처리할 수 있는가의 척도 - 반환 시간(
Turn-around Time
)
요청한 작업에 대하여 그 결과를 사용자에게 되돌려 줄 때까지 소요되는 시간대기 시간(Waiting Time) + 실행 시간(Running Time) + 응답 시간(Response Time)
-
신뢰도(
Reliability
)
작업의 결과가 얼마나 정확하고 믿을 수 있는가의 기준. - 사용 가능도(
Availability
)
컴퓨터 시스템 내의 한정된 각종 자원을 여러 사용자가 요구할 때, 어느 정도 신속하고 충분하게 지원해 줄 수 있는지의 정도
운영체제의 구성
제어 프로그램
운영체제에서 가장 기초적인 시스템의 기능을 담당하는 프로그램으로 프로세스 관리, CPU 스케줄링, 입출력 제어, 기억 장치 관리 등의 기능을 수행.
이러한 제어 프로그램이 항상 작동 중이라면 이를 커널(Kernel)이라고 한다
종류 | 기능 |
---|---|
감시 프로그램(Supervisor Program) | - 제어 프로그램의 중추적인 역할을 담당하는 프로그램으로 각종 운영체제 제어 루틴의 호출을 인식하여 해당 제어 루틴을 지시하고 루틴의 동작을 감시/감독하는 프로그램. - 운영체제 초기에는 감시 프로그램을 모니터라는 용어로 사용 |
데이터 관리 프로그램(Data Management) | - 주기억 장치와 보조 기억 장치 사이의 자료 전송, 파일의 조작 및 처리, 입출력 자료와 프로그램의 논리적인 연결 등 운영체제 시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리. - IOCS(Input Ouput Control System)이라고도 한다. - 세부적으로 구분하여 정리하면 다음과 같다. Open/Close : 파일의 조작 및 처리, 입출력 자료와 프로그램을 논리적으로 연결 Read/Write : 주기억 장치와 보조 기억 장치 사이의 자료 전송 Blocking/Deblocking : OS에서 취급하는 파일과 데이터를 표준적인 방법으로 처리 |
작업 제어 프로그램(Job Control Program) | - 어떤 업무를 처리한 후 다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 처리 완료를 담당하는 기능을 수행. - 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 등을 담당 - 운영체제의 각종 제어 루틴(프로세스 관리, CPU 스케줄링 등)의 수행 순서를 관리하며 사용자의 명령어 및 프로그램에 따라 제어 루틴들의 작업 시기를 조절해주는 기능 수행 작업 제어 스케줄러 Master Scheduler : 사용자와 운영체제 사이의 통신을 담당 Job Scheduler : 작업과 작업 사이에 존재하며 작업의 순서를 결정하는 행위를 담당 |
처리 프로그램
종류 | 기능 |
---|---|
언어 번역 프로그램(Language Translator Program) | - 사용자가 저급이나 고급 언어를 사용하여 원시 프로그램을 작성하면, 목적 프로그램으로 번역해주는 프로그램 - 제어 프로그램들의 일부를 사용자에 의해 처리될 수 있게 서비스를 제공해주는 것으로 어셈블러, 컴파일러, 인터프리터, 프리프로세서가 존재 |
서비스 프로그램(Service Program) | - 사용 빈도수가 높은 모듈이나 프로그램들을 사용자가 사용할 수 있도록 제공되는 프로그램 - 시스템 서비스에는 연계 편집기/라이브러리 등이 있고 사용자 서비스에는 정렬/병합/유틸리티 등과 같은 프로그램이 존재 |
문제 프로그램(Problem Program) | - 편집기, 데이터베이스, 통신용 프로그램, 그래픽 프로그램 등 사용자의 응용 처리를 위해 사용되는 프로그램 |
댓글남기기