อัลกอริทึม Dekkers

ผู้เขียน: Robert Simon
วันที่สร้าง: 17 มิถุนายน 2021
วันที่อัปเดต: 24 มิถุนายน 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
วิดีโอ: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

เนื้อหา

คำจำกัดความ - อัลกอริทึม Dekkers หมายความว่าอย่างไร

อัลกอริทึมของ Dekker เป็นอัลกอริทึมที่รู้จักเป็นครั้งแรกที่แก้ปัญหาการแยกซึ่งกันและกันในการเขียนโปรแกรมพร้อมกัน มันให้เครดิตกับ Th J. Dekker นักคณิตศาสตร์ชาวดัตช์ผู้สร้างอัลกอริทึมสำหรับการต่อต้านอีกแบบหนึ่ง อัลกอริทึม Dekkers ใช้ในกระบวนการจัดคิวและอนุญาตให้เธรดที่แตกต่างกันสองรายการใช้ทรัพยากรแบบใช้ครั้งเดียวเหมือนกันโดยไม่มีข้อขัดแย้งโดยใช้หน่วยความจำแบบแบ่งใช้สำหรับการสื่อสาร


ข้อมูลเบื้องต้นเกี่ยวกับ Microsoft Azure และ Microsoft Cloud | ในคู่มือนี้คุณจะได้เรียนรู้ว่าการประมวลผลแบบคลาวด์คืออะไรและ Microsoft Azure สามารถช่วยคุณในการโยกย้ายและดำเนินธุรกิจจากคลาวด์อย่างไร

Techopedia อธิบาย Dekkers Algorithm

อัลกอริทึมของ Dekker จะอนุญาตเพียงกระบวนการเดียวเท่านั้นที่จะใช้ทรัพยากรหากทั้งสองกระบวนการพยายามที่จะใช้มันในเวลาเดียวกัน ไฮไลต์ของอัลกอริทึมคือวิธีแก้ปัญหานี้ มันประสบความสำเร็จในการป้องกันความขัดแย้งโดยการบังคับใช้การกีดกันซึ่งกันและกันซึ่งหมายความว่ามีเพียงกระบวนการเดียวเท่านั้นที่สามารถใช้ทรัพยากรได้ตลอดเวลาและจะรอถ้ากระบวนการอื่นกำลังใช้งานอยู่ นี่คือความสำเร็จด้วยการใช้สอง "ธง" และ "โทเค็น" แฟล็กบ่งชี้ว่ากระบวนการต้องการเข้าสู่ส่วนวิกฤติ (CS) หรือไม่ ค่า 1 หมายถึง TRUE ที่กระบวนการต้องการป้อน CS ขณะที่ 0 หรือ FALSE หมายถึงสิ่งตรงกันข้าม โทเค็นซึ่งสามารถมีค่า 1 หรือ 0 บ่งชี้ถึงลำดับความสำคัญเมื่อกระบวนการทั้งสองมีการตั้งค่าสถานะเป็น TRUE

อัลกอริทึมนี้สามารถบังคับใช้การยกเว้นซึ่งกันและกันได้สำเร็จ แต่จะทดสอบอย่างต่อเนื่องว่ามีส่วนสำคัญหรือไม่และจะทำให้เสียเวลาอย่างมากในการประมวลผล มันสร้างปัญหาที่รู้จักกันว่าการประสานการล็อคซึ่งแต่ละกระทู้อาจดำเนินการในการประสานอย่างเข้มงวด นอกจากนี้ยังไม่สามารถขยายได้เนื่องจากรองรับได้สูงสุดเพียงสองกระบวนการสำหรับการยกเว้นซึ่งกันและกัน