#137_시스템 소프트웨어의 구성

 - 제어 프로그램(Control Program) : 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 프로그램

  ㆍ감시(Supervisor) 프로그램 : 각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시, 감독하는 프로그램

  ㆍ작업 제어(Job Control) 프로그램 : 어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당하는 프로그램

  ㆍ자료 관리(Data Management) 프로그램 : 주기억장치와 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지보수 기능을 수행하는 프로그램

 - 처리 프로그램 : 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램

  ㆍ언어 번역(Languge Translate) 프로그램 : 원시 프로그램을 기계어 형태의 목적 프로그램으로 번역하는 프로그램(어셈블러, 컴파일러, 인터프리터)

  ㆍ서비스(Service) 프로그램 : 컴퓨터를 효율적으로 사용할 수 있는 사용 빈도가 높은 프로그램

  ㆍ문제(Problem) 프로그램 : 특정 업무 및 해결을 위해 사용자가 작성한 프로그램

 

#138_운영체제 정의/목적/기능

 - 정의

  ㆍ컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

 - 목적

  ㆍ사용자와 컴퓨터간의 인터페이스 제공

  ㆍ자원의 효율적인 운영 및 자원 스케줄링

  ㆍ데이터 공유 및 주변 장치 관리

  ㆍ처리 능력 및 신뢰도 향상, 사용 가능도 향상

  ㆍ응답(반응) 시간 단축, 반환 시간 등의 단축

 - 기능

  ㆍ프로세서, 기억장치, 입/출력장치, 파일 및 정보 등의 자원 관리

  ㆍ자원의 스케줄링 기능 제공

  ㆍ사용자와 시스템 간에 편리한 인터페이스 제공

  ㆍ시스템의 각종 하드웨어와 네트워크 관리 및 제어

  ㆍ시스템의 오류 검사 및 복구, 데이터 관리, 데이터 및 자원 공유

  ㆍ자원 보호 기능 제공

  ㆍ가상 계산기 기능 제공

 

#139_운영체제 운용 기법 및 발달과정

 - 일괄 처리(Batch Processing) 시스템 : 초기의 컴퓨터 시스템에서 사용된 형태로, 일정량 또는 일정기간 동안 데이터를 모아서 한꺼번에 처리하는 방식

 - 다중 프로그래밍(Multi Programming) 시스템 : 하나의 CPU와 주기억장치를 이용하여 여러개의 프로그램을 동시에 처리하는 방식

 - 시분할(Time sharing) 시스템 : 여러명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해줌으로써 각 사용자에게 각자 독립된 컴퓨터를 사용하는 느낌을 주는 방식(라운드 로빈 방식)

  - 다중 처리(Multi Prcessing) 시스템 : 여러개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식

 - 실시간 처리(Real Time Processing) 시스템 : 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식

 - 다중 모드 처리(Multi Mode Processing) : 일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식

 - 분산 처리(Distributed Processing) 시스템 : 여러개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식

 - 발달 과정 : 일괄 처리 시스템 → 다중 프로그래밍, 다중 처리, 시분할, 실시간 처리 시스템 → 다중 모드 → 분산 처리 시스템

 

#140_컴파일러와 인터프리터

 - 컴파일러

  ㆍ고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램 생성

  ㆍ번역 과정이 번거롭고, 번역 시간이 오래 걸리지만 실행 속도가 빠름

  ㆍPORTRAN, COBOL, PASCAL, C, C++, PL/1 등이 컴파일러를 사용함

 - 인터프리터

  ㆍ고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램

  ㆍ줄 단위로 번역, 실행되기 때문에 시분할 시스템에 유용함

  ㆍ프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않음

  ㆍ번역 속도는 빠르지만 실행 속도는 느림

  ㆍBASIC, SNOBOL, LISP, APL 등이 인터프리터를 사용함

 

#141_매크로와 매크로 프로세서

 - 매크로 : 프로그램 작성시 한 프로그램 내에서 동일한 코드가 반복될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 것

 - 매크로 프로세서 : 원시 프로그램에 존재하는 매크로 호출 부분에 매크로 프로그램을 삽입하여 확장된 원시 프로그램을 생성하는 시스템 소프트웨어

 - 매크로 프로세서 처리 과정 : 매크로 정의 인식 → 매크로 정의 저장 → 매크로 호출 인식 → 매크로 확장과 인수(매개 변수) 치환

 

#142_로더

 - 정의

  ㆍ컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어

 - 기능(할당, 연결, 재배치, 적재)

  ㆍ할당(Allocation) : 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능

  ㆍ연결(Linking) : 부프로그램 호출 시 그 부프로그램이 할당된 기억 장소의 시작 주소를 호출한 부분에 등록하여 연결하는 기능

  ㆍ재배치(Relocation) : 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억 장소의 실제 주소로 배치시키는 기능

  ㆍ적재(Loading) : 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능

 - 종류

  ㆍCompile And Go 로더 : 별도의 로더없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식

  ㆍ절대 로더(Absolute Loader) : 목적 프로그램을 기억 장소에 적재시키는 기능만 수행하는 로더(할당 및 연결은 프로그래머가, 재배치는 언어 번역 프로그램이 담당)

  ㆍ직접 연결 로더(Direct Linking Loader) : 일반적인 기능의 로더로, 로더의 기본 기능 4가지를 모두 수행하는 로더

  ㆍ동적 적재 로더(Dynamic Loading Loader) : 프로그램을 한꺼번에 적재하는 것이 아니라 실행 시 필요한 일부분만을 적재하는 로더

 

#143_링커

 - 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨아

 - 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹(Linking)이라고 함

 

144_프로세스의 여러 가지 정의

 - 실행중인 프로그램, PCB를 가진 프로그램, 실기억장치에 저장된 프로그램

 - 프로세서가 할당되는 실체, 프로시저가 활동 중인 것

 - 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작

 - 목적 또는 결과에 따라 발생되는 사건들의 과정

 

#145_PCB

 - PCB : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳

 - PCB에 저장되어 있는 정보 : 프로세스의 현재 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세서의 우선 순위, CPU 레지스터 정보, 주기억장치 관리 정보, 입/출력 상태 정보, 계정 정보

 

#146_프로세스 상태 전이

 - 프로세스의 주요 상태

준비(Ready) 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
실행(Run)

ㆍ준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태

ㆍ프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당시간이 종료(Time Run Out)되면 프로세스는 준비 상태로 전이됨

ㆍ실행중인 프로세스는 입/출력(I/O)처리가 필요하면 실행중인 프로세스는 대기상태로 전이됨

대기(Wait),

보류, 블록(Block)

프로세스에 입/출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입/출력 처리가 완료될 때까지 대기하고 있는 상태

 - 프로세스 상태 전이 관련 용어

  ㆍDispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당 받아 실행 상태로 전이되는 과정

  ㆍWake-up : 입/출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

 

#147_스케줄링

 - 정의 : 프로세스가 생성되어 실행될 떄 필요한 시스템의 여러 자원을 해당 프로세스에 할당하는 작업

 - 목적 : 공정성, 처리율 증가, CPU 이용률 증가, 우선 순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피

 

+ Recent posts