728x90
스케줄링: 프로세스 실행 시 필요한 여러 자원을 해당 프로세스에게 할당하는 것
- 스케줄링의 종류
- 장기 스케줄링 : 어떤 프로세스가 시스템 자원을 할당받을지 결정 후 준비상태 큐로 보냄
- 작업 스케줄링, 상위 스케줄링이라고도 하며 작업 스케줄러에 의해 수행
- 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
- CPU를 할당받으려는 프로세스들이 많을 시 일시보류 시킨 후 활성화해서 부하 조절
- 단기 스케줄링 : CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
- 프로세서 스케줄링, 하위 스케줄링 이라고도 한다
- 프로세서 스케줄링 및 문맥교환은 프로세서 스케줄러에 의해 수행됨
- 장기 스케줄링 : 어떤 프로세스가 시스템 자원을 할당받을지 결정 후 준비상태 큐로 보냄
- 문맥교환(Context Switching) : OS에 의해 CPU가 할당되는 프로세스 변경 시 실행
- 프로세스에 CPU 할당을 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장
- 새로운 프로세스의 상태 정보를 설정 후 CPU를 할당하여 실행
- 스케줄링의 목적 : CPU나 자원을 효율적으로 사용하기 위한 정책
- 공정성 : 모든 프로세스에 공정하게 할당
- 처리율(량) 증가 : 단위 시간당 프로세스를 처리하는 비율(양)을 증가시킨다
- CPU 이용률 증가 : CPU의 낭비시간을 줄여 프로세스 실행 시간 비율을 증가시킴
- 우선순위 제도 : 우선순위가 높은 프로세스를 먼저 실행시킴
- 오버헤드 최소화
- 응답시간(Response Time, 반응시간)최소화 : 작업 지시, 반응시간을 최소화
- 반환시간(Turn Around Time) 최소화 : 프로세스 제출 - 완료까지 걸리는 시간을 최소화
- 대기 시간 최소화 : 준비상태 큐에서 대기하는 시간을 최소화
- 균형 있는 자원의 사용 : 메모리, 입출력 장치 등의 자원을 균형있게 사용
- 무한 연기 회피 : 자원을 사용하기 위해 무한정 연기되는 상태를 회피
- 스케줄링 성능 평가 기준 : CPU이용률, 처리율, 반환시간, 응답시간으로 비교
- 프로세스 스케줄링의 기법 : 선점(Preemptive), 비선점(Non-Preemptive) 스케줄링이 있다
- 선점 스케줄링 : 우선순위가 높은 프로세스가 CPU를 강제로 빼앗음
- SRT(Shortest Remaining Time) : 작업시간이 짧은 순서대로 수행
- 라운드로빈(Round-Robin) : 시간 내에 완료하지 못하면 ready queue의 맨 뒤로 보냄
- 다단계 큐(Multi-level Queue) : Ready queue를 여러 개 사용
- 비선점 스케줄링 : CPU의 사용이 끝날 때 까지 기다림
- FCFS(First Come - First Service) = FIFO
- 준비상태 큐에 도착한 순서에 따라 CPU에 할당하는 기법
- 공평성은 유지되나 우선순위가 높은 작업이 늦게 수행될 수 있다
- SJF(Shortest Job First, 단기작업우선) : 실행시간이 가장 짧은 프로세스에게 CPU할당
- 가장 적은 평균 대기시간을 제공
- 실행기시간이 긴 프로세스는 무기한 연기될 수 있다
- HRN(Hightest Response-ratio Next) : SJF + 대기시간과 실행시간을 이용하는 기법
- 실행시간이 긴 프로세스에 불리한 SJF를 보완한 기법
- 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위가 높아짐
- 우선순위를 계산하여 숫자가 높은 거서 부터 우선순위가 부여
- 우선순위 계산식 : 대기시간 + 서비스 시간 / 서비스시간
- 우선순위(priority) 스케줄링: 프로세스에게 우선순위를 부여, 높은 순서대로 처리
- 기한부(Deadline) 스케줄링: 작업을 명시된 시간이나 기한 내에 완료하도록 계획.
- FCFS(First Come - First Service) = FIFO
'CS' 카테고리의 다른 글
[CS] 쿠키와 세션의 차이 (0) | 2023.08.01 |
---|---|
[CS] TDD(Test-Driven Development)란? (0) | 2023.07.31 |
[CS] 병행(Concurrency)과 병렬(Parallel) (0) | 2023.07.12 |
[Spring] Spring AOP(Aspect-Oriented Programming) (0) | 2023.07.11 |
[CS] DBMS (0) | 2023.07.08 |