프로세스 관리.

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Advertisements

OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
CDMA SW 구조 AIITQC 서울본원교육장 양 종 윤.
Chapter 1. 운영체제의 개요 이태호.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
제 2장 컴퓨터 구조.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
정보통신실습 및 특강(5)
Operating Systems Overview
운영체제 레프토 (4장 CPU 스케줄링) b반 박상수.
Uniprocessor Scheduling
제 2 장 프로세스 관리 2.1 개요 프로세스 스케줄링은 준비완료(ready) 상태에 있는 프로세스들 중 어느 것을 중앙처리장치에 할당시킬 것인가를 결정 중앙처리장치 처리율(throughput)의 최대화와 반환 시간(turnaround time)의 최소화 2.2 프로세스.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
제 7 장 교착 상태 7.1 개요 개념 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록 된 프로세스에 의해 발생될 수 있을.
운영체제 (Operating Systems)
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
1. 스케줄링 개요 [그림 6-16] 프로세스의 반환, 대기, 반응 시간
디스크 스케줄링 채상훈.
임베디드 운영체제 (리눅스 중심) Lecture #2.
4장 병행 프로세스 병행성의 원리를 이해한다 병행 프로세스 수행과 관련된 상호 배 제 해결방안을 알아본다
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
Ch. 8 교착상태 (Deadlocks) 29-Nov-18.
CPU스케줄링(CPU Scheduling) ~
Chapter 5. CPU 스케줄링 (CPU Scheduling)
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
Multiprocessor and Real-time Scheduling
Multiprocessor and Real-time Scheduling
Chapter2 프로세스란 조은성.
Chapter 5. CPU 스케줄링 (CPU Scheduling)
Lecture #3 프로세스(Process).
Geek-OS Project 정영진
디스크 스케줄링 C 최 은 선.
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
Operating system #5 Disk Scheduling
Chapter 10. 파일 시스템 인터페이스(File System Interface)
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
6 단일 프로세서 스케줄링.
4 병행 프로세스와 상호배제.
제2장 프로세스 이나현.
제5장 CPU스케줄링(CPU Scheduling)
제10,11,12장 파일시스템 디스크 스케줄링.
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
운영체제(Operating System)
3장 운영체제 2C 김주성.
디스크 스케줄링 C 박상수.
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
Linux/UNIX Programming
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
제 2장 프로세스 관리와 CPU 스케줄링 2.1 프로세스의 개념 2.2 CPU 스케줄링의 목적과 유형
Chatpter 09 입출력 시스템과 디스크 관리 01 입출력 시스템 관리 02 디스크의 구조와 스케줄링 03 RAID 요약
운영체제 (Operating System) (하드웨어와 응용 프로그램 사이의 인터페이스 역할을 담당하는 시스템 소프트웨어)
제4장 CPU 스케줄링 이나현.
운영체제 학번 : 이름 : 이원석 반 : 2B.
제4장 CPU 스케쥴링 운영체제 1-C반 박소라.
I/O Management and Disk Scheduling
Windows System Programming
Linux/UNIX Programming
운영체제 (Operating Systems)
Lecture #7 CPU Scheduling.
Concurrency: Deadlock and Starvation
5.1 개요 고정 헤드 디스크 유동 헤드 디스크 드럼 플로피디스크
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
CPU 스케줄링 장우영.
Chapter 7: Deadlocks.
3장 – 병행 프로세스 A 김정문.
Presentation transcript:

프로세스 관리

프로세스의 개념 병행 프로세스 및 동기화 교착 상태 스케줄링

프로세스 정의 프로세스의 상태 프로세스(process:동적 개념) 실행 중인 프로그램(program:정적 개념) 정적인 프로그램에 자원(기억장치, CPU 등)을 할당 프로세스 관리를 위해 프로세스마다 PCB(Process Control Block)을 가짐 프로세스의 상태 프로세스 완료 Run dispatch IO, 기타 서비스 시간한도 경과 (interrupt) Ready Blocked IO 종료 프로세스

프로세스의 상태 프로세스 제어 블록(PCB) 실행 상태 준비 상태 대기 상태 프로세스가 현재 CPU를 차지하고 실행중인 상태 준비 상태 프로세스가 CPU에서 실행할 모든 준비가 되어 있는 상태 대기 상태 I/O, 기타 이벤트 처리를 위해 대기하는 상태 프로세스 제어 블록(PCB) 운영체제가 프로세스를 관리하기 위해 필요한 일체의 정보 수록

인터럽트와 문맥교환 인터럽트(interrupt) 문맥 교환(context switching) 컴퓨터 시스템에서 아무 때나 발생할 수 있는 사건을 신속히 처리해 주기 위한 기법 문맥 교환(context switching) CPU에서 실행되는 프로세스를 교체하는 작업

스레드(thread) 프로세스 스레드 : 경량 프로세스(lightweight process) 전체 시스템(CPU+모든 자원들) 이용의 주체 모든 자원에 대한 정보가 필요 스레드 : 경량 프로세스(lightweight process) CPU 이용의 주체(CPU에 대한 정보만 필요, 정보량이 훨씬 적음) 문맥교환 시 overhead가 훨씬 적다 한 개의 프로세스는 여러 개의 스레드를 가질 수 있다

스레드 특징 장점 한 프로세스에 속한 스레드들은 CPU를 제외한 프로세스의 자원들을 공동 소유 각 스레드는 한 프로세스에만 소속되며 프로세스를 떠나서는 스레드가 존재할 수 없다 각 스레드는 독립적인 CPU control로 구현(stack, program counter 등 독자 소유) 장점 스레드들은 자원을 공유하므로 스레드 간의 정보 교환, 문맥 교환은 빠르고 효율적이다

병행 프로세스(concurrent process)의 정의 독립적 병행 프로세스 상호간 제어를 사전에 약속하지 않고 병행 실행하는 프로세스들 예) mouse 인터럽트와 응용 프로그램 아무때나 서로 발생 협동적 병행 프로세스 상호간 제어를 사전에 정의해 놓고 병렬 실행하는 프로세스들 예) Web browser와 Web server program 정의된 방식으로만 협력

독립적 병행(asynchronous concurrent) 프로세스의 동기화 데이터의 무결성(integrity) 문제 여러 프로세스들이 병행적으로 실행하며 데이터를 동시에 접근 예) 두 프로세스의 독립 병행 수행 경쟁 상태 발생 - 연산 결과가 프로세스 시간에 따라 달라짐 예방책 – 동기화(synchronization) 프로세스들이 한번에 한 프로세스씩 순차적으로 액세스하도록 함 P1 P2 memory var X (P1) 공유 데이터 (P2) X=10 read R0, X read R1, X inc R0 inc R1 write R0, X X=11 write R1, X

독립적 병행(asynchronous concurrent) 프로세스의 동기화 상호 배제(mutual Exclusion) 공유 데이터를 update한다면 한 순간에 한 프로세스만 공유 데이터를 액세스하도록 허락하는 기법 한 프로세스가 공유 데이터를 변경하는 동안 다른 프로세스는 데이터 액세스를 위해 기다려야 함 상호 배제를 위한 기법 소프트웨어적인 해결 Dekker 알고리즘 Peterson 알고리즘 하드웨어적인 해결 인터럽트 enable/disable 방법 test_and_set 명령어

독립적 병행(asynchronous concurrent) 프로세스의 동기화 프로세스 동기화 세마포어(semaphore) Dijkstra 에 의해 고안된 프로세스 간의 상호 배제 및 동기화 문제 해결 도구 구현 방식 busy-wait - 세마포어 값을 계속 점검하여 기다림 - 기다리는 동안 CPU와 메모리 사이클을 계속 사용 - 기다리는 시간이 짧을 경우에 사용 block-&-wakeup - 세마포어 값을 기다려야 한다면 즉시 자신을 block 시키는 방식 - 나중에 세마포어 값을 바꾸는 다른 프로세스가 block 중인 프로세스를 wakeup

교착 상태의 개념 프로세스들이 서로 남의 프로세스가 자원 내어주기를 기다리면서 영원히 block되어 있는 상태 Process A와 Process B가 Resource 1과 Resource 2를 할당받기 위해 교착상태에 빠짐 R1 R2 P1 P2 Requested Allocated

교착 상태가 일어나기 위한 4가지 조건 상호배제(mutual exclusion) 점유 및 대기(hold & wait) 자원은 한 번에 한 프로세스만 사용 점유 및 대기(hold & wait) 각 프로세스가 이미 자원을 갖고 있으면서 다른 자원을 더 요구 비선점(non preemption) 프로세스에 할당된 자원은 스스로 반납하기 전에는 빼앗지 못함 환형대기(circular wait) 프로세스 간의 자원 요구 형태를 추적해보면 결국 자기 자신으로 되돌아옴

교착 상태 해결 방안 교착 상태 예방(prevention) 교착 상태 회피(avoidance) 4가지 필요조건 중 하나를 발생하지 않도록 해서 교착 상태를 예방 자원의 낭비가 심하지만 그럼에도 불구하고 교착 상태가 원천적으로 봉쇄되지 않으면 안되는 응용에 사용 교착 상태 회피(avoidance) 교착 상태의 발생 가능성을 원천 봉쇄하기 보다는 이를 적절히 회피 Dijkstra의 Banker’s algorithm 교착 상태 탐지(detection) 및 복구(recovery) 교착 상태를 허용하고 교착 상태가 발생되면 이를 탐지(자원 할당 그래프) 관련된 프로세스를 중단, 관련된 자원을 강제로 빼앗아 교착 상태 발생 이전의 상태로 복구(rollback)

다중 프로그래밍에서의 스케줄링 A, B 두 프로세스가 있을 때 각 작업을 1초 동안 실행하고 1초 동안 기다리는 것을 60회 반복할 때 이 시스템의 효율은?

일괄처리 시스템에서는? 프로세스 A를 모두 처리한 후 B를 처리하는 경우 : 전체 4분 소요 실제 계산시간 2분, 쉬는 시간 2분, 프로세서 이용률은 50%

다중 프로그래밍 경우 A를 실행하고 1초 후 A가 기다릴 때 B를 실행 두 프로세스에 대한 실행시간 : 2분, 프로세서는 쉬지 않게 됨(효율증가) 프로세서 사용률은 50%에서 100%로 향상 A는 시간상의 절약이 없지만 B는 처리시간이 반으로 줄어들게 됨 프로세스 A 유휴; 입력 시작 프로세스 B 종료

스케줄링(scheduling) 정의 스케줄링시 고려 사항 프로세스들의 자원 사용 순서를 결정 입출력 위주(I/O bounded) 또는 연산 위주(Processor bounded)의 프로세스 인가? 대화형 프로세스인가 일괄 처리형 프로세스 인가? deadline이 주어졌는가 주어지지지 않았는가? 프로세스의 우선 순위가 있는가? 자원을 선점할 수 있는가 없는가?

CPU 스케줄링과 Job 스케줄링 CPU 스케줄러 작업(job) 스케줄러 CPU를 할당할지를 결정 단기 스케줄러(short term scheduler) : 매우 빈번히 수행 작업(job) 스케줄러 프로세스에게 메모리 공간을 할당하는 순서를 정해주는 스케줄러 장기 스케줄러(long term scheduler) 메모리 공간 Job 스케줄러 PA CPU PB CPU 스케줄러 PX PC PY

스케줄링 기법 선점 스케줄링(Preemptive Scheduling) 하나의 프로세스가 자원을 점유하고 있을 때 다른 프로세스가 이 자원을 빼앗을 수 있는 방법 특징 우선 순위가 높은 프로세스가 먼저 급하게 수행되어야 할 때 유용 대화식 시분할 시스템이나 실시간 시스템에 유용 오버헤드 초래 종류 RR (Round Robin) SRT (Shortest Remaining Time) MFQ (Multilevel Feedback Queue)

스케줄링 기법 비선점 스케줄링(Non-Preemptive Scheduling) 이미 할당된 자원을 임의로 빼앗지 않고, 그 프로세스의 사용이 끝난 후에 회수하는 방법 특징 프로세스의 응답 시간 예측 용이 짧은 작업이 긴 작업 뒤에 서게 된 경우 매우 오래 기다리게 되는 단점 종류 FCFS(First Come First Served) SJF(Shortest Job First) HRN(Highest Response ratio Next) Deadline Scheduling

1. 선입 선처리(First-Come, First-Served) 스케줄링 들어온 순서대로 처리 가장 간단히 방식 non-preemptive임(time-sharing에서는 곤란) FIFO queue : First-in<- tail, First-out<- head 호위 효과(convoy effect) 큰 job하나가 끝나기를 모두 기다림 CPU bound process가 끝나기를 I/O bounded process들이 기다림 길고 중요하지 않은 작업이 급하고 중요한 작업을 오래 기다리게 함 대화식 시스템에 부적합 FIFO(First In First Out) 스케줄링 이라고도 함

First-Come, First-Served (FCFS) Scheduling

2. 최소 작업 우선(Shortest-Job-First) 스케줄링 Shortest Next CPU Burst Scheduling Non Preemptive 스케줄링 기법 다음 CPU burst 시간이 가장 짧은 프로세스에게 할당 최적(Optimal) 스케줄링 작업들의 평균 대기 시간이 최소 long-term scheduling에 좋음(프로세스 시간의 사용자 예측 치 이용) 단점 기아 상태(starvation) 발생 대화형 시스템에는 부적합 short-term scheduling 에는 나쁨(차기 CPU burst 시간 파악 어려움) 차기 CPU 버스트 시간 예측 모델

3. SRT(Shortest Remaining Time) 스케줄링 대기 중인 프로세스 중 남은 작업 시간이 가장 작은 프로세스에게 먼저 CPU 할당 특징 Preemptive 스케줄링 기법 SJF 스케줄링 기법보다 많은 오버헤드 발생

4. HRN(Highest Response ration Next) 스케줄링 Brinch Hansen이 SJF 기법의 길고 짧은 작업 간의 불평등을 보안한 기법 dynamic priority = (waiting time + service time) / (service time) 특징 Non-Preemptive 오래 기다린 프로세스는 waiting time이 증가하므로 priority 커지고 short process일수록 priority 커짐

Example of Non-Preemptive SJF

Example of Preemptive SRT

ready queue = priority queue equal-priority -> FCFS 로 해결 높은 우선 순위의 프로세스에게 할당 ready queue = priority queue equal-priority -> FCFS 로 해결 단순 우선 순위 알고리즘 : SJF(p =1/T (T = 차기 CPU 버스트 시간 예측 값)) priority요인 OS내부 시간 제한(time limits), 메모리 요구량, 오픈 화일 수, (average I/O burst)/(average CPU burst) 비율 등 OS외부 프로세스 중요도, 컴퓨터 사용료 형태와 금액, 작업 부서, 정치적 요인 등 preemptive or non-preemptive 문제점 = 무한 정지(indefinite blocking) 또는 기아 상태(starvation) CPU를 영원히 기다림 : 결국 실행되거나 system crash 때 사라짐 (예) IBM 7094 at MIT 1973, 1967 job 해결 -> aging : wait 시간 길어지면 priority 높여 줌

우선 순위 스케줄링 예 3 1 4 5 2 10 2 1 5 평균 대기시간 : 8.2 P1 p2 p3 p4 p5 프로세스 우선순위 버스트시간 3 1 4 5 2 10 2 1 5 평균 대기시간 : 8.2

6. 순환 할당(Round-Robin) 스케줄링 시분할 시스템을 위해 설계 FCFS + preemption time slice 마다 timer 인터럽트 ready queue = circular FIFO queue preemptive time sharing에서time quantum의 크기가 중요 1 time quantum > context switching time 80% CPU burst < 1 time quantum 대화식 시분할 시스템에 적합

Example: RR with Time Quantum = 20

작은 시간 할당량이 문맥 교환을 증가시킴

7. 다단계 큐(Multilevel Queue) 스케줄링 각 프로세스는 우선 순위가 다른 여러 개의 큐 중 하나에 영원히 할당 각 queue는 자신의 고유한 scheduling algorithm 가짐 foreground (interactive) queue : RR알고리즘 background (batch) queue : FCFS알고리즘 queue들 사이의 scheduling 고정 우선 순위 선점 스케줄링(fixed priority preemptive scheduling) 큐 사이의 CPU time slice 할당 예 80% for RR 20% for FCFS 스케줄링 부담 적으나 융통성이 적음

Multilevel Queue Scheduling

8. 다단계 피드백 큐(Multilevel Feedback Queue) 스케줄링 프로세스가 여러 큐 사이를 이동 짧은 프로세스(I/O bound, interactive processes)가 우선 긴 프로세스는 자꾸 낮은 큐로 이동 aging : 오래 기다리면 우선순위 높여 기아 상태 예방 preemptive (큐 사이) the most sophisticated, the most complex 가장 일반적 -> 해당 시스템에 맞게 설정해야(configure) 큐의 개수 각 큐의 스케줄링 알고리즘 높은 우선 순위로 올려 주는 시기 낮은 우선 순위로 내려 주는 시기 어느 큐에 들어갈 것인가

Multilevel Feedback Queues

9. 기한부(Deadline) 스케줄링 작업이 주어진 만료 시간(deadline) 안에 완료되도록 보장하는 기법 특징 스케줄링에 많은 오버헤드 주로 실시간 시스템에서 활용