2023.01.24 - [정보처리기사/필기] - [정보처리기사] Part04-03-1. 운영체제 기초 활용 (1)
Contents
UNIX, WINDOWS
Unix/Linux 운영 체제 특징
- Unix : 1960년대 AT&T Bell 연구소, MIT, General Eletric이 공동 연구로 개발에 착수하여 개발한 운영 체제
- Linux : Unix 호환 Kernel이며 자유롭고 재배포가 가능한 운영 체제이며 버그 발생 시 다수 개발자가 수정에 참여하여 빠른 업데이트 가능
특징 | 설명 |
대화식 운영 체제 | 프롬프트 상태에서 사용자가 명령에 기반하여 대화식으로 운영하는 시스템 |
멀티태스킹 | 한 번에 하나 이상의 작업 수행하는 기능 |
다중사용자 기능 | 여러 사람이 동시에 UNIX 시스템 사용하여 각각 작업을 수행 |
이식성 | 하드웨어 종류에 상관없이 운영 |
WINDOWS 운영 체제 특징
- 마이크로소프트사에서 1995년도에 발표한 이후 업그레이드 버전 출시되고 있음
특징 | 설명 |
GUI 환경 | 키보드로 명령어 직접 입력하지 않고 마우스로 아이콘이나 메뉴 선택하여 작업 수행하는 방식 |
선점형 멀티태스킹 | - 동시 여러 프로그램 실행하는 멀티태스킹 하면서 운영 체제가 각 작업 CPU 이용시간 제어 - 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램 강제 종료시키고 모든 시스템 자원 반환하는 방식 |
PnP (Plug And Play) 사용 | 컴퓨터 시스템에 프린터나 사운드 카드 등 하드웨어 설치 시 해당 하드웨어 사용하는 데 필요한 시스템 환경을 운영 체제가 자동으로 구성하는 기능 |
OLE (Object Linking Embedding) 사용 |
다른 여어 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능 |
Linux/Unix/WINDOWS 운영 체제 비교
구분 | Linux | Unix | WINDOWS |
실행환경 모델 | O/S computing, 객체 지향 | 호스트 중심, 단말 컴퓨터 | C/S Computing, 객체 지향 |
주요 용도 | Internet Server | 기간 MS 시스템 | 파일 서버, 웹 서버 |
기본 사용 환경 | 다중 사용자 환경 | 다중 사용자 환경, Dummy, X-Terminal |
범용 Workstation 사용자를 서버에 연결 |
운영 체제 기반 | 모놀리틱 커널 | 모놀리틱 커널 | 마이크로 커널 |
사용 플랫폼 | 중대형 서버 | 중형 컴퓨터 이상 | 중소형 서버, PC |
UI | 불편 | CDE (Common Desktop Environment) |
우수 (WINDOWS Interface) |
가격 | 비용 효율적 | 고가 | 보통 |
소스 코드 | 공개 | 비공개 | 비공개 |
특징 | - 적은 비용으로 구축 가능 - 소스 코드 공개 - Multi Tasking |
- 분산된 자원 공유 능력 탁월 - 강력한 TCP/IP 네트워킹 |
- OS와 API의 명확한 통제 - 강력한 파일 시스템 - WINDOWS Interface로 PC와 동일 |
프로세스
- 프로그램은 파일 형태로 저장하여 관리되다가 실행 시키면 동작할 때 실행 중인 프로그램
- 주요 상태 : 생성, 준비, 수행, 대기, 종료 등
- WINDOWS는 작업 관리자 프로세스 탬에서 다양한 프로세스 조회 가능하고 프로그램이 정상 동작하지 않을 때 프로그램 끝내기를 통해 프로세스 중단 가능
- 한 개의 프로세스(or Task)는 여러 개 스레드로 나누어 수행 가능
- 스레드 : 다중 프로그래밍 시스템에서 CPU를 받아 수행되는 프로그램 단위
- 프로세스나 태스크보다 더 작은 단위이며, 실행 환경을 공유시켜 기억 장소 낭비 감소
CPU 스케줄링
- 프로세스 작업 수행을 위해 언제, 어느 프로세스에 CPU 할당할 것인지를 결정하는 작업
- Multi-Processor 환경 하에서 프로세서 간 우선 순위 저장함으로써 CPU 활용 극대화하기 위함
종류 | 역할 |
Scheduling Queue | 주기억장치 할당 대기 (보류 상태, 디스크에 위치) |
장기 (Job Scheduler) | 프로세스 선택, 주기억장치 할당 (보류 준비) |
중기 (Process Scheduler) | 프로세스 수에 따라 디스크로 보냄 (대기 보류) |
단기 (CPU Scheduler) | 실행 준비된 프로세스 CPU 할당 (준비 실행) |
▶ CPU 스케줄링 기준
- 바람직한 동작 보이는 프로세스에 우선 순위 서비스 제공
- I/O 중점(bound)와 CPU 중점 프로세스 간 적절한 혼용
- 프로세스 작업 형태, 우선 순위, 버스트 시간, 잔여 실행 시간 복합적 고려
스케줄링 기준 | 설명 | 목표 |
처리량 (Throughput) |
주어진 시간에 최대한 많은 작업 처리 (처리된 프로세스 수 / 시간) |
최대화 |
반환(경과)시간 (Turnaround time) |
전체 작업 수행 시간 최소화 (System in → System out 시간) |
최소화 |
대기 시간 (Waiting time) |
준비 큐에서 기다리는 시간 최소화 | 최소화 |
응답 시간 (Response time) |
애플리케이션에 요청 전달한 시간부터 응답 도착할 때까지 걸린 시간 | 최소화 |
CPU 사용률 (Utilization) |
단위 시간 당 CPU가 작업 수행하는 총 시간 비율 | 최대화 |
Fairness | 프로세스별 CPU 자원 할당 공정성 | 최대화 |
Deadline | 실시간 환경 등에서의 즉시 처리 한계 시간 | 최대화 |
▶ CPU 스케줄링 기법 및 알고리즘
구분 | 선점 (Preemptive) 스케줄링 | 비선점 (Non-preemptive) 스케줄링 |
개념 | - 한 프로세스가 CPU 차지하고 있는 경우 우선 순위가 높은 다른 프로세스가 현재 프로세스 중지시키고 자신이 CPU 선점 - 높은 우선 순위 가진 프로세스들이 빠른 처리 요구하는 시스템에 유용 |
한 프로세스가 CPU 차지하고 있으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 선점 불가 |
개념도 | - 우선순위가 P1 < P2 경우 - P2가 중간에 CPU 선점 가능 |
- 우선순위가 P1 < P2 경우 - P2는 P1 종료 시까지 대기 |
장점 | - 비교적 빠른 응답 - 대화식 시분할 시스템에 적합 |
- 응답시간 예상 용이 - 모든 프로세스에 대한 요구 공정 처리 |
단점 | 높은 우선순위 프로세스들이 들어오는 경우ㅜ 오버헤드 초래 | 짧은 작업 수행하는 프로세스가 긴 작업 종료 시까지 대기 |
기법 | RR, SRT, 다단계 큐, 다단계 피드백 큐 | FCFS, Priority, Deadline, SJF, HRN |
활용 | 실시간 응답 환경, Deadline 응답 환경 | 처리 시간 편차가 적은 특정 프로세스 환경 |
▶ CPU 스케줄링 선택 고려사항
- I/O Bound, CPU Bound 작업 유형 고려
- 프로세스 작업 형태 (일괄 처리형, 대화형, 실시간형, Hybrid형)
- 프로세스 우선순위
- 프로세스 페이지 부재율
- 프로세스 자원 선점률 고려
- 프로세스 버스트 시간 고려
- 프로세스 잔여 실행시간 고려
비선점 스케줄링
알고리즘 | 처리방식 |
우선순위 스케줄링 | - 각 프로세스에 우선 순위가 주어지고 우선 순위에 따라 CPU 할당 - 동일 우선 순위 간에는 FCFS(First Come, First Served) 처리 - 우선 순위 결정 : 관리자, 자원 요구량, CPU 처리시간, 시스템에서 보낸 시간에 의한 결정 등 사용 - 우선 순위 높은 작업이 계속 들어오게 될 경우, 우선 순위가 낮은 프로세스는 기아 현상 발생 → Aging 기법으로 해결 가능 |
기한부 스케줄링 | - 작업이 명시된 시간 내 완료되도록 계획 사용자는 사전에 작업이 요구하는 정확한 자원 제시 작업 시간이나 상황 등 정보 미리 예측 어려움 |
선입선출 스케줄링 | - FCFS (First Come, First Served) - 프로세스가 대기 큐(준비 큐)에 도착한 순서에 따라 CPU 할당 - 가장 간단한 스케줄링 알고리즘 - FIFO (First Input First Out) 알고리즘 - Convoy Effect 발생 가능(버스트 시간이 긴 프로세스가 CPU 독점) - 단독적 사용 거의 없으며, 다른 스케줄링 알고리즘에 보조적으로 사용 (우선순위 스케줄링, RR 스케줄링 등) |
최단 프로세스 우선 스케줄링 |
- SRF(Shortest Process First), 최단 작업 우선(SJF, Shortest Job First) 규칙에서 도출 - 준비 큐 내 작업 중 실행시간 짧다고 예상되는 작업 먼저 수행 - 각 프로세스에서 CPU 버스트 길이 비교하여 CPU 이용 가능해지면 가장 작은 CPU 버스트 가진 프로세스 할당 - FIFO보다 평균 대기 시간 줄여 처리량 높여주는 효과 - CPU 요구시간이 긴 작업과 짧은 작업 간 불평등 심하며, CPU 요구 시간이 긴 프로세스는 기아 현상 발생 → HRN 알고리즘으로 개선 |
최고 응답률 우선 스케줄링 |
- HRN (Highest Response-Ratio Next) - SPF 약점 보완 기법 - 실행시간 긴 프로세스 차별하고 짧은 프로세스 지나치게 선호하는 점 보강 - 각 프로세스 우선 순위를 서비스 시간만 아니고 서비스 대기 시간도 계산 - 우선 순위 = (대기 시간 + 서비스 시간) / 서비스 시간 - 실행 시간 짧은 프로세스 우선 순위 높아지지만 오랫동안 대기한 프로세스 우선 순위도 높아짐 - Aging 기법과 비슷하며 특정 프로세스 무한 연기 현상 방지 |
▶ 페이지 부재(Page Fault)
- 기억장치에 데이터가 적재되지 않은 Page를 참조하는 현상
- 콜드 미스 : 데이터를 최초로 읽을 때 발생
- 용량 미스 : 메모리 용량 부족해서 교체 시 발생
▶ FIFO(First-In, First-Out)
- 메모리에 올라온 지 가장 오래된 페이지를 교체하는 메모리 교체 알고리즘
- 작업할 페이지가 이미 주기억장치에 있으면 그대로 수행 (페이지 부재 X)
▶ SJF(Shortest Job First = Shortest Process First)
- 실행 시간 가장 짧은 작업 순으로 CPU 수행
▶ HRN(Highest Response-Ratio Next)
- 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간
선점 스케줄링
타이틀1 | 처리방식 |
라운드 로빈 스케줄링 | - RR (Round Robin) - 대화식 사용자 위한 시분할 시스템(Time Sharing System) 위해 고안 - 준비 큐(FCFS)에 의해 보내진 각 프로세스는 같은 크기의 CPU시간 할당 받음 - 프로세스가 할당된 시간 내 처리 완료하지 못하면 준비 큐 리스트의 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어감 |
최소잔여 시간 스케줄링 | - SRT(Short Remaining Time) - 남은 처리 시간이 가장 짧다고 판단되는 프로세스 먼저 수행 - 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨 - 긴 작업은 SJF보다 대기 시간이 김 |
멀티레벨 큐 | - 다단계 큐(Multi-level Queue) - 작업을 여러 종류 그룹의 분할 - 여러 개 큐를 이용 상위 단계 작업에 의해 하위 단계 작업이 선점당함 - 준비 상태 큐를 여러 종류로 분할 하지만 다른 큐로 작업 이동은 불가 - 각 큐는 자신만의 독자적인 스케줄링을 가짐 |
다단계 피드백 큐 | - Multi-level Feedback Queue - 입출력 위주와 CPU 위주인 프로세스 특성에 따라 큐마다 서로 다른 CPU Time Slice(Time Quantum) 부여 - 새로운 프로세스는 높은 우선순위, 프로세스 실행 시간 길어질수록(Aging) 점점 낮은 우선순위 큐로 이동(맨 마지막 단계에서는 Round Robin 처리) - 하위 단계로 갈수록 할당 시간 증가하여 공평성 부여 |
▶ 다단계 큐와 다단계 피드백 큐의 비교
구분 | 다단계 큐 | 다단계 피드백 큐 |
대기 큐(Time Quantum) | 동일 | 다름 |
우선순위 | 작업별 | 순서별 |
큐 간 이동 | 없음 | 있음 |
공통점 | 무한대기 방지, 선점 스케줄링 |
320x100
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (4) (12) | 2023.01.27 |
---|---|
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (3) (12) | 2023.01.26 |
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (1) (4) | 2023.01.24 |
[정보처리기사] Part01-01-1. 현행 시스템 분석 (2) (12) | 2023.01.21 |
[정보처리기사] Part01-01-1. 현행 시스템 분석 (1) (5) | 2023.01.21 |
댓글