CPU 스케줄링
어떤 프로세스가 먼저 실행이 될지 결정해주는 것
스케줄링 기법
선점 ( Preemptive ) 스케줄링
한 프로세스가 CPU를 차지하고 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 선점한다
RR, SRT, 다단계 큐, 다단계 피드백 큐
비선점 ( Non-Preemptive ) 스케줄링
한 프로세스가 작업 종류 후 CPU 반환 전에는 다른 프로세스는 CPU 선점 불가능
시스템 안정성이 더 불안정하다
FCFS(FIFO), Priority, Deadline, SJF, HRN
스케줄링 알고리즘
RR ( Round Robin )
FCFS(FIFO) + TimeSlice
SRT ( Short Remaining Time )
MLQ ( Multi Level Que )
큐를 여러개 만들고 상황에 따라 꺼내서 사용
우선순위를 프로세스가 아닌 큐에 주는것
MFQ ( Multi level Feedback Que )
큐마다 TimeSlice를 만들어두고 새로운 프로세스는 높은 우선순위, 프로세스의 실행시간이 길어질수록(aging) 낮은 우선순위 큐로 이동한다
FCFS(FIFO) (First Come First Served)
DeadLine
작업들이 명시된 시간이나 기한 내에 완료되도록 계획
SJF ( Short Job First )
실행시간이 가장 짧은 것 먼저
HRN ( Highest Response Ratio Next )
우선순위 + 응답 대기시간까지 계산
우선순위 = (대기시간 + 서비스시간) / 서비스시간
프로세스 동기화
Race Condition
동시에 같은 자원을 두개 이상의 프로세스가 경쟁적으로 사용하려는 상황
임계영역 ( Critical Section )
둘 이상의 프로세스가 공유할 수 없는 자원(임계자원)을 이용하는 부분
상호배제 ( Mutual Exclusive = Mutex 뮤텍스 )
시스템이 어떠한 자원을 한 시점에서 한 개의 프로세스만이 사용할 수 있도록 하는 것
임계영역 내에서 구현한다
세마포어 ( Semaphores )
다익스트라가 제안
운영체제 자원을 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정 또는 동기화 시키는 기술
교착상태 ( Deadlock )
다중 프로그램 환경에서 두 개 이상의 프로세스가 서로 상대방의 자원을 요구하면서 양쪽 모두 작업수행을 할 수 없는 대기상태 (무한 대기 상태)
- 발생조건 4가지
상호배제 ( Mutual Exclusive )
점유와 대기 ( Block & Wait )
비선점 ( Non-Preemption )
환형대기 ( Circular wait )
- 해결방안
예방
교착 상태 발생 조건을 위배(부정)하는 방안
회피
안전한 상태 유지 가능한 요구만 수락, 은행원 알고리즘
발견
자원할당 그래프
회복
Deadlock이 없어질때까지 프로세스를 kill
기아상태 발생 가능
'> CS' 카테고리의 다른 글
[운영체제] 가상기억장치 (0) | 2023.09.14 |
---|---|
[운영체제] 주기억장치 관리 개요 (0) | 2023.09.13 |
[운영체제] 운영체제란, 프로세스와 스레드 (0) | 2023.08.29 |
[컴퓨터구조] 보조기억 장치 RAID, NAS, DAS, 입출력 장치 (0) | 2023.08.28 |
[컴퓨터 구조] 캐시 메모리, 주기억장치 (0) | 2023.08.08 |