CPU 스케줄링 개요

라마·2023년 7월 17일

운영체제

목록 보기
15/32

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.

자원이 부족한 곳에는 항상 스케줄링이 존재

일상 생활 속에서도 스케줄링이 존재합니다.

컴퓨터 시스템 안에서도 역시 여러 스케줄링이 존재합니다.

  • 작업 스케줄링
    • 대기중인 배치 작업 중에서 메모리에 적재할 작업
  • CPU 스케줄링
    • 프로세스 / 쓰레드 중 하나를 선택하여 CPU 할당
  • 디스크 스케줄링
    • 디스크 장치 내에서 입출력 요청 처리 순서
  • 기타 등등 ( 프린터, 네트워크 등 )

다중 프로그래밍과 스케줄링

다중 프로그래밍을 도입함으로써 여러 프로세스가 하나의 CPU 를 돌아가며 사용하게 되었습니다.

이를 위해 어떤 순서로 작업을 시킬지에 대한 스케줄링 개념이 필요하게 되었습니다.

  • 이걸 잘하면
  • CPU 의 유휴 ( 대기 ) 시간이 줄어들고
  • CPU 활용률 향상!

그래서 다중 프로그래밍에선 2가지 스케줄링 개념이 필요합니다.

  • 작업 스케줄링 ( job scheduling )
    • 디스크 장치로부터 메모리에 올릴 작업 선택하기
  • CPU 스케줄링 ( CPU scheduling )
    • 메모리에 적재된 작업 중 CPU 에 실행시킬 프로세스 선택

스케줄링 단계에 따른 구분

발생하는 빈도 및 할당 자원에 따라 구분됩니다.

  • 고수준 스케줄링 ( Long-Term Scheduling ) ~ Job Scheduling
    • 시스템 내에서 동시에 실행 가능한 프로세스의 갯수 결정
  • 중간 수준 스케줄링 ( Mid-Term Scheduling ) ~ Swapping
    • 전체 시스템의 활성화된 프로세스 수 조절 → 과부화 막음
  • 저수준 스케줄링 ( Short-Term Scheduling ) ~ Processor/CPU scheduling
    • 어떤 프로세스에 CPU 를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정

CPU 스케줄링의 기본적인 목표는 CPU 활용률을 극대화 하는 것 입니다.

( CPU 를 놀지 않게 하는 것! )

이걸 어떻게 설정하냐 하면, 타임 슬라이싱을 도입해서 설정합니다.

즉, 대부분 운영체제에선 타임 슬라이싱 기법을 도입하여 하나의 쓰레드 ( 혹은 프로세스 ) 가 너무 오랫동안 CPU 를 사용하는 걸 허락하지 않습니다.

  • 타임 슬라이스 ( time slice )
    • 스케줄된 쓰레드에게 한 번 할당하는 CPU 시간
    • 커널이 스케줄을 단행하는 주기 시간

그러면.. 한번에 어느정도의 시간을 할당해야 적당한지는 아래와 같은 기준들을 고려해서 정해집니다.

  • CPU 활용률 ( CPU utilization ) / Efficiency
    • 전체 시간 중 CPU 의 사용 시간 비율, 운영체제 입장
  • 처리율 ( throughput )
    • 단위시간당 처리하는 프로새스의 갯수, 운영체제 입장
  • 공평성 ( fairness ) / Load balancing
    • CPU 를 쓰레드들에게 공평하게 배분, 사용자 입장
    • 기아현상이 발생하지 않도록 스케줄링

■ 시스템 적인 측면, 높을 수록 좋음

  • 응답시간 ( response time )
    • 명령에 응답하는데 걸리는 시간, 사용자 입장
  • 대기시간 ( waiting time )
    • 쓰레드가 준비 큐에 머무르는 시간, 운영체제와 사용자 입장
  • 소요 시간 ( turnarount time )
    • 프로세스 ( 혹은 쓰레드 ) 가 컴퓨터 시스템에 도착한 후 완료될 때 까지 걸린 시간, 사용자 입장

■ 알고리즘적인 측면, 낮을수록 좋음

  • 시스템 정책 ( policy enforcement )
    • 컴퓨터 시스템의 특별한 목적을 달성하기 위한 스케줄링, 운영체제 입
  • 자원 활용률, 우선순위 등등

2개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

1개의 답글