chapter 05 deadlock - janphar.lpru.ac.thjanphar.lpru.ac.th/suksan/os_pdf/chapter 05 deadlock.pdf ·...
TRANSCRIPT
อ.สขสนต บวฉม
โปรแกรมวชาคอมพวเตอร คณะวทยาศาสตร
มหาวทยาลยราชภฏลาปาง
Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 2
Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 3 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 4
ไมใหใชทนทตองด ทรพยากรทตองการนนวาง
รองขอไดแลว ไดรบจดสรรจากระบบแลว
ใชเสรจแลวคนใหระบบ
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
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
Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 13 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 14
Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 15 Operating System 1 : Deadlock อ.สขสนต บวฉมหนา 16
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 ทางานเสรจและวงจรอบกไม
เกดขน
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
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
ขนตอนของการตรวจหาวงจรอบ
การกคนระบบ
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.
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
รายงานใหผควบคมเครองทราบวาขณะนเกดวงจรอบขนในระบบแลว และใหผควบคมจดการแกไขวงจรอบเอง
ยกเลกการทางานของแตละโปรเซสทเกดวงจรอบทละตวจนกระทงระบบกลบสสภาวะปกต
เลอกโปรเซสทไดใชเวลาของตวประมวลผลไปแลวนอยทสด
เลอกโปรเซสทไดใหเอาตพตออกมานอยทสด
เลอกโปรเซสทไดครอบครองทรพยากรนอยทสด
เลอกโปรเซสทมลาดบความสาคญนอยทสด
เลอกโปรเซสทยงตองการเวลาในการทางานมากทสด
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 เอง วศวกรจะไม
เสยเวลาในการจดการ
ระบบสวนใหญ จะไมสนใจกบปญหาวงจรอบมากนก โดยตงสมมตฐานเอาเองวาผใช
สวนใหญตองการใหเกดขนมาบางเพอหามไมใหใชโปรเซสเดยวกน