การสื่อสารระหว่างกระบวนการ

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา
ระบบกริดคอมพิวติ้งที่เชื่อมต่อคอมพิวเตอร์ส่วนบุคคลจำนวนมากผ่านอินเทอร์เน็ตผ่านการสื่อสารเครือข่ายระหว่างกระบวนการ

ในสาขาวิทยาศาสตร์คอมพิวเตอร์ , การสื่อสารหรือการสื่อสาร ( IPC ) หมายถึงเฉพาะกลไกที่ระบบปฏิบัติการให้เพื่อให้กระบวนการในการจัดการข้อมูลที่ใช้ร่วมกัน โดยทั่วไป แอปพลิเคชันสามารถใช้ IPC ซึ่งจัดอยู่ในประเภทไคลเอนต์และเซิร์ฟเวอร์โดยที่ไคลเอนต์ร้องขอข้อมูลและเซิร์ฟเวอร์ตอบสนองต่อคำขอของไคลเอนต์ [1]การใช้งานหลายคนมีทั้งลูกค้าและเซิร์ฟเวอร์เท่าที่เห็นกันทั่วไปในการคำนวณแบบกระจาย

IPC มีความสำคัญมากต่อกระบวนการออกแบบไมโครเคอร์เนลและนาโนเคอร์เนลซึ่งลดจำนวนฟังก์ชันที่เคอร์เนลให้มา ฟังก์ชันเหล่านี้ได้มาจากการสื่อสารกับเซิร์ฟเวอร์ผ่าน IPC ทำให้มีการสื่อสารเพิ่มขึ้นอย่างมากเมื่อเทียบกับเคอร์เนลเสาหินทั่วไป อินเทอร์เฟซ IPC โดยทั่วไปประกอบด้วยโครงสร้างเฟรมเวิร์กการวิเคราะห์ตัวแปร กระบวนการเหล่านี้ช่วยให้มั่นใจได้ถึงความเข้ากันได้ระหว่างโปรโตคอลหลายเวกเตอร์ซึ่งโมเดล IPC พึ่งพา [2]

กลไก IPC เป็นแบบซิงโครนัสหรือแบบอะซิงโครนัส พื้นฐานการซิงโครไนซ์อาจถูกใช้เพื่อให้มีพฤติกรรมแบบซิงโครนัสกับกลไก IPC แบบอะซิงโครนัส

วิธีการ

วิธีการต่างๆ ของ IPC ได้รับการปรับแต่งให้เข้ากับข้อกำหนดของซอฟต์แวร์ ที่แตกต่างกัน เช่นประสิทธิภาพความ เป็น โมดูลและสถานการณ์ของระบบ เช่น แบนด์วิดท์ ของเครือข่ายและเวลาแฝง [1]

วิธี คำอธิบายสั้น ให้บริการโดย ( ระบบปฏิบัติการหรือสภาพแวดล้อมอื่น ๆ )
ไฟล์ เร็กคอร์ดที่จัดเก็บบนดิสก์ หรือเร็กคอร์ดที่สังเคราะห์ตามความต้องการโดยไฟล์เซิร์ฟเวอร์ ซึ่งสามารถเข้าถึงได้โดยหลายกระบวนการ ระบบปฏิบัติการส่วนใหญ่
ไฟล์สื่อสาร รูปแบบเฉพาะของ IPC ในช่วงปลายทศวรรษ 1960 ซึ่งใกล้เคียงกับโปรโตคอล 9PของPlan 9 มากที่สุด ระบบแบ่งปันเวลาของดาร์ทเมาท์
สัญญาณ ; กับดักระบบอะซิงโครนั ข้อความระบบที่ส่งจากกระบวนการหนึ่งไปยังอีกกระบวนการหนึ่ง ซึ่งปกติจะไม่ใช้ในการถ่ายโอนข้อมูล แต่จะใช้เพื่อสั่งการกระบวนการที่เป็นพันธมิตรจากระยะไกล ระบบปฏิบัติการส่วนใหญ่
เบ้า ข้อมูลที่ส่งผ่านอินเทอร์เฟซเครือข่าย ไม่ว่าจะไปยังกระบวนการอื่นบนคอมพิวเตอร์เครื่องเดียวกันหรือไปยังคอมพิวเตอร์เครื่องอื่นบนเครือข่าย เชิงสตรีม ( TCP ; ข้อมูลที่เขียนผ่านซ็อกเก็ตต้องมีการจัดรูปแบบเพื่อรักษาขอบเขตของข้อความ) หรือไม่ค่อยเน้นข้อความ ( UDP , SCTP ) ระบบปฏิบัติการส่วนใหญ่
ซ็อกเก็ตโดเมน Unix คล้ายกับซ็อกเก็ตอินเทอร์เน็ต แต่การสื่อสารทั้งหมดเกิดขึ้นภายในเคอร์เนล ซ็อกเก็ตโดเมนใช้ระบบไฟล์เป็นพื้นที่ที่อยู่ กระบวนการอ้างอิงซ็อกเก็ตโดเมนเป็นinodeและหลายกระบวนการสามารถสื่อสารกับซ็อกเก็ตเดียวได้ ระบบปฏิบัติการ POSIX ทั้งหมดและ Windows 10 [3]
คิวข้อความ สตรีมข้อมูลที่คล้ายกับซ็อกเก็ต แต่มักจะรักษาขอบเขตของข้อความไว้ โดยทั่วไปแล้วระบบปฏิบัติการจะใช้งาน อนุญาตให้หลายกระบวนการอ่านและเขียนไปยังคิวข้อความโดยไม่ต้องเชื่อมต่อถึงกันโดยตรง ระบบปฏิบัติการส่วนใหญ่
ท่อนิรนาม ช่องข้อมูลแบบทิศทางเดียวโดยใช้อินพุตและเอาต์พุตมาตรฐาน ข้อมูลที่เขียนไปยังปลายเขียนของไพพ์จะถูกบัฟเฟอร์โดยระบบปฏิบัติการ จนกว่าจะถูกอ่านจากจุดสิ้นสุดการอ่านของไพพ์ การสื่อสารแบบสองทางระหว่างกระบวนการสามารถทำได้โดยใช้สองไพพ์ใน "ทิศทาง" ที่ตรงกันข้าม ระบบPOSIXทั้งหมด, Windows
ชื่อท่อ ไปป์ที่ได้รับการปฏิบัติเหมือนไฟล์ แทนที่จะใช้อินพุตและเอาต์พุตมาตรฐานเช่นเดียวกับไพพ์ที่ไม่ระบุชื่อ ให้ประมวลผลการเขียนและอ่านจากไพพ์ที่มีชื่อ ราวกับว่าเป็นไฟล์ปกติ ระบบ POSIX ทั้งหมด, Windows, AmigaOS 2.0+
หน่วยความจำที่ใช้ร่วมกัน หลายโปรเซสได้รับสิทธิ์เข้าถึงบล็อกหน่วยความจำเดียวกัน ซึ่งจะสร้างบัฟเฟอร์ที่ใช้ร่วมกันสำหรับกระบวนการต่างๆ เพื่อสื่อสารระหว่างกัน ระบบ POSIX ทั้งหมด, Windows
ส่งข้อความ อนุญาตให้หลายโปรแกรมสื่อสารโดยใช้คิวข้อความและ/หรือช่องทางที่มีการจัดการที่ไม่ใช่ระบบปฏิบัติการ นิยมใช้ในรูปแบบการทำงานพร้อมกัน ใช้ในกระบวนทัศน์LPC , RPC , RMIและMPI , Java RMI , CORBA , COM , DDS , MSMQ , MailSlots , QNX , อื่นๆ
ไฟล์ที่แมปหน่วยความจำ ไฟล์ที่แมปกับRAMและสามารถแก้ไขได้โดยการเปลี่ยนที่อยู่หน่วยความจำโดยตรง แทนที่จะส่งออกไปยังสตรีม หุ้นนี้ผลประโยชน์เช่นเดียวกับมาตรฐานไฟล์ ระบบ POSIX ทั้งหมด, Windows

แอปพลิเคชัน

อินเทอร์เฟซการเรียกขั้นตอนระยะไกล

สแต็คการสื่อสารของแพลตฟอร์ม

ต่อไปนี้คือการส่งข้อความและระบบข้อมูลที่ใช้กลไก IPC แต่ไม่ได้ใช้ IPC ด้วยตนเอง:

กองการสื่อสารระบบปฏิบัติการ

ต่อไปนี้คือ API เฉพาะแพลตฟอร์มหรือภาษาโปรแกรม:

โมเดลวัตถุแบบกระจาย

ต่อไปนี้คือ API เฉพาะของแพลตฟอร์มหรือภาษาโปรแกรมที่ใช้ IPC แต่ไม่ได้ใช้เอง:

ดูเพิ่มเติม

อ้างอิง

  1. ^ a b "การสื่อสารระหว่างกระบวนการ" . ไมโครซอฟต์.
  2. ^ คามูราตี พี (1993). "การสื่อสารระหว่างกระบวนการสำหรับการออกแบบระดับระบบ" การประชุมเชิงปฏิบัติการระหว่างประเทศเกี่ยวกับการออกแบบ ฮาร์ดแวร์/ซอฟต์แวร์
  3. ^ "Windows/WSL Interop พร้อม AF_UNIX " ไมโครซอฟต์. 7 กุมภาพันธ์ 2561 . สืบค้นเมื่อ25 พฤษภาคม 2018 .
  4. ^ "การเขียนโปรแกรมพร้อมกัน - การสื่อสารระหว่างกระบวนการ "
  5. ^ "IpcMain | อิเล็กตรอน" .

ลิงค์ภายนอก