chapter 05 deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/os_pdf/chapter 05 deadlock.pdf ·...

10
.สุขสันต บัวฉิม โปรแกรมวิชาคอมพิวเตอร คณะวิทยาศาสตร มหาวิทยาลัยราชภัฏลําปาง Operating System 1 : Deadlock .สุขสันต บัวฉิม หนา 2 Operating System 1 : Deadlock .สุขสันต บัวฉิม หนา 3 Operating System 1 : Deadlock .สุขสันต บัวฉิม หนา 4 ไมใหใชทันทีตองดู ทรัพยากรที่ตองการนั้นวาง รองขอไดแลว ไดรับจัดสรรจากระบบแลว ใชเสร็จแลวคืนใหระบบ

Upload: haxuyen

Post on 27-May-2018

236 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

อ.สขสนต บวฉม

โปรแกรมวชาคอมพวเตอร คณะวทยาศาสตร

มหาวทยาลยราชภฏลาปาง

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 2

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 3 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 4

ไมใหใชทนทตองด ทรพยากรทตองการนนวาง

รองขอไดแลว ไดรบจดสรรจากระบบแลว

ใชเสรจแลวคนใหระบบ

Page 2: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 5 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 6

Process

ProcessResource

Resource

Using Waiting

P1

P2

R 1 R 2

Deadlock

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 7

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 8

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

a b c

R S T

Page 3: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 9รปท 1 รปท 2 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 10

การใหใชทรพยากรรวมกนได (Mutual exclusion prevention)

กาหนดใหเขาถงแบบอานอยางเดยว (Read only)

การปองกนการถอครองและรอคอย (Hold and wait prevention)

ใหโปรเซสรองขอทรพยากรทตองการทงหมดทเดยว

ยอมใหมการแทรกกลางคน (Preemptable)

โปรเซสตองการทรพยากรเพม แตมโปรเซสอนครอบครองอย OS จะทาการแทรก

กลางคนการทางานของโปรเซสอน (วธนตองม priority แตกตางกน)

การปองกนการเกดวงจรรอคอย (Circular wait protection)

กาหนดลาดบของทรพยากรทงหมด และโปรเซสตองรองขอทรพยากรตามลาดบ

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 11

จดเรยงทรพยากรอยางเปนลาดบ การเกดวงจรรอคอย

ใหระบบสามารถแทรกการทางานและเรยกคนทรพยากรได การไมแทรกกลางคน

ใหโปรเซสรองขอทรพยากรทงหมดกอน การถอครองและการรอคอย

ใหใชทรพยากรทสามารถใชงานรวมกนได เชน ดสกในการจดการสพลลง

การใชทรพยากรรวมกนไมได

วธการ เงอนไข

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 12

Page 4: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 13 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 14

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 15 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 16

Page 5: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 17 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 18

รป ข

Free : 1

72C

44B

93A

MaxHas

รป ค

Free : 5

72C

-0B

93A

MaxHas

รป ง

Free : 0

77C

-0B

93A

MaxHas

รป จ

Free : 7

-0C

-0B

93A

MaxHasรป ก

Free : 3

72C

42B

93A

MaxHas

ให B ทางานกอนจนเสรจระบบมทรพยากรอย 10 ตว

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 19รป ค

Free : 0

72C

44B

94A

MaxHas

รป ข

Free : 2

72C

42B

94A

MaxHas

รป ง

Free : 4

72C

-0B

94A

MaxHasรป ก

Free : 3

72C

42B

93A

MaxHas

ใหโปรเซส B

ทางานกอน

จนเสรจ

ระบบมทรพยากรอย 10 ตว

โปรเซส A รอง

ขอและไดรบ

ทรพยากรเพมมา

อก 1 ตว

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 20

อยางไรกตามระบบขาสสถานะทไมปลอดภยกไมไดหมายความวา

ระบบจะเขาสวงจรอบเสมอ พจารณา Unsafe state รป ข ระบบสามารถ

ทางานไดสกระยะหนง ทาใหโปรเซส B ทางานจนเสรจ และ อาจม

เปนไปไดท โปรเซส A จะทาการปลอยทรพยากรมาสก 1 ตว กอนทา

การรองขอทรพยากรเพม ซงทาให C ทางานเสรจและวงจรอบกไม

เกดขน

Page 6: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 21

เราสามารถทาการยนยนวาโปรเซสทกตวในระบบจะทางานเสรจสน

สมบรณและไมเกดวงจรอบ

เราไมสามารถทาการยนยนไดเทานนเอง

ซงวงจรอบอาจจะเกดหรอไมเกดกได

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 22

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 23

โปรเซส

เทป

พลอตเตอร

เครองพมพ

ซดรอม

A 3 0 1 1B 0 1 0 0C 1 1 1 0D 1 1 0 1E 0 0 0 0

Allocation

โปรเซส

เทป

พลอตเตอร

เครองพมพ

ซดรอม

A 1 1 0 0B 0 1 1 2C 3 1 0 0D 0 0 1 0E 2 1 1 0

NeedResource = [6 3 4 2]

Allocation = [5 3 2 2]

Available = [1 0 2 0]

ระบบนอยในสถานะ safe state หรอไม เพระอะไร

ถาอยจงเรยงลาดบการทางานของโปรเซสดวย

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 24

ระบบหนงมโปรเซสอย 5 ตว คอ P0 , P1 , P2 , P3 และ P4 มทรพยากรอย 3 ประเภท คอ A , B และ C โดยทในแตละประเภท มจานวน

ทรพยากร 10 , 5 และ 7 ตว ตามลาดบ

Allocation Max AvailableA B C A B C A B C

P0 0 1 0 7 5 3 3 3 2P1 2 0 0 3 2 2 P2 3 0 2 9 0 2P3 2 1 1 2 2 2

P4 0 0 2 4 3 3

Page 7: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 25

ระบบหนงมโปรเซสอย 5 ตว คอ P0 , P1 , P2 , P3 และ P4 มทรพยากรอย 3 ประเภท คอ A , B และ C โดยทในแตละประเภท มจานวน

ทรพยากร 10 , 5 และ 7 ตว ตามลาดบ

Allocation Max AvailableA B C D A B C D A B C D

P0 0 0 1 2 0 0 1 2 1 5 2 0P1 1 0 0 0 1 7 5 3 P2 1 3 5 4 2 3 5 6 P3 0 6 3 2 0 6 5 2

P4 0 0 1 4 0 6 5 6

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 26

เนองจาก เมทรกซ Need เกดจาก Max – Allocation ดงนนจะไดวา .

NeedA B C

P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1P4 4 3 1

ระบบอยในสถานะปลอดภยเนองจากโปรเซสอาจทางานไดตามลาดบ <P1, P3, P4 , P2 , P0> ซงเปนไปตามเงอนไขของสถานะปลอดภย

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 27

1Check that Request ≤ Available (that is, (1,0,2) ≤ (3,3,2) ⇒ true.

Allocation Need AvailableA B C A B C A B C

P0 0 1 0 7 4 3 2 3 0P1 3 0 2 0 2 0P2 3 0 1 6 0 0 P3 2 1 1 0 1 1P4 0 0 2 4 3 1

Executing safety algorithm shows that sequence <P1, P3, P4, P0, P2> satisfies safety requirement. Can request for (3,3,0) by P4 be granted?Can request for (0,2,0) by P0 be granted?

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 28

ขนตอนของการตรวจหาวงจรอบ

การกคนระบบ

Page 8: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 29

นากราฟการจดสรรทรพยากรมาแปลงสภาพเลกนอยเปน กราฟการรอคอยทรพยากร (Wait-for-Graph) การแปลงสภาพทาโดยเอาสเหลยมทแทนทรพยากรออก และยบรวมลกศรเขาดวยกน ดงน

ถามลกศรจาก Pi ไป Pj ในกราฟการรอคอยทรพยากร แสดงวา Pi กาลงรอทรพยากรซง Pj ถอครองอย หรออาจกลาวไดวา จะมลกศร

Pi →Pj ในกราฟการรอคอยทรพยากร ทแปลงมา กตอเมอ มลกศร Pi →Rq และ Rq→Pj ในกราฟการจดสรรทรพยากรตนแบบ

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 30

Resource-Allocation Graph and Wait-for Graph

(a) เปนตนแบบกราฟการจดสรรทรพยากร (b) แปลงเปนกราฟการรอคอยทรพยากร

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 31

Available : เปนเวคเตอรขนาด m แสดงจานวนทรพยากรแตละชนด

ทยงวางอย (ไมไดถกโปรเซสใดถอครองอย)

Allocation : เปนเมทรกซ n x m ใชเกบคาจานวนทรพยากรแตละ

ชนดทโปรเซสแตละตวถอครองอย

Request : เปนเมทรกซ n x m ใชเกบคาจานวนทรพยากรแตละชนดท

โปรเซสแตละตวกาลงรองขอ

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 32

1. Let Work and Finish be vectors of length m and n, respectively Initialize:(a) Work = Available(b) For i = 1,2, …, n, if Allocationi ≠ 0, then

Finish[i] = false;otherwise, Finish[i] = true.2. Find an index i such that both:

(a) Finish[i] == false(b) Requesti ≤ Work

If no such i exists, go to step 4.

Page 9: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 33

3. Work = Work + AllocationiFinish[i] = truego to step 2.

4. If Finish[i] == false, for some i, 1 ≤ i ≤ n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked.

Algorithm requires an order of O(m x n2) operations to detect whether the system is in deadlocked state.

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 34

ระบบม 5 โปรเซส P0 , P1 , P2 , P3 และ P4 และมทรพยากรชนด A 7

ตว , ชนด B 2 ตว , ชนด C 6 ตว ณ เวลา T0

Allocation Request AvailableA B C A B C A B C

P0 0 1 0 0 0 0 0 0 0P1 2 0 0 2 0 2P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2

Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i.

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 35

P2 รองขอทรพยากรประเภท C เพมอก 1 ตว .

RequestA B C

P0 0 0 0P1 2 0 1P2 0 0 1P3 1 0 0 P4 0 0 2

State of system?Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests.Deadlock exists, consisting of processes P1, P2, P3, and P4.

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 36

รายงานใหผควบคมเครองทราบวาขณะนเกดวงจรอบขนในระบบแลว และใหผควบคมจดการแกไขวงจรอบเอง

ยกเลกการทางานของแตละโปรเซสทเกดวงจรอบทละตวจนกระทงระบบกลบสสภาวะปกต

เลอกโปรเซสทไดใชเวลาของตวประมวลผลไปแลวนอยทสด

เลอกโปรเซสทไดใหเอาตพตออกมานอยทสด

เลอกโปรเซสทไดครอบครองทรพยากรนอยทสด

เลอกโปรเซสทมลาดบความสาคญนอยทสด

เลอกโปรเซสทยงตองการเวลาในการทางานมากทสด

Page 10: Chapter 05 Deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/OS_PDF/Chapter 05 Deadlock.pdf · Operating System 1 : Deadlockรูปที่ 1 หน า 9 รูปที่

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 37 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 38

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 39

การเลอกผรบเคราะห (Selection a victim) โดยการเลอกวากระบวนการ

ใดในวงจรอบทจะถกแทรกกลางคน (minimize cost)

การถอยกลบ (Rollback) นาโปรเซสนนกลบมาเรมทางานใหมเนองจาก

ขาดทรพยากร

การแชเยน (Starvation) เราจะรบประกนไดอยางไรวาจะไมเกดการแช

เยน เชน มกระบวนการหนงถกแทรกกลางคนทรพยากรทกาลงใชอย

เสมอ ๆ

Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 40

ตางประเทศเรยกวา วธการคดแบบนกกระจอกเทศ (Ostrich algorithm) คอ จาก

ลกษณะของนกกระจอกเทศทเอาหวมดทรายและแกลงทาเปนไมสนใจสงทเกดขน

นกคณตศาสตรจะไมยอมรบวธการน เพราะตองการปองกนการเกดวงจรอบ

วศวกรถามวาปญหาวงจรอบเกดขนบอยแคไหน และจะเกดความเสยหายรนแรงมาก

หรอไม ถาเกดจากฮารดแวรเสย, ไวรส, เกดความผดพลาดในตว OS เอง วศวกรจะไม

เสยเวลาในการจดการ

ระบบสวนใหญ จะไมสนใจกบปญหาวงจรอบมากนก โดยตงสมมตฐานเอาเองวาผใช

สวนใหญตองการใหเกดขนมาบางเพอหามไมใหใชโปรเซสเดยวกน