CPU scheduling 1: burst time, 스케줄링이 필요한 이유

ㅎㅎ·2023년 7월 13일
0

운영체제, 반효경

목록 보기
7/19
post-thumbnail

Process의 Burst

  • Burst time: I/O나 cpu 사용이 지속되는 기간을 burst time이라고 함
  • 프로세스는 대체로 I/O burst와 CPU burst가 번갈아 발생함.

CPU-burst Time의 분포

  • Process 분류: I/O bound, CPU bound
    • Process는 I/O 작업이 빈번하게 발생하는지, CPU 연산이 오래 지속되는지에 따라 I/O or CPU bound로 나뉨
    • 사용자와 상호작용을 자주 하는 interactive job의 경우 I/O가 빈번하게 발생
    • 수학, 과학 연구와 같은 작업의 경우 CPU를 오랫동안 사용(I/O 없이)
    • burst time 그래프를 보면 I/O bound의 경우 CPU를 짧은 시간 빈번하게 할당 받고, CPU bound의 경우 긴 시간 드물게 할당 받음.
    • I/O bound가 CPU를 빈번하게 할당 받는다고 해서 CPU 사용 시간이 CPU bound보다 길다는 말은 아님. 짧게 여러번 사용하는 것.
  • CPU scheduling이 필요한 이유
    • interactive job인 I/O bound 프로세스의 경우 사용자의 불편을 줄이기 위해 response를 즉각적으로 보내야 하는데, CPU bound 프로세스가 CPU를 할당받아 내놓지 않으면 이를 하지 못하게 됨. 따라서 schedulig을 통해 적절한 시기에 response를 내놓을 수 있도록 CPU를 관리해야 함
    • CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용

Scheduler와 Dispatcher

  • CPU Scheduler: Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다.
  • Dispatcher: CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다.(문맥교환)
    • 어떻게 넘김? 문맥교환 작업이 일어나고 PCB에서 해당 프로세스의 메모리 주소를 보고 찾아가서 이어서 기계어를 읽고 명령을 수행하는 작업을 실행하겠지?
  • 둘 다 HW나 SW가 아니라 O.S 상의 코드
  • CPU scheduling이 필요한 경우는 다음과 같은 상태 변화가 있는 경우
    1. Running ⇒ Blocked(EX: I/O 요청하는 시스템 콜)
    2. Running ⇒ Ready(EX: 할당시간 만료로 time interrupt)
    3. Blocked ⇒ Ready(EX: I/O 완료 후 인터럽트)
    4. Terminate
    • 1, 4 의 경우 nonpreemptive, All other scheduling is preemtive.
  • Preemtive(선점) & Nonpreemtive(비선점)
    • 선점: CPU를 더 사용해야 하지만 스케줄링에 의해 CPU를 강제로 빼앗김
    • 비선점: CPU를 더 사용해야 할 필요가 없어져 자진해서 반납하기 전까지 빼앗지 않음

Scheduling Criteria(Performance Index = 성능 척도)

  • 시스템의 입장에서

    • CPU utilization(이용률)
      • 전체 시간 중 CPU가 놀지 않고 일한 시간: keep the CPU as busy as possible
    • Throughput(처리량)
      • 단위 시간 당 처리 한 프로세스의 수
      • Number of processes that complete their execution per time unit
  • 프로세스의 입장에서

    • Turnaround time(소요시간, 반환시간)

      • 특정 프로세스를 실행한 시간, 프로세스가 완전히 종료됨을 의미하는 것이 아니라 한 번 CPU를 할당받았을 때의 CPU burst가 끝나는 시간까지를 의미.
      • amount of time to execute a particular process
    • Wating time(대기시간)

      • Ready queue에서 기다리는 시간의 합, 선점형 프로세스라면 종료될 때까지 기다리게 되는 모든 시간의 합을 의미.
      • amount of time a process has been waiting in the ready queue
    • Response time(응답시간)

      • 처음으로 CPU를 할당 받아서 첫 응답까지 걸리는 시간
      • amount of time it takes from when a request was submitted until the first response is produced, not output.

    Q. 첫 응답에서 '응답'은 무엇을 의미하나?

profile
Hello World

0개의 댓글