Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
піро.doc
Скачиваний:
29
Добавлен:
05.03.2016
Размер:
646.66 Кб
Скачать

36.Дати означення термінам семафор, м'ютекс, критична секція.

Семафор – це об’єкт який дозволяє увійти в певну ділянку коду не більше ніж n-потоком.

М’ютекси — це прості двійкові семафори, які можуть знаходитися в одному з двох станів, — відміченому або невідміченому (відкритий і закритий відповідно). Коли який-небудь потік, що належить будь-якому процесу, стає власником об'єкту mutex, останній переводиться в невідмічений стан. Якщо завдання звільняє мьютекс, його стан стає відміченим.

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

(CreateMutex), в яких указується початкове значення мьютекса і його ім'я.

Критична секція – частина програми в якій є звертання до спільно використовуваних даних.

37.Навести основні проблеми, які виникають при використанні програм з багатьма підпроцесами, зокрема гонка процесів, вхід/вихід з критичних секцій, синхронізація підпроцесів.

Критична ділянка коду – це ділянка програми виконання якої займає відносно довгий період часу.

Критична секція – частина програми в якій є звертання до спільно використовуваних даних. При появі в кретичній секції двох або більше процесів виникає стан гонок процесів для усунення такої ситуації необхідно виконання умов:

  1. Два процеси не має знаходитись в критичних секціях.

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

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

  4. Не можлива ситуація в якій процес вічно очікує потрапляння в кретичну секцію

38.Проаналізувати використання програм зі з'єднанням на основі сокетів для організації високопродуктивних систем опрацювання даних.

Програми, що обмінюються даними за допомогою сокетів, можуть працювати в одній системі і в разних, використовуючи для обміну даними як спеціальні об'єкти системи, так і мережевий стек. Як і канали, сокети використовують простій інтерфейс, заснований на «файлових» функціях read(2) і write(2) (відкриваючи сокет, програма Unix отримує дескриптор файлу, завдяки якому можна працювати з сокетами, використовуючи файлові функції), але, на відміну від каналів, сокети дозволяють передавати дані в обох напрямах, як в синхронному, так і в асинхронному режимі.

При створенні сокета, необхідно визначити три параметри: стиль взаємодії, простір імен, і пртокол. Стиль взаємодії контролює, як сокет обробляє передавані дані, і визначає кількість партнерів взаємодії.

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

Стилі датаграм не гарантує доставки і правильного порядку прибуття. Пакети можуть бути втрачені або переупорядковані в дорозі із-за мережевих помилок. Система гарантує тільки "максимальні зусилля", тому пакети можуть зникнути або прибути в різному порядку.

Простір імен визначає, які записані адреси сокета ( socket addresses ).

Протокол визначає, як передаються дані.