CPU scheduling

김태성·2024년 2월 20일
0

내실 다지기

목록 보기
2/11
post-thumbnail

리사 수 찬양이 있겠습니다

이번에 알아볼 내용은 cpu 스케줄링에 관한 내용이다.
프로세스가 작동하려면 여러 자원을 받아야 하는데, 그 중 cpu도 포함이 된다. 이 할당 과정은 무작위로 이루어지는 것이 아닌 복잡한 구성으로, 효율적으로 작동하게 되는데 어떻게 작동되는지 알아보자.

CPU 스케줄링이란?

여러 프로그램을 돌리기 위해서 cpu 할당을 효율적으로 할 필요가 있는데, 프로세스들에게 cpu 등의 자원 할당을 적절하게 함으로써 시스템 성능을 개선하는 것이 cpu 스케줄링이다.

유형

  1. 장기 스케줄러 : 어떤 프로세스를 ready 큐에 넣을것인가
  • 메모리와 디스크 사이의 스케줄링을 담당한다.

  • 프로세스에 memory를 할당한다.

  • 프로세스의 수를 조절하는 역할을 한다.

  • 가끔 호출되기 때문에 속도가 느려도 된다.

  1. 중기 스케줄러 : 메모리에 적재된 프로세스 수를 관리
  • 프로세스가 너무 많아서 시스템 성능이 저하되는 경우를 대비

  • 스와핑 : 메모리에 올라와 있는 프로세스의 수를 조절하는 역할을 한다. 프로세스당 보유하고 있는 메모리량이 너무 적어지면 쓰레싱이 발생

  • 스왑아웃 : 쓰레싱이 발생하면 프로세스 중 일부의 메모리를 통째로 빼앗는다.

  • 스왑아웃 당한 프로세스는 중지상태가 된다.
    중지준비 : 준비 상태의 프로세스가 중기 스케줄러에 의해 디스크로 스왑아웃
    봉쇄중지 : 봉쇄 상태의 프로세스가 중기 스케줄러에 의해 디스크로 스왑아웃

  1. 단기 스케줄러 : 실행할 프로세스를 선택해서 CPU를 할당
  • CPU 스케줄러라고도 하며 준비 상태의 프로세스 중 어떤 프로세스가 실행될지 결정한다.

  • 일반적으로 스케줄러라고 하면 단기 스케줄러를 의미한다.

  • ms단위로 호출되기 때문에 속도가 매우 빨라야 된다.

정리
장기 스케줄러 : 생성 상태 관리
중기 스케줄러 : 중단된 준비,준비,중단된대기,대기 관리
단기 스케줄러 : 준비,실행,대기 관리

단계

  • 1단계 : 작업 스케줄링이라고도 한다. 프로세스의 자원 할당 순서를 결정함.

  • 2단계 : 어떤 프로세스에게 CPU를 할당할지 결정한다. 프로세스를 보류/활성화 시킴으로써 시스템 부하 조절/메모리 관리를 한다.
    1단계/3단계의 완충조절을 한다.

  • 3단계 : CPU가 사용가능할 경우 어떤 프로세스에게 배당할지 결정한다.

선점형/비선점형

선점형 스케줄링
어떤 프로세스가 CPU를 할당받아 실행 중에 있어도 다른 프로세스가 실행 중인 프로세스를 중지하고 CPU를 강제로 점유할 수 있으며 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있다.

  • 운영체제가 프로세서 자원을 선점하고 있다가 각 프로세스의 요청이 있을때 특정 요건들을 기준으로 자원을 배분하는 방식.

비선점형 스케줄링
어떤 프로세스가 CPU를 할당 받으면 그 프로세스가 종료되거나 입출력 요구가 발생하여 자발적으로 중지될 때까지 계속 실행하도록 보장한다.

  • 다음 프로세스와 관계없이 응답시간을 예상할 수 있다.
  • 선점방식보다 스케줄러 호출 빈도가 낮고, 문맥 교환에 의한 오버헤드가 적다.
  • 일괄처리 시스템에 적합하다.(일괄처리 : 사용자의 개입 없이 전체 작업을 처리하는 것)
  • cpu사용시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수도 있어서, 처리율이 떨어진다.

정적 스케줄링/동적 스케줄링

정적 스케줄링 : 프로세스에 부여된 우선순위가 바뀌지 않는다.
동적 스케줄링 : 스케줄링 과정에서 프로세스의 우선순위를 변동시킨다.

스케줄링 알고리즘

비선 점 프로세스 스케줄링

  1. FCFS 스케줄링(first come first served scheduling)
    먼저 자원 사용을 요청한 프로세스에게 자원을 할당해주는 방식.
    FIFO 형식과 비슷하다.

  2. SJF 스케줄링(shortest job first scheduling)
    평균 대기시간을 최소화하기 위해 CPU 점유율이 가장 짧은 프로세스에 CPU를 먼저 할당하는 방식.
    요구시간이 긴 프로세스는 항상 양보를 해야 하기 때문에 기아상태가 발생할 수 있으며, 프로세스의 요구시간을 정확하게 계산하기 힘들다는 문제점이 있다.

  3. HRRN 스케줄링(highest response ratio next scheduling)
    프로세스 처리의 우선 순위를 CPU 처리 기간과 해당 프로세스의 대기 시간을 동시에 고려해 선정하는 알고리즘이다.
    우선순위 식은 다음과 같다.
    Priority = (Waitingtime + Estimated run time)/estimated run time
    즉 대기시간이 길어지면 우선순위가 높아진다.

선점 프로세스 스케줄링

  1. RR 스케줄링(round robin scheduling)
    시분할 시스템을 위해 설계된 선점형 스케줄링의 하나. 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위로 CPU를 할당하는 방식의 알고리즘이다.
    짧은 시간을 수행하고 준비 큐의 끝으로 밀려나기 때문에 Context Switching의 오버헤드가 크지만 응답시간이 짧다.

  2. MLFQ 스케줄링(multi level feedback queue scheduler)

4bsd
Networked Interactive Computing Environment(nice)

profile
닭이 되고싶은 병아리

0개의 댓글

관련 채용 정보