반응형
운영체제란?
- 제한된 컴퓨터 각종 자원을 효율적으로 관리하여 사용자에게 편리한 환경을 제공하는 소프트웨어
운영체제 목적
- 처리 능력 : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 소요되는 시간
- 사용 가능도 : 시스템 사용할 필요가 있을 때 즉시 가용 가능한 정도
- 신뢰도 : 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제 기능
- 프로세서 관리
- 기억장치 관리
- 프로세스 관리
- 주변장치 관리
- 파일 및 데이터 관리
프로세스
- 현재 실행중이거나 곧 실행 가능한 PCB를 가진 프로그램
- PCB(Process Control Block) : OS가 프로세스의 대한 중요한 정보를 저장하는 곳으로 각 프로세스가 생성될 때 고유 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.
스레드(Thread)
- 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
- 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스 역할 담당
- 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.
- 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.
CPU 스케줄링
- 프로세스가 생성되어 실행될 때 필요한 시스템의 자원을 해당 프로세스에 할당하는 것
- cf) 문맥 교환(Context Switching) : 하나의 프로세스에서 다른 프로세스로 전환할 때 실행하던 프로세스의 상태를 보관하고 새로운 프로세스 정보를 적재하여 실행을 준비하는 것
- cf) 준비상태 큐(Ready Queue) : 주기억장치에 적재되어 있으면서 CPU에 의해 실행되기를 준비하는 프로세스들로 구성된 리스트
비선점 스케쥴링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케쥴링 기법
- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.
- 프로세스의 요구를 공정하게 처리할 수 있지만 중요한 작업이 중요하지 않은 작업을 기다리는 경우가 발생한다.
FCFS(First Come First Service)
- 준비상태 큐에 먼저 도착한 순서대로 CPU에 할당하는 기법
- 공평성은 유지되지만 중요한 작업이 중요하지 않은 작업을 기다리게 된다.
SJF(Short Job First)
- 준비상태 큐에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
- 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에 할당 순위가 밀려 무한 연기(기아) 상태가 발생할 수 있다.
HRN(Hightest Response-ratio Next)
- SJF 기법을 보완한 것으로 대기 중인 프로세스들의 대기시간과 실행시간을 고려하여 우선순위를 결정한다.
- 우선순위 계산식 : (대기시간 + 수행시간) / 수행시간
선점 스케쥴링
- 하나의 프로세스가 CPU를 할당받아 실행중일 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케쥴링 기법
- 우선순위가 높은 프로세스를 빠르게 처리할 수 있지만 많은 Overhead를 초래한다.
Round Robin
- 각 프로세스느 시간 할당량(Time Slice)만큼 CPU를 점유하고 실행이 완료되지 않으면 CPU를 반환하고 준비상태 큐의 가장 뒤로 배치
- 문맥 교환(Context Switching) 효과를 고려하여 시간 할당량을 정한다.
- 시간 할당량이 클수록 FCFS와 같아지고, 시간 할당량이 작을 수록 문맥 교환 및 오버헤드가 자주발생
SRT(Shortest Remaining Time)
- SJF 기법을 선점 형태로 변경한 기법으로 프로세스들 중 남아있는 실행시간이 가장 짧은 프로세스를 다음 프로세스로 선택
다단계 큐 스케쥴링
- 준비완료 큐를 다수의 별도의 큐로 분리하여 각 큐의 독자적인 스케쥴링에 따라 CPU를 할당받는 기법
- 각각의 서로 다른 작업들이 다른 묶음으로 분리될 수 있을 때 사용한다.
- 이전 작업이 실행 중이더라도 우선 순위가 높은 큐에 작업이 들어오면 CPU를 반환해야 한다.
- cf) 우선순위 : 시스템 프로세스 > 대화형 프로세스 > 일괄처리 프로세스
다단계 피드백 큐 스케쥴링
- 프로세스가 큐들 사이를 이동하는 것을 허용하는 기법이다.
- 프로세스를 CPU 성격에 따라 구분하고 어떤 프로세스가 CPU 시간을 너무 많이 사용하면 한 단계 낮은 우선순위 준비큐로 강등된다.
- 즉, 짧은 프로세스의 경우 FCFS 방식으로 신속하게 실행되고, 긴 프로세스는 낮은 단계의 준비단계 큐로 밀린다.
- 낮은 우선순위 큐에서 너무 오래 대기하는 프로세스는 높은 우선순위 큐로 이동한다. (Aging 기법) -> 기아 상태 예방
반응형
'∙Operating System' 카테고리의 다른 글
[정보처리기사]기억장치 관리 (0) | 2020.06.30 |
---|---|
[정보처리기사]프로세스 동기화 (0) | 2020.06.30 |
[OS] 프로세스 동기화 (0) | 2019.04.09 |
[OS] 운영체제와 CPU 스케쥴링 (0) | 2019.04.09 |