Replies: 5 comments
-
Beta Was this translation helpful? Give feedback.
-
Preemptive scheduling (선점형 스케줄링)
�Context Switching 같은 부가적인 작업으로 인해 낭비가 생깁니다.
하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합 Non preemptive scheduling (비선점형 스케줄링)어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식
CPU 사용 시간이 긴 프로세스 때문에 CPU 사용 시간이 짧은 여러 프로세스가 오랫동안 기다리게 되어 전체 시스템의 처리율이 떨어집니다.
|
Beta Was this translation helpful? Give feedback.
-
cpu schedulingRR을 사용할 때, Time Slice에 따른 trade-off를 설명해 주세요.✅ 답변 싱글 스레드 CPU 에서 상시로 돌아가야 하는 프로세스가 있다면, 어떤 스케쥴링 알고리즘을 사용하는 것이 좋을까요? 또 왜 그럴까요?✅ 답변 RR 스케줄링 → 상시 프로세스의 경우 우선순위가 높고 연속적인 실행이 보장되어야 하기에 주기적으로 CPU를 할당받아야하고 그렇다고 CPU를 독점하면 안되기 때문 동시성과 병렬성의 차이에 대해 설명해 주세요.✅ 답변 동시성 : 하나의 CPU에서 작업을 번갈아가며 진행하여 눈에는 동시에 진행되는 것처럼 보임, 문맥 교환을 통해 작업 간 전환 타 스케쥴러와 비교하여, Multi-level Feedback Queue는 어떤 문제점들을 해결한다고 볼 수 있을까요?✅ 답변 선입 선처리 스케줄링과 RR 스케줄링에서 발생하는 호위 효과를 해결할 수 있고, 우선순위 스케줄링에서 발생할 수 있는 기아 현상을 에이징 기법을 이용하여 해결할 수 있다. FIFO 스케쥴러는 정말 쓸모가 없는 친구일까요? 어떤 시나리오에 사용하면 좋을까요?✅ 답변 CPU이용 시간이 짧은 프로세스들이 많은 경우, 프로세스 처리 순서가 중요한 경우, 오버헤드를 최소화해야 하는 경우 우리는 스케줄링 알고리즘을 "프로세스" 스케줄링 알고리즘이라고 부릅니다. 스레드는 다른 방식으로 스케줄링을 하나요?✅ 답변 커널 수준 스레드 : 커널이 직접 스레드를 관리하고 스케줄링→ 스레드가 독립적으로 CPU를 할당받음 → 다중 CPU 활용 가능 장점
단점
유저 수준 스레드 : 사용자 영역에서 스레드를 관리하고 스케줄링
장점
→ 블로킹 문제 해결 및 다중 CPU 활용 가능 |
Beta Was this translation helpful? Give feedback.
-
각 CPU 스케줄링의 단점FCFS 스케줄링[선입 선처리 스케줄링](First Come First Served Scheduling)→ 프로세스 대기 시간이 매우 길어질 수 있음(호위 효과) → 비선점형 : CPU를 독점으로 사용할 수 있음 → 응답 시간 증가 : 짧은 작업도 대기 시간이 길어질 수 있음 SJF 스케줄링[최단 작업 우선 스케줄링](Shortest Job First Scheduling)→ 우선순위가 높은 프로세스인데 늦게 처리될 수 있음 → 우선순위 역전 : 짧은 작업 위주로 처리되어 긴 작업이 계속 대기할 수 있음(기아 현상) → 프로세스 실행 시간 예측 어려움 → 비선점형 : CPU를 독점으로 사용할 수 있음 RR 스케줄링(round robin scheduling)→ 타임 슬라이스가 클 경우 : FCFS 스케줄링과 다를게 없고 호위 효과가 생길 수 있음 → 타임 슬라이스가 작은 경우 : 문맥 교환이 자주 발생하여 오버헤드가 발생할 수 있음 → 프로세스 성격에 따른 비효율성 : 짧은 작업이 긴 작업과 동일한 타임 슬라이스를 사용해 비효율적 SRT 스케줄링[최소 잔여 시간 우선 스케줄링](Shortest Remaining Time) : SJF + RR→ 기아 현상이 발생할 수 있음 → 문맥 교환 오버헤드 발생할 수 있음 → 예상 실행시간 예측하기 어려움 우선순위 스케줄링(priority scheduling)→ 우선순위가 낮은 프로세스인 경우 기아 현상이 나타날 수 있음 다단계 큐 스케줄링(multilevel queue scheduling)→ 프로세스들이 큐 사이를 이동할 수 없으므로 기아 현상이 발생할 수 있음 → 유연성 부족 : 큐와 스케줄링 정책이 고정적이라 동적 환경에서 비효율적 다단계 피드백 큐 스케줄링(multilevel feedback queue scheduling)→ 프로세스가 큐를 자주 이동하면서 문맥 교환 오버헤드가 발생할 수 있음 → 설정이 복잡함 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
cpu scheduling
Beta Was this translation helpful? Give feedback.
All reactions