การติดต่อระหว่างโปรเซส (Interprocess communication)

การติดต่อระหว่างโปรเซส
 (Interprocess communication)

     เมื่อโปรเซส A ต้องการติดต่อกับโปรเซส B 
โปรเซส A และ B จะต้องจองเนื้อที่ในหน่วยความจำในส่วนที่ว่างเอาไว้
ทั้ง 2 โปรเซสต้องรู้ว่าหน่วยความจำร่วมนี้อยู่ที่ใด

เมื่อโปรเซส A ส่งข้อมูลให้โปรเซส B ข้อมูลจะถูกส่งไปไว้ในหน่วยความจำร่วม



     เมื่อโปรเซสต้องการใช้ข้อมูลของโปรเซสอื่น โปรเซสที่ถูกร้องขอจะส่งข้อมูลไปให้ การที่โปรเซสต่าง ๆ มีการติดต่อกันเช่นนี้ เราเรียกว่า การติดต่อระหว่างโปรเซส
โดยทั่วไปการติดต่อระหว่างโปรเซสนั้นจะใช้วิธีการคือ การใช้หน่วยความจำร่วม (Shared memory)

กลไกการรับส่งข้อมูลผ่านทางหน่วยความจำร่วมนี้ OS จะไม่ช่วยจัดการให้โปรเซสที่ต้องการติดต่อกันจะต้องจัดการเอาเอง

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

    นอกจากการใช้หน่วยความจำร่วมแล้วยังมีวิธีอื่นที่มีความสะดวกมากกว่าและเป็นมาตรฐาน คือการใช้พอร์ท (Port)
พอร์ท คือพื้นที่ในหน่วยความจำส่วนหนึ่งที่ OS จัดไว้เพื่อให้โปรเซสต่าง ๆ ใช้ร่วมกันได้
โดย OS จะทำหน้าที่เป็นผู้ให้จังหวะในการรับส่งข้อมูลให้กับแต่ละโปรเซส เช่น
ถ้าโปรเซส A ต้องการใช้ข้อมูลจากโปรเซส B OS จะเป็นผู้ค้นหาข้อมูล B จากพอร์ท ถ้าพบก็จะให้โปรเซส A รับข้อมูลไป แต่ถ้าไม่พบก็จะให้โปรเซสนั้นหยุดรอจนกว่าจะมีข้อมูลถูกส่งมาไว้ที่พอร์ท

     




ความคิดเห็น