การสื่อสารระหว่างกระบวนการ - ภาพรวม
Inter Process Communication (IPC) เป็นกลไกที่เกี่ยวข้องกับการสื่อสารของกระบวนการหนึ่งกับอีกกระบวนการหนึ่ง สิ่งนี้มักเกิดขึ้นในระบบเดียวเท่านั้น
การสื่อสารมีสองประเภท -
ระหว่างกระบวนการที่เกี่ยวข้องเริ่มต้นจากกระบวนการเดียวเช่นกระบวนการแม่และลูก
ระหว่างกระบวนการที่ไม่เกี่ยวข้องกันหรือสองกระบวนการหรือมากกว่านั้น
ต่อไปนี้เป็นคำศัพท์สำคัญที่เราต้องรู้ก่อนดำเนินการต่อในหัวข้อนี้
Pipes- การสื่อสารระหว่างสองกระบวนการที่เกี่ยวข้อง กลไกคือ half duplex หมายถึงกระบวนการแรกสื่อสารกับกระบวนการที่สอง เพื่อให้ได้ฟูลดูเพล็กซ์กล่าวคือสำหรับกระบวนการที่สองในการสื่อสารกับกระบวนการแรกจำเป็นต้องมีท่อ
FIFO- การสื่อสารระหว่างสองกระบวนการที่ไม่เกี่ยวข้องกัน FIFO เป็นฟูลดูเพล็กซ์ซึ่งหมายความว่ากระบวนการแรกสามารถสื่อสารกับกระบวนการที่สองและในทางกลับกันได้ในเวลาเดียวกัน
Message Queues- การสื่อสารระหว่างสองกระบวนการขึ้นไปด้วยความจุแบบดูเพล็กซ์เต็ม กระบวนการต่างๆจะสื่อสารกันโดยการโพสต์ข้อความและดึงข้อมูลออกจากคิว เมื่อดึงข้อมูลแล้วข้อความจะไม่อยู่ในคิวอีกต่อไป
Shared Memory- การสื่อสารระหว่างสองกระบวนการหรือมากกว่านั้นทำได้โดยใช้หน่วยความจำร่วมกันระหว่างกระบวนการทั้งหมด หน่วยความจำที่แบ่งใช้จะต้องได้รับการปกป้องจากกันและกันโดยการซิงโครไนซ์การเข้าถึงกระบวนการทั้งหมด
Semaphores- Semaphores มีไว้สำหรับการซิงโครไนซ์การเข้าถึงกระบวนการต่างๆ เมื่อกระบวนการหนึ่งต้องการเข้าถึงหน่วยความจำ (สำหรับการอ่านหรือเขียน) จำเป็นต้องล็อก (หรือป้องกัน) และปล่อยเมื่อการเข้าถึงถูกลบออก ขั้นตอนนี้จำเป็นต้องทำซ้ำทุกขั้นตอนเพื่อรักษาความปลอดภัยของข้อมูล
Signals- สัญญาณเป็นกลไกในการสื่อสารระหว่างกระบวนการต่างๆด้วยวิธีการส่งสัญญาณ ซึ่งหมายความว่ากระบวนการต้นทางจะส่งสัญญาณ (รับรู้ด้วยตัวเลข) และกระบวนการปลายทางจะจัดการตามนั้น
Note - โปรแกรมเกือบทั้งหมดในบทช่วยสอนนี้ใช้การเรียกระบบภายใต้ระบบปฏิบัติการ Linux (ดำเนินการใน Ubuntu)