การติดต่อสื่อสารระหว่างโปรเซส (Inter Process
Communication:IPC) หมายถึงการที่โปรเซสต่างๆ ทาการติดต่อ
ประสานกัน เพื่อให้การทางานเสร็จสิ้นตามต้องการ โครงสร้างพื้นฐานของการ
ติดต่อสื่อสารระหว่างโปรเซส
ในการส่งข้อความ (Message) ระหว่างโปรเซสนั้น โปรเซสที่ต้องการข้อความ
จากโปรเซสอื่น จะต้องส่งคาร้องไปยังโปรเซสนั้นเมื่อโปรเซสได้รับคาร้องแล้วจึง
ส่งข้อความไปให้เปรเซสที่ร้องขอซึ่ง ขนาดของข้อความไม่จาเป็นต้องเท่ากัน
ในการติดต่อสื่อสารระหว่างโปรเซสจะมีการสร้างลิงค์ (Link) ขึ้นมา
ระหว่างโปรเซส ซึ่งมีทั้งลิงค์ทางกายภาพ (Physical Link)เช่น หน่วยความจา
ร่วม บัส หรือเครือข่าย และลิงค์ทางตรรกะ (Logical Link)
ปัญหาในการสร้างลิงค์ทางตรรกะ
1.จะสร้างลิงค์อย่างไร
2. ลิงค์ที่สร้างนั้นมีความสัมพันธ์กับโปรเซสมากกว่า 2 โปรเซสหรือไม่
3. ต้องสร้างลิงค์จานวนเท่าไร ระหว่างโปรเซส 2 โปรเซส
4. แต่ละลิงค์ต้องการพื้นที่เพื่อใช้เก็บข้อความจานวนเท่าไร
5. ขนาดของข้อความควรเป็นเท่าไร และแต่ละลิงค์จะต้องรองรับ
ข้อความแบบ Variable Size หรือ Fixed Size
6. แต่ละลิงค์เป็นลิงค์ทางเดียว (Unidirectional) หรือลิงค์สองทาง
(Bidirectional)
การรับและส่งข้อความ หรือการใช้ลิงค์สามารถทาได้ ดังนี้
1. การติดต่อสื่อสารเป็นแบบทางตรงหรือทางอ้อม
2. การติดต่อสื่อสารเป็นแบบสมมาตร (Symmetric) หรือไม่สมมาตร
(Asymmetric)
3. พื้นที่ที่ใช้เก็บข้อความเป็นแบบอัตโนมัติหรือใช้บัฟเฟอร์เฉพาะแบบ
4. ส่งข้อความแบบสาเนา (Copy) หรือแบบอ้างอิง (Reference)
5. ข้อความมีขนาดคงที่หรือไม่คงที่
การตั้งชื่อ (Naming)
โปรเซสที่ด้องการติดต่อสื่อสารกัน จาเป็นต้องมีการอ้างถึงซื่อของ
ผู้รับและผู้ส่ง ซึ่งการอ้างถึงนี้สามารถทาได้ทั้งทางตรงหรือทางอ้อม
การสื่อสารทางตรง (Direct Communication)
การติดต่อแบนนี้จะต้องกาหนดซื่อเฉพาะในการติดต่อทั้งผู้รับและผู้
ส่งลิงค์แบบนี้มีคุณสมบัติคือ
1. ลิงค์จะเกิดขึ้นโดยอัตโนมัติ ระหว่างโปรเซสทั้งสอง โดยแต่ละโปรเซสต้อง
รู้จักซื่อของอีกโปรเซสหนึ่ง
2. ลิงค์ 1 ลิงค์ จะเชื่อมระหว่าง 2 โปรเซสเท่านั้น
3. ลิงค์อาจเป็นแบบลิงค์ทางเดียวหรือลิงค์สองทางก็ได้ แต่ปกติมักเป็นแบบ
ลิงค์สองทาง
การสื่อสารทางอ้อม (Indirect Communication)
เป็นการติดต่อสื่อสารระหว่างโปรเซสโดยผ่านกล่องจดหมาย
(Mail Box)หรือผ่านทางพอร์ต (Port) โดยข้อความที่ส่งไปมาระหว่าง
โปรเซสจะถูกน่ามาเก็บไว้ในกล่องจดหมายก่อนที่จะส่งไปให้ โปรเซสผู้รับ
กล่องจดหมายแต่ละกล่องจะมีหมายเลขที่ไม่ซ้ากัน ลิงค์แบบนี้มีคุณสมบัติ
คือ
1. มีการสร้างลิงค์ระหว่างโปรเซส เมื่อโปรเซสมีการร่วมกันใช้กล่อง
จดหมาย
2. ลิงค์หนึ่ง ๆ อาจมีความสัมพันธ์กันมากกว่า 2 โปรเซส
3. โปรเซสแต่ละคู่ อาจมีหลายลิงค์ที่แตกต่างกันได้ และแต่ละลิงค์จะ
ติดต่อผ่านกล่อง จดหมายเดียว
4. ลิงค์อาจเป็นแบบลิงค์ทางเดียว หรือลิงค์สองทางก็ได้
การพักข้อมูล (Buffering)
ในการสร้างลิงค์ นอกจากจะต้องกาหนดเส้นทางแล้วยังต้องมีพื้นที่
ส่วนหนึ่งเพื่อใช้เก็บข้อมูลชั่วคราว ซึ่งการเก็บข้อมูลนี้จะเก็บในลักษณะของคิว
โดยพื้นฐานแล้วคิวนี้มีความจุ 3 รูปแบบคือ
1.ความจุแบบศูนย์ (Zero Capacity) เป็นคิวแบบมีความจุเป็น 0 คือ
จะไม่มีการเก็บข้อความไว้ในคิวเลย เมื่อคิวได้รับข้อความแล้วจะส่งไปยัง
ปลายทางทันที ในกรณีนี้ผู้ส่งจะต้องรอจนกว่าผู้รับจะได้รับข้อความ
2.ความจุแบบมีขอบเขต (Bounded Capacity) เป็นคิวที่มีขนาด
ความจุคงที่ เมื่อใดที่ข้อความยังไม่เต็ม คิวจะรับข้อความเข้ามาอยู่ในคิว
จนกว่าจะเต็ม เมื่อเต็มแล้วต้องรอจนกว่าจะมีที่ว่าง ข้อความใหม่จึงจะเข้ามาใน
คิวได้
3.ความจุแบบไร้ขอบเขต (Unbounded Capacity)เป็นคิวที่มีความจุ
ไม่คงที่สามารถรับข้อความได้ตลอดเวลา ทาให้ผู้ส่งไม่ต้องรอเลย

การติดต่อสื่อสารระหว่างโปรเซส

  • 2.
    การติดต่อสื่อสารระหว่างโปรเซส (Inter Process Communication:IPC)หมายถึงการที่โปรเซสต่างๆ ทาการติดต่อ ประสานกัน เพื่อให้การทางานเสร็จสิ้นตามต้องการ โครงสร้างพื้นฐานของการ ติดต่อสื่อสารระหว่างโปรเซส ในการส่งข้อความ (Message) ระหว่างโปรเซสนั้น โปรเซสที่ต้องการข้อความ จากโปรเซสอื่น จะต้องส่งคาร้องไปยังโปรเซสนั้นเมื่อโปรเซสได้รับคาร้องแล้วจึง ส่งข้อความไปให้เปรเซสที่ร้องขอซึ่ง ขนาดของข้อความไม่จาเป็นต้องเท่ากัน ในการติดต่อสื่อสารระหว่างโปรเซสจะมีการสร้างลิงค์ (Link) ขึ้นมา ระหว่างโปรเซส ซึ่งมีทั้งลิงค์ทางกายภาพ (Physical Link)เช่น หน่วยความจา ร่วม บัส หรือเครือข่าย และลิงค์ทางตรรกะ (Logical Link)
  • 3.
    ปัญหาในการสร้างลิงค์ทางตรรกะ 1.จะสร้างลิงค์อย่างไร 2. ลิงค์ที่สร้างนั้นมีความสัมพันธ์กับโปรเซสมากกว่า 2โปรเซสหรือไม่ 3. ต้องสร้างลิงค์จานวนเท่าไร ระหว่างโปรเซส 2 โปรเซส 4. แต่ละลิงค์ต้องการพื้นที่เพื่อใช้เก็บข้อความจานวนเท่าไร 5. ขนาดของข้อความควรเป็นเท่าไร และแต่ละลิงค์จะต้องรองรับ ข้อความแบบ Variable Size หรือ Fixed Size 6. แต่ละลิงค์เป็นลิงค์ทางเดียว (Unidirectional) หรือลิงค์สองทาง (Bidirectional)
  • 4.
    การรับและส่งข้อความ หรือการใช้ลิงค์สามารถทาได้ ดังนี้ 1.การติดต่อสื่อสารเป็นแบบทางตรงหรือทางอ้อม 2. การติดต่อสื่อสารเป็นแบบสมมาตร (Symmetric) หรือไม่สมมาตร (Asymmetric) 3. พื้นที่ที่ใช้เก็บข้อความเป็นแบบอัตโนมัติหรือใช้บัฟเฟอร์เฉพาะแบบ 4. ส่งข้อความแบบสาเนา (Copy) หรือแบบอ้างอิง (Reference) 5. ข้อความมีขนาดคงที่หรือไม่คงที่
  • 5.
    การตั้งชื่อ (Naming) โปรเซสที่ด้องการติดต่อสื่อสารกัน จาเป็นต้องมีการอ้างถึงซื่อของ ผู้รับและผู้ส่งซึ่งการอ้างถึงนี้สามารถทาได้ทั้งทางตรงหรือทางอ้อม การสื่อสารทางตรง (Direct Communication) การติดต่อแบนนี้จะต้องกาหนดซื่อเฉพาะในการติดต่อทั้งผู้รับและผู้ ส่งลิงค์แบบนี้มีคุณสมบัติคือ 1. ลิงค์จะเกิดขึ้นโดยอัตโนมัติ ระหว่างโปรเซสทั้งสอง โดยแต่ละโปรเซสต้อง รู้จักซื่อของอีกโปรเซสหนึ่ง 2. ลิงค์ 1 ลิงค์ จะเชื่อมระหว่าง 2 โปรเซสเท่านั้น 3. ลิงค์อาจเป็นแบบลิงค์ทางเดียวหรือลิงค์สองทางก็ได้ แต่ปกติมักเป็นแบบ ลิงค์สองทาง
  • 6.
    การสื่อสารทางอ้อม (Indirect Communication) เป็นการติดต่อสื่อสารระหว่างโปรเซสโดยผ่านกล่องจดหมาย (MailBox)หรือผ่านทางพอร์ต (Port) โดยข้อความที่ส่งไปมาระหว่าง โปรเซสจะถูกน่ามาเก็บไว้ในกล่องจดหมายก่อนที่จะส่งไปให้ โปรเซสผู้รับ กล่องจดหมายแต่ละกล่องจะมีหมายเลขที่ไม่ซ้ากัน ลิงค์แบบนี้มีคุณสมบัติ คือ 1. มีการสร้างลิงค์ระหว่างโปรเซส เมื่อโปรเซสมีการร่วมกันใช้กล่อง จดหมาย 2. ลิงค์หนึ่ง ๆ อาจมีความสัมพันธ์กันมากกว่า 2 โปรเซส 3. โปรเซสแต่ละคู่ อาจมีหลายลิงค์ที่แตกต่างกันได้ และแต่ละลิงค์จะ ติดต่อผ่านกล่อง จดหมายเดียว 4. ลิงค์อาจเป็นแบบลิงค์ทางเดียว หรือลิงค์สองทางก็ได้
  • 7.
    การพักข้อมูล (Buffering) ในการสร้างลิงค์ นอกจากจะต้องกาหนดเส้นทางแล้วยังต้องมีพื้นที่ ส่วนหนึ่งเพื่อใช้เก็บข้อมูลชั่วคราวซึ่งการเก็บข้อมูลนี้จะเก็บในลักษณะของคิว โดยพื้นฐานแล้วคิวนี้มีความจุ 3 รูปแบบคือ 1.ความจุแบบศูนย์ (Zero Capacity) เป็นคิวแบบมีความจุเป็น 0 คือ จะไม่มีการเก็บข้อความไว้ในคิวเลย เมื่อคิวได้รับข้อความแล้วจะส่งไปยัง ปลายทางทันที ในกรณีนี้ผู้ส่งจะต้องรอจนกว่าผู้รับจะได้รับข้อความ 2.ความจุแบบมีขอบเขต (Bounded Capacity) เป็นคิวที่มีขนาด ความจุคงที่ เมื่อใดที่ข้อความยังไม่เต็ม คิวจะรับข้อความเข้ามาอยู่ในคิว จนกว่าจะเต็ม เมื่อเต็มแล้วต้องรอจนกว่าจะมีที่ว่าง ข้อความใหม่จึงจะเข้ามาใน คิวได้ 3.ความจุแบบไร้ขอบเขต (Unbounded Capacity)เป็นคิวที่มีความจุ ไม่คงที่สามารถรับข้อความได้ตลอดเวลา ทาให้ผู้ส่งไม่ต้องรอเลย