Реферат Курсовая Конспект
Семафори - раздел Педагогика, З предмету Операційні системи Ситуація Змінилася В 1965 Році, Коли Дейкстра Запропонував Використовувати Ці...
|
Ситуація змінилася в 1965 році, коли Дейкстра запропонував використовувати цілочисельну змінну для підрахунку кількості активізації, відкладених на майбутнє. _______________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Дейкстра запропонував використовувати дві операції, domn і up (узагальнення sleep і makeup відповідно).
Операція domn з'ясовує, чи відрізняється значення семафора від 0. ________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Атомарність є абсолютно необхідною умовою для вирішення проблем синхронізації і виключення змагальних ситуацій. Атомарні дії, в яких група взаємопов'язаних операцій або виконується без будь-яких преривань, або взагалі не виконується, набули особливої важливості і в багатьох інших областях інформатики.
Операція up збільшує значення, адресується семафором, на 1. ________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Операція збільшення значення семафора на 1 і активізації одного з процесів також є неподільною. Жоден з процесів не може бути заблокований при виконанні операції up, так само як жоден з процесів не може бути заблокований при виконані wakeup в попередній моделі.
Мьютекси
Мьютекс — _____________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Для роботи з мьютекс використовуються дві процедури.
Коли потоку (або процесу) необхідний доступ до критичної області, він викликає процедуру mutex_lock. ____________________________________________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Якщо мьютекс вже заблокований, що викликає потік блокується до тих пір, поки потік, що знаходиться в критичній області, не завершить свою роботу і не викличе процедуру mutexjmlock. -____________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Завдяки винятковій простоті мьютекс вони легко можуть бути реалізованою у просторі користувача за умови доступності команди TSL або команди XCHG. У лістингу 2.7 показаний код процедур mutexjock і mutexjmlock, призначених для використання в сукупності потоків, що працюють в пользовательском просторі. Рішення, в якому використовується команда XCHG, по суті, нічим не відрізняється.
Код процедури mutexjock аналогічний коду enter jregion, але з однією суттєвою різницею. Коли процедурі enter jregion не вдається увійти в критичну область, вона продовжує повторне тестування значення змінної lock (виконує активну очікування). Після закінчення певного періоду часу планування відновлює роботу якогось іншого процесу. Рано чи пізно відновлюється робота процесу, що утримує блокування, і він її звільняє.
При роботі з потоками (у просторі користувача) складається інша ситуація,
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Ось в цьому і полягає різниця між enter jregion і mutex_lock. Коли остання з цих процедур не може заволодіти блокуванням, вона викликає процедуру thread_yield, щоб поступитися центральний процесор іншому потоку Слідів, активне очікування відсутня. Коли потік в черговий раз відновить свою роботу, він знову перевіряє стан блокування.
Оскільки процедура thread_ yield являє собою всього лише виклик планування потоків у просторі користувача, вона працює дуже швидко. Отже, ні mutex_lock, ні mutex unlock не вимагають ніяких викликів ядра. ___________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Якщо два або більше процесу спільно використовують всі свої адресні простори або їх великі частини, відмінність між процесами і потоками трохи размивается, але все одно присутня. _______________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ І нікуди не подітися від того обставини, що кілька процесів, що використовують загальний адресний простір, ні коли не будуть настільки ж ефективні, як потоки, реалізовані на користувацькому рівні, оскільки до управління процесами незмінно залучається ядро.
Монітори
Щоб полегшити написання безпомилкових програм, Брінч Хансен (Brinch Hansen) в 1973 році і Хоар (Ноаге) в 1974 році запропонували високорівнева синхронізаційних примітив, _______________________
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Реалізація взаємного виключення при вході в монітор _____________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Самостійно законспектувати в зошті теми:
1. Взаимное исключение с активным ожиданием.
2. Приостановка и активизация
Лекція 11
– Конец работы –
Эта тема принадлежит разделу:
Робочий зошит... з предмету Операційні системи... Призвіще Ім я...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Семафори
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов