6강. 프로세서관리 - Tistorycfs8.tistory.com/upload_control/download.blog?fhandle... · 2015....

29
6강. 프로세서 관리 방송대 컴퓨터과학과 이병래 교수

Transcript of 6강. 프로세서관리 - Tistorycfs8.tistory.com/upload_control/download.blog?fhandle... · 2015....

  • 6강. 프로세서 관리

    방송대 컴퓨터과학과

    이병래 교수

  • 제6강 프로세서 관리

    프로세스의 개념1

    스케줄링2

    강의 내용강의 내용

    프로세스 스케줄링 알고리즘3

  • 프로세스란?

    프로세스는 실행 중인 프로그램을 의미함

    프로그램 : 동작을 하지 않는 정적·수동적 개체프로세스 : 동작을 하는 능동적 개체

    프로세스에는 실행을 위해 필요한 컴퓨터의 자원이 할당됨

    CPU, 주기억장치, 파일, 입출력 장치 등

    운영체제는 컴퓨터 시스템에 요구되는 응답시간을 제공하면서 자원

    활용의 효율성을 높일 수 있도록 스케줄링을 함

  • 프로세스의 상태 변화

    5-상태 모델

    생성 실행 종료

    대기

    디스패칭

    이벤트 대기- I/O 종료, 페이지 교환 등

    할당시간 만료

    재개 조건만족

    준비

  • 시스템 내에서 활동하는 각 프로세스는 자신의 정보를 보관하고 있는

    프로세스 제어 블록(process control block, PCB)에 의해 관리됨

    태스크 제어블록(task control block), 작업 제어 블록(job

    control block), 프로세스 서술자(process descriptor)

    프로세스 제어 블록

    포인터 프로세스 상태

    프로세스 번호

    프로그램 카운터

    레지스터들

    기억장치 관리 정보

    회계 및 입출력 상태 정보

    ···

  • 독립적 프로세스(independent process) : 실행 중인 다른

    프로세스의 영향을 받지도 않고 주지도 않는 프로세스

    프로세스의 상태는 다른 프로세스와 공유되지 않음

    프로세스의 실행은 결정적(deterministic) : 실행 결과는

    입력에 의해서만 결정됨

    실행은 재생 가능(reproducible) : 실행 결과는 같은 입력에

    대해 동일함

    타 프로세스와 무관하게 중단되거나 재 시작 될 수 있음

    유기적 프로세스(cooperating process)

    프로세스의 상태는 다른 프로세스와 공유됨

    프로세스의 실행은 비 결정적(nondeterministic)

    실행은 재생 불가능(irreproducible)

    프로세스간의 관계

  • 프로세스 생성

    프로세스 생성 시스템 호출을 이용하여 프로세스 생성

    프로세스의 ID가 지정되고 프로세스 제어블록이 만들어지며,

    준비 큐에 삽입

    부모 프로세스와 자식 프로세스 사이의 상호작용을 위해 자원을

    공유할 수 있음

    프로세스 종료

    자식 프로세스는 처리할 작업을 마치거나 부모 프로세스가 자식

    프로세스를 종료시키는 시스템 호출을 하여 종료될 수 있음

    많은 시스템에서 부모 프로세스가 종료되면 자식 프로세스도

    종료되어야 함

    프로세스에 대한 연산

  • 최근의 운영체제에서 하나의 프로세스는 스레드(thread)라는 여러

    개의 단위를 생성함으로써 프로세스 내에서 다중처리를 할 수 있음

    프로세스 : 자원 소유의 단위 + 디스패칭의 단위

    스레드 : 디스패칭의 단위로서 경량 프로세스라고도 함

    실행에 필요한 최소한의 정보만을 가지며, 자신이 속해 있는

    프로세스의 실행 환경을 공유함

    프로세스와 스레드

    PC

    PCPC

    세 개의 단일 스레드 프로세스

    PC

    PCPC

    세 개의 스레드로 구성된 하나의 프로세스

    프로세스 작업 환경(자원) 스레드☞

  • 제6강 프로세서 관리

    프로세스의 개념1

    스케줄링2

    강의 내용강의 내용

    프로세스 스케줄링 알고리즘3

  • 프로그램 실행을 위한 스케줄링 단계

    실행되기를기다리는작업들

    ··· ··· CPU

    프로세스-a

    프로세스-b

    프로세스-c

    작업

    -1

    작업

    -2

    작업

    -3 종료

    실행 중인 작업들

    프로세스-x

    프로세스-y

    프로세스-z···

    일시 중지된 작업들

    상위단계스케줄링

    하위단계스케줄링

    중간단계스케줄링

    시스템의 자원을 효율적으로

    이용할 수 있도록 작업을 배치

    I/O 중심 작업과 연산 중심

    작업을 균형 있게 선택

    프로세스를 일시적으로

    주기억장치에서 일시

    중지시키거나 다시 활성화

    시킴으로써 시스템의

    단기적 부하를 조절함

    정해진 정책에 따라

    CPU를 프로세스에 배정

  • 프로세스 스케줄링 정책의 요구사항

    최대 처리량(throughput)

    최소 응답시간(response time)

    최소 반환시간(turnaround time)

    최소 대기시간(waiting time)

    CPU의 최대 활용

    모든 작업 처리의 공정성 보장

    ☞ 각각의 요구사항은 서로 일치하지 않을 수 있으며, 시스템 설계자는

    목적에 맞게 요구사항을 고려해야 함

    스케줄링 정책

  • 2. 비선점 스케줄링 정책1. 선점 스케줄링 정책

    스케줄링 알고리즘의 형태

    선점(preemption) : 한 프로세스가 점유하고 있는 자원을

    강제로 회수하여 다른 프로세스에게 넘겨 주는 것을 의미함

    선점 스케줄링 정책(preemptive scheduling policy) :

    진행 중인 작업에 인터럽트를 걸고 다른 작업에 CPU를

    할당하는 스케줄링 전략

    대화식 시스템이나 높은 우선순위의 프로세스를 긴급하게

    처리하는 경우에 유용

  • 2. 비선점 스케줄링 정책1. 선점 스케줄링 정책

    스케줄링 알고리즘의 형태

    일단 작업이 CPU를 할당 받아 실행이 시작되면 작업

    자체가 I/O 인터럽트를 걸거나 작업을 종료할 때까지

    실행상태에 있게 됨

    응답시간의 예측이 가능

    모든 프로세스가 공정하게 순서에 따라 실행되도록 관리됨

    짧은 작업이 긴 작업을 기다리게 되는 경우가 발생할 수

    있음

  • 문맥 교환 (context switching)

    CPU가 현재 실행하고 있는 프로세스의 문맥(상태)을 프로세스 제어

    블록(PCB)에 저장하고, 다음 프로세스의 PCB로부터 문맥을

    복원하는 작업

    문맥 : CPU의 모든 레지스터(특히 프로그램 카운터)와 기타

    운영체제에 따라 요구되는 프로세스의 상태

    문맥 교환은 다중작업 운영체제에서 핵심적인 요소로서, 매우 빠르게

    실행되어야 함

  • 제6강 프로세서 관리

    프로세스의 개념1

    스케줄링2

    강의 내용강의 내용

    프로세스 스케줄링 알고리즘3

  • 기한부 스케줄링(deadline scheduling)

    우선순위 스케줄링(priority scheduling)

    FCFS(first-come first-served) 스케줄링

    SJF(shortest job first) 스케줄링

    SRT(shortest remaining time) 스케줄링

    RR(round robin) 스케줄링

    HRN(highest response ratio next) 스케줄링

    FSS(fair share scheduling)

    다단계 피드백 큐 스케줄링

    스케줄링 알고리즘의 종류

  • 준비 큐(ready queue)에 도착한 순서에 따라 디스패치

    디스패치된 프로세스는 CPU 작업을 마칠 때까지 실행됨

    비선점 방식

    짧은 작업이 긴 작업을 기다리는 경우가 발생할 수 있음

    대화식 시스템에 적합하지 않음

    나중에 들어온 중요한 작업을 신속하게 처리할 수 없음

    도착 순서에 따라 평균 작업 처리 시간이 크게 다름

    FCFS 스케줄링 알고리즘

    ABC··· CPU완료

    준비 큐

  • FCFS 스케줄링 알고리즘

    작업 도착 순서가 A → B → C일 때의 FCFS 적용 결과

    1밀리 초의 CPU 사이클 시간작업 C

    2밀리 초의 CPU 사이클 시간작업 B

    15밀리 초의 CPU 사이클 시간작업 A

    작업 A 작업 B 작업 C

    0 15 17 18

    작업 A작업 B작업 C

    0 1 3 18

    작업 도착 순서가 C → B → A일 때의 FCFS 적용 결과

    평균 대기시간 = (0+15+17)/3 = 10.67 (ms)

    평균 반환시간 = (15+17+18)/3 = 16.67 (ms)

    평균 대기시간 = (3+1+0)/3 = 1.33 (ms)

    평균 반환시간 = (18+3+1)/3 = 7.3 (ms)

  • 준비 큐에서 기다리는 작업 중 수행 시간이 가장 짧다고 예상되는

    것을 먼저 디스패치함(shortest job first)

    비선점 기법

    일괄처리 환경에서 구현하기 쉬운 알고리즘

    작업의 CPU 소요시간을 지정함

    문제점

    실행 예정 시간 길이를 사용자의 추정치에 의존

    먼저 처리할 작업의 CPU 시간을 예상할 수 없음

    대화형 시스템에서는 사용되지 않음

    SJF 스케줄링 알고리즘

  • SJF 스케줄링 알고리즘

    SJF 스케줄링의 예

    4625CPU 사이클

    DCBA작업

    작업 B 작업 C

    0 6 11 17

    작업 A작업 D

    2

    평균 대기시간 : (6 + 0 + 11 + 2) / 4 = 4.75

    평균 반환시간 : (11 + 2 + 17 + 6) / 4 = 9.0

  • 실행이 끝날 때까지 남은 시간(shortest remaining time) 추정치가

    가장 짧은 작업을 먼저 디스패치함

    새로 들어오는 작업을 포함하여 선택

    현재 CPU가 실행 중인 프로세스보다 더 짧은 실행시간

    추정치를 갖는 프로세스가 준비 큐에 들어 오면 현재 실행 중인

    프로세스를 준비 큐로 보내고 CPU를 선점함

    SJF의 선점 알고리즘 버전

    SRT 스케줄링 알고리즘

  • SRT와 SJF의 비교

    SRT 스케줄링 알고리즘

    4136CPU 사이클

    DCBA작업

    3210도착시간

    2. SJF 스케줄링1. SRT 스케줄링

    작업 A

    0 5 9 14

    작업 B작업 B

    1

    작업 C

    2 3

    작업 D 작업 A

    평균 대기시간 : (8 + 1 + 0 + 2) / 4 = 2.75

    평균 반환시간 : (14 + 4 + 1 + 6) / 4 = 6.25

  • SRT와 SJF의 비교

    SRT 스케줄링 알고리즘

    4136CPU 사이클

    DCBA작업

    3210도착시간

    2. SJF 스케줄링1. SRT 스케줄링

    작업 A

    0 7 10 146

    평균 대기시간 : (0 + 6 + 4 + 7) / 4 = 4.25

    평균 반환시간 : (6 + 9 + 5 + 11) / 4 = 7.75

    작업 C 작업 B 작업 D

  • SRT 스케줄링 알고리즘의 고찰

    평균 대기시간이나 평균 반환시간이 SJF에 비해 효율적임

    문맥 교환(context switching)에 따른 오버헤드 발생

    실행 시간이 얼마 남지 않은 프로세스를 선점해야 하는가?

    임계치(threshold)를 정하여, 남은 시간이 이보다 작다면 그

    프로세스는 계속 실행함

    많은 처리시간이 남은 프로세스가 실행 중일 때, 이보다 조금

    작은 예상 처리시간을 갖는 프로세스를 위해 선점을 해야

    하는가?

    SRT 스케줄링 알고리즘

  • 대화형 시스템에서 사용되는 선점 스케줄링 알고리즘 방식

    프로세스가 도착한 순서로 디스패치 하지만, 정해진 시간 할당량(또는

    시간 간격, time slice, time quantum)에 의해 실행이 제한됨

    할당된 시간 안에 완료되지 못한 프로세스는 준비 큐의 맨 뒤에

    배치함

    CPU를 독점하지 않고 공평하게 이용할 수 있음

    대화식 응용에 적합

    RR(round robin) 스케줄링 알고리즘

    ABC··· CPU완료

    시간 할당량을 모두 소비하면 선점

    준비 리스트

  • RR(round robin) 스케줄링 알고리즘

    RR 스케줄링의 예

    5948CPU 사이클

    DCBA작업

    3210도착 시간

    평균 대기시간 : (12 + 3 + 15 + 17) / 4 = 11.75

    평균 반환시간 : (20 + 7 + 24 + 22) / 4 = 18.25

    시간 간격 : 4ms

    작업 A

    0 8 12 244

    작업 B 작업 C 작업 D 작업 A 작업 C 작업 D작업 C

    16 20 25 26

  • Highest Response ratio Next

    SJF의 단점인 긴 작업과 짧은 작업 사이의 지나친 불평등을

    보완하는 알고리즘

    비선점 스케줄링 기법

    짧은 작업이 우선순위가 높으며, 또한 대기한 시간이 길면

    우선순위가 높아져 너무 오래 기다리지 않게 함

    HRN 스케줄링 알고리즘

    우선순위 = 대기한 시간 + 서비스를 받을 시간

    서비스를 받을 시간

  • 제6강 프로세서 관리

    프로세스는 실행 중인 프로그램을 의미하며, CPU, 주기억장치,

    파일, 입출력 장치 등 실행에 필요한 자원이 할당된다.

    정리하기정리하기

    1

    2 생성된 프로세스는 CPU의 스케줄링, I/O 대기 등에 따라 준비,

    실행, 대기 등으로 상태가 변화되며 동작한다.

    3 스레드를 생성하여 프로세스 내에서 다중처리를 할 수 있다.

    4 프로세서의 스케줄링을 위해 상위단계, 하위단계 및 중간단계

    스케줄러가 사용된다.

    5 FCFS 스케줄링은 준비 큐에 도착한 순서에 따라 디스패치하는

    비선점 방식의 스케줄링 알고리즘이다.

  • 제6강 프로세서 관리

    SJF 스케줄링은 준비 큐에서 기다리는 작업 중 수행 시간이 가장

    짧다고 예상되는 것을 먼저 디스패치하는 비선점 알고리즘이다.

    정리하기정리하기

    6

    7 SRT 스케줄링은 실행이 끝날 때가지 남은 시간 추정치가 가장 짧은

    작업을 먼저 디스패치하는 선점 방식의 알고리즘이다.

    8 RR 스케줄링은 정해진 시간 간격만큼씩 순서대로 돌려가며

    디스패치하는 선점 방식의 알고리즘이다.

    9 HRN 스케줄링은 대기시간과 서비스를 받을 시간을 함께 고려한

    우선순위에 따라 스케줄링하는 비선점 방식의 알고리즘이다.