3과목 운영체제 강사 이 민 욱
운영체제 운영체제의 개념 1) 운영체제의 정의 ① 하드웨어를 제어하는 소프트웨어 ② 하드웨어를 활용할 수 있도록 펌웨어나 소프트웨어로 만들어진 프로그램 ③ 컴퓨터 본체 및 각 주변 장치를 가장 능률적이고, 경제적으로 사용할 수 있도록 하는 프로그램 ④ 컴퓨터를 편리하게 사용하고 하드웨어를 효율적으로 사용할 수 있도록 하는 프로그램 ⑤ 컴퓨터 자원들인 기억 장치, 프로세스, 파일 및 정보, 네트워크 및 보호 등을 효율적으로 관리할 수 있는 프로그램의 집합 2) 운영체제의 목적 및 목표 ① 컴퓨터 시스템의 처리량, 신뢰성을 최대화한다. ② 컴퓨터 시스템의 반환 시간, 응답 시간, 처리시간, 대기시간, 경과시간을 최소화함 ③ 컴퓨터를 구성하고 있는 자원을 효율적으로 운영하고 제어한다. ④ 사용자 인터페이스 제공 ⑤ 자원 스케줄링(자원 공유가 목적) ⑥ 데이터 공유 ⑦ 주변 장치 관리 ⑧ 시스템의 이식성(호환성)을 높인다. 3) 운영체제의 계층 구조 : 유틸리티와 하드웨어 사이
2. 시스템 소프트웨어 1) 언어 번역과정 ① 어셈블러 저급 언어로 작성된 원시 프로그램을 목적 프로그램으로 변환 ② 매크로 프로세서 어셈블리어를 사용하기 쉽도록 명령어들을 문자로 치환하여 확장 ③ 컴파일러 고급 언어로 작성된 원시 프로그램을 목적 프로그램으로 변환 ④ 인터프리터 고급 언어로 작성된 원시 프로그램을 실행하되 목적 프로그램은 만들지 않고 대화식으로 처리 ⑤ 링커 두 개 이상의 목적 프로그램을 합쳐서 실행 가능한 프로그램으로 만든다. ⑥ 로더 프로그램을 실행하기 위하여 프로그램을 보조 기억 장치로부터 컴퓨터의 주기억 장치에 올려놓는다. 2) 시스템 프로그램의 주요 역할 ① 프로그램을 기억 장치에 상주 ② 인터럽트를 관리 ③ 기억 장치를 관리 ④ 주변 장치를 관리 ⑤ 파일들을 관리
3) 어셈블리 번역 방법 ① 1-pass 어셈블러 한 번에 번역한다. 속도가 빠르다. 프로그램하기 어렵다. ② 2-pass 어셈블러 두 번에 번역한다, 속도가 느리다, 프로그램하기 용이하다. 4) 매크로 프로세서의 기본 기능 ① 매크로 : 프로그램 작성시 한 프로그램 내에서 동일한 코드가 반복될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 것 ② 매크로 프로세서 : 원시 프로그램에 존재하는 매크로 호출 부분에 매크로(Macro) 프로그램을 삽입하여 확장된 원시 프로그램을 생성하는 시스템 소프트웨어 ③ 매크로 프로세서 처리 과정 : 매크로 정의 인식 → 매크로 정의 저장 → 매크로 호출 인식 → 매크로 확장과 인수(매개 변수) 치환
5) 로더의 일반적인 기능 ① 할당(Allocation) ② 연결(Linking) ③ 재배치(Relocation) ④ 적재(Loading) 6) 로더의 종류 ① Compile-and-go 로더 번역 프로그램(어셈블러, 컴파일러)과 로더가 하나로 구성 ② 절대 로더(Absolute Loader) ㉠ 할당 - 프로그래머 ㉡ 연결 - 프로그래머 ㉢ 재배치 - 어셈블러 ㉣ 적재 - 로더 ③ 직접 연결 로더(Direct-Linking-Loader, 재배치 로더) 로더가 할당, 연결, 재배치, 적재를 모두 수행하는 로더로 가장 일반적인 사용되는 로더 ④ Dynamic 로더 프로그램을 한꺼번에 적재하는 것이 아니라 실행 시 필요한 부분 만을 차례로 적재하는 방식
3. 운영체제의 발전 1) 운영체제의 발전 과정 ① 일괄 처리(Batch Processing) 시스템 ② 다중 프로그래밍(Multi Programming) 시스템 ③ 온라인(On-Line Processing System) 시스템 ④ 시간 분할 처리(Time-Sharing Processing) 시스템 ⑤ 실시간 처리(Real Time Processing) 시스템 ⑥ 다중 모드 처리(Multi Mode Processing) 시스템 ⑦ 분산(Distributed) 시스템 ⑧ 병렬(Parallel) 시스템 2) 일괄 처리(Batch Processing) 시스템 ① 시대적으로 가장 먼저 현재 운영체제 형태의 모습을 갖춘 처리 방식이다. ② 시스템의 효율 향상을 위하여 작업량이 일정한 수준이 될 때까지 모아두었다가 한꺼번에 일시에 처리한다. 3) 다중 프로그래밍(Multi Programming) 시스템 ① 몇 개의 작업을 동시에 주기억장치에 적재하여 실행하는 처리 기법 ② 처리량의 극대화를 꾀한다.
4) 시간 분할 처리(Time-Sharing Processing) 시스템 ① 여러 명의 사용자가 사용하는 컴퓨터 시스템에서 사용자들이 프로그램을 번갈아 가며 처리 ② 일정 시간 단위로 CPU를 한 사용자에서 다음 사용자로 신속하게 전환함으로 동시에 여러 사용자가 사용 ③ 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 하는 대화식(interactive) 처리 ④ 라운드 로빈(Round Robin) 방식 ⑤ 다중 프로그래밍은 처리량의 극대화, 시간 분할 처리는 응답 시간의 최소화 5) 실시간 처리(Real Time Processing) 시스템 ① 실행 결과를 즉시 받아 볼 수 있어 응답 시간이 짧다. ② 우주 왕복선이나 레이다 추적기 등과 같이 정해진 시간에 반드시 수행되어야 하는 작업에 적당 6) 다중 모드 처리(Multi Mode Processing) 시스템 일괄처리, 시간 분할 처리, 실시간 처리를 모두 수행할 수 있는 운영 방식
7) 용어 정리 ① 다중 프로그래밍(Multi Programming) 하나의 주기억 장치와 CPU로 구성된 컴퓨터 시스템에서 주기억 장치에 여러 개의 프로그램을 적재하여 처리하는 방식으로 단위 시간 내에 처리량을 최대로 한다. ② 다중 프로세싱(Multi Processing) 하나의 주기억 장치와 여러 개의 CPU로 구성된 컴퓨터 시스템에서 주기억 장치에 하나 또는 여러 개의 프로그램을 적재하여 처리하는 방식으로 보통 병렬 시스템을 말한다. ③ 다중 컴퓨터(Multi Computer) 여러 개의 독립적인 컴퓨터 시스템에서 하나의 작업을 공동으로 처리할 수 있는 시스템으로 보통 분산 컴퓨터 시스템이라고 한다. ④ 멀티 태스킹(Multi Tasking) 하나의 주기억 장치와 CPU로 구성된 컴퓨터 시스템에서 여러 개의 프로그램을 동시에 처리할 수 있는 방식으로 사용자 관점에서의 다중 프로그래밍을 말한다. 예) 다운받으며 음악을 듣는다. 8) Bench Mark Program 컴퓨터 시스템이나 CPU, 운영체제 등의 전반적인 성능을 측정, 비교하는 프로그램을 말한다. 운영체제의 성능을 평가한다면 실제 처리할 작업의 환경을 가상적으로 구축하고 가상 데이터를 입력하여 작업의 처리량, 반환 시간, 신뢰성 등을 비교 평가하게 된다.
4. 운영체제 시스템의 성능 평가 1) 성능 평가 요인 4가지 ① 처리량(Throughput) 동일한 시간(단위 시간) 내에서 얼마나 많은 작업량을 처리할 수 있는가의 요인 ② 반환 시간(Turn around time) 요청한 작업에 대하여 그 결과를 사용자에게 되돌려 줄 때까지 소요 되는 시간 ③ 신뢰도(Reliability) 작업의 결과를 얼마나 정확하고 믿을 수 있는가의 요인 ④ 이용 가능도(Availability) 시스템의 전체 운영 시간 중에서 실제 가동하여 사용 중인 시간의 비율(오류 없이 작동된 시간의 비율) 2) 다중 프로그래밍에서의 시간(Time) ① 응답 시간(Response time) 작업이 처음 실행되기까지 걸린 시간으로 반응 시간이라고도 한다. ② 대기 시간(Waiting time) 실제 작업을 CPU가 실행하지 않은 시간들을 더한 시간 ③ 실행 시간(Running time) CPU가 작업을 처리하는 시간을 더한 시간 ④ 반환 시간(Turn around time) : 실행 시간과 대기 시간을 모두 더한 시간으로 작업이 완료될 때 까지 걸린 시간
5. 운영체제 구성 요소(기능에 따른 분류) 1) 운영체제 구성 요소(기능에 따른 분류) ① 제어 프로그램(Control Program) - 감시 프로그램(Supervisor Program) : 중추적인 역할을 담당, 운영체제 제어 루틴의 호출을 인식, 해당 루틴의 동작을 감시 감독 - 데이터 관리 프로그램 (Data Management Program) : 자료 전송, 파일의 조작 및 처리, 입출력 자료와 프로그램의 논리적인 연결, 파일과 데이터를 표준화 처리 - 작업 관리 프로그램(Job Control Program) : 다른 업무로의 이행을 자동적으로 수행 하기 위한 준비 및 그 처리 완료를 담당 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 운영체제의 각종 제어 루틴(프로세스 관리, CPU 스케줄링,..)의 수행 순서를 관리 사용자의 명령어 및 프로그램에 따라 제어 루틴들의 작업 시기를 조절 ② 처리 프로그램(Processing Program) - 언어 번역 프로그램(Language Translator Program) - 서비스 프로그램(Service Program) - 문제 프로그램(Problem Program)