อะไรคือความแตกต่างที่สำคัญระหว่างจอภาพกับสัญญาณ ?
อะไรคือความแตกต่างที่สำคัญระหว่างจอภาพกับสัญญาณ ?
คำตอบ:
จอภาพเป็นวัตถุที่ออกแบบมาเพื่อเข้าถึงได้จากหลายหัวข้อ ฟังก์ชั่นสมาชิกหรือวิธีการของวัตถุจอภาพจะบังคับใช้การยกเว้นซึ่งกันและกันดังนั้นอาจมีเพียงหนึ่งเธรดที่กำลังทำการกระทำใด ๆ บนวัตถุในเวลาที่กำหนด หากเธรดหนึ่งกำลังเรียกใช้ฟังก์ชันสมาชิกของวัตถุอยู่ในขณะนี้เธรดอื่นใดที่พยายามเรียกใช้ฟังก์ชันสมาชิกของวัตถุนั้นจะต้องรอจนกว่าการประมวลผลแรกจะเสร็จสิ้น
สัญญาณเป็นวัตถุในระดับต่ำกว่า คุณอาจใช้เซมาฟอร์เพื่อสร้างมอนิเตอร์ สัญญาณเป็นหลักเป็นเพียงเคาน์เตอร์ เมื่อตัวนับเป็นบวกถ้าเธรดพยายามรับสัญญาณจากนั้นก็จะได้รับอนุญาตและตัวนับจะลดลง เมื่อเธรดเสร็จสิ้นแล้วมันจะปล่อยสัญญาณและเพิ่มตัวนับ
หากตัวนับนั้นเป็นศูนย์อยู่แล้วเมื่อเธรดพยายามรับเซมาฟอร์จากนั้นก็ต้องรอจนกว่าเธรดอื่นจะปล่อยเซมาฟอร์ หากหลายเธรดกำลังรอเมื่อเธรดปล่อยเซมาฟอร์แล้วหนึ่งในนั้นจะได้รับ เธรดที่ออกเซมาฟอร์ไม่จำเป็นต้องเป็นเธรดเดียวกับที่ได้รับมา
จอภาพเหมือนห้องน้ำสาธารณะ สามารถป้อนครั้งละหนึ่งคนเท่านั้น พวกเขาล็อคประตูเพื่อป้องกันไม่ให้คนอื่นเข้ามาทำสิ่งต่าง ๆ แล้วปลดล็อคเมื่อพวกเขาออกไป
สัญญาณเป็นเหมือนสถานที่เช่าจักรยาน พวกเขามีจักรยานจำนวนหนึ่ง หากคุณลองและเช่าจักรยานและพวกเขามีหนึ่งฟรีแล้วคุณสามารถใช้มันมิฉะนั้นคุณต้องรอ เมื่อมีคนส่งคืนจักรยานของพวกเขาคนอื่นก็สามารถรับมันได้ หากคุณมีจักรยานคุณสามารถมอบให้คนอื่นเพื่อส่งคืนได้ - สถานที่เช่าจักรยานไม่สนใจว่าใครจะคืนจักรยานตราบใดที่พวกเขาได้จักรยานกลับมา
คำอธิบายต่อไปนี้อธิบายถึงวิธีการรอ () และสัญญาณ () ของจอภาพแตกต่างจาก P และ V ของสัญญาณ
รอ ()และสัญญาณ ()การดำเนินงานเกี่ยวกับตัวแปรเงื่อนไขในการตรวจสอบมีความคล้ายคลึงกับPและVการดำเนินงานเกี่ยวกับการนับสัญญาณ
คำสั่งรอสามารถบล็อกการดำเนินการของกระบวนการในขณะที่คำสั่งสัญญาณสามารถทำให้กระบวนการอื่นจะถูกยกเลิกการปิดกั้น อย่างไรก็ตามมีความแตกต่างบางอย่างระหว่างพวกเขา. เมื่อกระบวนการดำเนินการการดำเนินการ P ก็ไม่จำเป็นต้องปิดกั้นกระบวนการนั้นเพราะสัญญาณการนับอาจจะมากกว่าศูนย์ ในทางตรงกันข้ามเมื่อมีการดำเนินการคำสั่ง wait คำสั่งนั้นจะบล็อกกระบวนการเสมอ เมื่องานดำเนินการการดำเนินงาน V บนสัญญาณมันจะปลดบล็อกงานที่รอสัญญาณหรือเพิ่มตัวนับสัญญาณถ้าไม่มีงานที่จะปลดล็อค ในทางกลับกันหากกระบวนการดำเนินการคำสั่งสัญญาณเมื่อไม่มีกระบวนการอื่นที่จะปลดบล็อกจะไม่มีผลกับตัวแปรเงื่อนไข ความแตกต่างระหว่างเซมาฟอร์และจอภาพก็คือผู้ใช้ที่ถูกปลุกด้วยการทำงาน V สามารถกลับมาทำงานได้โดยไม่ล่าช้า ในทางกลับกันผู้ใช้ที่ถูกปลุกด้วยการทำงานของสัญญาณจะถูกรีสตาร์ทเฉพาะเมื่อปลดล็อคจอภาพ นอกจากนี้
ลิงก์: ที่นี่เพื่ออ่านเพิ่มเติม หวังว่ามันจะช่วย
คำตอบหนึ่งบรรทัด:
จอภาพ: ควบคุมเพียงหนึ่งเธรดในแต่ละครั้งสามารถดำเนินการในจอภาพ (จำเป็นต้องได้รับการล็อคเพื่อรันเธรดเดี่ยว)
สัญญาณ: ล็อคที่ปกป้องทรัพยากรที่ใช้ร่วมกัน (จำเป็นต้องได้รับการล็อคเพื่อเข้าถึงทรัพยากร)
สัญญาณช่วยให้หลายหัวข้อ (ไม่เกินจำนวนที่กำหนด) เพื่อเข้าถึงวัตถุที่ใช้ร่วมกัน จอภาพอนุญาตให้เข้าถึงแบบเอกสิทธิ์เฉพาะบุคคลร่วมกันกับวัตถุที่ใช้ร่วมกัน
java.util.ArrayList
: มันเป็นวัตถุหรือภาชนะของวัตถุหลาย ๆ มันเป็นทั้งสองอย่างในเวลาเดียวกัน สัญญาณที่เหมาะสมในการควบคุมการเข้าถึงมันคืออะไร? ฉันจะบอกว่า: ไม่
เมื่อสัญญาณที่ใช้ในการป้องกันภูมิภาคที่สำคัญไม่มีความสัมพันธ์โดยตรงระหว่างสัญญาณและข้อมูลที่ได้รับการคุ้มครอง นี่เป็นส่วนหนึ่งของเหตุผลที่ semaphores อาจแยกย้ายกันไปรอบ ๆ รหัสและทำไมมันง่ายที่จะลืมโทรรอหรือแจ้งซึ่งในกรณีนี้ผลลัพธ์จะตามลำดับเพื่อละเมิดการแยกกันหรือล็อคทรัพยากรอย่างถาวร
ในทางตรงกันข้ามสิ่งที่เลวร้ายเหล่านี้สามารถเกิดขึ้นได้กับจอมอนิเตอร์ มอนิเตอร์เหนื่อยกับข้อมูลโดยตรง (มันห่อหุ้มข้อมูล) และเนื่องจากการดำเนินการของจอภาพเป็นการกระทำแบบอะตอมมิกจึงไม่สามารถเขียนรหัสที่สามารถเข้าถึงข้อมูลได้โดยไม่ต้องเรียกโปรโตคอลการป้อนข้อมูล โปรโตคอลทางออกถูกเรียกโดยอัตโนมัติเมื่อการดำเนินการตรวจสอบเสร็จสมบูรณ์
จอภาพมีกลไกในตัวสำหรับการซิงโครไนซ์เงื่อนไขในรูปแบบของตัวแปรเงื่อนไขก่อนดำเนินการต่อ หากเงื่อนไขไม่เป็นที่พอใจกระบวนการจะต้องรอจนกว่าจะได้รับแจ้งการเปลี่ยนแปลงเงื่อนไข เมื่อกระบวนการกำลังรอการซิงโครไนส์เงื่อนไขการใช้งานจอภาพจะดูแลปัญหาการแยกซึ่งกันและกันและอนุญาตให้กระบวนการอื่นเข้าถึงการตรวจสอบ
นำมาจากเนื้อหาของหลักสูตร Open University M362 บทที่ 3 "กระบวนการโต้ตอบ"
สัญญาณ:
การใช้เคาน์เตอร์ธงหรือการควบคุมการเข้าถึงทรัพยากรที่ใช้ร่วมกันบางอย่างในระบบพร้อมกันหมายถึงการใช้งานของสัญญาณ
ตัวอย่าง:
การตั้งค่าสถานะเท่านั้นเปิดเผยสถานะปัจจุบันของทรัพยากรไม่มีการนับหรือข้อมูลอื่น ๆ บนวัตถุที่รอหรือเรียกใช้บนทรัพยากร
การตรวจสอบ:
จอภาพประสานการเข้าถึงวัตถุโดยการสื่อสารกับหัวข้อที่สนใจในวัตถุที่ขอให้พวกเขาเข้าถึงการซื้อหรือการรอคอยสำหรับเงื่อนไขบางอย่างที่จะกลายเป็นความจริง
ตัวอย่าง: