Open Leeminw opened 4 months ago
cpu 스케쥴링이란 작업을 어느 프로세스에 할당할지 정하는 과정을 의미합니다.
* 선점형, 비선점형 스케줄링의 차이점이 뭔가요? 선점형 스케쥴링은 현재 실행중인 프로세스를 다른 우선순위가 더 높은 작업이 들어올 경우 대체할 수 있는 방법입니다. 비선점형 스케쥴링은 현재 프로세스를 점유하고 있는 작업이 있을 경우 다음 프로세스는 먼저 온 프로세스의 작업이 끝날 때까지 cpu에 접근할 수 없는 방법입니다. * 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요. 비선점 스케쥴링의 예시로 Fcfs이 있습니다. 가장 먼저 들어온 작업을 우선적으로 처리하여 차례대로 작업을 처리하는 과정입니다. 선점 스케쥴링의 예시로는 라운드-로빈 방식이 있습니다. 프로세스 당 할당 시간을 정해두고 들어온 프로세스 순서대로 처리하지만 일정 시간이 지나면 다음 프로세스에게 cpu를 넘겨주고 대기열의 맨 뒤로 이동합니다.
cpu 스케줄링이란, cpu를 효율적으로 사용하기 위해 cpu의 자원을 여러개의 프로세스에 할당하는 과정을 말합니다.
- 선점형, 비선점형 스케줄링의 차이점이 뭔가요? 선점형 알고리즘의 경우 한 프로세스가 자원을 점유 중일때, 다른 우선순위가 높은 프로세스가 들어와서 cpu 의 자원을 빼았는 방식의 스케줄링입니다. 반대로 비선점형의 경우 보유한 자원을 실행이 끝날때까지 반납하지 않는 것을 말합니다. - 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요. 선점형 알고리즘의 대표적인 것은 라운드로빈 알고리즘이 있습니다. 라운드 로빈의 경우 정해진 퀀텀의 시간만큼 자원을 할당받 고, 시간이 지나게 되면 다음 프로세스가 자원을 빼았기게 됩니다. 비선점 알고리즘의 대표적인 알고리즘은 FCFS 알고리즘이 있습니다. 먼저 도착한 작업을 순차대로 처리하는 Queue와 같은 동작을 수행합니다.
CPU를 점유해야 할 프로세스나 쓰레드가 존재할 경우, 최고의 효율을 낼 수 있도록 운영체제에서 직접 어떠한 순서로 실행 단위들이 CPU를 점유해 사용해야할지 계획을 짜는 것을 말합니다.
1. 선점형/비선점형 차이 - 선점형의 경우 특정 프로세스가 CPU를 사용 중일 경우에도 이를 가로채 CPU 점유가 가능할 경우(운영체제가 조절)이고, 비선점형의 경우 해당 프로세스가 CPU를 포기하지 않으면 다른 프로세스가 점유하지 못하는 형태를 말합니다. 2. 선점형/비선점형 스케줄링 알고리즘 - 선점형 스케줄링 알고리즘의 경우 라운드 로빈 스케줄링 방식이 있습니다. 모든 프로세스들이 순서대로 일정한 시간 단위만큼 CPU를 사용할 수 있도록 할당하는 방식입니다. 시간 단위가 작을 수록 오버헤드가 크지만 응답시간이 빨라질 수 있고, 클수록 스위칭 오버헤드가 작지만 CPU를 오래 점유하는 프로세스가 존재할 경우 다른 프로세스들이 응답하지못해 전체적인 응답시간이 길어질 수 있습니다. - 비선점형 스케줄링 알고리즘의 경우 SJF(Shortest Remaining Time First Scheduling)이 있습니다. CPU 점유 시간이 가장 짧은 프로세스에 CPU를 할당하는 방식입니다. 해당 방식은 평균 대기 시간을 최소화할 수 있지만, 점유 시간이 큰 프로세스들이 계속해서 뒤로 밀려날 수 있는 단점이 있습니다.
문제
CPU 스케줄링에 대해 설명해 주세요
예상 꼬리 질문
- 선점형, 비선점형 스케줄링의 차이점이 뭔가요? - 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요.들어가야 할 키워드 정리