입학사정관제도

Similar documents
Microsoft PowerPoint - o6.pptx

슬라이드 1

Microsoft PowerPoint - StallingsOS6e-Chap05.pptx

사용자수준의스레드 : 사용자의라이브러리에의해운영, 속도는빠르나, 구현이복잡하다. 커널수준의스레드 : 운영체제커널에의해운영, 속도는느리나, 구현이단순하다. 스케줄링 (Scheduling) 1) 스케줄링의정의 프로세스가생성되어실행될때필요한시스템의여러자원을해당프로세스에게할당

Chap 6: Graphs

10주차.key

03장.스택.key

쓰레드 (Thread) 양희재교수 / 경성대학교컴퓨터공학과

Microsoft PowerPoint - o6.pptx

Chap 6: Graphs

Microsoft PowerPoint - o6.pptx

Microsoft PowerPoint - StallingsOS6e-Chap06.ppt [호환 모드]

슬라이드 1

Microsoft PowerPoint - chap05-제어문.pptx

chap x: G입력

Chap 6: Graphs

PowerPoint 프레젠테이션

슬라이드 1

Infinity(∞) Strategy

7 프로시저가활동중인것 8 실행중인프로시저의제어궤적 9 CPU가할당되는실체 운영체제가관리하는최소단위작업 (2) 프로세스상태전이도 (3) 주요프로세스상태 1 준비 (Read) 상태 : 실행하기위해준비하고있는상태 2 실행 (Run) 상태 :

리눅스 프로세스 관리

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Synchronization

<4D F736F F D20C3A520BCD2B0B32DC0CCB7B2B0C5B8E9B3AAB6FBBFD6B0E1C8A5C7DFBEEE322E646F63>

Abstract View of System Components

Microsoft Word - PLC제어응용-2차시.doc

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

Chapter #01 Subject

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint - 08-Queue.ppt

윈도우즈프로그래밍(1)

6주차.key

Chapter 4. LISTS

06/09-101È£ä263»Áö

04/07-08(È£ä263»Áö

제11장 프로세스와 쓰레드

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

제1장 Unix란 무엇인가?

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

4장.문장

03_queue

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

18차시.ppt

Java ...

API 매뉴얼

04장.큐

Visual Basic 반복문

Microsoft PowerPoint - gnu-w10-c-chap12

untitled

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

Operating Instructions

정보처리기사필기 D-10(5 일차 : 운영체제요점정리 ) 1. Access Control Matrix 행은사용자를 ( 예를들면 userid, 프로세스등 ) 대표하고, 열은객체를 ( 예를들면파일, 입출력장치 ) 를 대표한다. entry 는 access 권한을나타낸다. (

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

H3250_Wi-Fi_E.book

歯처리.PDF

슬라이드 1

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

보광31호(4)

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch10_회복과 병행 제어.pptx

OCaml

(p47~53)SR

<C3D6C0E7C3B528BAB8B5B5C0DAB7E1292D322E687770>

PowerPoint 프레젠테이션

Module 7: Process Synchronization

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

설계란 무엇인가?

PL10

PowerPoint Template

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 -

5.스택(강의자료).key

개요

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - 제4장-스택과큐.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

chap01_time_complexity.key

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Module 7: Process Synchronization

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

C프로-3장c03逞풚

?퇴

untitled

Chapter_06

JTS 1-2¿ùÈ£ ³»Áö_Ä÷¯ PDF¿ë

Microsoft PowerPoint os7.ppt [호환 모드]

歯TR PDF

02-출판과-완성

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Transcription:

운영체제 강의노트 교재 : 운영체제 ( 개정판 ) 출판사 : 한빛미디어 (2010 년 11 월발행 ) 저자 : 구현회 소프트웨어학과원성현교수 1

4 장 병행프로세스와 상호배제 소프트웨어학과원성현교수 2

1. 병행프로세스 병행프로세스의과제 병행성 동시에 2 개이상의프로세스가실행되는성질 다중프로세싱시스템, 분산처리시스템에서주로발생 다중프로세싱시스템은프로세서의효율성을증대시킴 시스템성능을향상시키지만해결해야할과제가있음 공유자원을상호배타적으로사용할수있어야함 프린터, 네트웍등은한순간에한프로세스만사용할수있어야함 병행프로세스간에동기화가이루어져야함 동시에수행되는다른프로세스의속도와관계없이항상일정한결과가보장되는결정성 (determinacy) 이보장되어야함 교착상태를해결할수있어야함 상호배제, 즉어떤프로세스가실행중일때나머지프로세스들이그작업과관련된작업을수행할수없도록보장할수있어야함 소프트웨어학과원성현교수 3

1. 병행프로세스 선행그래프 선행그래프 (precedence graph) 란? 두프로세스간에존재하는선행관계를규칙적으로표현한것 간단한알고리즘예 S1 S2 S1 과 S2 는동시에실행될수있다. a = x + y; (S1) b = z + 1; (S2) c = a b; (S3) w = c + 1; (S4) S3 S3 는 S1 과 S2 가끝나기전에는실행될수없다. S4 S4 는 S3 이끝나기전에는실행될수없다. 소프트웨어학과원성현교수 4

1. 병행프로세스 언어적표현과병행문장 fork 단일연산을 2 개의독립적인연산으로분할 간단한알고리즘예 S1; fork L; S2;... L : S3; S1 fork fork 에의해 S2 와 S3 이별도의지시가있을때까지동시에실행 S2 S3 소프트웨어학과원성현교수 5

1. 병행프로세스 join 2 개의병행연산을하나로결합하는방법을제공 join 할명령의개수 간단한알고리즘예 a = x + y; (S1) b = z + 1; (S2) c = a b; (S3) w = c + 1; (S4) count = 2; fork L1; a = x + y; go to L2; L1 : b = z + 1; L2 : join count; c = a b; w = c + 1; S1(a=x+y) fork join S3(c=a-b) S2(b=z+1) S4(w=c+1) 소프트웨어학과원성현교수 6

1. 병행프로세스 S1 S5 S2 S4 S6 S3 S7 S1; count = 3; fork L1; S2; S4; fork L2; S5; go to L3; L2 : S6; L1 : S3; L3 : join count; S7; 간단한알고리즘예 소프트웨어학과원성현교수 7

1. 병행프로세스 병행문장 프로세스하나가여러가닥의병렬프로세스로퍼졌다가다시하나로뭉치게하는고급언어구조 par 과 parend 를사용 S0 S1 S2 Sn S0; par S1; S2; ; Sn; par Sn+1; Sn+1 병행문장의일반형태와선형그래프 소프트웨어학과원성현교수 8

1. 병행프로세스 S0 S1 S3 S2 S5 S4 S6 S0; par S1; S2; par S3; S4; par S5; S6; par S7; S7 복잡한구조의선형그래프 소프트웨어학과원성현교수 9

병행프로세스간상호작용 자원들의공유가능성 컴퓨터자원중에는 2 개이상의프로세스가동시에사용접근하는것이가능한경우 ( 메모리, 디스크등 ) 도있지만, 불가능한경우 (CPU, 프린터등 ) 도있음 상호배제 (mutual exclusion) 란? 특정공유자원을한순간에하나의프로세스만사용할수있을때어떤프로세스가공유자원을접근하는동안다른프로세스는해당공유자원을접근할수없도록하는제어 상호배제의필요성 프로세스간의충돌이없는읽기연산과같은경우는공유데이터에동시에접근할수있지만그래도여러프로세스가사용하는경우순서대로읽기연산을수행하게하는것이바람직함 동기화 공유자원을동시에사용하지못하도록실행을제어하는기법 정확한동기화를통해프로세스간의충돌을회피해야함 소프트웨어학과원성현교수 10

생산자 / 소비자프로세스 자원을생산하는프로세스와소비하는프로세스 프린터드라이버가프린트할문자를생산하면프린터는인쇄하기위해문자를소비 생산자의생산속도와소비자의소비속도가다르므로생산자와소비자가공유하는버퍼가필요함 생산자는생산된데이터를버퍼에저장하고, 소비자는버퍼에가서소비할데이터를가져와서소비함 버퍼가꽉찼을때계속생산하려하고, 버퍼가비었을때계속소비하려고할때문제가발생할수있음 그러므로버퍼의상황을정확하게파악하여각프로세스가버퍼의상태를인지하게하는것이중요함 버퍼가비었거나, 꽉찼을때버퍼에접근하는것을막기위하여동기화가필요함 동기화는원형큐를활용하여 front 와 rear 의제어를통해큐의상태를파악하는것이가장좋은방법임 소프트웨어학과원성현교수 11

유한버퍼를공유하는생산자 / 소비자프로세스간의변형프로그램 생산자 소비자 par repeat while (in+1) mod n = out do no-op; buffer[in] := nextp; in := (in + 1) mod n; until false; repeat while in = out do skip; nextc := buffer[out]; out := (out + 1) mod n; until false; par out a[2] a[3] a[1] a[4] a[n] a[5] 소프트웨어학과원성현교수 12 in in : 비어있는첫버퍼 out : 채워진첫버퍼 in = out : 버퍼가빔 (in + 1) mod n = out : 버퍼가꽉참

임계영역 용어 임계자원 프린터와같이프로세스가공유할수없는자원 임계영역 (critical section) 임계자원을사용하는상태 임계영역에있다 프로세스가공통변수를읽거나테이블을갱신하거나파일을수정하는등공유데이터에접근하고있는상태 한프로세스가임계영역에있다면다른프로세스는임계영역으로들어갈수없음 임계영역에있던프로세스가임계영역을나오게되면다른프로세스가임계영역으로들어갈수있도록임계영역점유를해제해야함 임계영역에는오래있으면안되고, 무한루푸에빠지게되는것을절대적으로경계해야함 소프트웨어학과원성현교수 13

프로세스 A 가임계영역에진입 프로세스 A 가임계영역에서나옴 프로세스 A 프로세스 B 가임계영역진입시도 프로세스 B 가임계영역에진입 프로세스 B 가임계영역에서나옴 프로세스 B T1 T2 보류 T3 T4 time flow 소프트웨어학과원성현교수 14

소프트웨어적인임계영역문제해결 알고리즘 1( 교재 164 쪽알고리즘 4-7 참조 ) procedure P1; while true do while processnumber = 2 do; criticalsectionone; processnumber := 2; otherstuffone procedure P2; while true do while processnumber = 1 do; criticalsectiontwo; processnumber := 1; otherstufftwo processnumber := 1; par P1; P2; par end. 교착상태에빠지지않음 반드시 P1 부터시작해야하기때문에 P2 가먼저준비되는경우는대기하게됨 공유변수 (processnumber) 를 1 개만사용했기때문에두프로세스중 1 개가중단되면다른프로세스도중단 소프트웨어학과원성현교수 15

알고리즘 2( 교재 166 쪽알고리즘 4-8 참조 ) procedure P1; while true do while P2_inside do; P1_inside := true; criticalsectionone; P1_inside := false; otherstuffone procedure P2; while true do while P1_inside do; P2_inside := true; criticalsectiontwo; P2_inside := false; otherstufftwo P1_inside := false; P2_inside := false; par P1; P2; par end. P1_inside 와 P2_inside 가모두참이면두프로세스가동시에임계영역에들어가게되어상호배제가보장되지않음 소프트웨어학과원성현교수 16

알고리즘 3( 교재 167 쪽알고리즘 4-9 참조 ) procedure P1; while true do P1_enter := true; while P2_enter do; criticalsectionone; P1_enter := false; otherstuffone procedure P2; while true do P2_enter := true; while P1_enter do; criticalsectiontwo; P2_enter := false; otherstufftwo P1_enter := false; P2_enter := false; par P1; P2; par end. while 문전에 P1_enter := true 와 P2_enter := true 를두어임계영역에들어가기위한조건을충족시킴 P1_enter 와 P2_enter 모두가동시에 true 로값을바꾸게되면 P1 과 P2 모두의 while 문은무한루프에빠지게되어교착상태에이르게됨 소프트웨어학과원성현교수 17

알고리즘 4( 교재 169 쪽알고리즘 4-10 참조 ) procedure P1; while true do P1_enter := true; while P2_enter do; P1_enter := false; delay(random, fewcycles); P1_enter := true criticalsectionone; P1_enter := false; otherstuffone P1 과 P2 둘모두임계영역에들어가고자한다면둘중의하나가일정시간동안임계영역진입을보류 잘못하면무한대기발생 procedure P2; while true do P2_enter := true; while P1_enter do; P2_enter := false; delay(random, fewcycles); P2_enter := true criticalsectiontwo; P2_enter := false; otherstufftwo P1_enter := false; P2_enter := false; par P1; P2; par end. 소프트웨어학과원성현교수 18

Dekker 알고리즘 ( 교재 170 쪽알고리즘 4-11 참조 ) procedure P1; while true do P1_enter := true; while P2_enter do; if fprocess = second then P1_enter := false; while fprocess = second do; P1_enter := true criticalsectionone; fprocess := second; P1_enter := false; otherstuffone procedure P2; while true do P2_enter := true; while P1_enter do; if fprocess = first then P2_enter := false; while fprocess = first do; P2_enter := true criticalsectiontwo; fprocess := first; P2_enter := false; otherstufftwo P1_enter := false; P2_enter := false; fprocess := first; par P1; P2; par end. 소프트웨어학과원성현교수 19

세마포어 세마포어 (semaphore) 란? 네덜란드의천재컴퓨터학자 Dijkstra 가제시한상호배제해결방안 세마포어변수 S 를두고연산 P 와 V 를수행 연산 P( 시도 (try) 를뜻하는네덜란드말 Proberen) 는프로세스가임계영역에진입하기위한연산으로세마포어변수 S 를 1 감소시킴 연산 V( 증가 (increment) 를뜻하는네덜란드말 Verhogen) 는프로세스가임계영역에서나오기위한연산으로세마포어변수 S 를 1 증가시킴 P(S) : S := S 1; if S < 0 then 프로세스대기상태프로세스번호를 wait 큐에추가 else 임계영역수행 V(S) : S := S + 1; if S <= 0 then wait 큐에서프로세스를제거하고제거한프로세스에 wakeup 신호를보내서 ready 큐에추가 소프트웨어학과원성현교수 20