มีสองประเภทพื้นฐานของวิทยาการสื่อสาร: There are two basic types of communication primitives: message passing and
การส่งผ่านข้อความและการเรียกขั้นตอนระยะไกล(RPC) ระบบดังกล่าวเป็น Camelot, กระจาย Ingres remote procedure call (RPC). Systems such as Camelot, Distributed Ingres, and Locus
และทีใช้primities เช่นส่งและรับขณะที่ R * และการใช้ RPC use such primities as send and receive, while R* and Argus use RPC as their basic means
อาร์กัสเป็นวิธีพื้นฐานของพวกเขาในการติดต่อสื่อสารระหว่างกระบวนการ. การใช้วิทยาการที่ใช้ข้อความมีความได้เปรียบในความยืดหยุ่นในการสนับสนุนที่แตกต่างกันการเขียนโปรแกรมภาษาและการใช้งาน แต่ก็แนะนำกลไกใหม่ของการปฏิสัมพันธ์ระหว่างโมดูลในสภาพแวดล้อมที่กระจาย syntactically และความหมายที่แตกต่างกันจากสายการตามขั้นตอนที่ใช้สำหรับการทำงานร่วมกันระหว่างโมดูลในระบบการประมวลผลเดียว. นอกจากนี้ยังผิดพลาดได้ง่ายเพราะส่งและรับพื้นฐานไม่เกี่ยวข้อง syntactically. ใน ตรงกันข้ามหุ้น RPC ไม่เพียง แต่ไวยากรณ์เดียวกัน แต่ยังคุณสมบัติบางอย่างเช่นเป็นรวบรวมเวลาการตรวจสอบชนิดที่มีการเรียกขั้นตอนเดิม แต่มันเป็นเรื่องยากสำหรับ RPC จะมีความหมายเช่นเดียวกับการเรียกขั้นตอนธรรมดาเพราะความเป็นไปได้ในการประมวลผลและความล้มเหลวในการสื่อสาร ยกตัวอย่างเช่นมันเป็นขับเคลื่อนเพื่อให้แน่ใจว่าทุก RPC เสมอกลับ เราจะหารือเพิ่มเติมเกี่ยวกับความหมายของ RPC ด้านล่าง. การสื่อสารระหว่างกระบวนการสามารถเป็นได้ทั้งซิงโครหรือไม่ตรงกัน ในความเป็นจริงเงื่อนไขเดียวกันถูกนำมาใช้ในระดับที่แตกต่างกันในวรรณคดี ในระดับการส่งผ่านข้อความส่งซิงโครหมายความว่าผู้ส่งจะถูกบล็อคจนกว่าจะมีข้อความที่ได้รับจากกระบวนการปลายทาง มันไม่เพียง แต่ถ่ายโอนข้อมูลประสานผู้ส่งและรับสัญญาณ ส่งไม่ตรงกันหรือไม่รอส่งหมายความว่าผู้ส่งดำเนินการต่อโดยเร็วที่สุดเท่าที่ข้อความนั้นออกจากมือของมัน (อาจจะโดยการบัฟเฟอร์เครือข่าย) มันประสบความสำเร็จสูงระดับการขนาน แต่ทำให้เกิดปัญหาเช่นการควบคุมความแออัด ส่วนใหญ่ของวรรณกรรมพูดคุยเกี่ยวกับ synchronism ในระดับที่สูงขึ้นเช่นในระดับของ RPC นั่นคือซิงโครการสื่อสารหมายความว่าขอบล็อกกระบวนการจนกว่าจะได้รับการตอบสนองในขณะที่การสื่อสารไม่ตรงกันส่งการร้องขอโดยไม่ต้องรอการตอบสนอง. 2.2.3 ความหมายความน่าเชื่อถือของการสื่อสารวิทยาการในกรณีที่ไม่มีการประมวลผลหรือความล้มเหลวในการสื่อสารความหมายของการสื่อสารแบบดั้งเดิมที่มีการกำหนดไว้อย่างดี RPC ตัวอย่างเช่นสามารถมีความหมายเหมือนกันเป็นสายท้องถิ่นยกเว้นว่ามันจะเกิดขึ้นบนหน่วยประมวลผลระยะไกล อย่างไรก็ตามผู้ออกแบบระบบสมาธิมากขึ้นในความหมายของพวกเขาในการปรากฏตัวของความล้มเหลวที่เรียกว่าความน่าเชื่อถือความหมาย. จากจุดความน่าเชื่อถือของมุมมองข้อความผ่านพื้นฐานแตกต่างจากระบบไปยังระบบ ที่ปลายสุดขั้วหนึ่งข้อความผ่านพื้นฐานที่สร้างขึ้นบนที่ไม่น่าเชื่อถือdatagrams ให้มีประสิทธิภาพสูง แต่ความน่าเชื่อถือต่ำ ซอฟแวร์ระดับบนโดยใช้พื้นฐานดังกล่าวจะต้องเป็นผู้รับผิดชอบในการตรวจสอบและการจัดการข้อผิดพลาดในการขนส่งตามที่กล่าวถึงก่อน ในส่วนอื่น ๆ ของระบบบางรายที่มีข้อความของพวกเขาผ่านพื้นฐานการสนับสนุนโดยระบบย่อยการสื่อสารในการบังคับใช้ความน่าเชื่อถือ ยกตัวอย่างเช่น RelNet (เครือข่ายที่เชื่อถือได้) ของ SDD-1 เป็นเครือข่ายเสมือนที่หลบซ่อนตัวเครือข่ายที่แท้จริงไม่น่าเชื่อถือจากซอฟแวร์ระดับบน of inter-process communication.
The use of message-based primitives has its advantage in flexibility of supporting
different programming languages and applications. But it introduces a new mechanism
of inter-module interaction in distributed environments, syntactically and semantically
different from procedure calls used for inter-module interaction in single processor systems.
It is also error-prone because the send and receive primitives are syntactically unrelated.
In contrast, RPC shares not only the same syntax but also certain properties such
as compile-time type checking, with conventional procedure call. However, it is difficult
for RPC to have the same semantics as the conventional procedure call because of the
possibility of processor and communication failure. For instance, it is nontrivial to ensure
that every RPC always returns. We will discuss more on RPC semantics below.
Inter-process communication can be either synchronous or asynchronous. In fact,
the same terms are used at different levels in the literature. In the message passing level,
the synchronous send means that the sender is blocked until the message is received by
the destination process. It not only transfers data but synchronizes the sender and
receiver. The asynchronous send, or no-wait send, means that the sender resumes as soon
as the message is out of its hand (possibly buffered by the network). It achieves a high
degree of parallelism but causes problems such as congestion control. Most of the literature
talks about synchronism at an even higher level, e.g. at the RPC level. That is, synchronous
communication means that the requesting process blocks until it receives the
response, while the asynchronous communication sends requests without waiting for
responses.
2.2.3. Reliability Semantics of Communication Primitives
In the absence of processor or communication failures, the semantics of a communication
primitive are well defined. An RPC, for example, can have the same semantics
as a local call, except that it takes place on a remote processor. However, system designers
concentrate more on their semantics in the presence of failures, called reliability
semantics.
From the reliability point of view, the message passing primitives vary from system
to system. On one extreme end, the message passing primitives built directly on unreliable
datagrams provide high performance but low reliability. The upper-level software
using such primitives must be responsible for detecting and handling transport errors, as
discussed before. On the other end, some systems have their message passing primitives
supported by communication subsystems to enforce reliability. For example, the RelNet
(Reliable Network) of SDD-1 is a virtual network, hiding the unreliable real network
from the upper-level software. It guarantees reliable message delivery even if the sending
site and the destination site are never up simultaneously.
For remote procedure calls, the reliability semantics concentrate on the problem of
duplicate requests.
การแปล กรุณารอสักครู่..
