CPU스케줄링

임지원·2024년 6월 12일

CPU 스케줄링

Ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할 지 결정한다.


목적

CPU 스케줄링의 목적은 모든 프로세스가 적당히, 공평히, 효율적으로 자원을 할당 받는 것이다.

  • 공평성 : 프로세스에게 자원을 배분하는 과정이 공평해야함
  • 효율성 : 시스템 자원이 쉬는 시간이 없어야 함
  • 안정성 : 중요 프로세스들은 우선권을 주어야 하고, 프로세스가 증가해도 안정적으로 돌아가야함
  • 확장성 : 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되야함
  • 반응 시간 보장 : 프로세스의 요구가 있을 경우 적절한 시간 안에 반응을 해줘야 함
  • 무한 연기 방지 : 특정 프로세스의 작업이 무한정 연기되면 안 됨

고려사항

1. 선점형 / 비선점형

  • 선점형 스케줄링
    1. 실행상태에 있는 프로세스의 작업 중단하고 새로운 작업 시작 가능
    2. Context Switch로 인한 오버헤드 발생할 수 있다.
    3. 저수준 스케줄러에 사용됨
  • 비선점형
    1. 프로세스가 CPU반환 시 까지 다른 프로세스는 CPU 점유 불가능
    2. 효율적일 수 있으나 전체 처리율이 떨어질 수 있다.

2. 프로세스 우선순위

  • 프로세스간에도 우선순위가 존재할 수 있다.
  • 프로세스는 커널 프로세스와 일반 프로세스로 나뉜다.
  • 커널 프로세스가 보통 우선순위가 높다.
  • 우선순위가 높다는 것은 일반적으로 빨리 자주 실행된다는 것이다.
  • 일반 프로세스 간에도 우선순위가 존재한다.

3. CPU bound process / IO bound process

  • CPU 작업을 CPU버스트, 입출력 작업을 I/O버스트 라고한다.
  • CPU 버스트가 많은 프로세스를 CPU bound process, IO버스트가 많은 프로세스를 IO bound process 라고 한다.
  • IO는 금방 대기로 빠지고 CPU는 해당 시간을 대부분 사용하는 경우가 많다.
  • 따라서 IO bound process의 우순위를 높이는 것이 효율적이다.

4. 전면 프로세스 / 후면 프로세스

  • 전면 프로세스는 GUI를 사용하여 화면 맨 앞에 놓인 프로세스이다.
  • 후면 프로세스는 사용자와 상호 작용이 없다.
  • 따라서 즉각 반응해야 하는 전면 프로세스를 우선 처리하는 것이 합리적이다.
profile
백엔드 새싹

0개의 댓글