Головна

Виклик віддалених процедур

  1. I. Про виклик на суд
  2. I. Підготовка до процедури.
  3. I. Підготовка до процедури.
  4. I. Підготовка до процедури.
  5. I. Підготовка до процедури.
  6. II. Виконання процедури.

Ідея виклику видалених процедур (Remote Procedure Call - RPC) полягає в розширенні добре відомого і зрозумілого механізму передачі управління і даних усередині програми, що виконується на одній машині, на передачу управління і даних через мережу.

У реалізації RPC беруть участь як мінімум два процеси - по одному на кожній машині. Технологія RPC лежить в основі багатьох розподілених операційних систем.

Ідея, покладена в основу RPC, полягає в тому, щоб зробити виклик віддаленої процедури виглядають по можливості так само, як і виклик локальної процедури. Іншими словами, зробити RPC прозорим: викликає процедурі не потрібно знати, що викликається процедура знаходиться на іншій машині, і навпаки.

Коли викликається процедура дійсно є віддаленою, в бібліотеку поміщається замість локальної процедури інша версія процедури, звана клієнтський стаб (stub - заглушка). Подібно оригінальної процедурі, стаб викликається з використанням викликає послідовності, так само відбувається переривання при зверненні до ядра. Тільки на відміну від оригінальної процедури він не поміщає параметри в регістри і не запрошувати у ядра дані, замість цього він формує повідомлення для відправки ядру віддаленої машини.

Після того, як клієнтський стаб був викликаний програмою-клієнтом, його першим завданням є заповнення буфера відправляється повідомленням. Параметри повинні бути перетворені у відповідний формат і вставлені в буфер повідомлення. Потім виконується переривання за викликом ядра.

Коли ядро ??отримує управління, воно перемикає контексти, зберігає регістри процесора і карту пам'яті, встановлює нову карту пам'яті, яка буде використовуватися для роботи в режимі ядра. Оскільки контексти ядра і користувача розрізняються, ядро ??має точно скопіювати повідомлення в свій власний адресний простір, так, щоб мати до нього доступ, запам'ятати адресу призначення, а також воно має передати його мережевого інтерфейсу. На цьому завершується робота на клієнтській стороні. Чи включається таймер передачі, і ядро ??може або виконувати циклічний опитування наявності відповіді, або передати управління планувальником, який вибере будь-якої іншої процес на виконання. У першому випадку прискорюється виконання запиту, але відсутній мультипрограмування.

На стороні сервера надходять біти поміщаються приймаючої апаратурою або у вбудований буфер, або в оперативну пам'ять. Коли вся інформація буде отримана, генерується переривання. Оброблювач переривання перевіряє правильність даних пакета і визначає, яким стаб слід їх передати. Якщо жоден з стаб не очікує цей пакет, обробник повинен або помістити його в буфер, або взагалі відмовитися від нього. Якщо є очікує стаб, то повідомлення копіюється йому. Нарешті, виконується перемикання контекстів, в результаті чого відновлюються регістри і карта пам'яті.

Тепер починає роботу серверний стаб. Він розпаковує параметри і поміщає їх відповідним чином в стек. Коли все готово, виконується виклик сервера. Після виконання процедури сервер передає результати клієнту. Для цього виконуються всі описані вище етапи, тільки в зворотному порядку.

Блокуючі і неблокірующіх примітиви. Буферизованих і небуферізуемие примітиви | Синхронізація в розподілених системах. Алгоритм синхронізації логічних годин. Алгоритми взаємного виключення


Сегментний розподіл пам'яті | Сторінково-сегментний розподіл пам'яті. свопінг | Ієрархія запам'ятовуючих пристроїв. Принцип кешування даних | драйвери пристроїв | Імена файлів. типи файлів | Логічна організація файлу. Фізична організація і адреса файлу | | Загальна модель файлової системи. Сучасні архітектури файлових систем | Файлові системи FAT, FAT32 і HPFS | Управління розподіленими ресурсами |

© 2016-2022  um.co.ua - учбові матеріали та реферати