3-2/OS

CPU 스케쥴링

개발자 덕구🐾 2021. 12. 23. 15:24
728x90

CPU란?

기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙 처리장치

사용자 프로그램의 수행은 cpu작업, 입출력 작업의 반복으로 구성된다.
프로그램의 종류마다 빈도와 길이가 다른데

사용자프로그램이 cpu를 가지고 빠른 명령을 수행하는 단계인 CPU버스트

I/O 요청이 발생해 커널에 의해 입출력 작업을 진행하는 비교적 느릴 단계를 I/O버스트라고 한다.

이를 기준으로 프로세스를 나눈다.

I/O 바운드 프로세스

I/O 요청이 자주 일어나 cpu 버스트가 짧은 프로세스

cpu 바운드 프로세스

I/O 요청이 적제 일어나 cpu 버스트가 긴 프로세스

I/O 바운드 프로세스는 주로 사용자와 인터렉션 하는 프로그램이므로 cpu 스케쥴링에서
이 프로세스가 우선적으로 cpu를 사용할수있도록 하는 스케쥴링이 필요하다.

CPU 스케쥴러

준비상태의 프로세스 중 어떤 프로세스에 cpu를 할당할지 결정하는 OS의 코드

  • 비선점형 방식과 선점형 방식으로 나뉜다.

비선점형 -> 자진 반납할때 까지 빼앗지않음
선점형 -> 강제로 빼앗기가능

디스패처

새롭게 선택된 프로세스가 cpu를 할당받고 작업을 원활히 수행하도록 환경설정를 하는 OS의 코드

스케쥴링의 성능 평가를 위해 여러 지표가 이용된다.

1) cpu 이용률
2) 처리량(throughput)
3) 소요시간
4) 대기시간
5) 응답시간


***

처리량

주어진 시간동안 준비큐에서 기다리는 프로세스 중 몇개를 끝냈는지

소요시간

준비큐에서 기다린 시간 + cpu를 사용한 시간 ( 해당 cpu버스트가 완료될때까지)

대기시간

준비큐에서 cpu를 할당받기위해 기다린 시간의 합

응답시간

첫번째 cpu를 획득하기까지 기다린 시간

스케쥴링 알고리즘

선입선출 (FCFS)

준비큐에 도작한 시간 순서대로 cpu를 할당받는 방식

단점은 cpu버스트가 짧은 프로세스가 cpu 버스트가 긴 프로세스보다 늦게 도착했을경우
오래 기다려야한다는 것이다.
이른 콘보이현상이라고 한다.

최단작업 우선 스케쥴링 (SJF)

shortest-job-First, cpu가 가장 짧은 프로세스에게 먼저 cpu를 할당한다.

비선점형 방식과 선점형 방식으로 나뉘는데
비선점형 방식은 일단 cpu를 획득하면 자진 반납할때 까지 빼앗지않는다!

선점형은 지금 cpu가 cpu버스트가 짧은 프로세스에 할당 하였어도 새롭게 cpu 버스트가 더 짧은 프로세스가 도착하면 cpu를 빼앗아
더 짧은 프로세스에게 cpu를 할당한다.

이 방법의 현실적으로 어려운 부분은 cpu버스트의 시간을 미리 알수없다는 것이다.
그래서 과거의 cpu 버스트 시간을 이용해 예측한다.

단점은 cpu 버스트가 긴 프로세스는 준비큐에서 계~~속 기다려야한다.
이것을 기아현상이라고 한다.

우선순위 스케쥴링

준비큐에서 기다리는 프로세스 중 우선순위가 가장 높은 프로세스에게 먼저 cpu를 할당하는 방식

우선순위 방식도 기아 현상이 발생할 수 있는데 이를 노화기법을 사용해
오래된 프로세스의 우선순위를 조금씩 높여 cpu를 할당받을 수 있게 한다 [경로 사상]

라운드 로빈 스케쥴링

할당시간을 정햐여 이 시간을 초과하면 프로세스 로부터 cpu를 회수하여 준비큐에 있는 다른 프로세스에게 cpu를 할당한다.

  • 시분할 시스템의 성질을 가장 잘 활용함

할당시간이 너무 길면 FCFS와 같은 결과를 만들고

할당시간이 너무 짧으면 문맥교환을 하는데 오버헤드가 길어져서 효율적이지 못하다.


* SJF 방식보다 평균대기 시간은 길지만 응답시간을 짧다. 할당시간 만큼만 하고 응답을 할수있기때문이다.
반응형

'3-2 > OS' 카테고리의 다른 글

메모리관리  (0) 2021.12.25
프로세스의 생성(fork, exec,exit)  (0) 2021.12.23
프로세스의 개념  (0) 2021.12.22
OS의 목표와 정의  (0) 2021.12.20