У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Лабораторна робота - Зв'язок типу Newcastle
8
що вимагає свого рішення. Можливо, що найкращим рішенням цієї проблеми було б установлення для файлів додаткових характеристик, що описують доступ до них з боку віддалених суперкористувачів; на жаль, це зажадало б внесення змін у структуру дискового індексу (у частині додавання нових полів) і породило б занадто великий безлад в існуючих системах.

Якщо підпрограма open завершується успішно, локальна бібліотека залишає відповідну оцінку в доступній для користувача структурі, утримуюча адреса мережного вузла, ідентифікатор процесу-супутника, дескриптор файлу й іншу аналогічну інформацію. Бібліотечні підпрограми read й write установлюють, виходячи з дескриптора, чи є файл віддаленим, і в випадку позитивної відповіді посилають супутникові повідомлення. Процес-клієнт взаємодіє зі своїм супутником у всіх випадках звертання до системних функцій, що бідують у послугах віддаленої машини. Якщо процес звертається до 2 файлів, розташованих на одній і тій же віддаленій машині, він користується одним супутником, але якщо файли розташовані на різних машинах, використаються уже два супутники: по одному на кожній машині. Два супутники використаються й в тому випадку, коли до файлу на віддаленій машині звертаються два процеси. Визиваючи системну функцію через супутника, процес формує повідомлення, включаючи в себе номер функції, ім'я шляху пошуку й іншу необхідну інформацію, аналогічну до тої, котра входить у структуру повідомлення в системі з периферійними процесорами.

Механізм виконання операцій над поточним каталогом більш складний. Коли процес вибирає в якості поточний віддалений каталог, бібліотечна підпрограма посилає відповідне повідомлення супутникові, що змінює текучий каталог, при цьому підпрограма запам'ятовує, що каталог віддалений. У всіх випадках, коли ім'я шляху пошуку починається із символу, відмінного від похилої риски (/), підпрограма посилає це ім'я на віддалену машину, де процес-супутник прокладає маршрут, починаючи з поточного каталогу. Якщо текучий каталог - локальний, підпрограма просто передає ім'я шляху пошуку ядру локальної системи. Системна функція chroot відносно віддаленого каталогу виконується схоже, але при цьому її виконання для ядра локальної системи проходить непоміченим; строго говорячи, процес може залишити цю операцію без уваги, оскільки тільки бібліотека фіксує її виконання.

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

Висновок. Перевага зв'язку типу Newcastle полягає в тому, що звернення процесу до віддалених файлів стає "прозорим" (непомітним для користувача), при цьому в ядро системи ніяких змін вносити не потрібно. Однак, даній розробці властивий і ряд недоліків. Насамперед, при її реалізації можливе зниження продуктивності системи. У зв'язку з використанням розширеної Сі-бібліотеки розмір використовуваної кожним процесом пам'яті збільшується, також якщо процес не звертається до віддалених файлів; бібліотека дублює функції ядра й вимагає для себе більше місця в пам'яті. Збільшення розміру процесів приводить до подовження тривалості періоду запуску й може визвати більшу конкуренцію за ресурси пам'яті, створюючи умови для більшого часового того вивантаження й підкачування завдань. Локальні запити будуть виконуватися повільніше через збільшення тривалості кожного звертання до ядра, уповільнення може грозити й обробці віддалених запитів, витрати по пересиланню яких по мережі збільшуються. Додаткова обробка віддалених запитів на користувацькому рівні збільшує кількість перемикань контексту, операцій по вивантаженню й підкачуванню процесів. Нарешті, для того, щоб звертатися до віддалених файлів, програми повинні бути перекомпільовані з використанням нових бібліотек; старі програми й поставлені об'єктні модулі без цього робити з віддаленими файлами не зможуть.


Сторінки: 1 2