71
บบบบบ 7 บบบบบบบ (DEADLOCK)

Operating System

Embed Size (px)

DESCRIPTION

Operating System. บทที่ 7 วงจรอับ (DEADLOCK). รูปแบบของปัญหา (System Model). รูปแบบของปัญหา (System Model). รูปแบบของปัญหา (System Model). - PowerPoint PPT Presentation

Citation preview

Page 1: Operating System

บทท�� 7 วงจรอั�บ (DEADLOCK)

Page 2: Operating System

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

Page 3: Operating System

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

Page 4: Operating System

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

ระบบท��ประกอับไปด�วยเคร��อังข�บเทป 3 เคร��อัง สมมติ!ว(า ม�กระบวนการอัย�( 3 กระบวนการ และแติ(ละกระบวนการ ก*าล�งใช้�

เคร��อังข�บเทปอัย�( กระบวนการละเคร��อัง ติ(อัมาถ�าแติ(ละกระบวนการ ร�อังขอัเคร��อังข�บเทปเพื่!�มอั�กกระบวนการละ 1

เคร��อัง ท�,ง 3 กระบวนการ จะติ!ดอัย�(ในวงจรอั�บท�นท� โดยแติ(ละกระบวนการก*าล�งรอัสถานการณ.ท�� “เคร��อังข�บเทปถ�กปล(อัยค�นส�(ระบบ” ซึ่0�งเป1นสถานการณ.ท��ข0,นก�บกระบวนการอั��น ในวงจร (ท��ก*าล�งรอัคอัยทร�พื่ยากรอัย�(เช้(นก�น) ติ�วอัย(างท��ยกมาน�,เป1นการแสดงภาพื่ขอังวงจรอั�บท��เก!ดจากการท��กระบวนการพื่ยายามท��

จะแย(งก�นใช้�ทร�พื่ยากรประเภทเด�ยวก�น

Page 5: Operating System

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

Page 6: Operating System

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

Page 7: Operating System

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

Page 8: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)P = { P1, P2, … , Pn} เป1นเซึ่ติขอังกระบวนการ

ท�,งหมดท��ม�อัย�(ในระบบ และเซึ่ติ R = { R0, R1, … , Rn } เป1นเซึ่ติขอัง

ทร�พื่ยากรท��ม�อัย�(ในระบบโดยท��ล�กศรจาก Pi ไปย�ง Rj (Pi Rj) น�,นเร�ยกว(า

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

ถ�อัครอัง” (Assignment Edge)

Page 9: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)ในการเข�ยนกราฟ เราจะใช้�วงกลมแทนกระบวนการ และใช้�

ส��เหล��ยมแทนทร�พื่ยากร และใช้�จ5ด แทนจ*านวนทร�พื่ยากรแติ(ละติ�ว ซึ่0�งจะอัย�(ภายในส��เหล��ยม โดยท��เส�นร�อังขอัจะติ�อังช้�,ไปย�งกรอับส��เหล��ยม (ทร�พื่ยากร Rj) เท(าน�,น แติ(เส�นถ�อัครอัง จะติ�อังช้�,ไปย�งจ5ดใดจ5ดหน0�งในส��เหล��ยม

Page 10: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (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: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)สถานะขอังกระบวนการกระบวนการ P1 ก*าล�งถ�อัครอังทร�พื่ยากรประเภท R2

และก*าล�งรอัคอัยท��จะใช้�ทร�พื่ยากรประเภท R1กระบวนการ P2 ก*าล�งถ�อัครอังทร�พื่ยากรประเภท R1

และ R2 และก*าล�งรอัคอัยท��จะใช้�ทร�พื่ยากรประเภท R3กระบวนการ P3 ก*าล�งถ�อัครอังทร�พื่ยากรประเภท R3 อัย�(

Page 12: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)ถ�าเป1นระบบท��ทร�พื่ยากรแติ(ละประเภทม�เพื่�ยง 1 ติ�ว เม��อัม�

วงจรในกราฟ ก�จะติ�อังม�วงจรอั�บในระบบแน(นอันแติ(ถ�าทร�พื่ยากรแติ(ละประเภทม�จ*านวนมากกว(า 1 ติ�ว

วงจรท��เก!ดข0,นในกราฟ ไม(อัาจเป1นติ�วบอักได�เสมอัไปว(า เก!ดวงจรอั�บในระบบ

สมมติ!ว(ากระบวนการ P3 ได�ร�อังขอัทร�พื่ยากรประเภท R2 แติ(เน��อังจากไม(ม�ทร�พื่ยากรติ�วใด ในประเภท R2 ว(างเลย ด�งน�,นเส�นร�อังขอั P3 R2 จ0งถ�กใส(เพื่!�ม เข�าไปในกราฟ ซึ่0�งแสดงในร�ปถ�ดไป

Page 13: Operating System

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

Page 14: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)ณ จ5ดน�, จะเก!ดวงจรอัย(างน�อัย 2 วง ข0,นในระบบ ค�อั P1 R1 P2 R3 P3 R2 P1 P2 R3 P3 R2 P2

Page 15: Operating System

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

Page 16: Operating System

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

P1 R1 P3 R2 P1

Page 17: Operating System

กราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph)แติ(อัย(างไรก�ติามวงจรน�,จะไม(ก(อัให�เก!ดวงจรอั�บ โดยส�งเกติ

ว(า กระบวนการ P4 จะปล(อัยทร�พื่ยากรประเภท R2 ท��ตินเอังถ�อัครอังอัย�( เม��อัใช้�เสร�จ ซึ่0�งเม��อัทร�พื่ยากร R2 ถ�ก

ปล(อัยกล�บส�(ระบบแล�วระบบก�สามารถท��จะจ�ดทร�พื่ยากรประเภท R2 ให�แก(กระบวนการ P3 ได� วงจรก�จะขาดท�นท�

เราอัาจกล(าวโดยสร5ปได�ว(า ถ�าไม(ม�วงจรในกราฟการจ�ดสรรทร�พื่ยากรแล�ว ระบบจะไม(อัย�(ในสถานะวงจรอั�บ แติ(ในทางกล�บก�น ถ�าม�วงจรในกราฟแล�ว ระบบอัาจจะเก!ดวงจรอั�บ หร�อัไม(เก!ดก�ได�

Page 18: Operating System

การจ�ดการป�ญหาวงจรอั�บ (Methods for Handing Deadlocks)การจ�ดการป�ญหาวงจรอั�บม�อัย�( 3 ว!ธี�หล�ก ๆ ค�อัก*าหนดกฎเกณฑ์.บางอัย(างในการใช้�ทร�พื่ยากร เพื่��อัให�แน(ใจ

ว(าระบบจะไม(ม�ทางเก!ดวงจรอั�บได�ไม(ติ�อังป:อังก�นใด ๆ เลย ปล(อัยให�ระบบเก!ดวงจรอั�บข0,น

ก(อัน แล�วค(อัยติามแก�ไขท�หล�งมอังข�ามป�ญหาท�,งหมด แล�วแสร�งท*าว(าวงจรอั�บไม(เคยเก!ด

ข0,นในระบบ ว!ธี�การแก�ป�ญหาว!ธี�น�,เป1นว!ธี�การหน0�งท��ถ�กใช้�ในระบบปฏิ!บ�ติ!การส(วนใหญ( รวมท�,ง UNIX ด�วย <restart>

Page 19: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)ห�ามใช้�ทร�พื่ยากรร(วมก�น (Mutual Exclusion) เง��อันไขในข�อัน�, ค�อั การท��ระบบ ไม(อัน5ญาติให� ม�การ

ใช้�ทร�พื่ยากรร(วมก�น เช้(น เคร��อังพื่!มพื่.จะไม(สามารถ ให�กระบวนการหลาย ๆ กระบวนการ ใช้�พื่ร�อัม ๆ ก�นได� แติ(ถ�าเรายอัมให�ในระบบม�การใช้�ทร�พื่ยากรร(วมก�นได� ป�ญหาวงจรอั�บก�จะไม(เก!ด เช้(น แฟ:มข�อัม�ลท��อั(านได�อัย(างเด�ยวสามารถใช้�ร(วมก�นได�

อัย(างไรก�ติาม การท��เราจะป:อังก�นการเก!ดวงจรอั�บในระบบ โดยการป:อังก�นเง��อันไขน�, ไม(สามารถท*าได�เสมอัไป เพื่ราะย�งม�ทร�พื่ยากรบางประเภท ท��ไม(ม�ทางใช้�ร(วมก�นได�

Page 20: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)การถ�อัครอังแล�วรอัคอัย (Hold and Wait) ค�อั การท��จะไม(ให�เก!ด “การถ�อัครอังแล�วรอัคอัย”

ข0,นในระบบ โดยจะติ�อังก*าหนดว(า เม��อักระบวนการหน0�งจะร�อังขอัทร�พื่ยากร กระบวนการน�,นจะติ�อังไม(ได�ถ�อัครอังทร�พื่ยากรใด ๆ อัย�(ในขณะน�,น ซึ่0�งอัาจท*าได� 2 ว!ธี�การ ค�อั

ให�กระบวนการร�อังขอัทร�พื่ยากรท��ติ�อังการใช้�ท�,งหมด (ติลอัดการท*างาน) ก(อันท��จะเร!�มติ�นท*างาน

ยอัมให�กระบวนการร�อังขอัทร�พื่ยากรได� ก�ติ(อัเม��อักระบวนการน�,นม!ได�ถ�อัครอังทร�พื่ยากรใดไว�เลย

Page 21: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)เราจะเห�นความแติกติ(างขอัง 2 ว!ธี�น�, โดยการพื่!จารณาจาก

ติ�วอัย(าง กระบวนการหน0�งติ�อังการค�ดลอักข�อัม�ลจากเทปลงไปเก�บท��แฟ:มข�อัม�ลในด!สก.เร�ยงล*าด�บข�อัม�ลขอังแฟ:มข�อัม�ลในด!สก.พื่!มพื่.ผลล�พื่ธี.อัอักส�(เคร��อังพื่!มพื่.ถ�าทร�พื่ยากรท�,งหมดติ�อังถ�กร�อังขอัในติอันเร!�มติ�นงานขอัง

กระบวนการ (น��นค�อัใช้�ว!ธี�แรก) แสดงว(ากระบวนการน�, ก�จะถ�อัครอังเคร��อังพื่!มพื่. ไว�ติลอัดเวลาท��กระบวนการท*างานอัย�( ถ0งแม�ว(ากระบวนการน�, จะใช้�เคร��อังพื่!มพื่.เฉพื่าะในติอันท�ายขอังการท*างานเท(าน�,น

Page 22: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)ส*าหร�บว!ธี�ท�� 2 ให�กระบวนการร�อังขอัทร�พื่ยากรในติอันเร!�ม

ติ�น แค(เคร��อังข�บเทป และแฟ:มข�อัม�ลในด!สก. โดยเม��อัได�ร�บทร�พื่ยากรแล�ว กระบวนการจะค�ดลอักข�อัม�ล จากเทปลงไปส�(ด!สก.จากน�,นก�จะค�นท�,งเคร��อังข�บเทป และแฟ:มข�อัม�ลในด!สก.กล�บส�(ระบบ จากน�,นกระบวนการก�จะติ�อังร�อังขอัแฟ:มข�อัม�ลในด!สก.และเคร��อังพื่!มพื่.ใหม(อั�กคร�,งหน0�ง เม��อัพื่!มพื่.เสร�จเร�ยบร�อัยแล�วกระบวนการก�จะค�นทร�พื่ยากรกล�บส�(ระบบ เป1นอั�นส!,นส5ดการท*างานขอังกระบวนการ

Page 23: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)ว!ธี�การแรก ม�ข�อัเส�ยค�อั การใช้�ทร�พื่ยากรจะม�ประส!ทธี!ผล

ติ*�ามาก อัาจม� ป�ญหาการแช้(เย�น (starvation) อั�กด�วย โดยถ�าม�บางกระบวนการติ�อังการใช้�ทร�พื่ยากร (ท��เป1นท��น!ยมใช้�ก�นมาก) หลาย ๆ ติ�ว อัาจติ�อังรอัคอัย อัย(างไม(ม�ท��ส!,นส5ด

ส(วนว!ธี�การหล�งก�ม�ข�อัเส�ยค�อั ติ�อังค�นทร�พื่ยากรท��ถ�อัครอังอัย�( เพื่��อัท��จะร�อังขอักล�บมาใหม(อั�ก ร(วมก�บทร�พื่ยากรติ�วใหม( ท*าให�เส�ยเวลาโดยเปล(าประโยช้น.

Page 24: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)ห�ามแทรกกลางค�น (No Preemption)เราอัาจก*าหนดกฎเกณฑ์.ด�งน�, ถ�ากระบวนการหน0�ง (ท��ก*าล�งถ�อัครอังทร�พื่ยากรบาง

ส(วนอัย�() ร�อังขอัทร�พื่ยากรเพื่!�ม และระบบย�งไม(สามารถจ�ดให�ได�ในท�นท� (แสดงว(ากระบวนการท��ร�อังขอัจะติ�อังรอั) เราจะให�ทร�พื่ยากรท�,งหมด ท��กระบวนการน�,ถ�อัครอังอัย�( ถ�กแทรกกลางค�น น��นค�อั ทร�พื่ยากรท��กระบวนการน�,ถ�อัครอังอัย�(ท�,งหมดจะถ�กปล(อัยค�นส�(ระบบโดยปร!ยาย กระบวนการท��ถ�กแทรกกลางค�นน�,จะติ�อังรอัคอัยทร�พื่ยากร ท�,งท��ร�อังขอัไว�ติ�,งแติ(แรก และท��ถ�กแทรกกลางค�นไป ก(อันท��จะสามารถท*างานติ(อัไปได�

Page 25: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)ว!ธี�การน�,ม�กใช้�ก�บทร�พื่ยากรท��สามารถเก�บค(าสถานะและติ!ด

ติ�,งค(ากล�บค�นมาได�ง(าย เช้(น ค(าในร�จ�สเติอัร. (ขอังหน(วยประมวลผลกลาง) เน�,อัท��ในหน(วยความจ*าหล�ก เป1นติ�น แติ(จะไม(สามารถใช้�ก�บทร�พื่ยากรท��ว ๆ ไป เช้(น เคร��อังพื่!มพื่. และ หน(วยข�บเทป เป1นติ�น

Page 26: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)วงจรรอัคอัย (Circular Wait)เราอัาจป:อังก�นการเก!ดวงจรอั�บ โดยการป:อังก�นไม(ให�เก!ด

เง��อันไขวงจรรอัคอัย ซึ่0�งสามารถท*าได�โดย การก*าหนดล*าด�บขอังทร�พื่ยากรท�,งหมดในระบบ และก*าหนดให� กระบวนการติ�อังร�อังขอัใช้�ทร�พื่ยากร เร�ยงติามเลขล*าด�บน�,

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

Page 27: Operating System

การป:อังก�นการเก!ดวงจรอั�บ (Deadlock Prevention)F (เคร��อังข�บเทป) = 1F (เคร��อังข�บด!สก.) = 5F (เคร��อังพื่!มพื่.) = 12 และก*าหนดว!ธี�การในการร�อังขอัทร�พื่ยากรในระบบด�งน�, กระบวนการแติ(ละติ�วสามารถร�อังขอัทร�พื่ยากรได� ในล*าด�บท��

เพื่!�มข0,นเท(าน�,น ค�อั เร!�มติ�นกระบวนการอัาจร�อังขอัทร�พื่ยากรใด ๆ ก�ได� เช้(น ทร�พื่ยากร Ri แติ(ติ(อัจากน�,กระบวนการจะร�อังขอัทร�พื่ยากร Rj

ได�ก�ติ(อัเม��อั F(Rj) > F(Ri) ถ�าเป1นการร�อังขอัทร�พื่ยากร ประเภทเด�ยวก�นหลาย ๆ ติ�ว กระบวนการจะติ�อังร�อังขอั

ทร�พื่ยากรท�ละติ�ว ในทางติรงก�นข�าม ถ�ากระบวนการติ�อังการร�อังขอัทร�พื่ยากร

ประเภท Rj กระบวนการจะติ�อังปล(อัยทร�พื่ยากร Ri ซึ่0�ง F(Ri) F(Rj) ค�นส�(ระบบท5กติ�วเส�ยก(อัน เช้(นถ�อัครอัง R5 อัย�(อัยากได� R1

ติ�อังค�น R5 ก(อัน R5 R1

Page 28: Operating System

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

พื่0งส�งเกติว(า การก*าหนดค(าเลขล*าด�บขอังทร�พื่ยากร ควรเร�ยงติามล*าด�บการใช้�งานติามปกติ!ในระบบ เช้(น ปกติ!เราม�กใช้�เคร��อังข�บเทป ก(อันเคร��อังพื่!มพื่.เสมอั จ0งควรก*าหนด

ล*าด�บให� F (เคร��อังข�บเทป) < F (เคร��อังพื่!มพื่.)

Page 29: Operating System

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

ติ(อัเม��อัม�ล*าด�บการจ�ดสรรทร�พื่ยากรอัย(างปลอัดภ�ยแก(กระบวนการ (Safe Sequence) โดยเราจะถ�อัว(าล*าด�บ

ขอังกระบวนการ <P1, P2 , … , Pn> เป1นล*าด�บท��ปลอัดภ�ย ส*าหร�บสถานะขอังการจ�ดสรรทร�พื่ยากรป�จจ5บ�น

Page 30: Operating System

การหล�กเล��ยงวงจรอั�บ (Deadlock Avoidance)แติ(ถ�าไม(สามารถหาล*าด�บ

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

สถานะปลอัดภ�ยเป1นสถานะท��ไม(ม�วงจรอั�บ และในทางกล�บก�น สถานะไม(ปลอัดภ�ยเป1นสถานะท��อัาจเก!ดวงจรอั�บได� แติ(ก�ไม(ได�หมายความว(า สถานะไม(ปลอัดภ�ยท�,งหมดจะก(อัให�เก!ดวงจรอั�บเสมอัไป ด�งร�ป

Page 31: Operating System

การหล�กเล��ยงวงจรอั�บ (Deadlock Avoidance)ติ�วอัย(างเช้(น ระบบหน0�งม�เคร��อังข�บเทป 12 เคร��อัง และม�

กระบวนการ 3 กระบวนการอัย�(ในระบบ ค�อั P0 , P1 และ P2 โดยกระบวนการ P0 , P1 และ P2 ติ�อังการใช้�เคร��อัง

ข�บเทปส�งส5ด 10 , 4 และ 9 เคร��อัง ติามล*าด�บ ถ�า ณ เวลา T0 กระบวนการ P0 , P1 และ P2 ได�ร�บเคร��อังข�บเทป กระบวนการละ 5 , 2 และ 2 เคร��อัง ติามล*าด�บ (แสด

งว(า ณ เวลาน�,นม�เคร��อังข�บเทปว(าอัย�( 3 เคร��อัง)

Page 32: Operating System

การหล�กเล��ยงวงจรอั�บ (Deadlock Avoidance)กระบวนการ (Process)

ความติ�อังการส�งส5ด (Maximum

Needs)

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

P0

P1

P2

1049

522

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

Page 33: Operating System

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

ไม(ปลอัดภ�ยได� เช้(น สมมติ!ว(า ณ เวลา T 1 กระบวนการ P2 ร�อังขอัเคร��อังข�บเทปเพื่!�มอั�ก 1 เคร��อัง และได�ร�บการจ�ดสรรจะท*าให�สถานะขอังระบบกลายเป1นสถานะไม(ปลอัดภ�ยท�นท�

โดยใช้�แนวค!ดขอังสถานะปลอัดภ�ยน�, เราสามารถสร�างข�,นติอันว!ธี�การหล�กเล��ยงวงจรอั�บซึ่0�งจะประก�นได�ว(า จะไม(เก!ดวงจรอั�บข0,นในระบบ โดยเม��อัใดก�ติามท��กระบวนการร�อังขอั

ทร�พื่ยากรเพื่!�มและทร�พื่ยากรย�งม�ว(างพื่อั ระบบติ�อังติ�ดส!นใจว(าจะให�ทร�พื่ยากรติามท��ร�อังขอัท�นท�หร�อัไม(ให� (ให�

กระบวนการรอัไปก(อัน) โดยพื่!จารณาจากว(าถ�าจ�ดสรรให�ติามท��ร�อังขอัแล�วระบบจะย�งคงอัย�(ในสถานะปลอัดภ�ยหร�อัไม(

Page 34: Operating System

อั�ลกอัร!ท0มขอังกราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph Algorithm)โดยข�,นติอันว!ธี�น�,จะเพื่!�มเส�นความติ�อังการ (Claim

Edge) ข0,นมาในกราฟการจ�ดสรรทร�พื่ยากร โดยเส�นความติ�อังการท��ลากจาก Pi ไปย�ง Rj (Pi Rj) หมายถ0ง ในอันาคติกระบวนการ Pi อัาจจะร�อังขอัทร�พื่ยากรประเภท Rj จะเห�นว(า เส�นความติ�อังการม�ท!ศทางเด�ยวก�นก�บ เส�นร�อังขอั (จาก Pi ไป Rj) แติ(จะติ(างก�นติรงท��เส�นความติ�อังการในกราฟการจ�ดสรรทร�พื่ยากร จะแสดงด�วยเส�นประ แติ(เส�นร�อังขอัแสดงด�วยเส�นท0บ

Page 35: Operating System

อั�ลกอัร!ท0มขอังกราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph Algorithm)สมมติ!ว(ากระบวนการ Pi ได�ร�อังขอัทร�พื่ยากรประเภท Rj

ระบบจะอัน5ม�ติ!การร�อังขอัน�, ถ�าการเปล��ยนเส�นร�อังขอั (Pi Rj) ไปเป1นเส�นถ�อัครอัง (Rj Pi) ไม(ท*าให�เก!ดวงจรข0,น แติ(ถ�าพื่บว(าเส�นถ�อัครอังท��เก!ดใหม(ท*าให�เก!ดวงจร กระบวนการน�,นจะติ�อังรอัจนกว(าในระบบจะม�ทร�พื่ยากรว(างมากข0,น และเส�นถ�อัครอังขอังกระบวนการท��ร�อังขอัจะไม(ก(อัให�เก!ดวงจรในกราฟการจ�ดสรรทร�พื่ยากร

ถ�าไม(ม�วงจรในกราฟ การอัน5ม�ติ!ทร�พื่ยากรจะท*าให�ระบบอัย�(ในสถานะปลอัดภ�ย ถ�าเก!ดม�วงจรในกราฟแล�วการอัน5ม�ติ!ทร�พื่ยากร จะท*าให�ระบบอัย�(ในสถานะไม(ปลอัดภ�ย

เราจะแสดงข�,นติอันว!ธี�ด�งกล(าวโดยพื่!จารณากราฟการจ�ดสรรทร�พื่ยากร ด�งร�ป

Page 36: Operating System

อั�ลกอัร!ท0มขอังกราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph Algorithm)

Page 37: Operating System

อั�ลกอัร!ท0มขอังกราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph Algorithm)สมมติ!ว(า P2 ร�อังขอั R2 ระบบจะไม(อัน5ม�ติ!การร�อังขอัด�ง

กล(าว ถ0งแม�ว(าทร�พื่ยากร R2 จะว(างอัย�(ก�ติาม เพื่ราะว(าถ�าระบบอัน5ม�ติ! การร�อังขอัด�งกล(าวแล�ว เส�นถ�อัครอัง R2 P2 จะก(อัให�เก!ดวงจรในกราฟการจ�ดสรรทร�พื่ยากร ด�งร�ป

Page 38: Operating System

อั�ลกอัร!ท0มขอังกราฟการจ�ดสรรทร�พื่ยากร (Resource-Allocation Graph Algorithm)ซึ่0�งจะท*าให�ระบบอัย�(ในสถานะไม(ปลอัดภ�ย โดยอัาจเก!ดวงจร

อั�บข0,นในระบบ ถ�ากระบวนการ P1 เก!ดร�อังขอัทร�พื่ยากรประเภท R2 และ P2 ร�อังขอั R1

Page 39: Operating System

อั�ลกอัร!ท0มขอังนายธีนาคาร (Banker’s Algorithm)

เม��อัม�กระบวนการใหม(เก!ดข0,นในระบบ กระบวนการน�,นจะติ�อังประกาศจ*านวนทร�พื่ยากรส�งส5ดท��ติ�อังการในแติ(ละประเภท โดยจ*านวนท��ติ�อังการ

น�,จะติ�อังไม(เก!นกว(าจ*านวนท��ม�อัย�(จร!งในระบบ และเม��อักระบวนการร�อังขอัทร�พื่ยากร ระบบจะติ�อังพื่!จารณาว(าเม��อัจ�ดสรรทร�พื่ยากรให�

แติ(ละกระบวนการแล�ว จะท*าให�ระบบอัย�(ในสถานะปลอัดภ�ยหร�อัไม( ถ�าอัย�(ระบบก�จะจ�ดสรรทร�พื่ยากรให�ติามท��ขอั แติ(ถ�าไม(กระบวนการท��ร�อังขอัก�จะติ�อังรอัจนกว(ากระบวนการอั��นได�ค�นทร�พื่ยากรบางส(วนให�แก(ระบบจน

เพื่�ยงพื่อัระบบติ�อังเก�บโครงสร�างข�อัม�ลหลายติ�วเพื่��อัใช้�ในข�,นติอันว!ธี�แบบนาย

ธีนาคาร โครงสร�างข�อัม�ลเหล(าน�, เป1นติ�วบอักสถานะขอังการจ�ดสรรทร�พื่ยากรในระบบ

ก*าหนดให� n เป1นจ*านวนกระบวนการในระบบ และ m เป1นจ*านวนขอังประเภททร�พื่ยากร

Page 40: Operating System

อั�ลกอัร!ท0มขอังนายธีนาคาร (Banker’s Algorithm)โครงสร�างข�อัม�ลท��จ*าเป1นม�ด�งน�,Available : เป1นเวคเติอัร.ขนาด m ซึ่0�งใช้�เก�บ ค(าจ*านวน

ทร�พื่ยากรท��ว(างขอังทร�พื่ยากรแติ(ละประเภท เช้(น Available[j] = k หมายถ0ง ทร�พื่ยากรประเภท Rj ม�จ*านวนทร�พื่ยากรว(างอัย�( k ติ�ว

Max : เป1นเมทร!กซึ่.ขนาด n x m ซึ่0�งใช้�เก�บค(าจ*านวนส�งส5ดขอังทร�พื่ยากรแติ(ละประเภทท��กระบวนการแติ(ละติ�วติ�อังการใช้� เช้(น Max[i,j] = k หมายถ0ง กระบวนการ Pi ติ�อังการทร�พื่ยากรประเภท Rj มากท��ส5ด k ติ�ว

Page 41: Operating System

อั�ลกอัร!ท0มขอังนายธีนาคาร (Banker’s Algorithm)Allocation : เป1นเมทร!กซึ่.ขนาด n x m ซึ่0�งใช้�เก�บค(า

จ*านวนทร�พื่ยากรแติ(ละประเภทท��กระบวนการแติ(ละติ�ว ก*าล�งถ�อัครอังอัย�( เช้(น Allocation[i,j] = k หมายถ0ง กระบวนการ Pi ก*าล�งถ�อัครอังทร�พื่ยากรประเภท Rj อัย�( k ติ�ว

Need : เป1นเมทร!กซึ่.ขนาด n x m ซึ่0�งใช้�เก�บค(าจ*านวนทร�พื่ยากรแติ(ละประเภทท��กระบวนการแติ(ละติ�ว อัาจร�อังขอัเพื่!�มอั�กได� เช้(น Need[i,j] = k หมายถ0ง กระบวนการ Pi อัาจร�อังขอัทร�พื่ยากรประเภท Rj ได�อั�ก k ติ�ว จะเห�นว(า Need [i,j] = Max[i,j] – Allocation[i,j]

Page 42: Operating System

ข�,นติอันว!ธี�ติรวจด�สถานะปลอัดภ�ย (Safety Algorithm) ข�,นติอันว!ธี�ในการติรวจสอับว(า ระบบจะอัย�(ในสถานะ

ปลอัดภ�ยหร�อัไม( เป1นด�งน�,ก*าหนดให� Work และ Finish เป1นเวคเติอัร.ขนาด m

และ n ติามล*าด�บ และก*าหนดค(าเร!�มติ�น ด�งน�,Work := Available;For i := 1 TO n DO Finish[i] := FALSE;

Page 43: Operating System

ข�,นติอันว!ธี�ติรวจด�สถานะปลอัดภ�ย (Safety Algorithm) ให� i = 1 WHILE i n DO BEGIN IF Finish[i] = FALSE AND Need[i] Work THEN BEGIN Work := Work +

Allocation[i]; Finish[i] := TRUE; i := i +1; END ELSE i := i+1; END IF some Finish[i] = FALSE THEN “unsafe”

ELSE “safe”

Page 44: Operating System

อั�ลกอัร!ท0มร�อังขอัทร�พื่ยากร (Resource-Request Algorithm)ให� Requesti เป1นเวคเติอัร. แสดงค*าร�อังขอัขอัง

กระบวนการ Pi โดยท�� Requesti หมายถ0ง กระบวนการ Pi ได�ร�อังขอัทร�พื่ยากรประเภท Rj เป1นจ*านวน k ติ�ว

เม��อักระบวนการ Pi ร�อังขอัทร�พื่ยากร ระบบจะจ�ดการ ด�งน�, 1. ถ�า Requesti > Needi แล�ว ระบบจะแจ�งข�อัผ!ด

พื่ลาดว(า “กระบวนการขอัทร�พื่ยากรมากกว(าท��ระบ5” แล�วกระบวนการจะถ�กข�บอัอักจากระบบ แติ(ถ�า Requesti Needi แล�ว จะไปท*างานในข�,นติอันท�� 2

Page 45: Operating System

อั�ลกอัร!ท0มร�อังขอัทร�พื่ยากร (Resource-Request Algorithm) 2. ถ�า Requesti > Available แล�วให� Pi รอัจนกว(า

ทร�พื่ยากรท��ร�อังขอัจะว(าง จากน�,นจ0งไปท*างานในข�,นติอันท�� 3 แติ(ถ�า Requesti Available แล�ว จะไปท*างานในข�,นติอันท�� 3 ท�นท�

3. ระบบจะสมมติ!ว(าได�จ�ดสรรทร�พื่ยากรให�ติามท��กระบวนการ Pi ร�อังขอัมา โดยระบบจะม�สถานะเปล��ยนไป ด�งน�,

Available := Available – Requesti;

Allocationi := Allocationi + Requesti;

Needi := Needi – Requesti;

Page 46: Operating System

อั�ลกอัร!ท0มร�อังขอัทร�พื่ยากร (Resource-Request Algorithm)แล�วติรวจสอับด�ว(าสถานะขอังการจ�ดสรรทร�พื่ยากรขณะน�,

เป1นสถานะปลอัดภ�ยหร�อัไม( ถ�าเป1นระบบก�จะจ�ดสรรทร�พื่ยากรให�ติามท��สมมติ!ท�นท� แติ(ถ�าระบบอัย�(ในสถานะไม(ปลอัดภ�ยแล�วระบบก�จะให�กระบวนการ Pi รอั และ ถอัยกล�บไปอัย�(ในสถานะเด!ม (ก(อัน การสมมติ!ค(า Available , Allocationi และ Needi เป1นค(าเด!ม)

Page 47: Operating System

ติ�วอัย(าง (An Illustrative Example) ระบบหน0�งม�กระบวนการอัย�( 5 ติ�ว ค�อั P0 , P1 ,

P2 , P3 และ P4 ม�ทร�พื่ยากรอัย�( 3 ประเภท ค�อั A , B และ C โดยท��ในแติ(ละประเภท ม�จ*านวนทร�พื่ยากร 10 , 5 และ 7 ติ�ว ติามล*าด�บ

Page 48: Operating System

ติ�วอัย(าง (An Illustrative Example)

Allocation Max Available

A B C A B C A B C

P0

P1

P2

P3

P4

0 1 02 0 03 0 22 1 10 0 2

7 5 33 2 29 0 22 2 24 3 3

3 3 2

Page 49: Operating System

ติ�วอัย(าง (An Illustrative Example)และเน��อังจาก เมทร!กซึ่.

Need เก!ดจาก Max – Allocation ด�งน�,นจะได�ว(า

Need

A B C

P0

P1

P2

P3

P4

7 4 31 2 26 0 00 1 14 3 1

Page 50: Operating System

ติ�วอัย(าง (An Illustrative Example)และ เราพื่บว(า ระบบอัย�(ในสถานะปลอัดภ�ยเน��อังจาก

กระบวนการอัาจท*างานได�ติามล*าด�บ <P1, P3, P4 , P2 , P0> ซึ่0�งเป1นไปติามเง��อันไขขอัง

สถานะปลอัดภ�ย สมมติ!ว(า กระบวนการ P1 ร�อังขอัทร�พื่ยากร

ประเภท A และ C เพื่!�มอัย(างละ 1 และ 2 ติ�วติามล*าด�บ ด�งน�,น Request1 = (1,0,2) ระบบจะติ�ดส!นใจว(าจะอัน5ม�ติ!ทร�พื่ยากรให� ติามท��ร�อังขอัหร�อัไม(ติามข�,นติอันด�งน�,

Request1 Need1 เน��อังจาก (1,0,2) (1,2,2)Request1 Available เน��อังจาก (1,0,2)

(3,3,2)

Page 51: Operating System

ติ�วอัย(าง (An Illustrative Example)เม��อัผ(าน 2 ข�,นแรกแล�ว ระบบก�จะสมมติ!ว(า ได�จ�ดสรร

ทร�พื่ยากรให�ติามท��ร�อังขอั ท*าให�ระบบม�สถานะใหม(ด�งน�,

Allocation Need Available

A B C A B C A B C

P0

P1

P2

P3

P4

0 1 03 0 23 0 22 1 10 0 2

7 4 30 2 06 0 00 1 14 3 1

2 3 0

Page 52: Operating System

ติ�วอัย(าง (An Illustrative Example)จากน�,นก�จะติรวจสอับว(า สถานะใหม(น�,จะเป1นสถานะปลอัดภ�ยหร�อั

ไม( โดยใช้�ข�,นติอันว!ธี�สถานะปลอัดภ�ย (safety algorithm) ติรวจสอับ และเราจะพื่บว(า กระบวนการอัาจท*างานได� ติามล*าด�บ <P1, P3, P4, P0, P2> ซึ่0�งเป1นไปติามเง��อันไข ขอังสถานะปลอัดภ�ย เม��อัเป1นเช้(นน�, ระบบจะสามารถอัน5ม�ติ!การร�อังขอัขอัง P1 ได�

ในบางกรณ� ระบบอัาจไม(อัน5ม�ติ!การร�อังขอัขอังกระบวนการ เช้(น จากติ�วอัย(างเด!มข�างติ�น ถ�า P4 ร�อังขอัทร�พื่ยากร (3,3,0) เพื่!�ม ระบบไม(อัาจอัน5ม�ติ!ให�ได� เพื่ราะม�ทร�พื่ยากรไม(พื่อั หร�อัถ�า P0 ร�อังขอัทร�พื่ยากร (0,2,0) เพื่!�ม ระบบก�จะไม(อัน5ม�ติ! แม�ว(าจะม�ทร�พื่ยากรพื่อั เพื่ราะว(าเม��อัระบบลอังสมมติ!ว(าได�จ�ดสรรทร�พื่ยากรให�ติามท��ขอัแล�วพื่บว(าสถานะใหม(เป1นสถานะไม(ปลอัดภ�ย

Page 53: Operating System

การติรวจหาวงจรอั�บ (Deadlock Detection) ถ�าในระบบปฏิ!บ�ติ!การไม(ม�การป:อังก�นหร�อัหล�กเล��ยง

วงจรอั�บแล�ว ในท��ส5ดระบบก�อัาจจะติกอัย�(ในสถานะวงจรอั�บได� ด�งน�,นระบบจ0งจ*าติ�อังม�ว!ธี�อั��นทดแทนค�อั

ข�,นติอันว!ธี�ท��จะติรวจหาวงจรอั�บในระบบว(าเก!ดข0,นแล�วหร�อัย�ง

ข�,นติอันว!ธี�ในการแก�ไขวงจรอั�บ

Page 54: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทเพื่�ยงติ�วเด�ยว (Single Instance of Each Resource Type) โดยน*ากราฟการจ�ดสรรทร�พื่ยากรมาแปลงสภาพื่

เล�กน�อัยเป1น กราฟการรอัคอัยทร�พื่ยากร (Wait-for-Graph) การแปลงสภาพื่ท*าโดยเอัาส��เหล��ยมท��แทนทร�พื่ยากรอัอัก และย5บรวมล�กศรเข�าด�วยก�น ด�งน�,

ถ�าม�ล�กศรจาก Pi ไป Pj ในกราฟการรอัคอัยทร�พื่ยากร แสดงว(า Pi ก*าล�งรอัทร�พื่ยากรซึ่0�ง Pj ถ�อัครอังอัย�(

ติ�วอัย(างเช้(น

Page 55: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทเพื่�ยงติ�วเด�ยว (Single Instance of Each Resource Type)

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

Page 56: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทเพื่�ยงติ�วเด�ยว (Single Instance of Each Resource Type)ถ�าในกราฟการรอัคอัยทร�พื่ยากรม�วงจรแล�วก�จะเก!ดวงจร

อั�บ และในทางกล�บก�น ถ�าเก!ดวงจรอั�บแล�ว ก�จะม�วงจรในกราฟการรอัคอัยทร�พื่ยากร ระบบติ�อังเก�บข�อัม�ลขอังกราฟ

การรอัคอัยทร�พื่ยากรไว� และใช้�ข�,นติอันว!ธี�การติรวจหาวงจรในกราฟ เพื่��อัติรวจหาวงจรอั�บในระบบ โดยคอัยติรวจ

ด�ท5ก ๆ ช้(วงเวลา

Page 57: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทหลายติ�ว (Several Instances of a Resource Type)ข�,นติอันว!ธี�ในการติรวจหาวงจรอั�บน�,คล�ายก�บ Banker’s

Algorithm ซึ่0�งจ*าเป1นติ�อังใช้�โครงสร�างข�อัม�ลด�งติ(อัไปน�,Available : เป1นเวคเติอัร.ขนาด m แสดงจ*านวน

ทร�พื่ยากรแติ(ละช้น!ด ท��ย�งว(างอัย�( (ไม(ได�ถ�กกระบวนการใดถ�อัครอังอัย�()

Allocation : เป1นเมทร!กซึ่. n x m ใช้�เก�บค(าจ*านวนทร�พื่ยากรแติ(ละช้น!ดท��กระบวนการแติ(ละติ�วถ�อัครอังอัย�(

Request : เป1นเมทร!กซึ่. n x m ใช้�เก�บค(าจ*านวนทร�พื่ยากรแติ(ละช้น!ดท��กระบวนการแติ(ละติ�วก*าล�งร�อังขอั

Page 58: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทหลายติ�ว (Several Instances of a Resource Type)ข�,นติอันว!ธี�ติรวจหาวงจรอั�บ1. Work := Available;2. FOR i:= 1 TO n DOIF Allocationi 0 THEN Finish[i] := FALSE ELSE Finish[i] := TRUE;

Page 59: Operating System

ระบบท��ม�ทร�พื่ยากรแติ(ละประเภทหลายติ�ว (Several Instances of a Resource Type) 3. i := 1;

WHILE i n DO BEGIN IF Finish[i] = FALSE AND Request[i] Work THEN BEGIN Work := Work + Allocationi; Finish[i] := TRUE; i := i+1; END ELSE i := i+1; END; 4. FOR i=1 TO n DO IF Finish[i] = FALSE THEN process Pi is in a

deadlocked. 6. IF Finish[i] = TRUE ท�,งหมด แสดงว(าขณะน�,ระบบไม(เก!ด

วงจรอั�บ.

Page 60: Operating System

ติ�วอัย(างให�ระบบม� 5 กระบวนการ P0 , P1 , P2 , P3 และ P4 และม�

ทร�พื่ยากรช้น!ด A 7 ติ�ว , ช้น!ด B 2 ติ�ว , ช้น!ด C 6 ติ�ว ณ เวลา T0 ระบบอัย�(ในสถานะด�งน�,

Allocation Request Available

A B C A B C A B C

P0

P1

P2

P3

P4

0 1 02 0 03 0 32 1 10 0 2

0 0 02 0 20 0 01 0 00 0 2

0 0 0

Page 61: Operating System

ติ�วอัย(างเราจะสร5ปได�ว(า ขณะน�,ไม(ม�วงจรอั�บเก!ดข0,นหร�อัระบบไม(ได�

อัย�(ในสถานะวงจรอั�บ โดยการด*าเน!นติามข�,นติอันว!ธี�ติรวจหาวงจรอั�บ (Deadlock Detection) ด�งกล(าวข�างติ�น

เราจะพื่บว(าม�ล*าด�บการท*างานหน0�ง ค�อั <P0 , P2 , P3 , P1 , P4> ซึ่0�งจะให� Finish[i] = TRUE ท�,งหมด

Page 62: Operating System

สมมติ!ว(ากระบวนการ P2 ร�อังขอัทร�พื่ยากรประเภท C เพื่!�มอั�ก 1 ติ�ว สถานะขอังระบบจะกลายเป1น

Request

A B C

P0

P1

P2

P3

P4

0 0 02 0 20 0 11 0 00 0 2

เราจะพื่บว(า ขณะน�,ม�วงจรอั�บเก!ดข0,นใน

ระบบ แม�ว(า P0 อัาจท*างานเสร�จ แล�วค�นทร�พื่ยากรช้น!ด B ส�(ระบบ กระบวนการ

อั��น ๆ ก�ไม(อัาจท*างานติ(อัได� เพื่ราะทร�พื่ยากรท��ว(างอัย�(

ไม(พื่อัติามค*าร�อังขอั ด�งน�,นระบบจ0งติกอัย�(

ในสถานะวงจรอั�บ โดยม�กระบวนการ P1 , P2 , P3 และ P4 อัย�(ในวงจรอั�บ

Page 63: Operating System

การใช้�ว!ธี�การติรวจหาวงจรอั�บ (Detection-Algorithm Usage) เราจะใช้�ว!ธี�การติรวจหาวงจรอั�บ เม��อัใดบ�าง ข0,นอัย�(ก�บ 2

ป�จจ�ย ค�อั 1. ความถ��ขอังการเก!ดวงจรอั�บในระบบ2. จ*านวนกระบวนการท��ติ!ดอัย�(ในวงจรอั�บวงจรอั�บจะเก!ดข0,นเม��อัม�เหติ5การณ.ท��บางกระบวนการร�อังขอั

ทร�พื่ยากรแล�วระบบไม(สามารถอัน5ม�ติ!ให�ได�ท�นท� เราจ0งอัาจติรวจหาวงจรอั�บโดยติรวจท5กคร�,งท��เหติ5การณ.น�,เก!ดข0,น

การติรวจหาวงจรอั�บบ(อัยเก!นไป ย(อัมท*าให�เส�ยค(าใช้�จ(าย(เวลา)มาก เพื่��อัท��จะประหย�ดค(าใช้�จ(าย เราอัาจติรวจหาท5ก ๆ ช้(วงเวลาแทน เช้(น ท5ก ๆ 1 ช้��วโมง หร�อั เม��อัประส!ทธี!ผลขอังการใช้�หน(วยประมวลผลกลางลดติ*�ากว(า 40 %

Page 64: Operating System

การแก�ไขวงจรอั�บ (Recovery from Deadlock) เม��อัติรวจพื่บว(าเก!ดวงจรอั�บข0,นในระบบแล�ว ระบบ

อัาจจ�ดการได� 2 ว!ธี� ค�อั 1. รายงานให�ผ��ควบค5มเคร��อังทราบว(าขณะน�,เก!ดวงจรอั�บ

ข0,นในระบบแล�ว และให�ผ��ควบค5มจ�ดการแก�ไขวงจรอั�บเอัง 2 . ระบบแก�ไขวงจรอั�บเอังโดยอั�ติโนม�ติ! ซึ่0�งอัาจท*าได� 2

ว!ธี� ค�อัยกเล!กกระบวนการท��ติ!ดอัย�(ในวงจรอั�บบางกระบวนการเพื่��อัท��

จะติ�ดวงจรอั�บอัน5ญาติให�ม�การแทรกกลางค�นทร�พื่ยากรบางส(วนท��ติ!ดอัย�(ใน

วงจรอั�บได�เพื่��อัท*าให�ระบบกล�บค�นส�(สภาวะปกติ!

Page 65: Operating System

การยกเล!กกระบวนการ (Process Termination) ว!ธี�การในการแก�ไขวงจรอั�บ โดยการยกเล!ก

กระบวนการในวงจรอั�บ ม�อัย�( 2 ว!ธี� (ท�,ง 2 ว!ธี�น�, เม��อักระบวนการถ�กยกเล!ก ทร�พื่ยากรท��กระบวนการถ�อัครอังอัย�(จะค�นกล�บส�(ระบบ)

ยกเล!กกระบวนการท�,งหมดท��ติ!ดอัย�(ในวงจรอั�บ ยกเล!กกระบวนการในวงจรอั�บท�ละกระบวนการ จนกระท��ง

ระบบกล�บส�(สภาวะปกติ!

Page 66: Operating System

ส*าหร�บว!ธี�การยกเล!กกระบวนการท�ละติ�ว การพื่!จารณาค(าใช้�จ(ายติ*�าท��ส5ด อัาจพื่!จารณาได�จากหลาย

ป�จจ�ยด�งน�, พื่!จารณาล*าด�บความส*าค�ญขอังกระบวนการ (Priority) พื่!จารณาว(ากระบวนการน�,นท*างานมานานเท(าไรแล�ว และจะ

ใช้�เวลาอั�กนานเท(าไรกว(างานจะเสร�จสมบ�รณ. พื่!จารณาว(ากระบวนการน�,นได�ถ�อัครอังหร�อัใช้�ทร�พื่ยากร

ประเภทใดไปเท(าไรแล�ว พื่!จารณาว(ากระบวนการย�งติ�อังการทร�พื่ยากรอั�กเท(าไร จ0ง

จะท*างานจนเสร�จสมบ�รณ.ได� พื่!จารณาว(าม�ก��กระบวนการท��จะติ�อังถ�กยกเล!ก พื่!จารณาว(ากระบวนการเป1นประเภทใด (แบบโติ�ติอับ

(interactive) หร�อัแบบกล5(ม(batch))

Page 67: Operating System

การแทรกกลางค�น (Resource Preemption)ในการเล�อักใช้�ว!ธี�การแทรกกลางค�น เราจะติ�อังพื่!จารณา

ผลท��จะเก!ด 3 ข�อัด�งน�,การเล�อักผ��ร�บเคราะห. (Selection a victim) โดยการ

เล�อักว(ากระบวนการใดในวงจรอั�บท��จะถ�กแทรกกลางค�นแล�ว จะเส�ยค(าใช้�จ(ายน�อัยท��ส5ด

การถอัยกล�บ (Rollback) ให�กระบวนการน�,นถอัยกล�บไปอัย�(ในจ5ดท��ปลอัดภ�ย และให�เร!�มท*างานใหม(อั�กคร�,งจากจ5ดน�,

การแช้(เย�น (Starvation) เราจะร�บประก�นได�อัย(างไรว(าจะไม(เก!ดการแช้(เย�น เช้(น ม�กระบวนการหน0�งถ�กแทรกกลางค�นทร�พื่ยากรท��ก*าล�งใช้�อัย�(เสมอั ๆ

Page 68: Operating System

การจ�ดการป�ญหาวงจรอั�บโดยว!ธี�ผสมผสาน (Combined Approach to Deadlock Handling)เราอัาจพื่!ส�จน.ได�ว(าระบบท��ใช้�ว!ธี�ผสมผสานน�,จะไม(เก!ดวงจร

อั�บ ด�งน�,ค�อัวงจรอั�บไม(อัาจจะเก!ดข�ามกล5(มขอังทร�พื่ยากรได� เพื่ราะเรา

ใช้�ว!ธี�การจ�ดเร�ยงล*าด�บทร�พื่ยากรในแติ(ละกล5(มก�จะไม(เก!ดวงจรอั�บเพื่ราะเราได�เล�อักว!ธี�จ�ดการ

1 ใน 3 ว!ธี� ท��กล(าวมาแล�ว ด�งน�,นระบบโดยรวมจะไม(เก!ดวงจรอั�บ

Page 69: Operating System

ติ�วอัย(าง สมมติ!ว(าระบบขอังเราประกอับไปด�วยทร�พื่ยากร 4

ประเภท ค�อัทร�พื่ยากรภายในขอังระบบ (Internal Resources) ค�อั

ทร�พื่ยากรท��ระบบใช้�เอัง เช้(น PCB (Process Control Block)

หน(วยความจ*าหล�ก (Central Memory) ซึ่0�งผ��ใช้�ระบบติ�อังใช้�

อั5ปกรณ.ติ(าง ๆ ในระบบ (Job Resources) เช้(น อั5ปกรณ.ทางกายภาพื่ อั5ปกรณ.ทางติรรกะ

หน(วยความจ*าส*ารอัง (Swappable space) พื่�,นท��ในจานบ�นท0ก (Backing Store) ส*าหร�บส*ารอังแติ(ละงาน

Page 70: Operating System

ติ�วอัย(างเราจ�ดการป�ญหาวงจรอั�บในระบบน�, โดยจ�ดแบ(งกล5(มขอัง

ทร�พื่ยากรเป1น 4 กล5(ม ติามท��กล(าวมาและในแติ(ละกล5(มใช้�ว!ธี�จ�ดการด�งน�,

ทร�พื่ยากรภายในขอังระบบ ป:อังก�นโดยการจ�ดล*าด�บทร�พื่ยากร เพื่ราะกระบวนการท��ร�อังขอัทร�พื่ยากรเหล(าน�, ล�วนเป1นกระบวนการภายในขอังระบบเอัง

หน(วยความจ*าหล�ก ป:อังก�นโดยการให�ม�การแทรกกลางค�นได� เพื่ราะอัาจย�ายงานแติ(ละช้!,นอัอักจากหน(วยความจ*าหล�กไปเก�บไว�ในหน(วยความจ*าส*ารอัง (Backing Store) ได�โดยง(าย เม��อัม�กระบวนการติ�อังการใช้�หน(วยความจ*าเพื่!�ม และหน(วยความจ*าเติ�มแล�ว

Page 71: Operating System

ติ�วอัย(าง อั5ปกรณ.ติ(าง ๆ ในระบบ ใช้�ว!ธี�การหล�กเล��ยง เพื่ราะข�อัม�ล

เก��ยวก�บความติ�อังการส�งส5ดขอังแติ(ละงานอัาจร��ล(วงหน�าได� เช้(น จากบ�ติรควบค5มงาน (Job Control Card) ในกรณ�ท��ใช้�บ�ติรเจาะร� (Punch cards)

หน(วยความจ*าส*ารอัง ป:อังก�นโดย การจ�ดสรรล(วงหน�า เพื่ราะจ*านวนหน(วยความจ*าส*ารอังส�งส5ดขอังแติ(ละงาน ม�กจะถ�กก*าหนดไว�แล�ว