วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2550

3 . การจัดบัฟเฟอร์

ในการสร้างลิงค์ นอกจากจะเป็นการกำหนดเส้นทางข้อมูลแล้ว ลิงค์ยังมีความจที่เป็นตัวเลขแสดงจำนวนแมสเสจที่สามารถเก็บไว้ ชั่วคราวได้ คุณสมบัตินี้อาจจะมองว่าเป็นคิวของแมสเสจที่ผูกติดกับลิงค์ก็ได้ โดยพื้นฐานมีความจุ 3 ลักษณะคือ
w ความจุศูนย์ (Zero capasity) ความจุแบบนี้จะทำให้มีคิวขนาดสูงสุดเป็น 0 ดังนั้นลิงค์จะไม่มีแมสเสจรออยู่เลย ในกรณีผู้ส่งจะต้อง รอจนกว่าผู้รับแมสเสจ โปรเซสทั้งสองจะต้องซินโครไนซ์เพื่อให้เกิดการถ่ายโอนแมสเสจ การซินโครไนซ์แบบนี้เรียกว่า rendezvous
w ความจุแบบมีขอบเขต (Bounded capasity) ความจุแบบนี้จะทำให้คิวมีขนาดคงที่เป็น n ดังนั้นจะมีแมจเสจสูงขึ้น n แมสเซสที่เก็บไว้ในคิว ถ้าคิวยังไม่เต็มเมื่อแมสเสจใหม่จะถูกส่งเข้ามาหลังจากนั้นจะเข้าไปอยู่ในคิว
w ความจุไม่มีขอบเขต (Unbounded capasity) ความจุแบบนี้ให้คิวมีขนาดไม่คงที่ทำให้แมสเสจถูกเก็บไว้เสมอ ผู้ส่งไม่ต้องรอเวลาเลย
ตัวอย่างเช่น ถ้าโปรเซส P ส่งแมสเสจไปยังโปรเซส Q และสามารถเอ็กซิคิวต์ ได้ต่อไปเฉพาะหลังจากที่แมสเสจได้รับไปแล้ว โปรเซส P
จะมีขั้นตอนดังนี้
Send (Q, message);
receive (Q, message);
โปรเซส Q จะเอ็กซิคิวคำสั่ง
receive (P, message);
send (P, acknowledgment);
การรับ - ส่งแมสเสจระหว่างโปรเซส P และโปรเซส Q ในลักษณะนี้เรียกว่า asynchroncus อย่างไรก็ตามยังมี 2-3 กรณี ที่ไม่เข้ากลุ่มใดตามที่กล่าวมา แล้วนี้
w การส่งแมสเสจจองโปรเซสได้โดยไม่ต้องคอย กรณีนี้ถ้าผู้รับยังไม่ได้รับแมสเสจก่อนที่จะส่งแมสเสจอื่น
w การส่งแมสเสจของโปรเซสจะล่าช้าออกไปจนกว่าโปรเซสจะได้รับคำตอบ วิธีการนี้นำมาใช้เป็นระบบปฏิบัติการที่ชื่อ Thoth โดยในระบบนี้จะมีขนาดที่แน่นอน

ไม่มีความคิดเห็น: