Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Особливості міжпроцесової взаємодії

Технологія відображуваної пам'яті

Методи передавання повідомлень

Методи розподілюваної пам'яті

Методи розподілюваної пам'яті (shared memory) дають змогу двом процесам об­мінюватися даними через загальний буфер пам'яті. Перед обміном даними кож­ний із тих процесів має приєднати цей буфер до свого адресного простору з ви­користанням спеціальних системних викликів (перед цим перевіряють права). Буфер доступний у системі за допомогою процедури іменування, термін його іс­нування звичайно обмежений часом роботи всієї системи. Дані в ньому фактично є спільно використовуваними, як і для потоків. Жодних засобів синхронізації доступу до цих даних розподілювана пам'ять не забезпечує, програміст, так само, як і при розробці багатопотокових застосувань, має організовувати її сам.

В основі методів передавання повідомлень (message passing) лежать різні техно­логії, що дають змогу потокам різних процесів (які, можливо, виконуються на різ­них комп'ютерах) обмінюватися інформацією у вигляді фрагментів даних фіксо­ваної чи змінної довжини, котрі називають повідомленнями (messages). Процеси можуть приймати і відсилати повідомлення, при цьому автоматично забезпечу­ється їхнє пересилання між адресними просторами процесів одного комп'ютера або через мережу. Важливою особливістю технологій передавання повідомлень є те, що вони не спираються на спільно використовувані дані - процеси можуть обмінюватися повідомленнями, навіть не знаючи один про одного.

Ще однією категорією засобів міжпроцесової взаємодії є відображувана пам'ять (mapped memory). У ряді ОС відображувана пам'ять є базовим системним механіз­мом, на якому ґрунтуються інші види міжпроцесової взаємодії та системні вирі­шення. Звичайно відображувану пам'ять використовують у поєднанні з інтерфей­сом файлової системи, в такому разі говорять про файли, відображувані у пам'ять (memory-mapped files).

Ця технологія зводиться до того, що за допомогою спеціального системного виклику (зазвичай це mmapO) певну частину адресного простору процесу одно­значно пов'язують із вмістом файла. Після цього будь-яка операція записування в таку пам'ять спричиняє зміну вмісту відображеного файла, яка відразу стає доступною усім застосуванням, що мають доступ до цього файла. Інші застосу­вання теж можуть відобразити той самий файл у свій адресний простір і обміню­ватися через нього даними один з одним.

Файли, відображувані у пам'ять, будуть докладно розглянуті в розділі 11.

Тепер можна порівняти характеристики міжпроцесової взаємодії із характерис­тиками взаємодії потоків одного процесу.

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

§ Проблема синхронізації доступу до спільно використовуваних даних є акту­альною для взаємодії потоків і для міжпроцесової взаємодії із використанням розподілюваної пам'яті. Використання механізму передавання повідомлень не ґрунтується на спільно використовуваних даних і не потребує синхронізації

 

 

3.

Для вирішення проблеми міжпроцесової синхронізації необхідно:

§ по-перше, організувати спільну пам'ять між процесами (це може бути розпо­ділювана пам'ять або файл, відображений у пам'ять);

§ по-друге, розмістити в цій пам'яті стандартні синхронізаційні об'єкти (семафо­ри, м'ютекси, умовні змінні);

§ по-третє, використовуючи ці об'єкти, працювати зі спільно використовувани­ми даними, як це робилося у разі використання потоків.

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

 

Лекція №2.

 

Тема: механізм передачі повідомлень.

 

План:

 

 

1.Основи передавання повідомлень (Л1. ст. 151-152).

2.Примітиви передавання повідомлень (Л1. ст. 152).

3.Синхронне й асинхронне предавання повідомлень (Л1. ст. 152-153).

1.

Усі методи взаємодії, які було розглянуто дотепер, ґрунтуються на читанні й запи­суванні спільно використовуваних даних. На практиці така взаємодія не завжди можлива (наприклад, робота зі спільно використовуваними даними проблема­тична, якщо для процесів немає спільної фізичної пам'яті, а є тільки мережний зв'язок між комп'ютерами, на яких вони виконуються). У таких випадках можна використати засоби взаємодії, які не ґрунтуються на спільно використовуваних даних, передусім засоби передавання повідомлень .

Як було вже згадано, засоби передавання повідомлень ґрунтуються на обміні повідомленнями - фрагментами даних змінної довжини. Основою такого обмі­ну є не спільна пам'ять, а канал зв'язку (communication channel). Він забезпечує взаємодію між процесами (для того, щоб спілкуватися, вони повинні створи­ти канал зв'язку) і є абстрактним відображенням мережі зв'язку. Абстрактність каналу дає змогу реалізувати його не тільки на основі мережної взаємодії, але й спільної пам'яті (коли процеси перебувають на одному комп'ютері). При цьому такі зміни в реалізації будуть сховані від процесів, що взаємодіють.

Виокремлюють такі характеристики каналів зв'язку: спосіб задання; кількість процесів, які можуть бути з'єднані одним каналом; кількість каналів, які можуть бути створені між двома процесами; пропускна здатність каналу (кількість пові­домлень, які можуть одночасно перебувати в системі й бути асоційованими з цим каналом); максимальний розмір повідомлення; спрямованість зв'язку через ка­нал (двобічний або однобічний зв'язок).

В однобічному зв'язку для конкретного процесу допускають передавання да­них тільки в один бік.

 

2.

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

Є два примітиви передавання повідомлень: send (для відсилання повідомлен­ня каналом) і гесеі ve (для отримання повідомлення з каналу).

Розглянемо, як особливості реалізації send і гесеі ve дають змогу виділити різ­ні класи методів передавання повідомлень.

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

 

3.

Зупинимося на основних питаннях синхронізації під час передавання повідомлень. Можна виокремити різні групи методів передавання повідомлень залежно від то­го, як вони дають можливість відповісти на два запитання.

1. Чи може потік бути призупинений під час виконання операції send, якщо пові­домлення не було отримане?

2.Чи може потік бути призупинений під час виконання операції receive, якщо повідомлення не було відіслане?

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

Під час синхронного передавання повідомлень операція send призупиняє про­цес до отримання повідомлення, а під час асинхронного передавання повідомлень вона не призупиняє процес (тобто є неблоісувальною); після відсилання повідомлення процес продовжує своє виконання, не чекаючи отримання результату. Найзручні­ше в цьому випадку використати непряму адресацію через поштові скриньки.

Реалізація синхронного й асинхронного передавання повідомлень залежить від низки характеристик каналу й обміну повідомленнями, насамперед від пропуск­ної здатності каналу.

§ Якщо пропускна здатність дорівнює нулю (повідомлення не можуть очікува­ти в системі), відправник завжди має очікувати, поки одержувачу не надійде повідомлення, а одержувач має очікувати, поки повідомлення йому не буде ві­діслано. Два процеси мають явно домовлятися про майбутній обмін.

§ Якщо пропускна здатність обмежена (у системі можуть перебувати максимум п повідомлень для цього каналу), відправник має очікувати тільки тоді, коли черга повідомлень для цього каналу переповнена (у ній перебуває рівно n по­відомлень), одержувач має очікувати, якщо ця черга порожня.

§ Якщо пропускна здатність необмежена, очікування можливе тільки для одер­жувача за порожньої черги.

Під час обміну повідомленнями необхідне підтвердження їх отримання. Деякі методи обміну повідомленнями не вимагають підтвердження зовсім, в інших ви­падках можлива ситуація, коли відправника після виконання операції send блоку­ють доти, поки одержувач не надішле йому інше повідомлення із підтвердженням отримання; таку технологію називають обміном повідомленнями із підтверджен­ням отримання.

Лекція №3.

 

Тема: технології передавання повідомлень.

 

План:

 

 

1.Методи передавання повідомлень за допомогою каналів і черг (Л1 ст.154-155).

2.Методи обміну повідомленнями за допомогою сокетів (Л1. ст. 155-157).

3.Віддалений виклик процедур (Л1 ст. 157).

 

1.


Читайте також:

  1. I. Особливості аферентних і еферентних шляхів вегетативного і соматичного відділів нервової системи
  2. OSI - Базова Еталонна модель взаємодії відкритих систем
  3. VI.3.3. Особливості концепції Йоганна Гайнріха Песталоцці
  4. VI.3.4. Особливості концепції Йоганна Фрідриха Гербарта
  5. А. Особливості диференціації навчального процесу в школах США
  6. Агітація за і проти та деякі особливості її техніки.
  7. Аграрне виробництво і його особливості
  8. Аграрне право як галузь права, його історичні витоки та особливості.
  9. Аналіз міжринкової взаємодії товарів і грошей
  10. Аналізу соціальної взаємодії присвячено чимало наукових теорій.
  11. АНАТОМІЯ І ФІЗІОЛОГІЯ ЦЕНТРАЛЬНОЇ ТА ПЕРИФЕРИЧНОЇ НЕРВОВОЇ СИСТЕМИ, ЇЇ ВІКОВІ ОСОБЛИВОСТІ
  12. Анатомо-фізіолгічні особливості




Переглядів: 1928

<== попередня сторінка | наступна сторінка ==>
Особливості завершення потоків | Каталоги

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.016 сек.