Saturday, May 7, 2016

การสื่อสารระหว่าง โปรเซส (Interprocess Communication)



การสื่อสารระหว่าง โปรเซส (Interprocess Communication)
การสื่อสารระหว่างโปรเซส (interprocess communication) มีสองรูปแบบ คือ โมเดลแบบผ่านค่าข้อมูล (message-passing model) และ แบบการแบ่งปันหน่วยความจำ (shared-memory model)
แบบโมเดลผ่านค่าข้อมูล (message-passing model) การสื่อสารกันระหว่าโปรเซสกระทำโดยการแลกเปลี่ยนข้อมูลระหว่ากัน ข้อความสามารถถูกแลกเปลี่ยนระหว่างโปรเซส ทั้งแบบทางตรง หรือแบบทางอ้อม ผ่านกล่องข้อความร่วม (common mailbox) ก่อนทำการสื่อสารระหว่างกัน จะต้องทำการเปิดการเชื่อมต่อระหว่างโปรเซสก่อน ต้องทราบถึงชื่อของตัวสื่อสาร (communicator) เพื่อให้โปรเซสอื่นๆ ที่อยู่ในระบบเดียวกัน หรือโปรเซสจากคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่ออยู่ด้วยเครือข่ายการสื่อสาร ทราบด้วย คอมพิวเตอร์แต่ละเครื่องในเครือข่าย มีชื่อของโฮสต์ ที่ทุกเครื่องรู้จักเหมือนกัน โฮสต์มีตัวบ่งชี้ในเครือข่าย เช่น เลขไอพี (IP address) นอกจากนี้ แต่ละโปรเซสยังมีชื่อของโปรเซส และที่ถูกแปลให้เป็นบ่งชี้ (identifier) เพื่อให้ระบบปฏิบัติการสามารถอ้างอิงถึงโปรเซสนั้นๆ การระบุ ID ของโฮสต์ และ ID ของโปรเซส โดยการเรียกระบบ (system calls) เพื่อทำหน้าที่แปลผล ตัวบ่งชี้ (identifiers) จะทำการผ่านค่าไปยังการเรียกเปิดและปิดทั่วไป (general purpose open and close calls) ที่ให้บริการโดย ระบบไฟล์ (file system) หรือการเรียกระบบ (system calls) การเปิดและปิดการเชื่อมต่อเฉพาะ (specific open connection and close connection) ขึ้นอยู่กับรูปแบบการสื่อสารของระบบ โดยปกติโปรเซสที่รับค่า จะต้องให้สิทธิ์สำหรับการเชื่อมต่อเพื่อยอมรับการเชื่อมต่อเข้ามา โปรเซสโดยมาก จะยอมรับการเชื่อมต่อที่เป็นการเชื่อมต่อแบบเฉพาะ ที่โปรแกรมของระบบสนับสนุนให้สำหรับแต่ละงานเท่านั้น การเอ็กซ์ซีคิวจะรอคอยการเรียกการเชื่อมต่อและพื่นที่การทำงานเมื่อทำการเชื่อมต่อ แหล่งที่มาของการเชื่อมต่อ เรียกว่า ไคลเอนท์ (client) และตัวรับเรียกว่า เซิร์ฟเวอร์ (server) จากนั้นจึงเกิดการแลกเปลี่ยนข้อความระหว่างกัน ด้วยการอ่านของเขียนข้อความเรียกระบบ การปิดการเชื่อมต่อเรียกว่าการสิ้นสุดการสื่อสาร (terminates the communication)
การสื่อสารระหว่างโปรเซสในรูปแบบการแบ่งปันหน่วยความจำ (shared-memory model) โปรเซสจะใช้วิธีการแบ่งปันหน่วยความจำที่สร้างขึ้นด้วยการเรียกระบบในสร้างและกำหนดสิทธิ์ในขอบเขตพื้นที่ของหน่วยความจำ ที่โปรเซสนั้นเป็นเจ้าของ การเรียกซ้ำ (Recall) โดยปกติระบบปฏิบัติการจะป้องกันแต่ละโปรเซสจากการเข้าถึงหน่วยความจำของโปรเซสอื่น การแบ่งปันหน่วยความจำจึงจำเป็นสำหรับโปรเซสสองโปรเซสหรือมากกว่า ให้ยอมรับที่จะยกเลิกข้อจำกัดนั้น โปรเซสต่างๆ สามารถแลกเปลี่ยนข้อมูลระหว่างกันโดยการอ่านและเขียนข้อมูลลงในพื้นที่ที่แบ่งปันหรือใช้งานร่วมกัน รูปแบบของข้อมูลถูกกำหนดโดยโปรเซสซึ่งไม่อยู่ภายใต้การควบคุมของระบบปฏิบัติการ โปรเซสจึงต้องทำหน้าที่ดูแลและมั่นใจว่าไม่ทำการเขียนข้อมูลลงในพื้นที่ที่ใช้งานร่วมกันการส่งค่าแบบผ่านข้อความ (message-passing model) มีประโยชน์มากในการแลกเปลี่ยนข้อมูลขนาดเล็ก เนื่องจากไม่เกิดการชนกันของข้อมูล และยังนำวิธีการนี้ไปใช้งานได้ง่าย กว่าวิธีการแบ่งปันหน่วยความจำ ในการสื่อสารข้อมูลระหว่างคอมพิวเตอร์ วิธีการแบ่งปันข้อมูลทำให้ใช้ความเร็วสูงสุด และสะดวกสุดในการสื่อสารข้อมูล โดยขึ้นอยู่กับความเร็วในการส่งผ่านข้อมูลของหน่วยความจำ ในแต่คอมพิวเตอร์แต่ละเครื่อง อย่างไรก็ตามอาจเกิดปัญหาขึ้น ในพื้นที่ที่ถูกปกป้องและการเข้าจังหวะ (protection and synchronization) ระหว่างหน่วยความจำที่แบ่งปันใช้งานร่วมกันระหว่างโปรเซส

No comments: