Page 67 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 67
การจัดเวลาซีพียูแ ละการต ิดตาย 11-57
เสรจ็ เรยี บร้อย จะป ลอ่ ยเครื่องพมิ พก์ ลบั ค นื ใหร้ ะบบ ระบบจ ะเรยี กโพรเซสต ่อไปท รี่ ออ ยใู่นค วิ ข องด สิ กใ์หไ้ ดร้ บั จ ัดสรร
เครือ่ งพมิ พต์ อ่ ไปเปน็ ล ำ�ดับจ นค รบท ั้งส ามโพรเซส เหน็ ไดว้ า่ ท ัง้ 3 โพรเซส ส ามารถเรยี กใชเ้ครือ่ งพิมพไ์ ดพ้ รอ้ มก นั ร ะบบ
สามารถหลีกเลี่ยงก ารเกิดการต ิดต ายท ี่เกิดข ึ้นได้
2.2 ปฏเิ สธก ารค รอบค รองแ ละก ารร อ (denying the hold and wait) การป ้องกันก ารต ิดต ายว ิธีก ารน ี้ร ะบบจ ะ
อนุญาตให้โพรเซส ร ้องขอใช้ท รัพยากรได้แ ต่ต ้องไม่ได้ค รอบค รองท รัพยากรใด ๆ อยู่ วิธีก ารโดยให้โพรเซสท ั้งหมดใน
ระบบร ้องขอท รัพยากรท ั้งหมดท ีต่ ้องการก ่อนก ารป ระมวลผ ล ต่อจ ากน ั้นร ะบบจ ะท ำ�การต รวจส อบท รัพยากรท ีโ่พรเซส
ร้องขอทรัพยากรต่าง ๆ ในกรณีที่ทรัพยากรที่ต้องการว่างทั้งหมดระบบจะจัดสรรทรัพยากรนั้นให้แก่โพรเซส แต่ถ้า
ทรัพยากรที่ต้องการไม่ว่างโพรเซสต้องรอจนกว่าระจัดสรรทรัพยากรที่ต้องการครบถ้วน และในระหว่างประมวลผล
โพรเซสไม่ส ามารถร้องขอท รัพยากรเพิ่มเติมได้อีก
ตัวอยา่ งท่ี 2 ระบบคอมพิวเตอร์หนึ่งม ีโพรเซสท ี่ต้องการคัดลอกข ้อมูลจากเทปลงดิสก์ โดยน ำ�ข้อมูลท ั้งหมด
เรียงล ำ�ดับ และพิมพ์ออกทางก ระดาษ ดังน ั้นทรัพยากรที่โพรเซสต ้องการ คือ ตัวอ ่านเทป ดิสก์ และเครื่องพิมพ์ ใน
การป้องกันการติดตายด้วยการปฏิเสธการครอบครองและการรอ ระบบจะต้องกำ�หนดให้โปรเซสร้องขอทรัพยากร
ท ั้ง 3 ชนิดก ่อนเริ่มต ้นก ารท ำ�งาน ระบบจ ะท ำ�การจ ัดสรรท รัพยากรท ั้งส ามช นิดให้แ ก่โพรเซสพ ร้อมก ันเพื่อให้โพรเซส นี้
ทำ�งานได้ไม่เกิดการร อทรัพยากรใด ๆ เกิดขึ้น
แต่การแก้ไขด้วยวิธีการนี้กลับก่อให้เกิดปัญหาใหม่ตามมา เนื่องจากในความเป็นจริงทรัพยากรแต่ละชนิด
ไมจ่ ำ�เป็นต ้องถ ูกเรียกใชง้ านพ ร้อมก นั โดยเฉพาะเครือ่ งพมิ พซ์ ึ่งโพรเซสต า่ ง ๆ จะร อ้ งขอเครือ่ งพมิ พเ์ ป็นข ั้นต อนส ดุ ทา้ ย
ของงาน วิธีการแก้ปัญหาลักษณะนี้ส่งผลให้ปริมาณการใช้งานของทรัพยากรลดลงและเกิดปัญหาทำ�ให้โพรเซสที่มี
ความสำ�คัญอันดับท ้ายต ้องร อค อยอย่างไม่มีก ำ�หนดที่เรียกว่า การอ ดตาย เนื่องจ ากโพรเซส อื่น ๆ ในระบบที่ต ้องการ
ใช้ท รัพยากรม ีอันดับความส ำ�คัญสูงก ว่าท ยอยเข้ามาในร ะบบอ ย่างต ่อเนื่อง
2.3 การแ ทรกการคัน (denying the no-preemption condition) การป ้องกันการติดต ายวิธีนี้ ระบบส ามารถ
บังคับให้โพรเซสท ี่ก ำ�ลังใช้ท รัพยากรอ ยู่ป ลดป ล่อยท รัพยากรน ั้นให้เป็นอ ิสระได้ และจ ัดสรรให้โพรเซส อื่น ที่เหมาะส ม
ได้ เช่น โพรเซส A ได้ร ับก ารจัดสรรให้ครอบค รองทรัพยากร R1 และ R2 ในเวลาต ่อม า โพรเซส A ร้องขอทรัพยากร
R3 เพิ่มเติม ระบบต รวจส อบก ารใช้ท รัพยากรต ่าง ๆ ของ โพรเซส A พบว ่า ทรัพยากร R3 ถูกค รอบค รองโดยโพรเซส B
ระบบปฏิบัติก ารจ ะบังคับให้โพรเซส A ต้องป ล่อยท รัพยากรท ี่ครอบครองอยู่ท ั้งหมดคือทรัพยากร R1 และ R2 คืนให้
ระบบ ดังน ั้นโพรเซส A ต้องท ำ�การร ้องขอก ารใช้ทรัพยากรทั้งหมดได้แก่ R1 R2 และ R3 ใหม่อีกครั้งห นึ่ง
การป้องกันวิธีนี้บางระบบจะทำ�การตรวจสอบทรัพยากรที่โพรเซสร้องขอในขณะนั้นว่าว่างหรือไม่ว่าง กรณี
ที่ว่าง ระบบจะจัดสรรทรัพยากรไปให้โพรเซสที่ร้องขอโดยไม่ต้องคืนทรัพยากรที่ครอบครองอยู่ทั้งหมดให้แก่ระบบ
แต่ในกรณีที่ทรัพยากรใหม่ที่ร้องขอไม่ว่างและถูกครอบครองโดยโพรเซสอื่นที่กำ�ลังรอทรัพยากรใหม่เช่นกัน ระบบ
จะแ ย่งทรัพยากรจากโพรเซส หนึ่งไปให้อ ีกโพรเซส หน ึ่งเพื่อประมวลผ ล แต่ถ้าท รัพยากรที่ต ้องการถูกค รอบค รองโดย
โพรเซส อื่นและไม่ได้ร อทรัพยากรใด ๆ ระบบจะให้โพรเซสร อจนกว่าท รัพยากรท ี่โพรเซสต ้องการว่าง
2.4 ปฏเิ สธก ารร อแ บบว งกลม (denying the circular wait condition) การป ้องกันก ารต ิดต ายว ิธีน ี้ เพื่อไม่ให้
เกิดเหตุการณ์เป็นวงจรลูกโซ่ของโพรเซสที่ต่างรอคอยทรัพยากรที่ถือครองโดยโพรเซสที่อยู่ในวงจรลูกโซ่นั้นเกิด
การร อแ บบว งกลม วิธีก ารนี้จะทำ�การก ำ�หนดตัวเลขให้แก่ท รัพยากรชนิดต ่าง ๆ เป็นลำ�ดับจากท รัพยากรชนิดท ี่ 1 ถึง
ทรัพยากรช นิดที่ n
สมมติว ่าร ะบบหนึ่งม ีทรัพยากรท ั้งหมด n ชนิด สามารถเขียนแ ทนด ้วย เซต R ประกอบด้วยท รัพยากร R1
จนถงึ Rn ดังนี้ R = {R1, R2, R3, R4, …, Rn} สามารถก ำ�หนดต วั เลขจ �ำ นวนเต็มท ไี่ มซ่ ํา้ กันใหแ้ กท่ รัพยากรแ ต่ละช นดิ ได้
และสามารถนำ�ต ัวเลขท ี่ก ำ�หนดมาใช้ในการเปรียบเทียบเมื่อมีการร้องขอท รัพยากรจ ากโพรเซสในระบบ โดยร ะบบจะ