정보처리기사 제3과목 운영체제 – 제1장 운영체제의 개요

정보처리기사 제3과목 운영체제 – 제1장 운영체제의 개요
요약 정리

Ⅰ. 운영체제의 개념 및 종류
1. 운영체제(OS)의 개념
가. 운영체제(Operation System, OS)의 정의
– 하드웨어를 제어하는 소프트웨어.
– 하드웨어를 활용할 수 있도록 펌웨어(Firmware)나 소프트웨어(Software)로 만들어진 프로그램.
– 컴퓨터 본체 및 각 주변 장치를 가장 능률적이(Language Translator Program)고, 경제적으로 사용할 수 있도록 하는 프로그램.
– 컴퓨터를 편리하게 사용하고 하드웨어를 효율적으로 사용할 수 있도록 하는 프로그램.
– 컴퓨터 자원들인 기억장치, 프로세스(Process), 파일 및 정보 네트워크 및 보호 등을 효율적으로 관리할 수 있는 프로그램의 집합.

나. 운영체제(OS)의 목적

운영체제(OS)의 목적

– 컴퓨터 시스템의 처리량(Throughput), 신뢰성(Reliability)을 최대화한다.
– 컴퓨터 시스템의 반환 시간(Turn Around Time) – 실행 시간(Running Time)과 대기 시간(Waiting Time)을 모두 합한 시간 -, 응답 시간(Response Time), 실행 시간(Running Time), 대기 시간(Waiting Time), 경과 시간을 최소화한다.
– 컴퓨터를 구성하고 있는 자원을 효율적으로 운영하고 제어한다.
– 사용자 인터페이스 제공.
– 자원 스케줄링(자원 공유가 목적).
– 데이터 공유.
– 주변 장치 관리.
– 시스템의 이식성(호환성)을 높인다.

다. 운영체제(OS)의 계층 구조
유틸리티(Utility)와 하드웨어(Hardware) 사이.

라. 운영체제(OS)의 구성 요소
– 제어 프로그램(Control Program) – 자원의 효율적 관리

  • 감시 프로그램(Supervisor Program): 중추적인 역할을 담당, 운영체제 제어 루틴(Routine)의 호출을 인식, 해당 루틴(Routine)의 동작을 감시 감독.
  • 데이터 관리 프로그램(Data Management Program): 자료 전송, 파일의 조작 및 처리, 입출력 자료와 프로그램의 논리적인 연결, 파일과 데이터를 표준화 처리.
  • 작업 제어 프로그램(Job Control Program): 어떤 업무를 처리하고 다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 그 처리 완료를 담당하는 기능을 수행한다. 작업의 연속 처리를 위한 스케줄 및 시스템 자원을 할당 등을 담당한다. 운영체제의 각종 제어 루틴(Routine)이 수행 순서를 관리, 사용자의 명령어 및 프로그램에 따라 제어 루틴(Routine)들의 작업 시기를 조절.

– 처리 프로그램(Process Program) – 사용자의 편이성 제공

  • 언어 번역 프로그램(Language Translator Program): 어셈블러(Assembler), 컴파일러(Compiler)
  • 서비스 프로그램(Service Program): 연계 편집 프로그램(Linkage Editor Program), 정렬/합병 프로그램(Sort/Merge Program) , 유틸리티 프로그램(Utiility Program).
  • 문제 프로그램(Problem Program): 생략.

2. 운영체제(OS)의 성능 평가
가. 성능 평가 요인 4가지

  • 처리량(Throughput): 동일한 시간(단위 시간) 내에서, 얼마나 많은 작업량을 처리할 수 있는가의 요인.
  • 반환 시간(Turn Around Time): 요청한 작업에 대한 결과를, 사용자에게 되돌려 줄 때까지 소용된 시간.
  • 신뢰도(Reliability): 작업의 결과를 얼마나 정확하고 믿을 수 있는가의 요인.
  • 사용 가능도(Availability): 시스템의 전체 운영 시간 중에서, 실제 가동하여 사용중인 시간의 비율.

나. 벤치 마크 프로그램(Bench Mark Program)
컴퓨터 시스템이나 CPU, 운영체제 등의 전반적인 성능을 측정, 비교하는 프로그램을 말한다. 운영체제의 성능을 평가한다면 실제 처리할 작업의 환경을 가상적으로 구축하고, 가상 데이터를 입력하여 작업의 처리량(Throughput), 반환 시간(Turn Around Time), 신뢰도(Reliability) 등을 비교 평가한다.

3. 운영체제(OS)의 발전 과정 및 종류(동작 방식)
가. 일괄 처리(Batch Processing) 시스템
– 시대적으로 가장 먼저 현재 운영체제 형태의 모습을 갖춘 처리 방식이다.
– 시스템의 효율 향상을 위하여 작업량이 일정한 수준이 될 때까지 모아 두었다가 한꺼번에 일시에 처리한다.

나. 다중 프로그래밍(Multi Programming) 시스템
– 몇 개의 작업을 동시에 주기억장치에 적재하여 실행하는 처리 기법.
– 처리량의 극대화를 꾀한다.

다. 온라인 처리(On-Line Processing) 시스템

라. 시분할 처리(Time-Sharing Processing) 시스템
– 여러 명의 사용자가 사용하는 컴퓨터 시스템에서 사용자들이 프로그램을 번갈아 가며 처리.
– 일정 시간 단위로 CPU를 한 사용자에서 다음 사용자로 신속하게 전환함으로 동시에 여러 사용자가 사용.
– 다중 프로그래밍(Multi Programming) 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 하는 대화식(Interactive) 처리.
– 라운드 로빈(Round Robin) 방식.
– 다중 프로그래밍(Multi Programming)은 처리량의 극대화, 시분할 처리(Time-Sharing Process)는 응답 시간의 최소화.

마. 실시간 처리(Real-Time Processing) 시스템
– 실행 결과를 즉시 받아 볼 수 있어 응답 시간이 짧다.
– 우주 왕복선이나 레이더 추적기 등과 같이 정해진 시간에 반드시 수행되어야 하는 작업에 적당.
– 한정된 시간 제약 조건에서 자료를 분석하여 처리하는 시스템으로 비행기 제어 시스템이나 교통 제어 등에 사용.

바. 다중 모드 처리(Multi Mode Processing) 시스템
일괄 처리(Batch Processing), 시분할 처리(Time-Sharing Processing), 실시간 처리(Real-Time Processing)를 모두 수행할 수 있는 운영 방식.

사. 분산 처리 시스템(Distributed Processing System)

아. 병렬 시스템(Parallel System)

용어 설명
– 다중 프로그래밍(Multi Programming)
 하나의 주기억장치와 CPU로 구성된 컴퓨터 시스템에서, 주기억장치에 여러 개의 프로그램을 적재하여 처리하는 방식으로, 단위 시간 내에 처리량을 극대화 한다.

– 다중 처리(Multi Processing)
 하나의 주기억장치와 여려 개의 CPU로 구성된 컴퓨터 시스템에서, 주기억장치에 하나 또는 여러 개의 프로그램을 적재하여 처리하는 방식으로, 보통 병렬 시스템(Parallel System)을 말한다.

– 멀티 컴퓨터(Multi Computer)
 여러 개의 독립적인 컴퓨터 시스템에서, 하나의 작업을 공동으로 처리할 수 있는 시스템으로 보통 분산 컴퓨터 시스템이라고 한다.

– 멀티 테스킹(Multi Tasking)
 하나의 주기억장치와 CPU로 구성된 컴퓨터 시스템에서 여러 개의 프로그램을 동시에 처리할 수 있는 방식으로 사용자 관점에서의 다중 프로그래밍(Multi Programming)을 말한다.

Ⅱ. 시스템 소프트웨어의 종류
1. 시스템 소프트웨어 개발 도구
가. 어셈블러(Assembler)
– 어셈블러(Assembler)의 정의
저급 언어(Low-Level Language)로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 변환.

– 어셈블러(Assembler)의 번역 방법

  • 1-Pass 어셈블러(Assembler): 기호(변수, 상수)를 미리 정의한 뒤에 해당 기호를 사용해야 하므로 프로그램 구현이 어렵다. 그러나 속도는 빠르다.
  • 2-Pass 어셈블러(Assembler): 기호(변수, 상수)를 나중에 정의할 수 있으므로 프로그램 구현이 용이하다.

– 언어 번역(Language Translator) 단계
원시 프로그램(Source) → 번역 → 목적 프로그램(Object Program) 생성 → 연결(Link) → 적재(Load) → 실행.

나. 매크로 처리기(Macro Processor)
– 매크로 처리기(Macro Processor)의 정의
어셈블리어(Assembly Language)를 사용하기 쉽도록 명령어들을 문자로 치환하여 확장.

– 매크로 처리기(Macro Processor)의 기본 기능

  • 매크로 정의(Macro Definition) 인식
  • 매크로 정의(Macro Definition) 저장
  • 매크로 호출(Macro Call) 인식
  • 매크로 확장 및 인수 치환

다. 컴파일러(Compiler)
고급 언어(High-Level Language)로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 변환.

라 인터프리터(Interpreter)
고급 언어(High-Level Language)로 작성된 원시 프로그램(Source Program)을 실행하되, 목적 프로그램(Object Program)을 만들지 않고 대화식으로 처리(Perl, PHP etc)

마. 연결기(Linker)
두 개 이상의 목적 프로그램(Object Program)을 합쳐서 실행 가능한 프로그램을 만든다.

바. 로더(Loader)
– 로더(Loader)의 정의
프로그램을 실행하기 위하여 프로그램을 보조기억장치로부터 컴퓨터의 주기억장치로 올려놓는다.

– 로더(Loader)의 일반적인 기능

  • 할당(Allocation)
  • 재배치(Relocation)
  • 연결(Linking)
  • 적재(Loading)

– 로더(Loader)의 종류

  • 컴파일 즉시 로더(Compile-and-go Loader): 언어 번역 프로그램(Language Translator Program) – 어셈블러(Assembler), 컴파일러(Compiler) – 과 로더(Loader)가 하나로 구성.
  • 절대 로더(Absolute Loader): 할당(Allocation), 연결(Linking)은 프로그래머, 재배치(Relocation)는 어셈블러(Assembler), 적재(Loading)는 로더(Loader)가 수행한다.
  • 직접 연결 로더(Direct-Linking-Loader): 로더(Loader)가 할당(Allocation), 연결(Linking), 재배치(Relocation), 적재(Loading)를 모두 수행하는 로더(Loader)로 가장 일반적으로 사용된다.
  • 동적 로더(Dynamic Loader): 프로그램을 한꺼번에 적재(Loading)하는 것이 아니라 실행 시 필요한 일부분만을 차례로 적재(Loading)하는 방식.

참고 자료
正益社 – 전산학 개론
한올출판사 – C언어로 구성한 자료구조
가메출판사 – 정보처리기사 필기 7년간 기출문제 총정리
정보통신용어사전

Leave a Reply