Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5.rtf
Скачиваний:
0
Добавлен:
24.11.2019
Размер:
7.04 Mб
Скачать

Лабораторна робота № 5

ВЗАЄМОДІЯ ПРОЦЕСІВ В ОС UNIX

ЗА ДОПОМОГОЮ ІНТЕРФЕЙСУ СОКЕТІВ

1 Мета роботи

Метою роботи є ознайомлення з програмними засобами створеннякомунікаційних вузлів та організація обміну даними за допомогою сокетів.

2Основніположення

2.1 Загальні вимоги до міжпроцесної взаємодії

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

впорядковане доставлення даних;

відсутність дублювання даних;

надійне доставлення даних;

підтримку передавання екстрених даних;

попереднє встановлення зв’язку.

Канали забезпечують лише три перші характеристики; дані маютьвигляд потоку, виокремлення з нього за необхідності окремих повідомленьмає забезпечуватися додатками, які можуть взаємодіяти.

Усім наведеним вимогам задовольняють спеціальні об’єкти– сокети(socket). Сокети створюються у межах певного комунікаційного домена(communication domain), який описує набір характеристик взаємодії. Сокетозначає поняття комунікаційного вузла, який забезпечує приймання та пе-редавання даних для процесу. Адресування сокетів, їхнє розташування,протоколи передавання даних можуть бути різними. Це описується в по-нятті комунікаційного домена. Сокети мають інтерфейс доступу до файло-вої системиUNIX та можуть бути адресовані цілим числом– дескрипто-ром. На відміну від звичайних файлів, сокети– це віртуальний об’єкт, якийіснує доти, поки на нього посилається хоча б один з процесів.

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

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

У BSD UNIX зреалізовані такі основні типи сокетів:

сокет дейтаграм (Datagram Socket), через який здійснюється теоре-

тично ненадійне, незв’язане передавання пакетів;

сокет потоку (Stream Socket), через який здійснюється передавання

потоку даних без зберігання меж повідомлень. Цей тип сокетів під-

тримує передавання екстрених повідомлень;

сокет пакетів (Packet Socket), через який здійснюється надійне пе-

редавання даних без дублювання з попереднім встановленням

зв’язку. Межі повідомлень зберігаються;

сокет низького рівня (Raw Socket), через який здійснюється безпо-

середній доступ до комунікаційного протоколу.

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

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