<질문 1> 기아 상태가 무엇인가요?
답변
기아 상태란?
- 기아 상태는 일반적으로 프로세스나 작업이 원하는 자원을 얻지 못해 영원히 실행되지 못하는 상태를 의미
- 지원 할당이나 스케줄링 알고리즘이 불공평하게 동작하여 특정 프로세스나 작업이 계속해서 자원을 얻지 못하는 경우도 발생
- 기아 상태에서는 특정 프로세스가 영원히 실행되지 못하므로 시스템의 효율성이 떨어질 수 있음
<질문 1> 기아 상태를 어떻게 해결할 수 있나요?
답변
해결 방법
- 공정한 스케줄링 알고리즘을 적용하여 모든 프로세스가 공평하게 자원을 할당받도록 설정 -> ex) 라운드 로빈
- 자원 할당 정책 개선
- 특정 자원을 과도하게 점유한느 것을 방지하고, 자원을 효율적으로 공유할 수 있는 방법을 도입
<질문 1> CPU 스케줄링에 대해 설명해주세요.
답변
CPU 스케줄링이란?
- 여러 프로세스가 경쟁적으로 CPU를 사용할때, 어떤 프로세스에 CPU를 할당할지를 결정하는 운영체제의 기능
스케줄링의 목표
- 공평성 : 모든 프로세스가 공평하게 CPU를 사용할 수 있도록 함
- 응답 시간 최소화 : 사용자가 프로그램을 실행했을 때 첫 응답이 가능한 시간을 최소화
<질문 1> 스케줄러의 종류는 무엇이 있나요?
답변
- 장기 스케줄러
- 새로운 프로세스가 시스템에 진입할 때, 메모리에 얼마나 많은 프로세스를 수용할 것인지 결정
- 주로 메모리에 할당되기 전에 프로세스들 중 어떤 것들이 메모리에 올라갈지를 관리
- 단기 스케줄러
- 현재 메모리에 적재된 프로세스 중에서 어떤 프로세스를 다음에 CPU에 할당할지 선택
- CPU의 할당과 관련된 작업을 담당, 실행 가능한 프로세스 중 하나를 선택하여 CPU를 할당하는 역할을 수행
- 중기 스케줄러
- 메모리에서 프로세스를 제거하거나 저장하여 프로세스의 상태를 준비 상태로 이동하거나 잠시 중단시키는 역할
- 스왑아웃 : 메모리에서 프로세스를 제거하는 작업
- 스왑인 : 저장된 프로세스를 메모리에 가져오는 작업
<질문 1> 선점형 스케줄링과 비전형 스케줄링의 차이가 무엇인가요?
답변
프로세스가 CPU를 점유하는 동안 스케줄러가 언제 CPU를 다른 프로세스로 전환할지에 대한 기준을 나타냄
- 선점형 스케줄링
- 프로세스가 CPU를 점유 중일 때, 다른 우선순위 프로세스가 도착하면 현재 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에게 CPU를 할당하는 방식
- 선점이 발생할 때마다, 현재 실행 중인 프로세스는 현재의 상태를 저장하고 나중에 재개될 수 있도록 정보를 유지
- ex) 라운드 로빈
- 비선점형 스케줄링
- 프로세스가 CPU를 점유 중일 때, 다른 우선순위의 프로세스가 도착하면 현재 실행 중인 프로세스가 완료되거나 I/O 등의 이벤트가 발생할 때까지 기다린 후에 CPU를 할당하는 방식
- 선점이 발생하지 않기 때문에, 프로세스는 실행을 완료하거나 대기 상태로 들어가기 전까지 계속 CPU를 보유
- ex) 선입선출 스케줄링
<질문 1> 선입선출 스케줄링(FCFS)에 대해 설명해주세요.
답변
선입선출 스케줄링이란?
- 가장 간단한 CPU 스케줄링 알고리즘, 먼저 도착한 프로세스를 먼저 실행하는 방식
- 프로세스가 CPU를 요청하면, 큐의 가장 먼저 도착한 프로세스가 CPU를 할당받아 실행
특징
- 비선점형 스케줄링
- 한 번 CPU를 할당받은 프로세스는 완료되거나 I/O 등의 이벤트가 발생할 때까지 계속 CPU를 보유
- 공평성
- 먼저 도착한 순서대로 프로세스에 CPU를 할당하므로, 모든 프로세스에게 공평한 기회를 제공
- 구현이 간단
- FCFS는 구현이 간단하며, 큐 자료구조를 사용하여 프로세스를 관리
- 대기 시간 문제
- 평균 대기 시간이 길어질 수 있음
- 먼저 도착한 프로세스가 긴 CPU 버스트를 가지고 있을 경우, 그 후에 도착한 프로세스들은 대기 시간이 길어질 수 있음
<질문 1> 최단 작업 우선 스케줄링(SJF)에 대해 설명해주세요.
답변
최단 작업 우선 스케줄링이란?
- 실행할 프로세스를 선택할 대 해당 프로세스의 실행 시간이 가장 짧은 것을 선택하는 방식
- 프로세스의 실행 시간을 고려하여 스케줄링을 수행하므로, 실행 시간이 짧은 프로세스가 먼저 실행되어 CPU 사용률을 최적화하고 대기시간을 최소화 하는 특징이 있음
단점
- 프로세스의 실행 시간을 정확하게 예측하기 어려움
- 컨텍스트 전환이 자주 발생할 수 있어 오버헤드가 발생할 수 있음
<질문 1> 최소 잔류 시간 우선 스케줄링(SRTF) 방식에 대해 설명해주세요.
답변
최소 잔류 시간 우선 스케줄링이란?
- 선점형 스케줄링 알고리즘 중의 하나
- 실행 중인 프로세스 중에서 남은 실행 시간이 가장 짧은 프로세스에 CPU를 할당하는 방식
- 최소 실행 시간을 가진 프로세스를 먼저 실행하여 평균 대기 시간을 최소화하려는 목적을 갖음
특징
- 선점형
- 현재 실행 중인 프로세스보다 남은 실행 시간이 더 짧은 프로세스가 도착하면 더 짦은 프로세스가 CPU를 선점하게 됨
- 남은 실행 시간 고려
- 프로세스가 도착할 때마다 남은 실행 시간을 확인하고, 현재 실행중인 프로세스의 남은 실행 시간보다 더 짧은 경우에만 선점이 일어남
단점
- 프로세스의 남은 시간을 파악하기가 어려움
- 컨텍스트 전환 때문에 오버헤드가 발생할 수 있음
그렇다면! 최단 작업 우선 스케줄링과의 차이는?
SJF는 실행 시간이 가장 짧은 프로세스를 선택하되, 선점 여부에 따라 비선점형과 선점형으로 나뉘며, SRTF는 항상 선점형으로 현재 실행 중인 프로세스를 선점하여 최소 잔류 시간을 유지
<질문 1> 우선순위 스케줄링에 대해 설명해주세요.
답변
우선순위 스케줄링이란?
- 프로세스들에게 우선순위를 부여하고, CPU를 할당할 때 우선순위가 가장 높은 프로세스에게 CPU를 할당하는 스케줄링 알고리즘
- 우선순위 요소 ex) 프로세스의 중요도, 시간 제한, 예상 시간 등
- 비선점형 우선순위 알고리즘
- CPU를 할당받은 프로세스가 완료되거나 대기 상태로 들어가야만 다른 프로세스에게 CPU가 할당됨
- 새로 도착한 프로세스나 우선순위가 높은 프로세스가 CPU를 할당받을 때까지 대기
- 선점형 우선순위 스케줄링
- 현재 실행 중인 프로세스의 우선순위보다 더 높은 우선순위를 가진 새로운 프로세스가 도착하면, 현재 실행 중인 프로세스를 선점하고 CPU를 새로운 프로세스에 할당
단점
- 우선순위가 지나치게 높거나 낮으면 기아 또는 무한 대기 상태가 발생할 수 있음
<질문 1> 라운드 로빈 스케줄링에대해 설명해주세요.
답변
라운드 로빈 스케줄링이란?
- 가장 간단하고 평등한 형태의 스케줄링 알고리즘
- 시분할 시스템에서 널리 사용되며, 각 프로세스에 일정 시간 동안 CPU를 할당하고 순환적으로 다음 프로세스에 CPU를 할당
특징
- 시간 할당량
- 라운도 로빈은 각 프로세스에게 일정한 시간 동안 CPU를 할당
- 선점형
- 각 프로세스는 할당된 시간이 다 되면 준비 큐의 다음 프로세스에게 CPU를 양보
- 평등성
- 각 프로세스는 동일한 시간 할당량을 받기 때문에 공평하게 CPU를 이용할 수 있음
단점
- 간단하고 공평한 특성을 갖지만, 프로세스의 실행 시간이 매우 다를 경우에는 평균 대기 시간이 길어질 수 있음
<질문 1> 멀티 레벨 큐 스케줄링에 대해 설명해주세요.
답변
멀티 레벨 큐 스케줄링이란?
- 여러 개의 큐를 사용하여 프로세스를 관리하는 스케줄링 기법
- 각 큐는 다른 우선순위를 갖고 있으며, 각 우선 순위에 해당하는 큐는 독립적으로 동작
- 이러한 큐들은 서로 다른 스케줄링 알고리즘을 적용할 수 있음
특징
- 다중 큐 구성
- 시스템에는 여러 큐가 존재하고, 각 큐는 서로 다은 우선순위 레벨을 가지고 있음
- 스케줄링 알고리즘 적용
- 각 큐에는 다른 스케줄링 알고리즘을 적용할 수 있음
- ex) 높은 우선순위 큐에는 우선순위 스케줄링 알고리즘, 낮은 우선순위 큐에는 라운드 로빈 스케줄링 알고리즘
- 우선순위 조절
- 시스템이나 운영체제는 프로세스가 어느 큐로 이동할지, 또는 어떤 우선 순위를 가질지를 결정
- 프로세스 이동
- 프로세스는 일정 시간 동안 실행된 후, 해당 큐의 끝으로 이동하거나, 우선순위를 낮추거나, 다른 큐로 이동할 수 있음
-> 다양한 프로세스 특성에 맞춰 다양한 스케줄링 알고리즘을 혼합하여 사용할 수 있어서 효율적으로 시스템 자원을 활용할 수 있음
<질문 1> 멀티 레벨 피드백 큐 스케줄링에 대해 설명해주세요.
답변
멀티 레벨 피드 백 큐 스케줄링이란?
- 여러 개의 큐를 사용하여 프로세스를 관리하는 스케줄링 기법 중 하나
- 멀티 레벨 큐 스케줄링의 확장된 형태
- 다양한 우선순위 레벨을 가진 큐를 사용하면서 동시에 프로세스의 우선순위를 동적으로 조절할 수 있음
특징
- 다중 큐 구성
- 시스템에는 여러 큐가 존재하고, 각 큐는 서로 다은 우선순위 레벨을 가지고 있음
- 피드백 메커니즘
- 프로세스가 큐에서 실행되는 동안 우선순위를 낮추거나 높이는 피드백 메커니즘이 사용됨
- ex) 현재 큐에서 일정 시간 동안 실행되지 못한 프로세스는 우선순위가 높은 큐로 이동
- 다양한 우선순위 조절
- 프로세스가 오랜 시간 동안 CPU를 사용하지 못하면 우선순위를 높이고, 반대로 자주 CPU를 사용한 경우에는 우선순위를 낮출 수 있음
- 다양한 스케줄링 알고리즘 적용
- 각 큐에는 다른 스케줄링 알고리즘을 적용할 수 있음
- ex) 높은 우선순위 큐에는 우선순위 스케줄링 알고리즘, 낮은 우선순위 큐에는 라운드 로빈 스케줄링 알고리즘
'운영체제' 카테고리의 다른 글
[cs 스터디 - 운영체제 4주차] (1) | 2024.02.05 |
---|---|
[cs 스터디 - 운영체제 2주차] (0) | 2024.01.15 |
[CS스터디 - 운영체제 1주차] (0) | 2024.01.08 |
댓글