การสื่อสารระหว่างกระบวนการ (IPC) ในระบบปฏิบัติการ
การสื่อสารระหว่างกระบวนการคืออะไร?
การสื่อสารระหว่างกระบวนการ (IPC) ใช้สำหรับการแลกเปลี่ยนข้อมูลระหว่างหลายเธรดในกระบวนการหรือโปรแกรมตั้งแต่หนึ่งรายการขึ้นไป กระบวนการอาจทำงานบนคอมพิวเตอร์เครื่องเดียวหรือหลายเครื่องที่เชื่อมต่อกันด้วยเครือข่าย IPC รูปแบบเต็มคือการสื่อสารระหว่างกระบวนการ
เป็นชุดอินเทอร์เฟซการเขียนโปรแกรมที่ช่วยให้โปรแกรมเมอร์สามารถประสานงานกิจกรรมระหว่างกระบวนการโปรแกรมต่างๆ ที่สามารถทำงานพร้อมกันในระบบปฏิบัติการได้ ซึ่งช่วยให้โปรแกรมเฉพาะสามารถจัดการคำขอของผู้ใช้หลายรายการพร้อมกันได้
เนื่องจากคำขอของผู้ใช้แต่ละรายอาจส่งผลให้มีกระบวนการหลายกระบวนการทำงานในระบบปฏิบัติการ กระบวนการดังกล่าวอาจต้องสื่อสารกันเอง แนวทางโปรโตคอล IPC แต่ละแนวทางมีข้อดีและข้อจำกัดของตัวเอง ดังนั้นจึงไม่ใช่เรื่องแปลกที่โปรแกรมเดียวจะใช้แนวทาง IPC ทั้งหมด
แนวทางการสื่อสารระหว่างกระบวนการ
ต่อไปนี้เป็นวิธีการที่สำคัญบางประการสำหรับการสื่อสารระหว่างกระบวนการ:
ท่อ
ท่อส่งข้อมูลถูกใช้กันอย่างแพร่หลายในการสื่อสารระหว่างกระบวนการที่เกี่ยวข้องกันสองกระบวนการ นี่คือวิธีฮาล์ฟดูเพล็กซ์ ดังนั้นกระบวนการแรกจะสื่อสารกับกระบวนการที่สอง อย่างไรก็ตาม เพื่อให้ได้ฟูลดูเพล็กซ์ จำเป็นต้องใช้ท่อส่งข้อมูลอีกท่อหนึ่ง
ข้อความผ่าน
เป็นกลไกสำหรับการสื่อสารและซิงโครไนซ์ระหว่างกระบวนการ โดยใช้การส่งข้อความ กระบวนการจะสื่อสารกันเองโดยไม่ต้องอาศัยตัวแปรที่ใช้ร่วมกัน
กลไก IPC ให้การทำงานสองอย่าง:
- ส่ง (ข้อความ)- ขนาดข้อความคงที่หรือแปรผัน
- ได้รับแล้ว (ข้อความ)
คิวข้อความ
คิวข้อความคือรายการเชื่อมโยงของข้อความที่เก็บไว้ภายใน เมล็ด. ระบุโดยตัวระบุคิวข้อความ วิธีนี้ช่วยให้สามารถสื่อสารระหว่างกระบวนการเดียวหรือหลายกระบวนการด้วยความสามารถแบบฟูลดูเพล็กซ์
การสื่อสารโดยตรง
ในกระบวนการสื่อสารระหว่างกระบวนการประเภทนี้ควรตั้งชื่อกันอย่างชัดเจน ในวิธีนี้ ลิงก์จะถูกสร้างขึ้นระหว่างกระบวนการสื่อสารหนึ่งคู่ และระหว่างแต่ละคู่จะมีเพียงลิงก์เดียวเท่านั้น
การสื่อสารทางอ้อม
การสื่อสารทางอ้อมจะเกิดขึ้นก็ต่อเมื่อกระบวนการต่างๆ ใช้กล่องจดหมายร่วมกัน โดยแต่ละคู่ของกระบวนการจะแบ่งปันลิงก์การสื่อสารหลายรายการ ลิงก์สามารถสื่อสารกับกระบวนการต่างๆ ได้หลายรายการ ลิงก์อาจเป็นแบบสองทิศทางหรือแบบทิศทางเดียวก็ได้
หน่วยความจำที่ใช้ร่วมกัน
หน่วยความจำที่ใช้ร่วมกันคือหน่วยความจำที่ใช้ร่วมกันระหว่างสองกระบวนการหรือมากกว่านั้น ซึ่งสร้างขึ้นโดยใช้หน่วยความจำที่ใช้ร่วมกันระหว่างกระบวนการทั้งหมด หน่วยความจำประเภทนี้ต้องได้รับการปกป้องจากกันและกันโดยการซิงโครไนซ์การเข้าถึงระหว่างกระบวนการทั้งหมด
FIFO
การสื่อสารระหว่างกระบวนการที่ไม่เกี่ยวข้องกันสองกระบวนการ เป็นวิธีฟูลดูเพล็กซ์ ซึ่งหมายความว่ากระบวนการแรกสามารถสื่อสารกับกระบวนการที่สองได้ และกระบวนการที่ตรงกันข้ามก็สามารถเกิดขึ้นได้เช่นกัน
ทำไมต้องไอพีซี?
นี่คือเหตุผลในการใช้โปรโตคอลการสื่อสารระหว่างกระบวนการสำหรับการแบ่งปันข้อมูล:
- ช่วยเร่งความเป็นโมดูลาร์
- การคำนวณ
- การแยกสิทธิพิเศษ
- ความสะดวกสบาย
- ช่วยให้ระบบปฏิบัติการสื่อสารกันและซิงโครไนซ์การกระทำของพวกเขา
ข้อกำหนดที่ใช้ใน IPC
ต่อไปนี้เป็นคำศัพท์สำคัญบางประการที่ใช้ใน IPC:
Semaphores: เซมาฟอร์เป็นเทคนิคกลไกการส่งสัญญาณ วิธีการของระบบปฏิบัติการนี้จะอนุญาตหรือไม่อนุญาตการเข้าถึงทรัพยากร ซึ่งขึ้นอยู่กับวิธีการตั้งค่า
Signals: เป็นวิธีการสื่อสารระหว่างหลายกระบวนการโดยการส่งสัญญาณ กระบวนการต้นทางจะส่งสัญญาณซึ่งรับรู้โดยตัวเลข และกระบวนการปลายทางจะจัดการมัน
ข้อแนะนำในการอ่าน:- ความหมายของ Semaphore- ไบนารี ประเภทการนับพร้อมตัวอย่าง
อะไรคือสิ่งที่เหมือน FIFOS และต่างจาก FIFOS
เช่นเดียวกับ FIFOS | ต่างจาก FIFOS |
---|---|
มันเป็นไปตามวิธี FIFO | วิธีดึงข้อความด่วนเฉพาะก่อนที่จะถึงด้านหน้า |
FIFO มีอยู่อย่างเป็นอิสระจากทั้งกระบวนการส่งและรับ | พร้อมเสมอจึงไม่ต้องเปิดหรือปิด |
อนุญาตให้ถ่ายโอนข้อมูลระหว่างกระบวนการที่ไม่เกี่ยวข้อง | ไม่มีปัญหาการซิงโครไนซ์ระหว่างเปิดและปิด |
สรุป
- ความหมาย: การสื่อสารระหว่างกระบวนการใช้สำหรับการแลกเปลี่ยนข้อมูลระหว่างหลายเธรดในกระบวนการหรือโปรแกรมตั้งแต่หนึ่งรายการขึ้นไป
- ไปป์ถูกนำมาใช้กันอย่างแพร่หลายสำหรับการสื่อสารระหว่างสองกระบวนการที่เกี่ยวข้อง
- การส่งข้อความเป็นกลไกสำหรับกระบวนการในการสื่อสารและซิงโครไนซ์
- คิวข้อความคือรายการข้อความที่เชื่อมโยงซึ่งจัดเก็บไว้ในเคอร์เนล
- กระบวนการทางตรงคือกระบวนการสื่อสารระหว่างกระบวนการประเภทหนึ่งซึ่งควรตั้งชื่อให้ชัดเจน
- การสื่อสารทางอ้อมจะเกิดขึ้นก็ต่อเมื่อกระบวนการต่างๆ แบ่งปันกล่องจดหมายร่วมกัน โดยแต่ละคู่ของกระบวนการจะแบ่งปันลิงก์การสื่อสารหลายรายการ
- หน่วยความจำที่ใช้ร่วมกันคือหน่วยความจำที่ใช้ร่วมกันระหว่างสองกระบวนการขึ้นไปที่สร้างขึ้นโดยใช้หน่วยความจำที่ใช้ร่วมกันระหว่างกระบวนการทั้งหมด
- วิธีการสื่อสารระหว่างกระบวนการช่วยเร่งความเป็นโมดูลาร์
- เซมาฟอร์เป็นเทคนิคกลไกการส่งสัญญาณ
- Signaling เป็นวิธีการสื่อสารระหว่างกระบวนการหลายๆ อย่างโดยใช้วิธีการส่งสัญญาณ
- เช่นเดียวกับ FIFO ทำตามวิธี FIFO ในขณะที่ต่างจาก FIFO ใช้วิธีการดึงข้อความเร่งด่วนเฉพาะก่อนที่จะไปถึงด้านหน้า