Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpori_SPOS.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
150.6 Кб
Скачать
  1. Загальні концепції синхронізації задач.

Задача – це динамічний об’єкт, який виникає в комп’ютерній системі після того, як користувач ОС вирішує запустити систему на виконання.

Запущена на виконання програма породжує в системі один або більше процесів (або задач). Синхронізація необхідна для координації порядку виконання паралельних задач.

Сутність концепції багатопотокового виконання:

  1. Традиційні послідовні задачі розбиваються на потоки, які виконуються паралельно. Після такого розбиття послідовна задача стає процесом у сенсі концепції багатопотокового виконання;

  2. Потоки можуть спільно використовувати ресурси, які надані процесу і частинами якого вони є.

Синхронізація задач (процесів)це приведення двох або декількох процесів або потоків до такого їхнього протікання, коли певні стадії різних процесів здійснюються в певному порядку, або одночасно, для уникнення конкуренції потоків або взаємного блокування. Синхронізація дозволяє контролювати виконання потоків і процесів.

Властивості процесів в концепції багатопотокового виконання:

  • процес завжди складається принаймні з одного потоку;

  • процесорний час не надається процесам безпосередньо, інші ресурси (пам’ять) можуть надаватись;

  • процесорний час розподіляється між потоками.

Властивості потоків в концепції багатопотокового виконання:

  • неможливість паралельного виконання будь-яких частин потоків;

  • потік завжди є частиною певного процесу, або належить певному процесу;

  • процесорний час розподіляється безпосередньо між потоками, а не між процесами.

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

  1. Сутність проблеми змагань між задачами. Умови виникнення змагань. Критичний код, критичний ресурс.

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

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

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

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

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

Критичний ділянку коду, або хот-спот (від англ. Hot spot - «гаряче місце» або «гаряча точка») - ділянка коду в програмі, виконання якого займає тривалий час у порівнянні з його розмірами або, що те ж саме, на нього припадає істотна частка виконаних інструкцій.

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