บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/slide/4123404a/chapter5.pdf ·...

38
บทที่ 7 วงจรอับ (DEADLOCK)

Upload: others

Post on 12-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

บทท 7 วงจรอบ

(DEADLOCK)

Page 2: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

รปแบบของปญหา (System Model)

การคน (Release) กระบวนการตองคนทรพยากรทใชเสรจแลว กลบสระบบ

การใชงาน (Use) กระบวนการนนสามารถใชงานทรพยากรทไดรบ เชน ในกรณททรพยากรทรองขอคอ เครองพมพ เมอไดรบการจดสรรจากระบบแลว กระบวนการนนสามารถพมพขอมลออกทางเครองพมพได

การรองขอ (Request) ถาการรองขอนนไมไดรบการอนมตจากระบบในทนท (เชน ทรพยากรทตองการนน ก าลงถกใชงานโดยกระบวนการอน) ดงนน กระบวนการทรองขอ จะตองรอจนกวาจะไดรบทรพยากรทตองการ

เมอกระบวนการตองการใชทรพยากรของระบบ จะตองท าตามล าดบขนตอนตาง ๆ ดงน

Page 3: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

รปแบบของปญหา (System Model)

การรองขอ และการคนทรพยากร คอ ค าสงเรยกระบบ (System calls)

กลมของกระบวนการ จะตกอยในสถานะวงจรอบ เมอทก ๆ กระบวนการ ทอยในกลมนน ตางกก าลงรอคอย ทจะใชทรพยากรทก าลงถกใช โดยกระบวนการอนในกลมนน

Page 4: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

รปแบบของปญหา (System Model) เพอทจะแสดงใหเหนภาพของสถานะวงจรอบ เราจะมาพจารณา ระบบทประกอบ

ไปดวยเครองขบเทป 3 เครอง สมมตวา มกระบวนการอย 3 กระบวนการ และแตละกระบวนการ ก าลงใชเครองขบเทปอย กระบวนการละเครอง ตอมาถาแตละกระบวนการ รองขอเครองขบเทปเพมอกกระบวนการละ 1 เครอง ทง 3 กระบวนการ จะตดอยในวงจรอบทนท โดยแตละกระบวนการก าลงรอสถานการณท “เครองขบเทปถกปลอยคนสระบบ” ซงเปนสถานการณทขนกบกระบวนการอน ในวงจร (ทก าลงรอคอยทรพยากรอยเชนกน) ตวอยางทยกมานเปนการแสดงภาพของวงจรอบทเกดจากการทกระบวนการพยายามทจะแยงกนใชทรพยากรประเภทเดยวกน

Page 5: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

ลกษณะของวงจรอบ (Deadlock Characterization)

เงอนไขในการตดวงจรอบ (Necessary Conditions)

• วงจรอบจะเกดขนไดกตอเมอ

• ทรพยากรเปนแบบใชรวมกนไมได (Mutual exclusion) นนคอ จะตองมทรพยากรอยางนอย 1 ตว จดอยในกลมทรพยากรทใชรวมกนไมได นนคอ จะมเพยง 1 กระบวนการเทานนทจะใชทรพยากรตวนนได ถามกระบวนการอนรองขอทรพยากรทก าลงถกใชอย กระบวนการนนจะตองรอ จนกระทงทรพยากรนน ถกคนกลบสระบบแลว

Page 6: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

เงอนไขในการตดวงจรอบ (Necessary Conditions)

2. การถอครองแลวรอคอย (Hold and Wait) คอ มอยางนอยหนงกระบวนการ ทก าลงถอครองทรพยากรอยอยางนอย 1 ตว และขณะเดยวกน กก าลงรอคอยทรพยากรเพมอก แตเปนทรพยากรทก าลงถกถอครอง โดยกระบวนการอนอย

3. หามแทรกกลางคน (No Preemption) เมอกระบวนการก าลงใชทรพยากรอย จะไมมการแทรกกลางคน หรอ ทรพยากรทถกใชงาน จะถกปลอยคนสระบบ โดยความสมครใจของกระบวนการนน คอ เมอกระบวนการนน ไดท างานจนเสรจสมบรณแลว

Page 7: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

เงอนไขในการตดวงจรอบ (Necessary Conditions)

4. วงจรรอคอย (Circular Wait) คอ เซตของกระบวนการ ทก าลงรอคอยทรพยากร (P0, P1, … , Pn) ซง P0 ก าลงรอคอยทรพยากรทถอครองโดย P1 , P1 ก าลงรอคอยทรพยากร ทถอครองโดย P2 , … , Pn-1 ก าลงรอคอยทรพยากรทถอครองโดย Pn และ Pn กก าลงรอคอยทรพยากรทถอครองโดย P0

** ตองมเงอนไขทง 4 นครบ จงจะเกดวงจรอบได เราจะเหนวา เงอนไขทง 4 ไมไดเปนอสระตอกนอยางแทจรง เชน วงจรรอคอย จะเกดจากการทมเงอนไข การถอครองแลวรอคอย ในระบบ

Page 8: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

ใช Direct Graph ในการเขยน โดยประกอบดวย Vertex และ Edge

Vertex แบงเปน 2 ประเภทคอ

P = { P1, P2, … , Pn} เปนเซตของกระบวนการทงหมดทมอยในระบบ

และเซต R = { R0, R1, … , Rn } เปนเซตของทรพยากรทมอยในระบบ

และEdge แบงเปน

ลกศรจาก Pi ไปยง Rj (Pi -> Rj) นนเรยกวา “เสนรองขอ” (Request Edge)

ลกศรจาก Rj ไปยง Pi (Rj -> Pi) เรยกวา “เสนถอครอง” (Assignment Edge)

Page 9: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

ในการเขยนกราฟ เราจะใชวงกลมแทนกระบวนการ และใชสเหลยมแทนทรพยากร และใชจด แทนจ านวนทรพยากรแตละตว ซงจะอยภายในสเหลยม โดยทเสนรองขอจะตองชไปยงกรอบสเหลยม (ทรพยากร Rj) เทานน แตเสนถอครอง จะตองชไปยงจดใดจดหนงในสเหลยม

Page 10: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

กราฟการจดสรรทรพยากรในรปขางตน แสดงสถานะของระบบ ดงน

เซต P = { P1 , P2, P3}

เซต R = { R1 , R2 , R3 , R4 }

เซต E = { P1->R1, P2->R3 , R1->P2 , R2->P2 ,R2->P1 , R3->P3 }

ทรพยากรในระบบ

ทรพยากรประเภท R1 = 1 ตว

ทรพยากรประเภท R2 = 2 ตว

ทรพยากรประเภท R3 = 1 ตว

ทรพยากรประเภท R4 = 3 ตว

Page 11: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

สถานะของกระบวนการ

กระบวนการ P1 ก าลงถอครองทรพยากรประเภท R2 และก าลงรอคอยทจะใชทรพยากรประเภท R1

กระบวนการ P2 ก าลงถอครองทรพยากรประเภท R1 และ R2 และก าลงรอคอยทจะใชทรพยากรประเภท R3

กระบวนการ P3 ก าลงถอครองทรพยากรประเภท R3 อย

Page 12: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

จากกราฟเราเหนวาถาไมมวงจรในกราฟแลว ระบบจะไมอยในสถานะวงจรอบ แตถามวงจรกราฟ อาจจะเกดวงจรอบขน

ถาเปนระบบททรพยากรแตละประเภทมเพยง 1 ตว เมอมวงจรในกราฟ กจะตองมวงจรอบในระบบแนนอน

แตถาทรพยากรแตละประเภทมจ านวนมากกวา 1 ตว วงจรทเกดขนในกราฟ ไมอาจเปนตวบอกไดเสมอไปวา เกดวงจรอบในระบบ

สมมตวากระบวนการ P3 ไดรองขอทรพยากรประเภท R2 แตเนองจากไมมทรพยากรตวใด ในประเภท R2 วางเลย ดงนนเสนรองขอ P3 R2 จงถกใสเพม เขาไปในกราฟ ซงแสดงในรปถดไป

Page 13: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

Page 14: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

ณ จดน จะเกดวงจรอยางนอย 2 วง ขนในระบบ คอ

P1->R1-> P2->R3->P3->R2->P1

P2->R3->P3->R2->P2

Page 15: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

ท าใหเกดวงจรอบกบกระบวนการ P1 , P2 และ P3 กระบวนการ P2 ก าลงรอคอย ทรพยากรประเภท R3 ซงก าลงถกถอครองโดยกระบวนการ P3 และกระบวนการ P3 กก าลงรองขอทรพยากรประเภท R2 ซงถกถอครอง โดยกระบวนการ P1 และ P2 หรออาจกลาวไดวา กระบวนการ P3 ก าลงรอคอยให P1 หรอ P2 คนทรพยากรประเภท R2 กลบสระบบ

เราลองมาพจารณารปภาพถดไป จะเหนวาม วงจร

Page 16: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

P1->R1->P3->R2->P1

Page 17: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

กราฟการจดสรรทรพยากร (Resource-Allocation Graph)

แตอยางไรกตามวงจรนจะไมกอใหเกดวงจรอบ โดยสงเกตวา กระบวนการ P4 จะปลอยทรพยากรประเภท R2 ทตนเองถอครองอย เมอใชเสรจ ซงเมอทรพยากร R2 ถกปลอยกลบสระบบแลวระบบกสามารถทจะจดทรพยากรประเภท R2 ใหแกกระบวนการ P3 ได วงจรกจะขาดทนท

เราอาจกลาวโดยสรปไดวา ถาไมมวงจรในกราฟการจดสรรทรพยากรแลว ระบบจะไมอยในสถานะวงจรอบ แตในทางกลบกน ถามวงจรในกราฟแลว ระบบอาจจะเกดวงจรอบ หรอไมเกดกได

Page 18: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

Break กนดกวา

Page 19: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การจดการปญหาวงจรอบ (Methods for Handing Deadlocks)

การจดการปญหาวงจรอบมอย 3 วธหลก ๆ คอ

1. ก าหนดกฎเกณฑบางอยางในการใชทรพยากร เพอใหแนใจวาระบบจะไมมทางเกดวงจรอบได

2. ไมตองปองกนใด ๆ เลย ปลอยใหระบบเกดวงจรอบขนกอน แลวคอยตามแกไขทหลง

3. มองขามปญหาทงหมด แลวแสรงท าวาวงจรอบไมเคยเกดขนในระบบ วธการแกปญหาวธนเปนวธการหนงทถกใชในระบบปฏบตการสวนใหญ รวมทง UNIX ดวย <restart>

Page 20: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

1. หามใชทรพยากรรวมกน (Mutual Exclusion)

เงอนไขในขอน คอ การทระบบ ไมอนญาตให มการใชทรพยากรรวมกน เชน เครองพมพจะไมสามารถ ใหกระบวนการหลาย ๆ กระบวนการ ใชพรอม ๆ กนได แตถาเรายอมใหในระบบมการใชทรพยากรรวมกนได ปญหาวงจรอบกจะไมเกด เชน แฟมขอมลทอานไดอยางเดยวสามารถใชรวมกนได

อยางไรกตาม การทเราจะปองกนการเกดวงจรอบในระบบ โดยการปองกนเงอนไขน ไมสามารถท าไดเสมอไป เพราะยงมทรพยากรบางประเภท ทไมมทางใชรวมกนได

Page 21: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

2. การถอครองแลวรอคอย (Hold and Wait)

คอ การทจะไมใหเกด “การถอครองแลวรอคอย” ขนในระบบ โดยจะตองก าหนดวา เมอกระบวนการหนงจะรองขอทรพยากร กระบวนการนนจะตองไมไดถอครองทรพยากรใด ๆ อยในขณะนน ซงอาจท าได 2 วธการ คอ

1. ใหกระบวนการรองขอทรพยากรทตองการใชทงหมด (ตลอดการท างาน) กอนทจะเรมตนท างาน

2. ยอมใหกระบวนการรองขอทรพยากรได กตอเมอกระบวนการนนมไดถอครองทรพยากรใดไวเลย

Page 22: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

เราจะเหนความแตกตางของ 2 วธน โดยการพจารณาจากตวอยาง กระบวนการหนงตองการ

คดลอกขอมลจากเทปลงไปเกบทแฟมขอมลในดสก

เรยงล าดบขอมลของแฟมขอมลในดสก

พมพผลลพธออกสเครองพมพ

ถาทรพยากรทงหมดตองถกรองขอในตอนเรมตนงานของกระบวนการ (นนคอใชวธแรก) แสดงวากระบวนการน กจะถอครองเครองพมพ ไวตลอดเวลาทกระบวนการท างานอย ถงแมวากระบวนการน จะใชเครองพมพเฉพาะในตอนทายของการท างานเทานน

Page 23: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

ส าหรบวธท 2 ใหกระบวนการรองขอทรพยากรในตอนเรมตน แคเครองขบเทป และแฟมขอมลในดสก โดยเมอไดรบทรพยากรแลว กระบวนการจะคดลอกขอมล จากเทปลงไปสดสกจากนนกจะคนทงเครองขบเทป และแฟมขอมลในดสกกลบสระบบ จากนนกระบวนการกจะตองรองขอแฟมขอมลในดสกและเครองพมพใหมอกครงหนง เมอพมพเสรจเรยบรอยแลวกระบวนการกจะคนทรพยากรกลบสระบบ เปนอนสนสดการท างานของกระบวนการ

Page 24: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

วธการแรก มขอเสยคอ การใชทรพยากรจะมประสทธผลต ามาก อาจม ปญหาการแชเยน (starvation) อกดวย โดยถามบางกระบวนการตองการใชทรพยากร (ทเปนทนยมใชกนมาก) หลาย ๆ ตว อาจตองรอคอย อยางไมมทสนสด

สวนวธการหลงกมขอเสยคอ ตองคนทรพยากรทถอครองอย เพอทจะรองขอกลบมาใหมอก รวมกบทรพยากรตวใหม ท าใหเสยเวลาโดยเปลาประโยชน

Page 25: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

3. หามแทรกกลางคน (No Preemption)

เราอาจก าหนดกฎเกณฑดงน

ถากระบวนการหนง (ทก าลงถอครองทรพยากรบางสวนอย) รองขอทรพยากรเพม และระบบยงไมสามารถจดใหไดในทนท (แสดงวากระบวนการทรองขอจะตองรอ) เราจะใหทรพยากรทงหมด ทกระบวนการนถอครองอย ถกแทรกกลางคน นนคอ ทรพยากรทกระบวนการนถอครองอยทงหมดจะถกปลอยคนสระบบโดยปรยาย กระบวนการทถกแทรกกลางคนนจะตองรอคอยทรพยากร ทงทรองขอไวตงแตแรก และทถกแทรกกลางคนไป กอนทจะสามารถท างานตอไปได

Page 26: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

วธการนมกใชกบทรพยากรทสามารถเกบคาสถานะและตดตงคากลบคนมาไดงาย เชน คาในรจสเตอร (ของหนวยประมวลผลกลาง) เนอทในหนวยความจ าหลก เปนตน แตจะไมสามารถใชกบทรพยากรทว ๆ ไป เชน เครองพมพ และ หนวยขบเทป เปนตน

Page 27: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention)

4. วงจรรอคอย (Circular Wait)

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

ก าหนดให R = { R1 , R2, … , Rm } โดย R เปนเซตของทรพยากรในระบบ และ ก าหนดใหทรพยากรแตละประเภทม คาเลขล าดบเปน เลขจ านวนเตม ทไมซ ากน เขยนแทนดวย F(Ri) เพอใหเราสามารถเปรยบเทยบทรพยากร 2 ประเภทไดวาตวใดมล าดบกอน-หลง ตวอยางเชน ถา

Page 28: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention) F(เครองขบเทป) = 1 F(เครองขบดสก) = 5 F(เครองพมพ) = 12 ก าหนดวธการในการรองขอทรพยากรในระบบดงน กระบวนการแตละตวสามารถรองขอทรพยากรได ในล าดบทเพมขนเทานน คอ เรมตนกระบวนการอาจรองขอทรพยากรใด ๆ กได เชน ทรพยากร Ri แตตอจากนกระบวนการจะรองขอทรพยากร Rj ไดกตอเมอ F(Rj) > F(Ri) ถาเปนการรองขอทรพยากร ประเภทเดยวกนหลาย ๆ ตว กระบวนการจะตองรองขอทรพยากรทละตว

Page 29: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การปองกนการเกดวงจรอบ (Deadlock Prevention) ตวอยาง จากเลขล าดบทรพยากระ ถากระบวนการหนงตองการใชเครองขบเทพ (F(R) = 1) และเครองพมพ (F(R) = 12) กระบวนการนนตองรองขอเครองขบเทปกอน แลวจงขอเครองพมพ ในทางตรงกนขาม ถากระบวนการตองการรองขอทรพยากรประเภท Rj กระบวนการจะตองปลอยทรพยากร Ri ซง F(Ri) >= F(Rj) คนสระบบทกตวเสยกอน เชนถอครอง R5 อยอยากได R1 ตองคน R5 กอน R5 >= R1

Page 30: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) อกทางเลอกหนงทไมใหเกดวงจรอบนนคอการหลกเลยง การหลกเลยงเราตองมขอมลการรองของทรพยากรของระบบโดยรวม

เชน ในระบบมเครองขบเทป 1 เครองพมพ 1 และตองทราบวา กระบวนการ P ตองการขบเทป และรองขอเครองพมพ แลวปลอยคนระบบ และ กระบวนการ Q รองขอเครองพมพ จากนนรองขอขบเทป จากขอมลท าใหเราทราบวาการรองขอของกระบวนการท าใหเกดการรอกนหรอ ไม

Page 31: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) วธการหนงทงาย คอ ใหกระบวนการประกาศจ านวนทรพยากรสงสดในแตละประเภท ทกระบวนการนนตองการ

ซงท าใหเราสามารถสรางขนตอนการรองขอเพอจะสามารถรบประกนไดวาไมเกดวงจรอบได โดยจะมขนตอนในการตรวจสอบสถานะของการจดสรรทรพยากรอยเสมอ โดยสถาระของการจดสรรทรพยากร ประกอบดวย จ านวนทรพยากรทงหมด จ านวนทรพยากรทถกจดสรรใหกบกระบวนการ และความตองการสงสดของแตละกระบวนการ ระบบจะอยในสถาณะปลอดภยหากมรปแบบทางเลอกในการจดสรรทรพยากรใหแตละกระบวนการ

Page 32: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) สถานะปลอดภย (Safe State)

ระบบจะอยในสถานะปลอดภย (Safe State) กตอเมอมล าดบการจดสรรทรพยากรอยางปลอดภยแกกระบวนการ (Safe Sequence) โดยเราจะถอวาล าดบของกระบวนการ <P1, P2 , … , Pn> เปนล าดบทปลอดภย ส าหรบสถานะของการจดสรรทรพยากรปจจบน

Page 33: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance)

แตถาไมสามารถหาล าดบกระบวนการทปลอดภยในระบบได แสดงวาระบบอยในสถานะไมปลอดภย (unsafe state)

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

Page 34: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) ตวอยางเชน ระบบหนงมเครองขบเทป 12 เครอง และมกระบวนการ 3 กระบวนการอยในระบบ คอ P0 , P1 และ P2 โดยกระบวนการ P0 , P1 และ P2 ตองการใชเครองขบเทปสงสด 10 , 4 และ 9 เครอง ตามล าดบ ถา ณ เวลา T0 กระบวนการ P0 , P1 และ P2 ไดรบเครองขบเทป กระบวนการละ 5 , 2 และ 2 เครอง ตามล าดบ (แสดงวา ณ เวลานนมเครองขบเทปวาอย 3 เครอง)

Page 35: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance)

กระบวนการ (Process)

ความตองการสงสด (Maximum Needs)

ความตองการปจจบน (Current Needs)

P0 P1 P2

10 4 9

5 2 2

ณ เวลา T0 ล าดบกระบวนการ < P1, P0 , P2 > แสดงวา ระบบอยในสถานะปลอดภย

Page 36: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) จะเหนวาระบบสามารถจดสรรทรพยากรใหกระบวนการ P1 ได เมอ P1 ท างานเสรจ กจะคนทรพยากรทงหมดใหกบระบบ ดงนน จะไดเครองขบเทป เพมเปน 5 เครองและสามารถจดสรรใหกบ P0 และ P2 ได

Page 37: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) บางครงระบบอาจจะเปลยนจะสถานะปลอดภย ไปเปนสถานะไมปลอดภย

ได เชน สมมตวา ณ เวลา T1 กระบวนการ P2 รองขอเครองขบเทปเพมอก 1 เครอง และไดรบการจดสรรจะท าใหสถานะของระบบกลายเปนสถานะไมปลอดภยทนท (อยางไร ??)

Page 38: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา

การหลกเลยงวงจรอบ (Deadlock Avoidance) โดยใชแนวคดของสถานะปลอดภยน เราสามารถสรางขนตอนวธการ

หลกเลยงวงจรอบซงจะประกนไดวา จะไมเกดวงจรอบขนในระบบ โดยเมอใดกตามทกระบวนการรองขอทรพยากรเพมและทรพยากรยงมวางพอ ระบบตองตดสนใจวาจะใหทรพยากรตามทรองขอทนทหรอไมให (ใหกระบวนการรอไปกอน) โดยพจารณาจากวาถาจดสรรใหตามทรองขอแลวระบบจะยงคงอยในสถานะปลอดภยหรอไม