- 시스템 전체를 작동시키는 프로그램
- 프로그램을 주기억 장치에 적재시키거나 인터럽트 관리, 장치 관리, 언어번역 등의 기능 담당
- 대표적으로 운영체제가 있음
- 번역프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병프로그램, 로더 등
구성
- 제어프로그램
- 감시프로그램
- 작업 제어 프로그램 : Jbo Scheduler, Master Scheduler
- 자료 관리 프로그램
- 처리프로그램
- 언어 번역기 : 어셈블러, 컴파일러, 인터프리터
- 서비스 프로그램 : 연결 편집기, 정렬/합병 프로그램, 라이브러리안, 유틸리티
- 문제 프로그램
제어 프로그램
- Control Program
- 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터의 관리 등의 역할 수행
- 깜짝데이트(감시, 작업, 데이터)
감시 프로그램
- Supervisor Program
- 제어 프로그램 중 가장 중요함
- 각종 프로그램 실행과 시스템 전체의 작동 상태를 감시 감독
작업 제어 프로그램
- Job Control Program
- 다른 업무의 이행을 자동으로 수행하기 위해 준비
- 처리에 대한 완료를 담당하는 프로그램
- 작업의 연속 처리를 위한 스케쥴 및 시스템 자원 할당
- Job Scheduler : 다음 작업을 준비시키는 역할
- Master Scheduler : 시스템과 운영자 사이에서 정보를 주고 받을 수 있도록 중개자 역할 (CMD)
자료 관리 프로그램
- Data Management Program
- 주기억장치와 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지보수 기능을 수행
처리 프로그램
- Processing Program
언어 번역 프로그램
- 원시 프로그램을 기계어 형태의 목적 프로그램으로 번역하는 프로그램
- 어셈블러, 컴파일러, 인터프리터
서비스 프로그램
- 연결 편집기 : 프로그램을 연결하여 실행 가능한 프로그램을 만드는 프로그램 (링커)
- 정렬/합병 프로그램 : 데이터를 일정한 기준으로 정렬하거나 정렬된 파일을 합치는 프로그램
- 라이브러리안 : 프로그램의 라이브러리를 유지 관리
- 유틸리티 프로그램 : 사용자의 편의를 도모하기 위한 프로그램 (텍스트에디터, 디버거)
- 문제 프로그램 : 특정 업무 및 문제 해결을 위해 사용자가 작성
운영체제
- 컴퓨터 시스템의 자원들을 효율적으로 관리
- 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램의 집합
- 유틸리티와 하드웨어 사이의 인터페이스 제공
목적
- 처리능력 : Throughput 일정 시간 내에 시스템이 처리하는 양
- 반환시간 : Turn Around Time 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 사용가능도 : Availability 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도 : Reliability 시스템이 주어진 문제를 정확하게 해결하는 정도
기능
- 프로세서, 기억장치, 입출력장치, 파일 및 자원 관리
- 자원 스케쥴링
- 사용자와 시스템 간의 인터페이스 제공
- 하드웨어와 네트워크 관리 제어
- 데이터 관리하고 데이터 및 자원 공유 기능 제공
- 시스템 오류 검사 및 복구
- 자원 보호 기능 제공
- 입 출력에 대한 보조 기능을 제공
- 가상 계산기 기능을 제공
자원관리
- 프로세스 관리 : 프레세스 스케쥴링, 동기화, 생성 제거, 시작 정지, 메시지 전달
- 기억장치 관리 : 프로세스 메모리 할당 및 회수
- 주변장치 관리 : 입출력 장치 스케쥴링 및 관리
- 파일 관리
종류
- 단일 작업 처리 시스템
- Single Tasking System
- 시스템을 한 개의 작업이 독점하여 사용하는 방식
- DOS
- 다중 작업 처리 시스템
- Multi Tasking System
- 여러 개의 프로그램을 열어 두고 다양한 작업을 동시에 진행하는 방식
- Windows
운영체제 운용 기법
일괄 처리 시스템
- 초기의 컴퓨터 시스템
- 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식
- 일괄 처리를 위해 작업제어언어(JCL)을 제공
- 시스템 효율적 사용 가능
- 반환 시간이 늦지만 하나의 작업이 모든 자원을 독점하므로 CPU Idle Time이 줄어듦
- 급여 계산, 지불 계산, 연말 결산 등
다중 프로그래밍 시스템
- 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- CPU 사용률과 처리량이 증가
시분할 시스템
- Time Sharing System = Round Robin
- 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리
- 여러 사용자가 각자의 컴퓨터로 동시에 운영체제와 대화하면서 프로그램 실행
- 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시 수행이 안되기 때문에 CPU를 같은 작업 시간량으로 나눠서 그 시간량 동안 번갈아가면서 CPU를 사용
- 작업시간량 : Time Slice = Quantum
- 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리 가능
- 시스템 전체 효율은 좋으나 사용자는 반응 속도가 느려질 수 있음
다중 처리 시스템
- 여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식
- 여러 CPU는 하나의 메모리를 공유하며 단일 운영체제에 의해 관리
- 프로그램의 처리 속도는 빠르지만 기억장치, 입출력장치 등의 자원 공유에 대한 문제점을 해결해야함
실시간 처리 시스템
- 데이터 발생 즉시 처리하여 결과를 산출
- 처리시간이 단축되고 처리비용이 절감
- 우주선, 교통제어, 레이더, 핵실험, 데이터수집, 전화교환장치, 인터넷뱅킹 등 시간에 제한을 두고 수행되어야하는 작업
다중 모드 처리
- 일괄처리, 시분할, 다중처리, 실시간처리를 한 시스템에서 모두 제공하는 방식
분산 처리 시스템
- Distributed Processing System
- 여러 개의 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식
- 각 단말은 고유의 운영체제와 CPU, 메모리를 가진다.
발달과정
- 1세데 : 일괄처리
- 2세대 : 다중프로그래밍, 다중처리, 시분할, 실시간
- 3세대 : 다중모드
- 4세대 : 분산처리
컴파일러와 인터프리터
고급언어로 작성된 원시프로그램을 목적프로그램으로 번역하는 번역프로그램
저급 언어
기계어
- 컴퓨터가 직접 이해할 수 있는 언어
- 기종마다 기계어가 다르므로 언어의 호환성이 없음
어셈블리어
- 기계어와 1:1 대응되는 기호로 이루어진 언어
- 니모닉 언어 = Mnemonic = 상징어
- 하드웨어 제어에 주로 사용
- 언어의 호환성이 없음
- 어셈블러를 사용하여 기계어로 번역해야 됨