Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่3 การประสานเวลาของโพรเซส, นางสาว สุพิชฌาย์ พระอินทร์ดี รหัสนิสิต…
บทที่3 การประสานเวลาของโพรเซส
การประสานเวลาของโพรเซส
การทำงานของโพรเซสที่ต้องมีการเกี่ยวข้องกันอาจ เพราะ การใช้ทรัพยากร
ร่วมกัน หรืออาจจะเป็นการรอให้โพรเซสทำงาน หลังจากที่โพรเซสอื่นทำงานแล้ว
ปัญหาภาวะพร้อมกัน
ในขณะที่โพรเซสหนึ่งกำลังใช้ทรัพยากรอยู่ โพรเซสอื่นจะไม่สามารถเข้ามาใช้ทรัพยากรนั้น ๆ ได้ จึงทำให้เกิดปัญหาขึ้น
สภาวะแย่งชิง
สภาวะที่โพรเซสแย่งกันเข้าใช้งานทรัพยากร
การแก้ปัญหาส่วนวิกฤติ
วิธีแก้ปัญหา คือ ขณะที่โพรเซสหนึ่งกำลังปฏิบัติการอยู่ในส่วนวิกฤติของตนเอง จะต้องไม่
มีโพรเซสอื่นได้รับอนุญาตให้เข้าไปปฏิบัติการในส่วนวิกฤติของโพรเซสเหล่านั้น
กรกีดกัน
ความก้าวหน้า
การรออย่างมีขอบเขต
การอแบบไม่ว่าง
การขัด
การประมวลผลพร้อมกันโดยวิธีการทางซอฟแวร์
อัลกอริทึมของเดกเกอร
มี2โพรเซส โดยสามารถทำงานพร้อมกัน และเกิดคุณสมบัติ
การไม่เกิดร่วม
อัลกอริทึมของปีเตอร์สัน
จำกัดโพรเซสสองโพรเซสที่สลับการดำเนินการระหว่างส่วนวิกฤติและส่วนที่เหลือ
ฮาร์ดแวร์ประสานเวลา
การปิดกั้น
โพรเซสที่จะเข้าทำงาน จะตรวจสอบ ส่วนวิกฤตก่อน ถ้าไม่พบการปิดกั้นจะเข้ามาทำงาน และ ทำการปิดกั้น เพื่อกันไม่ให้โพรเซสอื่นเข้ามาใช้งาน เมื่อทำงานเสร็จแล้ว ถึงจะปลดการปิดกั้นออก
การปิดทางขัดจังหวะ
ขณะที่โพรเซสหนึ่งกำลังทำงานในส่วนวิกฤติอาจมีโพรเซสอื่นขอขัดจังหวะ เพื่อให้ได้โอกาสเข้าไปทำงานในส่วนวิกฤติ
คำสั่งทดสอบและเซ็ต
โพรเซสที่ต้องการเข้าไปทำงานในส่วนวิกฤติจะต้องเรียกใช้คำสั่งทดสอบและเซต ซึ่งเป็นคำสั่งระดับฮาร์ดแวร เพื่อตรวจสอบว่ามีโพรเซสใดทำงานอยู่ในส่วนวิกฤติหรือไม่
โครงสร้างพื้นฐานสำหรับการซินโครไนซ์
เซมาฟอร์
คำสั่ง คือ Signal แทนด้วย V และ Wait แทนด้วย P
ฟอร์แทนได้ด้วย S ซึ่งมีค่าเป็นเลขจำนวนเต็ม (Integer)
เป็นเครื่องมือประสานเวลาที่ไม่ต้องการเวลารอคอย
การใช้งานเซมาฟอร์
สามารถใช้แก้ไขปัญหาของการทำางาน ที่ให้โพรเซสทำงานประสานกันที่หลากหลาย
การสร้างเซมาฟอร์
คำสั่ง block จะทำให้โพรเซสทีทำคำสั่งนี้หยุดชั่วขณะ
คำสั่ง wakeup(P) จะปลุกโพรเซส P ให้กลับทำงานต่อ
เพื่อแก้ปัญหาการวนเวียนรอ
เซมาฟอร์แบบทวิภาค
สร้างได้ง่ายกว่าเซมาฟอร์แบบนับ
สามารถสร้างเซมาฟอร์แบบนับให้อยู่ในรูปแบบทวิภาคได้
การติดตายและอดตาย
คือ การเกิดเหตุการณ์ที่ สองโพรเซสหรือมากกว่านั้นรอแบบไม่มีที่สิ้นสุด เนื่องจากโพรเซสไปรอการทำงานของโพรเซสที่ยังรอ การทำงานด้วยเช่นกัน
ปัญหาพื้นฐานของการประสานเวลา
ปัญหาผู้อ่านและผู้เขียน
นำเอาเซมาฟอร์มาช่วยในการแก้ไขปัญหา โดยให้มีโครงสร้างของการใช้ตัวแปรร่วมกัน
ปัญหาอาหารเย็นของนักปราชญ์
ต้องการให้มีการจัดการเรื่องการใช้ทรัพยากรที่มีอยู่อย่างจำกัดร่วมกันระหว่างหลายโพรเซส
ณ ขณะใดขณะหนึ่งจะมี (ผู้ผลิตหรือผู้บริโภค) เพียงคน
เดียวเท่านั้นที่สามารถเข้าถึงบัฟเฟอร์ได้
ปัญหาที่พักข้อมูลขนาดจำกัด
นางสาว สุพิชฌาย์ พระอินทร์ดี รหัสนิสิต 6221601886 หมู่เรียน700 เลขที่ 27 โปรแกรมที่ใช้ Coggle