본문/내용
1. 기본 원리
2. 스케쥴링 시 고려사항
3. 선점형 OS 알고리즘
4. 스케쥴링의 진행 시점
5. 우선순위
Ⅲ. 중간 과제를 마치고 느낀 점
Ⅰ. Linux Scheduling
Linux 스케줄링은 운영체제에서 프로세스를 실행하기 위해 CPU 사용을 관리하는 중요한 기법이다. Linux는 멀티태스킹을 지원하며, 여러 프로세스가 동시에 실행되는 환경에서도 각 프로세스에 적절한 CPU 시간을 할당하는 것을 목표로 한다. Linux의 스케줄러는 시스템의 상태와 수요에 따라 프로세스의 우선순위를 동적으로 조정하며, 이는 시스템 성능을 극대화하는 데 중요한 역할을 한다. Linux는 다양한 스케줄링 알고리즘을 도입하여 프로세스의 실행 순서를 관리한다. 기본적으로 사용되는 스케줄러는 Completely Fair Scheduler(CFS)이며, 이는 프로세스 간의 공정성을 중시한다. CFS는 각 프로세스가 CPU를 사용할 수 있는 시간을 균등하게 분배하려고 하며, 이를 위해 가상 실행 시간을 측정하여 스케줄링 결정을 내린다. 이 방식은 프로세스의 우선순위를 실시간으로 계산하여, CPU를 가장 적게 사용한 프로세스가 먼저 실행되는 형태를 취한다. 이를 통해 CPU 자원의 효율적인 분…