운영체제 정리
· 약 121분
- 시스템 전체를 작동시키는 프로그램
- 프로그램을 주기억 장치에 적재시키거나 인터럽트 관리, 장치 관리, 언어번역 등의 기능 담당
- 대표적으로 운영체제가 있음
- 번역프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병프로그램, 로더 등
구성
- 제어프로그램
- 감시프로그램
- 작업 제어 프로그램 : 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 = 상징어
- 하드웨어 제어에 주로 사용
- 언어의 호환성이 없음
- 어셈블러를 사용하여 기계어로 번역해야 됨
고급 언어
- 컴파일러 언어
- 자연어와 비슷한 형태 및 구조
- 하드웨어 지식이 없어도 작성 가능
- 기계어로 번역하기 위해 컴파일러나 인터프리터가 사용
- C, BASIC, COBOL, ALGOL 등
컴파일러
- 고급언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후 링킹 작업을 통해 실행 프로그램을 생헝
- 번역과 실행과정을 거쳐야하기 때문에 번역 과정이 번거로움
- 번역 시간이 오래걸림
- 한번 번역 후에는 다시 번역하지 않아 실행속도는 빠름
- C, C++, FORTRAN, COBOL, PL/1
- 대부분의 언어는 컴파일러로 변환된다.
인터프리터
- 고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역
- 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행
- 프로그램이 직접 실행되므로 목적프로그램이 생성되지 않음
- 시분할 시스템에 유용
- 원시 프로그램에 변화에 대한 반응이 빠름
- 번역 속도는 빠르지만 실행속도는 느림
- BASIC, SNOBOL, LISP, APL
- CPU의 시간낭비가 크다.
어셈블리어
- 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1 대응시켜 코드화한 기호 언어
- 어셈블리어로 작성한 원이프로그램은 어셈블러를 통해 목적 프로그램으로 어셈블하는 과정을 거쳐야한다.
- 사용자가 프로그램을 쉽게 읽고 이해할 수 있다.
- 프로그램에 기호화된 명령 및 주소를 사용한다.
- CPU마다 사용되는 어셈블리어가 다르다.
- 의사명령과 실행명령으로 구분
형식
Label, OP, Operand
- Label : 데이터를 기억할 장소 또는 분기할 위치, 기호 상수에 대한 Symbol을 기술하는 부분으로 생략할 수 있다.
- OP : OPCode를 기술하는 부분
- Operand : OPCode가 연산을 수행하기 위한 대상인 상수, 데이터나 주소, 레지스터 번호를 기술하는 부분
어셈블러
- 어셈블리어로 작성된 걸 기계어로 번역하는 프로그램
- 이중 패스 어셈블러르 사용하면 정의되지 않은 기호를 사용할 수 있다.
- 현재 대부분 이중 패스 어셈블러를 사용한다.
- 두 개의 패스를 사용하면 기호를 정의하기 전에 사용할 수 있는 프로그램 작업이 용이하다.
- 단일 패스 어셈블러 : 원시 프로그램을 하나의 명령문씩 읽는 즉시 기계어로 번역하여 목적 프로그램을 만듦
- 이중 패스 어셈블러 : 원시 프로그램을 끝까지 읽어서 1단계 작업을 수행한 후 다시 처음부터 읽어나가면서 1단계에서 수행한 결과를 이용해 완전한 목적프로그램을 만듦
- 크로스 어셈블러 : 현재 사용하는 컴퓨터와 다른 명령 형태로 동작하는 컴퓨터에서 사용할 프로그램을 어셈블 할 때 사용하므로 실행시킬 컴퓨터에 맞게 목적 프로그램을 생성