Надійні і ненадійні примітиви
Для вирішення цієї проблеми існує три підходи. Перший полягає в тому, що система не бере на себе ніяких зобов'язань щодо доставки повідомлень. Реалізація надійного взаємодії стає цілком турботою користувача.
Другий підхід полягає в тому, що ядро приймаючої машини посилає квитанцію-підтвердження ядру відправляє машини на кожне повідомлення. Посилаюча ядро розблоковує користувальницький процес лише після отримання цього підтвердження. Підтвердження передається від ядра до ядра. Ні відправник, ні одержувач його не бачать.
Третій підхід полягає у використанні відповіді в якості підтвердження в тих системах, в яких запит завжди супроводжується відповіддю. Відправник залишається заблокованим до отримання відповіді. Якщо відповіді немає занадто довго, то посилає ядро може переслати запит спеціальній службі запобігання втрати повідомлень.
Виклик віддалених процедур (RPC)
Ідея виклику віддалених процедур (Remote Procedure Call - RPC) полягає в розширенні добре відомого і зрозумілого механізму передачі управління і даних усередині програми, що виконується на одній машині, на передачу управління і даних через мережу. Засоби віддаленого виклику процедур призначені для полегшення організації розподілених обчислень. Найбільша ефективність використання RPC досягається в тих додатках, в яких існує інтерактивний зв'язок між віддаленими компонентами з невеликим часом відповідей і відносно малою кількістю переданих даних. Такі додатки називаються RPC-орієнтованими.
Характерними рисами виклику локальних процедур є:
- Асиметричність, тобто одна з взаємодіючих сторін є ініціатором;
- Синхронність, тобто виконання викликає процедури при зупиняється з моменту видачі запиту і відновлюється тільки після повернення з викликається процедури.
Крім того, існує ряд проблем, пов'язаних з неоднорідністю мов програмування і операційних середовищ: структури даних і структури виклику процедур, підтримувані в якомусь одному мовою програмування, не підтримуються точно так же у всіх інших мовах.
Ці та деякі інші проблеми вирішує широко поширена технологія RPC, що лежить в основі багатьох розподілених операційних систем.