![Page 1: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/1.jpg)
บทท 7 วงจรอบ
(DEADLOCK)
![Page 2: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/2.jpg)
รปแบบของปญหา (System Model)
การคน (Release) กระบวนการตองคนทรพยากรทใชเสรจแลว กลบสระบบ
การใชงาน (Use) กระบวนการนนสามารถใชงานทรพยากรทไดรบ เชน ในกรณททรพยากรทรองขอคอ เครองพมพ เมอไดรบการจดสรรจากระบบแลว กระบวนการนนสามารถพมพขอมลออกทางเครองพมพได
การรองขอ (Request) ถาการรองขอนนไมไดรบการอนมตจากระบบในทนท (เชน ทรพยากรทตองการนน ก าลงถกใชงานโดยกระบวนการอน) ดงนน กระบวนการทรองขอ จะตองรอจนกวาจะไดรบทรพยากรทตองการ
เมอกระบวนการตองการใชทรพยากรของระบบ จะตองท าตามล าดบขนตอนตาง ๆ ดงน
![Page 3: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/3.jpg)
รปแบบของปญหา (System Model)
การรองขอ และการคนทรพยากร คอ ค าสงเรยกระบบ (System calls)
กลมของกระบวนการ จะตกอยในสถานะวงจรอบ เมอทก ๆ กระบวนการ ทอยในกลมนน ตางกก าลงรอคอย ทจะใชทรพยากรทก าลงถกใช โดยกระบวนการอนในกลมนน
![Page 4: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/4.jpg)
รปแบบของปญหา (System Model) เพอทจะแสดงใหเหนภาพของสถานะวงจรอบ เราจะมาพจารณา ระบบทประกอบ
ไปดวยเครองขบเทป 3 เครอง สมมตวา มกระบวนการอย 3 กระบวนการ และแตละกระบวนการ ก าลงใชเครองขบเทปอย กระบวนการละเครอง ตอมาถาแตละกระบวนการ รองขอเครองขบเทปเพมอกกระบวนการละ 1 เครอง ทง 3 กระบวนการ จะตดอยในวงจรอบทนท โดยแตละกระบวนการก าลงรอสถานการณท “เครองขบเทปถกปลอยคนสระบบ” ซงเปนสถานการณทขนกบกระบวนการอน ในวงจร (ทก าลงรอคอยทรพยากรอยเชนกน) ตวอยางทยกมานเปนการแสดงภาพของวงจรอบทเกดจากการทกระบวนการพยายามทจะแยงกนใชทรพยากรประเภทเดยวกน
![Page 5: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/5.jpg)
ลกษณะของวงจรอบ (Deadlock Characterization)
เงอนไขในการตดวงจรอบ (Necessary Conditions)
• วงจรอบจะเกดขนไดกตอเมอ
• ทรพยากรเปนแบบใชรวมกนไมได (Mutual exclusion) นนคอ จะตองมทรพยากรอยางนอย 1 ตว จดอยในกลมทรพยากรทใชรวมกนไมได นนคอ จะมเพยง 1 กระบวนการเทานนทจะใชทรพยากรตวนนได ถามกระบวนการอนรองขอทรพยากรทก าลงถกใชอย กระบวนการนนจะตองรอ จนกระทงทรพยากรนน ถกคนกลบสระบบแลว
![Page 6: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/6.jpg)
เงอนไขในการตดวงจรอบ (Necessary Conditions)
2. การถอครองแลวรอคอย (Hold and Wait) คอ มอยางนอยหนงกระบวนการ ทก าลงถอครองทรพยากรอยอยางนอย 1 ตว และขณะเดยวกน กก าลงรอคอยทรพยากรเพมอก แตเปนทรพยากรทก าลงถกถอครอง โดยกระบวนการอนอย
3. หามแทรกกลางคน (No Preemption) เมอกระบวนการก าลงใชทรพยากรอย จะไมมการแทรกกลางคน หรอ ทรพยากรทถกใชงาน จะถกปลอยคนสระบบ โดยความสมครใจของกระบวนการนน คอ เมอกระบวนการนน ไดท างานจนเสรจสมบรณแลว
![Page 7: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/7.jpg)
เงอนไขในการตดวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/8.jpg)
กราฟการจดสรรทรพยากร (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/9.jpg)
กราฟการจดสรรทรพยากร (Resource-Allocation Graph)
ในการเขยนกราฟ เราจะใชวงกลมแทนกระบวนการ และใชสเหลยมแทนทรพยากร และใชจด แทนจ านวนทรพยากรแตละตว ซงจะอยภายในสเหลยม โดยทเสนรองขอจะตองชไปยงกรอบสเหลยม (ทรพยากร Rj) เทานน แตเสนถอครอง จะตองชไปยงจดใดจดหนงในสเหลยม
![Page 10: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/10.jpg)
กราฟการจดสรรทรพยากร (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/11.jpg)
กราฟการจดสรรทรพยากร (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/12.jpg)
กราฟการจดสรรทรพยากร (Resource-Allocation Graph)
จากกราฟเราเหนวาถาไมมวงจรในกราฟแลว ระบบจะไมอยในสถานะวงจรอบ แตถามวงจรกราฟ อาจจะเกดวงจรอบขน
ถาเปนระบบททรพยากรแตละประเภทมเพยง 1 ตว เมอมวงจรในกราฟ กจะตองมวงจรอบในระบบแนนอน
แตถาทรพยากรแตละประเภทมจ านวนมากกวา 1 ตว วงจรทเกดขนในกราฟ ไมอาจเปนตวบอกไดเสมอไปวา เกดวงจรอบในระบบ
สมมตวากระบวนการ P3 ไดรองขอทรพยากรประเภท R2 แตเนองจากไมมทรพยากรตวใด ในประเภท R2 วางเลย ดงนนเสนรองขอ P3 R2 จงถกใสเพม เขาไปในกราฟ ซงแสดงในรปถดไป
![Page 13: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/13.jpg)
กราฟการจดสรรทรพยากร (Resource-Allocation Graph)
![Page 14: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/14.jpg)
กราฟการจดสรรทรพยากร (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/15.jpg)
กราฟการจดสรรทรพยากร (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/16.jpg)
กราฟการจดสรรทรพยากร (Resource-Allocation Graph)
P1->R1->P3->R2->P1
![Page 17: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/17.jpg)
กราฟการจดสรรทรพยากร (Resource-Allocation Graph)
แตอยางไรกตามวงจรนจะไมกอใหเกดวงจรอบ โดยสงเกตวา กระบวนการ P4 จะปลอยทรพยากรประเภท R2 ทตนเองถอครองอย เมอใชเสรจ ซงเมอทรพยากร R2 ถกปลอยกลบสระบบแลวระบบกสามารถทจะจดทรพยากรประเภท R2 ใหแกกระบวนการ P3 ได วงจรกจะขาดทนท
เราอาจกลาวโดยสรปไดวา ถาไมมวงจรในกราฟการจดสรรทรพยากรแลว ระบบจะไมอยในสถานะวงจรอบ แตในทางกลบกน ถามวงจรในกราฟแลว ระบบอาจจะเกดวงจรอบ หรอไมเกดกได
![Page 18: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/18.jpg)
Break กนดกวา
![Page 19: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/19.jpg)
การจดการปญหาวงจรอบ (Methods for Handing Deadlocks)
การจดการปญหาวงจรอบมอย 3 วธหลก ๆ คอ
1. ก าหนดกฎเกณฑบางอยางในการใชทรพยากร เพอใหแนใจวาระบบจะไมมทางเกดวงจรอบได
2. ไมตองปองกนใด ๆ เลย ปลอยใหระบบเกดวงจรอบขนกอน แลวคอยตามแกไขทหลง
3. มองขามปญหาทงหมด แลวแสรงท าวาวงจรอบไมเคยเกดขนในระบบ วธการแกปญหาวธนเปนวธการหนงทถกใชในระบบปฏบตการสวนใหญ รวมทง UNIX ดวย <restart>
![Page 20: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/20.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
1. หามใชทรพยากรรวมกน (Mutual Exclusion)
เงอนไขในขอน คอ การทระบบ ไมอนญาตให มการใชทรพยากรรวมกน เชน เครองพมพจะไมสามารถ ใหกระบวนการหลาย ๆ กระบวนการ ใชพรอม ๆ กนได แตถาเรายอมใหในระบบมการใชทรพยากรรวมกนได ปญหาวงจรอบกจะไมเกด เชน แฟมขอมลทอานไดอยางเดยวสามารถใชรวมกนได
อยางไรกตาม การทเราจะปองกนการเกดวงจรอบในระบบ โดยการปองกนเงอนไขน ไมสามารถท าไดเสมอไป เพราะยงมทรพยากรบางประเภท ทไมมทางใชรวมกนได
![Page 21: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/21.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
2. การถอครองแลวรอคอย (Hold and Wait)
คอ การทจะไมใหเกด “การถอครองแลวรอคอย” ขนในระบบ โดยจะตองก าหนดวา เมอกระบวนการหนงจะรองขอทรพยากร กระบวนการนนจะตองไมไดถอครองทรพยากรใด ๆ อยในขณะนน ซงอาจท าได 2 วธการ คอ
1. ใหกระบวนการรองขอทรพยากรทตองการใชทงหมด (ตลอดการท างาน) กอนทจะเรมตนท างาน
2. ยอมใหกระบวนการรองขอทรพยากรได กตอเมอกระบวนการนนมไดถอครองทรพยากรใดไวเลย
![Page 22: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/22.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
เราจะเหนความแตกตางของ 2 วธน โดยการพจารณาจากตวอยาง กระบวนการหนงตองการ
คดลอกขอมลจากเทปลงไปเกบทแฟมขอมลในดสก
เรยงล าดบขอมลของแฟมขอมลในดสก
พมพผลลพธออกสเครองพมพ
ถาทรพยากรทงหมดตองถกรองขอในตอนเรมตนงานของกระบวนการ (นนคอใชวธแรก) แสดงวากระบวนการน กจะถอครองเครองพมพ ไวตลอดเวลาทกระบวนการท างานอย ถงแมวากระบวนการน จะใชเครองพมพเฉพาะในตอนทายของการท างานเทานน
![Page 23: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/23.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
ส าหรบวธท 2 ใหกระบวนการรองขอทรพยากรในตอนเรมตน แคเครองขบเทป และแฟมขอมลในดสก โดยเมอไดรบทรพยากรแลว กระบวนการจะคดลอกขอมล จากเทปลงไปสดสกจากนนกจะคนทงเครองขบเทป และแฟมขอมลในดสกกลบสระบบ จากนนกระบวนการกจะตองรองขอแฟมขอมลในดสกและเครองพมพใหมอกครงหนง เมอพมพเสรจเรยบรอยแลวกระบวนการกจะคนทรพยากรกลบสระบบ เปนอนสนสดการท างานของกระบวนการ
![Page 24: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/24.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
วธการแรก มขอเสยคอ การใชทรพยากรจะมประสทธผลต ามาก อาจม ปญหาการแชเยน (starvation) อกดวย โดยถามบางกระบวนการตองการใชทรพยากร (ทเปนทนยมใชกนมาก) หลาย ๆ ตว อาจตองรอคอย อยางไมมทสนสด
สวนวธการหลงกมขอเสยคอ ตองคนทรพยากรทถอครองอย เพอทจะรองขอกลบมาใหมอก รวมกบทรพยากรตวใหม ท าใหเสยเวลาโดยเปลาประโยชน
![Page 25: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/25.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
3. หามแทรกกลางคน (No Preemption)
เราอาจก าหนดกฎเกณฑดงน
ถากระบวนการหนง (ทก าลงถอครองทรพยากรบางสวนอย) รองขอทรพยากรเพม และระบบยงไมสามารถจดใหไดในทนท (แสดงวากระบวนการทรองขอจะตองรอ) เราจะใหทรพยากรทงหมด ทกระบวนการนถอครองอย ถกแทรกกลางคน นนคอ ทรพยากรทกระบวนการนถอครองอยทงหมดจะถกปลอยคนสระบบโดยปรยาย กระบวนการทถกแทรกกลางคนนจะตองรอคอยทรพยากร ทงทรองขอไวตงแตแรก และทถกแทรกกลางคนไป กอนทจะสามารถท างานตอไปได
![Page 26: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/26.jpg)
การปองกนการเกดวงจรอบ (Deadlock Prevention)
วธการนมกใชกบทรพยากรทสามารถเกบคาสถานะและตดตงคากลบคนมาไดงาย เชน คาในรจสเตอร (ของหนวยประมวลผลกลาง) เนอทในหนวยความจ าหลก เปนตน แตจะไมสามารถใชกบทรพยากรทว ๆ ไป เชน เครองพมพ และ หนวยขบเทป เปนตน
![Page 27: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/27.jpg)
การปองกนการเกดวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/28.jpg)
การปองกนการเกดวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/29.jpg)
การปองกนการเกดวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/30.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance) อกทางเลอกหนงทไมใหเกดวงจรอบนนคอการหลกเลยง การหลกเลยงเราตองมขอมลการรองของทรพยากรของระบบโดยรวม
เชน ในระบบมเครองขบเทป 1 เครองพมพ 1 และตองทราบวา กระบวนการ P ตองการขบเทป และรองขอเครองพมพ แลวปลอยคนระบบ และ กระบวนการ Q รองขอเครองพมพ จากนนรองขอขบเทป จากขอมลท าใหเราทราบวาการรองขอของกระบวนการท าใหเกดการรอกนหรอ ไม
![Page 31: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/31.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance) วธการหนงทงาย คอ ใหกระบวนการประกาศจ านวนทรพยากรสงสดในแตละประเภท ทกระบวนการนนตองการ
ซงท าใหเราสามารถสรางขนตอนการรองขอเพอจะสามารถรบประกนไดวาไมเกดวงจรอบได โดยจะมขนตอนในการตรวจสอบสถานะของการจดสรรทรพยากรอยเสมอ โดยสถาระของการจดสรรทรพยากร ประกอบดวย จ านวนทรพยากรทงหมด จ านวนทรพยากรทถกจดสรรใหกบกระบวนการ และความตองการสงสดของแตละกระบวนการ ระบบจะอยในสถาณะปลอดภยหากมรปแบบทางเลอกในการจดสรรทรพยากรใหแตละกระบวนการ
![Page 32: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/32.jpg)
การหลกเลยงวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/33.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance)
แตถาไมสามารถหาล าดบกระบวนการทปลอดภยในระบบได แสดงวาระบบอยในสถานะไมปลอดภย (unsafe state)
สถานะปลอดภยเปนสถานะทไมมวงจรอบ และในทางกลบกน สถานะไมปลอดภยเปนสถานะทอาจเกดวงจรอบได แตกไมไดหมายความวา สถานะไมปลอดภยทงหมดจะกอใหเกดวงจรอบเสมอไป ดงรป
![Page 34: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/34.jpg)
การหลกเลยงวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/35.jpg)
การหลกเลยงวงจรอบ (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) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/36.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance) จะเหนวาระบบสามารถจดสรรทรพยากรใหกระบวนการ P1 ได เมอ P1 ท างานเสรจ กจะคนทรพยากรทงหมดใหกบระบบ ดงนน จะไดเครองขบเทป เพมเปน 5 เครองและสามารถจดสรรใหกบ P0 และ P2 ได
![Page 37: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/37.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance) บางครงระบบอาจจะเปลยนจะสถานะปลอดภย ไปเปนสถานะไมปลอดภย
ได เชน สมมตวา ณ เวลา T1 กระบวนการ P2 รองขอเครองขบเทปเพมอก 1 เครอง และไดรบการจดสรรจะท าใหสถานะของระบบกลายเปนสถานะไมปลอดภยทนท (อยางไร ??)
![Page 38: บทที่ 7 วงจรอับmathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter5.pdf · บทที่ 7 วงจรอับ (DEADLOCK) รูปแบบของปัญหา](https://reader035.vdocuments.site/reader035/viewer/2022071215/604624700449f750037e82d6/html5/thumbnails/38.jpg)
การหลกเลยงวงจรอบ (Deadlock Avoidance) โดยใชแนวคดของสถานะปลอดภยน เราสามารถสรางขนตอนวธการ
หลกเลยงวงจรอบซงจะประกนไดวา จะไมเกดวงจรอบขนในระบบ โดยเมอใดกตามทกระบวนการรองขอทรพยากรเพมและทรพยากรยงมวางพอ ระบบตองตดสนใจวาจะใหทรพยากรตามทรองขอทนทหรอไมให (ใหกระบวนการรอไปกอน) โดยพจารณาจากวาถาจดสรรใหตามทรองขอแลวระบบจะยงคงอยในสถานะปลอดภยหรอไม