1. 운영체제의 정의 및 목적
(1) 처리 능력 (Throughput)
(2) 반환 시간 (Turn Around Time)
(3) 사용 가능도 (Availability)
(4) 신뢰도 (Reliability)
2. 운영체제의 구성
(1) 제어 프로그램(Control Program)은 컴퓨터 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관 리 등의 역할을 수행하는 것으로 다음과 같이 구분할 수 있다.
(2) 감시 프로그램 (Supervisor Program) : 제어 프로그램 중 가장 핵심적인 역할을 하 는 것으로, 자원의 할당 및 시스템 전체의 작동 상태를 감시하는 프로그램
(3) 작업 관리 프로그램 (Job Management Program) : 작업이 정상적으로 처리될 수 있도록 작업 의 순서와 방법을 관리하는 프로그램
(4) 데이터 관리 프로그램 (Data Management Program) : 작업에 사용되는 데이터와 파일의 표준적 인 처리 및 전송을 관리하는 프로그램
(5) 처리 프로그램(Processing Program)은 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로 그램으로, 다음과 같이 구분할 수 있다.
(6) 언어 번역 프로그램 : 사용자가 고급언어로 작성한 원시 프로그램을 기계어 형태의 목적 프로그램으로 변환시키는 것으로, 컴파일 러, 어셈블러, 인터프리터 등이 있음
(7) 서비스 프로그램 : 사용자가 컴퓨터를 더욱 효율적으로 사용할 수 있도 록 제작된 프로그램
1. UNIX의 개요 및 특징
(1) 시분할 시스템(Time Sharing System)을 위해 설계 된 대화식 운영체제로, 소스가 공개된 개방형 시스템 (Open System)이다.
(2) 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
(3) 크기가 작고 이해하기가 쉽다.
(4) 다중 사용자(Multi-User), 다중 작업(Multi-Tasking) 을 지원한다.
(5) 많은 네트워킹 기능을 제공하므로 통신망(Network) 관 리용 운영체제로 적합하다.
(6) 트리 구조의 파일 시스템을 갖는다.
(7) 전문적인 프로그램 개발에 용이하다.
(8) 다양한 유틸리티 프로그램들이 존재한다.
(9) 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)
1. UNIX 시스템의 구성
(1) 커널(Kernel)
- UNIX의 가장 핵심적인 부분이다.
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면 서 실행된다.
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터 페이스 역할을 담당한다.
- 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관 리, 입·출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행한다.
(2) 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명 령을 수행하는 명령어 해석기이다.
- 시스템과 사용자 간의 인터페이스를 담당한다.
- DOS의 COMMAND.COM과 같은 기능을 수행한다.
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태 로 존재하며 보조 기억장치에서 교체 처리가 가능하다.
- 파이프라인 기능을 지원하고 입·출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있다.
- 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 Shell을 사용할 수 있다.
(3) Utility Program
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사 용한다.
- DOS에서의 외부 명령어에 해당된다.
- 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.
2. 파일 디스크립터(File Descriptor)
(1) 파일을 관리하기 위한 시스템(운영체제)이 필요로 하는 파 일에 대한 정보를 가진 제어 블록을 의미하며, 파일 제어 블록(FCB; File Control Block)이라고도 함
(2) 파일 디스크립터는 파일마다 독립적으로 존재하며, 시 스템에 따라 다른 구조를 가질 수 있다.
(3) 보통 파일 디스크립터는 보조기억장치 내에 저장되어 있 다가 해당 파일이 Open될 때 주기억장치로 옮겨진다.
(4) 파일 디스크립터는 파일 시스템이 관리하므로 사용자 가 직접 참조할 수 없다.
3. 기억장치 관리 - 배치(Placement) 전략
(1) 최초 적합 (First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영 역 중에서 첫 번째 분할 영역에 배치시키는 방법
(2) 최적 적합 (Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영 역 중에서 단편화를 가장 작게 남기는 분할 영역에 배 치시키는 방법
(3) 최악 적합 (Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영 역 중에서 단편화를 가장 많이 남기는 분할 영역에 배 치시키는 방법
4. 페이징(Paging) 기법
(1) 페이징 기법은 가상기억장치에 보관되어 있는 프로그 램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠 진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법이다.
(2) 프로그램을 일정한 크기로 나눈 단위를 페이지(Page) 라고 하고, 페이지 크기로 일정하게 나누어진 주기억장 치의 단위를 페이지 프레임(Page Frame)이라고 한다.
(3) 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있다.
(4) 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요하다.
1. 세그먼테이션(Segmentation) 기법
(1) 세그먼테이션 기법은 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주 기억장치에 적재시켜 실행시키는 기법이다.
(2) 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트(Segment)라고 하며, 각 세그먼 트는 고유한 이름과 크기를 갖는다.
(3) 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블(Segment Map Table) 이 필요하다.
(4) 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있다.
2. 페이지 교체 알고리즘
(1) OPT (OPTimal replacement, 최적 교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
(2) FIFO(First In First Out)
- 각 페이지가 주기억장치에 적재될 때마다 그때 의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
(3) LRU(Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
(4) LFU (Least Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체하는 기법
(5) SCR(Second Chance Replacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법
(6) NUR (Not Used Recently)
- LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
3. 페이지 크기
(1) 페이지 크기가 작을 경우
- 페이지 단편화가 감소되고, 한 개의 페이지를 주기억장 치로 이동하는 시간이 줄어든다.
- 불필요한 내용이 주기억장치에 적재될 확률이 적으므 로 효율적인 워킹 셋을 유지할 수 있다.
- Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높아진다.
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지 고, 매핑 속도가 늦어진다.
- 디스크 접근 횟수가 많아져서 전체적인 입·출력 시간 은 늘어난다.
(2) 페이지 크기가 클 경우
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지 고, 매핑 속도가 빨라진다.
- 디스크 접근 횟수가 줄어들어 전체적인 입·출력의 효 율성이 증가된다.
- 페이지 단편화가 증가되고, 한 개의 페이지를 주기억장 치로 이동하는 시간이 늘어난다.
- 프로세스(프로그램) 수행에 불필요한 내용까지도 주기 억장치에 적재될 수 있다.
1. Locality
(1) 시간 구역성(Temporal Locality)
- 시간 구역성은 프로세스가 실행되면서 하나의 페이지 를 일정 시간 동안 집중적으로 액세스하는 현상이다.
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미한다.
- 시간 구역성이 이루어지는 기억 장소 : Loop(반복, 순환), 스택(Stack), 부 프로그램(Sub Routine), Counting (1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)시간 구역성(Temporal Locality)
- 시간 구역성은 프로세스가 실행되면서 하나의 페이지 를 일정 시간 동안 집중적으로 액세스하는 현상이다.
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미한다.
- 시간 구역성이 이루어지는 기억 장소 : Loop(반복, 순환), 스택(Stack), 부 프로그램(Sub Routine), Counting (1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)
(2) 공간 구역성(Spatial Locality)
- 공간 구역성은 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상이다.
- 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계 속 참조할 가능성이 높음을 의미한다.
- 공간 구역성이 이루어지는 기억장소 : 배열 순회(Array Traversal, 배열 순례), 순차적 코드의 실행, 프로그래 머들이 관련된 변수(데이터를 저장할 기억장소)들을 서 로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용
2. 워킹 셋(Working Set)
(1) 프로세스가 일정 시간 동안 자주 참조하는 페이 지들의 집합이다.
(2) 데닝(Denning)이 제안한 프로그램의 움직임에 대한 모 델로, 프로그램의 Locality 특징을 이용한다.
(3) 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로 써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로 세스의 기억장치 사용이 안정된다.
(4) 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경된다.
3. 스래싱(Thrashing)
(1) 프로세스의 처리 시간보다 페이지 교체에 소요되는 시 간이 더 많아지는 현상이다.
(2) 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템 의 성능이 저하된다.
(3) 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용 률은 어느 특정 시점까지는 높아지지만, 다중 프로그래 밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소하게 된다.
(4) 스래싱 현상 방지 방법
- 다중 프로그래밍의 정도를 적정 수준으로 유지한다.
- 페이지 부재 빈도(Page Fault Frequency)를 조절하여 사용한다.
- 워킹 셋을 유지한다.
- 부족한 자원을 증설하고, 일부 프로세스를 중단시킨다.
- CPU 성능에 대한 자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영한다.
4. 프로세스(Process)의 정의
(1) 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중 인 프로그램을 의미하며, 작업(Job), 태스크(Task)라고도 한다.
'정보처리기사 필기 > 4과목' 카테고리의 다른 글
4과목 -3 (필기 개념 정리) (0) | 2023.01.27 |
---|---|
4과목 -1 (필기 개념 정리) (0) | 2023.01.26 |