Semaphore ใช้สำหรับการแยกกันอย่างไร?

Semaphore ใช้สำหรับการแยกกันอย่างไร?
Semaphore ใช้สำหรับการแยกกันอย่างไร?
Anonim

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

สัญญาณใช้การยกเว้นร่วมกันอย่างไร

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

สัญญาณจะถูกใช้อย่างไรเมื่อมี 2 กระบวนการที่ต้องการการยกเว้นร่วมกัน

สองกระบวนการสามารถใช้การยกเว้นร่วมกันได้โดยใช้ a สัญญาณไบนารี ส่วนที่สำคัญอยู่ในคร่อมด้วย P(S) และ V(S) P(S) คือรายการหรือวงเล็บเปิด V(S) คือวงเล็บออกหรือวงเล็บปิด สำหรับสองโปรเซสที่มีเซมาฟอร์ไบนารี: ถ้า S=1 แสดงว่าไม่มีโปรเซสใดดำเนินการส่วนที่สำคัญของมัน

สัญญาณไบนารีสามารถให้การยกเว้นร่วมกันได้หรือไม่

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

จุดประสงค์ของการใช้สัญญาณคืออะไร

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