본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

선점형 방식(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 9. 25.
728x90
반응형
선점형 방식

선점형 방식

선점형 방식(preemptive scheduling)은 컴퓨터 운영체제와 스케줄링 알고리즘에 관련된 개념으로, 

다중 프로세스 또는 스레드를 관리하고 CPU 자원을 할당하는 방법 중 하나입니다. 

이 방식은 여러 프로세스나 스레드가 동시에 실행될 수 있는 환경에서 

각 프로세스나 스레드에 CPU 시간을 할당하는 방법을 기술합니다.

 

선점형 스케줄링 특징

우선순위 부여: 

각 프로세스나 스레드에 우선순위를 부여하여 우선순위가 높은 작업이 CPU 시간을 

우선적으로 할당받을 수 있습니다.

시간 할당량(Time Quantum 또는 Time Slice): 

각 프로세스나 스레드는 일정 시간 동안 CPU를 사용할 수 있는 시간 할당량을 받습니다. 

이 시간 할당량이 끝나면 CPU를 반납하고 다른 프로세스나 스레드에게 양보합니다.

선점 가능성: 

선점형 방식은 실행 중인 프로세스나 스레드를 언제든지 중단하고 다른 프로세스나 스레드로 

전환할 수 있습니다. 

따라서 우선순위가 높은 작업이 나타날 경우, 

현재 실행 중인 작업을 중단하고 새로운 작업을 실행시킬 수 있습니다.

더 공평한 자원 공유: 

선점형 방식은 모든 프로세스나 스레드에게 CPU 시간을 공평하게 분배할 수 있도록 도와줍니다. 

이로 인해 우선순위가 낮은 작업이 영원히 블록되지 않고 CPU 시간을 할당받을 기회가 생깁니다.

선점형 스케줄링은 실시간 운영체제나 멀티태스킹 운영체제에서 주로 사용됩니다. 

실시간 시스템에서는 정확한 시간에 작업을 완료해야 하므로 선점형 방식이 필요합니다. 

또한 멀티태스킹 운영체제에서는 여러 작업을 동시에 처리하기 위해 

선점형 스케줄링을 사용하여 CPU 자원을 효과적으로 관리합니다.

대표적인 선점형 스케줄링 알고리즘으로는 Round Robin, Priority Scheduling 등이 있으며, 

이러한 알고리즘을 통해 CPU 자원을 효율적으로 활용하고 다양한 작업을 동시에 처리할 수 있습니다.

 

선점형 방식 대표적인 예

Round Robin (라운드 로빈): 

Round Robin은 각 프로세스나 스레드에게 동일한 시간 할당량(타임 슬라이스)을 부여하고, 

이 시간이 지나면 해당 프로세스나 스레드를 중단하고 

다음 프로세스나 스레드에게 CPU를 할당하는 방식입니다. 

선점형 방식 중에서 가장 간단한 형태로, 공평한 CPU 시간 분배를 지향합니다.

Priority Scheduling (우선순위 스케줄링): 

Priority Scheduling은 각 프로세스나 스레드에게 우선순위를 할당하고,

CPU를 할당할 때 가장 높은 우선순위를 가진 작업에게 CPU를 할당하는 방식입니다.

우선순위가 높은 작업이 나타나면, 현재 실행 중인 작업을 선점하고 CPU를 넘겨줍니다.

이 방식은 실시간 시스템에서 많이 사용됩니다.

Shortest Remaining Time First (SRTF): 

SRTF는 각 작업의 남은 실행 시간을 고려하여 가장 짧은 실행 시간을 가진 작업에게 

CPU를 할당하는 방식입니다. 

이 방식은 선점형 우선순위 스케줄링의 특수한 경우로, 

최소 대기 시간을 갖는 작업이 CPU를 더 빨리 할당받을 수 있도록 돕습니다.

Multi-Level Queue Scheduling (다단계 큐 스케줄링): 

다단계 큐 스케줄링은 다양한 우선순위 레벨을 가진 큐를 사용하여 작업을 관리합니다. 

각 큐는 서로 다른 우선순위를 가지며, 레벨별로 스케줄링 알고리즘을 사용할 수 있습니다. 

예를 들어, 높은 우선순위 큐에서는 Round Robin을 사용하고, 

낮은 우선순위 큐에서는 FCFS(First-Come, First-Served)를 사용할 수 있습니다.

Real-Time Operating Systems (RTOS): 

실시간 운영체제는 실시간 응용 프로그램을 위한 선점형 스케줄링을 특히 중요시합니다. 

이러한 운영체제는 정확한 시간에 작업을 완료해야 하는 응용 프로그램을 위해 

선점형 스케줄링 알고리즘을 사용합니다.

이러한 선점형 스케줄링 방식은 다양한 운영체제와 응용 프로그램에서 사용되며, 

CPU 시간을 효과적으로 분배하고 다중 작업을 관리하는데 도움을 줍니다.

 

 

선점형 방식 자세히알기!!

Round Robin (라운드 로빈): 

해성이가 학교에서 각 수업 시간(타임 슬라이스)을 할당받는 것으로 생각해봅시다. 

각 수업 시간이 끝나면, 해성이는 그 수업을 중단하고 다음 수업으로 이동합니다. 

모든 수업 시간은 동일한 길이를 가지며, 해성이는 공평하게 모든 수업에 참여합니다.

Priority Scheduling (우선순위 스케줄링): 

해성이가 학교에서 다양한 활동과 과목에 참여하며 각각에 우선순위를 부여합니다. 

예를 들어, 시험일은 높은 우선순위를 갖고 수업, 동아리 활동, 놀이 시간 등은 낮은 우선순위를 갖습니다. 

해성이는 우선순위가 높은 활동이 나타나면 현재 하는 활동을 중단하고 그 활동에 참여합니다.

Shortest Remaining Time First (SRTF): 

해성이가 학교 과목 중에서 가장 짧은 남은 공부 시간을 가진 과목을 우선적으로 공부하는 방식입니다. 

예를 들어, 시험 직전에는 시험 공부 시간이 짧은 과목을 먼저 공부하고, 

나중에는 더 많은 시간이 필요한 과목을 공부합니다.

Multi-Level Queue Scheduling (다단계 큐 스케줄링): 

학교 활동을 여러 다른 큐로 나눕시다. 

높은 우선순위 큐에는 공부나 시험과 같이 중요한 학교 활동이 들어가고, 

낮은 우선순위 큐에는 놀이나 동아리 활동과 같이 덜 중요한 활동이 들어갑니다. 

해성이는 현재 속한 큐에 있는 활동을 하고, 

필요에 따라 더 높은 우선순위 큐로 이동하여 더 중요한 활동을 할 수 있습니다.

이러한 학교 비유를 통해 선점형 스케줄링의 원리와 다양한 방식을 이해할 수 있습니다. 

해성이는 자신의 우선순위와 각 활동의 요구사항에 따라 학교 생활을 관리하고 최적의 방식으로

시간을 활용하려고 노력합니다.

 

 

*바쁜 사람을 위한 깜찍한 정리

선점형 방식은 컴퓨터 운영체제와 스케줄링 알고리즘의 개념으로, 다중 프로세스 또는 스레드를 관리하고 CPU 자원을 할당하는 방법 중 하나입니다. 여러 프로세스나 스레드가 동시에 실행될 수 있는 환경에서 CPU 시간을 할당하는 기술입니다. 선점형 방식의 특징으로는 우선순위를 부여하여 각 프로세스나 스레드를 관리하고, CPU 시간을 할당할 때 우선순위가 높은 작업에게 우선적으로 할당하는 Priority Scheduling과, 모든 프로세스에게 동일한 시간 할당량을 부여하고 Round Robin 방식으로 CPU 시간을 할당하는 방법이 있습니다. 선점형 방식은 프로세스나 스레드에게 시간 할당량을 부여하고, 해당 시간이 지나면 해당 프로세스나 스레드가 중단되고 다른 프로세스나 스레드에게 CPU를 양보하는 방식입니다. 이러한 특징을 가지고 있어 다양한 스케줄링 알고리즘을 통해 CPU 자원을 효율적으로 관리합니다.
728x90
반응형