process scheduling

김대익·2022년 4월 17일
0

다중 프로그래밍

우리가 사용하는 시스템은
여러 프로세스가 존재하므로 자원을 나눠써야만하고
즉 자원을 할당할 프로세스를 선택해야한다. 이를 scheduling이라고 한다

자원을 나누는 방법에는

  • 한 자원을 여러 스레드가 번갈아가며 사용하는 시분할 관리
  • 한 자원을 분할해서 동시에 사용하는 공간분할 관리

가 있다.


scheduling의 목적

  • 작업요청 후 얼마나 빨리 응답받는지(response time)
  • 단위시간동안 작업을 얼마나 처리하는지(throughput)
  • 주어진 시간동안 자원이 활용된 시간(resource utilization)
    등등 시스템 성능을 높이기 위해서 사용한다

용어정리

위의 실행시간(Burst time)은 CPU사용 + I/O대기시간이다.
CPU사용시간이 많으면 compute-bounded, I/O대기시간이 길면 I/O bounded라고 부른다


scheduling level

long term scheduling

긴 시간에 한번 씩 일어나는 스케줄링으로

  • Job을 시스템에 등록하는 경우
  • 시스템의 프로세스 개수 조절

이 있다.
이 때 compute-bounded, I/O bounded를 적절히 섞어야 하나가 쉬는 비효율적인 상황이 적다.

mid term scheduling

swap in/out
업로드중..

short term scheduling

CPU를 대기하는 ready에서 CPU를 할당하여 running으로 올려주는 경우가 가장 빈번하다
그래서 가장 빨라야한다
업로드중..


scheduling policy

선점(preemptive)/비선점(non-preemptive) scheduling
선점은 중간에 뺏을 수 있어 context switching이 자주 일어나 overhead가 크지만 시분할, 실시간 시스템에 적합하다.
비선점은 할당받은 자원을 스스로 반납할 때까지 사용하기에 평균 응답시간이 느리지만 context switching overhead가 적다

0개의 댓글