ตามที่วิกิพีเดีย ,
การดำเนินการทดสอบและตั้งค่าสามารถแก้ไขปัญหาฉันทามติที่ปราศจากการรอคอยสำหรับกระบวนการที่เกิดขึ้นพร้อมกันไม่เกินสองกระบวนการ
ทำไมมันไม่สามารถแก้ปัญหามากกว่าสองกระบวนการได้?
ตามที่วิกิพีเดีย ,
การดำเนินการทดสอบและตั้งค่าสามารถแก้ไขปัญหาฉันทามติที่ปราศจากการรอคอยสำหรับกระบวนการที่เกิดขึ้นพร้อมกันไม่เกินสองกระบวนการ
ทำไมมันไม่สามารถแก้ปัญหามากกว่าสองกระบวนการได้?
คำตอบ:
เพียงเพื่อให้แน่ใจว่าเราอยู่ในหน้าเดียวกันก่อนอื่นให้เราพิจารณาคำจำกัดความทั้งสามนี้:
คำนิยาม Test-and-set เป็นคำสั่งอ่าน - แก้ไข - เขียนในการลงทะเบียนแบบไบนารีบางส่วน (สมมติว่า 0 และ 1 เป็นค่าที่เป็นไปได้) โดยที่เธรดได้รับค่าเก่าและเขียน 1
คำนิยาม ฉันทามติถึงระหว่างหัวข้อ IFF ทั้งหมดnหัวข้อตัดสินใจเกี่ยวกับค่าเดียวกัน (ความต้องการความมั่นคง) และหัวข้อทั้งหมดที่จะตัดสินใจเกี่ยวกับค่าที่ได้รับการเสนอจริงโดยหนึ่งในหัวข้อ (ความต้องการความถูกต้องบริการ)
defintion โปรโตคอลฉันทามตินั้นปราศจากการรอถ้าทุกวิธีการโทรเสร็จสิ้นในจำนวนขั้นตอน
ตอนนี้ทำตามภาพร่างหลักฐานที่สอง
การอ้างสิทธิ์ 1.จำนวนฉันทามติของการทดสอบและการตั้งค่าอย่างน้อย 2 หลักฐาน สมมติว่าเรามีสองเธรด 0 และ 1 ที่จำเป็นต้องได้รับฉันทามติ เราสามารถทำได้โดยให้แต่ละเธรดปฏิบัติตามโปรโตคอลฉันทามติด้านล่าง:
คุณสามารถตรวจสอบตัวเองว่าฉันทามติและการรอคอยไม่พอใจ
(สำหรับหลักฐานถัดไปฉันจะวางหลักฐานและคำจำกัดความบางอย่างเพราะฉันคิดว่ามันจะทำให้ติดตามได้ง่ายขึ้น)
การอ้างสิทธิ์ 2.จำนวนฉันทามติของการทดสอบและการตั้งค่าเป็นอย่างมากที่สุด 2 ข้อพิสูจน์ โดยแย้ง สมมติว่าเรามีสามเธรด , BและCที่ต้องการตัดสินใจเกี่ยวกับค่าa , bและc , ตามลำดับและเรามีโพรโทคอลฉันทามติที่ปราศจากการรอคอยที่ถูกต้องซึ่งนำมาใช้โดยใช้การทดสอบและตั้งค่า )
เราสามารถเห็นภาพกระบวนการฉันทามติเป็นต้นไม้กำกับที่:
คำนิยาม ปล่อยให้รัฐเป็นหลายค่าหากผลลัพธ์ของกระบวนการฉันทามติยังไม่ได้รับการพิจารณา กล่าวอีกนัยหนึ่งการแทรกสอดที่ไม่เป็นไปได้ทั้งหมดของการเคลื่อนไหวที่เหลืออยู่นำไปสู่ผลลัพธ์เดียวกัน ขอให้รัฐเป็นความหมายเดียวเมื่อผลของกระบวนการฉันทามติที่จะกำหนด
รูตเป็นหลายค่า พิสูจน์ หากมีเธรดแอ็คทีฟและเธรดอื่นอยู่เฉยๆตลอดไปดังนั้นXจะสิ้นสุดในจำนวนขั้นตอนที่ จำกัด (รับประกันโดยการรอสมมติฐานที่ไม่มีสีเขียว) และมันจะเป็นตัวตัดสินx (เพราะมีสิทธิ์เข้าถึงค่านี้เท่านั้น การตัดสินใจจะเป็นไปตามข้อกำหนดความถูกต้องตามฉันทามติ) ดังนั้นสำหรับสถานการณ์ของเราa , bและcเป็นผลลัพธ์ที่เป็นไปได้ทั้งหมด ◻
คำนิยาม ขอให้รัฐที่สำคัญเป็นของรัฐซึ่งเป็น multivalent กับคุณสมบัติเพิ่มเติมที่ย้ายจากจะกำหนดและย้ายโดยBจะตรวจสอบข
มีสถานะวิกฤติ พิสูจน์ จากด้านบนเรารู้ว่าเราเริ่มต้นในสถานะหลายค่า ปล่อยให้ไม่มีการเคลื่อนไหวเลย ตราบใดที่Aหรือไม่ได้บังคับให้ทรีเข้าสู่สถานะที่ไม่เป็นเอกภาพให้ปล่อยให้มันเคลื่อนที่ Wait-freeness รับประกันว่าต้นไม้มี จำกัด ดังนั้นในบางจุดต้องพบสภาวะวิกฤติ ◻
ตอนนี้ให้พิจารณาสถานการณ์ที่เราอยู่ในภาวะวิกฤติ มีความเป็นไปได้อย่างน้อยสองรายการ:
1) ทำการเคลื่อนที่ (ดังนั้นการพิจารณาa ) และหยุดการทำงาน Bจากนั้นก็ขยับและหยุด ถัดไปทำงานจนกว่าจะเสร็จสิ้นในที่สุดก็ตัดสินใจ
2) ทำให้การเคลื่อนไหวของมัน (ดังนั้นการกำหนดb ) และหยุด ถัดไปCทำงานจนกว่าจะเสร็จสิ้นในที่สุดก็ตัดสินใจขAไม่เคลื่อนไหว
เนื่องจากการอ่านและเขียนของอะตอมมีความสอดคล้องกันเป็นอันดับที่ 1 เคลื่อนที่ของAและBจะต้องเป็นคำแนะนำการทดสอบและการตั้งค่าในการลงทะเบียนเดียวกัน (ถ้าการลงทะเบียนแตกต่างกันCจะไม่สามารถบอกลำดับที่Aและการเคลื่อนไหวของBเกิดขึ้น) จากCมุมมอง 's แล้วสถานการณ์ที่ 1 และ 2 จะแยกไม่ออกดังนั้นเราจึงต้องมีที่Cตัดสินใจทั้งและข มันเป็นไปไม่ได้. ◻
คำสั่งการทดสอบและการตั้งค่ามีฉันทามติที่ 2 ตามจากทั้งการอ้างสิทธิ์ 1 และ 2
บทความวิกิพีเดียมีการอ้างอิงที่ตอบคำถามคุณ แต่บางทีคุณอาจไม่ต้องการอ่านบทความ 26 หน้า ฉันจะให้รุ่นที่เรียบง่ายของหลักฐาน (ค่อนข้างเทคนิค) แสดงให้เห็นว่าการทดสอบและการตั้งค่าไม่สามารถแก้ฉันทามติไบนารีสำหรับ 3 กระบวนการ การโต้เถียงชนิดนี้ใช้กันอย่างแพร่หลายในการพิสูจน์ตัวเลขที่สอดคล้องกัน
สมมติว่าเรามีอัลกอริทึมที่สอดคล้องโดยใช้ TAS register สำหรับ 3 กระบวนการ
ณ จุดใดเวลาหนึ่งแต่ละกระบวนการจะมีการย้าย (คำสั่ง) พร้อมที่จะดำเนินการ คำสั่งใดในสามคำสั่งที่จะถูกเรียกใช้งานนั้นไม่สามารถกำหนดได้
สมมติว่าเราอยู่ในสถานะ bivalent (สถานะที่ทั้งการตัดสินใจ 0 หรือ 1 ยังคงเป็นไปได้) และกระบวนการใดก็ตามที่เคลื่อนไหวต่อไป ในที่สุดสถานะดังกล่าวจะต้องมาถึงได้เนื่องจากสภาพที่ปราศจากการรอคอย
สมมติว่า (wlg) ว่าถ้ากระบวนการ 1 ย้ายสถานะจะเป็น 0-valent และถ้าหากกระบวนการ 2 ย้ายสถานะจะเป็น 1-valent การย้ายทั้งสองจะต้องเป็นการดำเนินการของ TAS (หรืออย่างน้อย: การเขียนบางอย่าง) ในการลงทะเบียนเดียวกันเนื่องจากถ้าพวกเขาเป็นการดำเนินการทาง TAS เกี่ยวกับการลงทะเบียนที่แตกต่างกันเราไม่สามารถบอกได้ว่ากระบวนการ 1 ย้ายก่อนหรือไม่
ลองพิจารณาการประหารชีวิตที่เป็นไปได้ทั้งสองนี้:
จากมุมมองของกระบวนการ 3 สถานะเหล่านี้แยกไม่ออกเนื่องจากเพิ่งเห็นค่าที่เขียนโดยกระบวนการ 2 อย่างไรก็ตามในกรณีแรกควรให้ 0 เป็นเอาต์พุตและใน 1 วินาทีเป็นเอาต์พุต เห็นได้ชัดว่านี่คือความขัดแย้ง
กระบวนการที่ 1 และ 2 สามารถตัดสินใจได้ด้วยตนเองว่าสิ่งใดเป็นอันดับแรก (เพราะพวกเขาสามารถเห็นคุณค่าของการลงทะเบียนก่อนที่จะเขียน) แต่กระบวนการที่สามไม่สามารถทำได้
อีกวิธีในการพิสูจน์ว่าการทดสอบและตั้งค่าไม่สามารถใช้เพื่อแก้ไขฉันทามติ 3 โปรเซสเซอร์คือการแสดงให้เห็นว่าการทดสอบและการตั้งค่าสามารถดำเนินการได้โดยใช้ 2 ฉันทามติของโปรเซสเซอร์ จากนั้นสมมติว่าการทดสอบและการตั้งค่าสามารถแก้ไขฉันทามติ 3 โปรเซสเซอร์ที่นำไปสู่ความขัดแย้ง: สมมติว่าการทดสอบและเซตสามารถแก้ฉันทามติ 3 โปรเซสเซอร์ได้ จากนั้นโดยการแทนที่การทดสอบและการตั้งค่าโดยการใช้งานโดยใช้ 2 ฉันทามติโปรเซสเซอร์หนึ่งได้รับการดำเนินการฉันทามติ 3 โปรเซสเซอร์โดยใช้ฉันทามติ 2 โปรเซสเซอร์ซึ่งเป็นไปไม่ได้ ดังนั้นการทดสอบและการตั้งค่าไม่สามารถแก้ฉันทามติ 3 โปรเซสเซอร์ได้
ในการปรับใช้การทดสอบและการตั้งค่าสำหรับโปรเซสเซอร์ n โดยใช้ความสอดคล้อง 2 โปรเซสเซอร์ให้โปรเซสเซอร์กำหนดผู้ชนะการทดสอบและการตั้งค่าโดยใช้ทัวร์นาเมนต์ซึ่งการแข่งขันแต่ละครั้งจะดำเนินการโดยใช้ฉันทามติ 2 โปรเซสเซอร์ (ในการแข่งขันโปรเซสเซอร์ เสนอตัวระบุและผลลัพธ์ฉันทามติบอกพวกเขาว่าใครชนะ)
ในทางปฏิบัติคำจำกัดความสอดคล้องที่เข้มงวดน้อยกว่าอาจเพียงพอ (ที่นี่ฉันเรียกมันว่าฉันทามติเบา)
คำนิยาม Light-Consensus เข้าถึงได้ระหว่าง n เธรด iff (a) แต่ละเธรดตัดสินใจเลือกค่าเดียวกันหรือไม่ทราบค่าสำหรับมัน (b) อย่างน้อยหนึ่งเธรดรู้ค่าและ (c) ค่านี้ถูกเสนอโดยหนึ่งใน กระทู้
ดังนั้นฉันทามตินี้ในความหมายที่เบากว่าทำให้เธรดบางตัวไม่ทราบถึงฉันทามติค่าที่ตัดสินใจ
ผลที่ตามมา : ในการทดสอบและตั้งค่าความรู้สึกที่เบากว่านี้มีหมายเลขมติที่ไม่สิ้นสุด
อ้างสิทธิ์ : ความรู้สึกที่เบากว่านี้เป็นประโยชน์ ตัวอย่างเช่นเพื่อเลือกเธรดเพื่อเข้าสู่ส่วนที่สำคัญไม่จำเป็นต้องสร้างฉันทามติในแง่ที่เข้มงวด กล่าวคือ: แต่ละเธรดต้องทราบว่ามีการเลือกหรือไม่อย่างไรก็ตามถ้าไม่ได้เลือกมากกว่าจะไม่ต้องทราบว่าเลือกไว้หรือไม่ กล่าวอีกนัยหนึ่งก็คือไม่จำเป็นต้องมีความเห็นพ้องร่วมที่เข้มงวดซึ่งกันและกันยกเว้นแสงก็เพียงพอแล้ว