본문/내용
1. 스케줄링이란
스케줄링은 운영체제에서 프로세스나 태스크를 관리하는 중요한 기법으로, CPU와 같은 자원을 효율적으로 배분하기 위한 방법이다. 컴퓨터 시스템이 다양한 프로그램을 실행할 때, 동시에 여러 프로세스들이 존재하게 되며, CPU는 단일 자원으로 한 번에 하나의 프로세스만 실행할 수 있다. 이때 어떤 프로세스가 CPU를 언제 획득할지를 결정하는 과정을 스케줄링이라고 한다. 주어진 시스템 자원을 최대한 활용하고, 사용자 요구에 신속하게 반응하기 위해서는 효과적인 스케줄링이 필요하다. 스케줄링의 목표는 여러 가지가 있다. 첫째로, CPU 이용률을 극대화하는 것이 중요하다. 즉, CPU가 유용한 작업을 처리하는 시간을 최대화하고, 유휴 상태에 있는 시간을 최소화하는 것을 목표로 한다. 둘째로, 대기 시간과 응답 시간을 최소화하는 것이 필요하다. 사용자가 프로세스를 실행하였을 때, 그 작업이 실제로 완료되기까지 걸리는 시간이나, 작업이 수행되기 시작하기까지의 대기 시간을 줄이는 것이 중요하다. 셋째로, 공정성을 보장해야 한다. 여러 프로세스가 존재할 경우, 특정 프로세스가 지나치게 오랜 시간 동안 CPU를 점유하는 것을 방지해야…