Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lectures.docx
Скачиваний:
57
Добавлен:
10.12.2018
Размер:
1.24 Mб
Скачать
      1. Потоки виконання в розподілених системах

Важливою властивістю потоків виконання в розподілених системах є зручна реалізація блокуючих системних викликів, які відбуваються без блоку- вання всього процесу на час виконання потоку. Ця властивість потоків вико- нання особливо важлива в розподілених системах, оскільки вона суттєво спрощує представлення взаємодії як одночасну підтримку великої кількості логічних з’єднань.

      1. Багатопотокові клієнти

З метою підвищення прозорості розподілу розподілені системи, які працюють у глобальних мережах, потребують маскування значних затримок повідомлень, які курсують між процесами. Цикл затримки у глобальних мережах може досягати сотень мілісекунд або і секунд. Традиційний спосіб приховати затримки зв’язку – ініціювавши взаємодію, відразу розпочати ви- конання другого завдання.

Приклад. Типовим варіантом використання цієї методики є web- браузери. Здебільшого web-документ у файлі формату HTML містить окрім тексту набір зображень, значків тощо. Для отримання елементів web- документа браузер відкриває з’єднання TCP/IP, читає дані, що надходять, і перетворює їх у компоненти візуального представлення. Встановлення з’єднання, як і читання даних, є блокуючою операцією. У разі роботи з пові-

льними комунікаціями відчуваються незручності, пов’язані з тим, що час, потрібний для завершення кожної операції, може бути достатньо тривалим.

Web-браузер зазвичай спочатку отримує сторінку HTML-коду, а по-

тім

показує її. Для того, щоб приховати затримки зв’язку деякі браузери почи- нають показувати дані у міру їх отримання. Коли текст із механізмами про- крутки стає доступним користувачеві, браузер продовжує отримувати останні файли, необхідні для правильного відображення сторінки, зокрема картинки. Таким чином, щоб побачити сторінку, користувачу не потрібно чекати отримання всіх її компонентів (рис. 4.5), у результаті, web-браузер виконує декілька завдань одночасно. Розробка браузера у вигляді багатопо- токового клієнта суттєво спрощує роботу з ним. Як тільки отримано основ- ний файл HTML, активізуються окремі потоки виконання, які відповідають за дозавантаження інших частин сторінки. Кожен з потоків виконання ство- рює окреме з’єднання із сервером і отримує від нього дані. Встановлення з’єднання й читання даних із сервера може бути запрограмоване з викорис- танням стандартних (блокуючих) системних викликів, які у цьому разі не можуть припинити основний процес завантаження сторінки. Код кожного з потоків виконання однаковий і переважно нескладний, у результаті чого ко- ристувач, хоч і помічає затримку в показі картинок, може переглядати доку- мент.

Рис. 4.5. Поетапне завантаження елементів сторінки Web-браузером

Використання багатопотокових web-браузерів, які відкривають декілька з’єднань, дає також іншу перевагу. В попередньому прикладі були створені декілька з’єднань з одним і тим самим сервером. Якщо цей сервер сильно завантажений або просто повільний, то неможливо суттєво підвищити про- дуктивність порівняно з послідовним завантаженням файлів.

Проте здебільшого web-сервери можуть бути реплікованими на декілька машин, а кожен сервер міститиме однаковий набір web-документів. Репліко- вані сервери перебувають в одному місці й мають одне ім’я. Під час активації запиту на web-сторінці цей запит передається одному із серверів, зазвичай з використанням алгоритму циклічного обслуговування або іншого алгоритму вирівнювання навантаження.

За наявності багатопотокового клієнта з’єднання можуть бути встано- вленими з різними репліками, що потребує паралельної передачі даних, а це сприятиме тому, що web-документ буде показаний повністю значно швидше, ніж у разі нереплікованого сервера. Цей підхід спрацьовує, лише якщо клієнт має змогу обробити реально паралельні потоки вхідних даних, у цьому разі потоки виконання ідеально підходять для обробки потоків даних.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]