การสื่อสารระหว่างกระบวนการ - ภาพรวม

Inter Process Communication (IPC) เป็นกลไกที่เกี่ยวข้องกับการสื่อสารของกระบวนการหนึ่งกับอีกกระบวนการหนึ่ง สิ่งนี้มักเกิดขึ้นในระบบเดียวเท่านั้น

การสื่อสารมีสองประเภท -

  • ระหว่างกระบวนการที่เกี่ยวข้องเริ่มต้นจากกระบวนการเดียวเช่นกระบวนการแม่และลูก

  • ระหว่างกระบวนการที่ไม่เกี่ยวข้องกันหรือสองกระบวนการหรือมากกว่านั้น

ต่อไปนี้เป็นคำศัพท์สำคัญที่เราต้องรู้ก่อนดำเนินการต่อในหัวข้อนี้

Pipes- การสื่อสารระหว่างสองกระบวนการที่เกี่ยวข้อง กลไกคือ half duplex หมายถึงกระบวนการแรกสื่อสารกับกระบวนการที่สอง เพื่อให้ได้ฟูลดูเพล็กซ์กล่าวคือสำหรับกระบวนการที่สองในการสื่อสารกับกระบวนการแรกจำเป็นต้องมีท่อ

FIFO- การสื่อสารระหว่างสองกระบวนการที่ไม่เกี่ยวข้องกัน FIFO เป็นฟูลดูเพล็กซ์ซึ่งหมายความว่ากระบวนการแรกสามารถสื่อสารกับกระบวนการที่สองและในทางกลับกันได้ในเวลาเดียวกัน

Message Queues- การสื่อสารระหว่างสองกระบวนการขึ้นไปด้วยความจุแบบดูเพล็กซ์เต็ม กระบวนการต่างๆจะสื่อสารกันโดยการโพสต์ข้อความและดึงข้อมูลออกจากคิว เมื่อดึงข้อมูลแล้วข้อความจะไม่อยู่ในคิวอีกต่อไป

Shared Memory- การสื่อสารระหว่างสองกระบวนการหรือมากกว่านั้นทำได้โดยใช้หน่วยความจำร่วมกันระหว่างกระบวนการทั้งหมด หน่วยความจำที่แบ่งใช้จะต้องได้รับการปกป้องจากกันและกันโดยการซิงโครไนซ์การเข้าถึงกระบวนการทั้งหมด

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

Signals- สัญญาณเป็นกลไกในการสื่อสารระหว่างกระบวนการต่างๆด้วยวิธีการส่งสัญญาณ ซึ่งหมายความว่ากระบวนการต้นทางจะส่งสัญญาณ (รับรู้ด้วยตัวเลข) และกระบวนการปลายทางจะจัดการตามนั้น

Note - โปรแกรมเกือบทั้งหมดในบทช่วยสอนนี้ใช้การเรียกระบบภายใต้ระบบปฏิบัติการ Linux (ดำเนินการใน Ubuntu)