МІНІСТЕРСТВО ТРАНСПОРТУ РОСІЙСЬКОЇ ФЕДЕРАЦІЇ
МІНІСТЕРСТВО ЗАЛІЗНИЧНОГО ТРАНСПОРТУ
Федеральне державне бюджетне освітня установа вищої НАУКИ
САМАРСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ шляхів сполучення (СамГУПС)
Електротехнічний факультет
Кафедра «Мехатроніка в автоматизованих виробництвах»
Курсовий проект
з дисципліни операційні системи «Синхронізація процесів і потоків»
Виконав:
студент гр. 1301
Ерохова И.Ю.
Самара +2014
Введення
Існують мультипрограмному і мультипроцесорні системи. У даних системах виникає потреба в синхронізації процесів і потоків. Синхронізація потрібно для виключення ефектів «гонок» і «тупиків». Засіб синхронізації відноситься до сервісу ОС, IPC.
У загальному випадку процеси і потоки виконуються синхронно і незалежно один від одного. У прикладних задачах часто виникає необхідність узгодження швидкостей виконання процесів і потоків, тобто іноді потрібно їх призупиняти до настання певної події і надалі активізувати їх.
Ситуація коли два або більше процесів або потоків утворюють колективні дані і кінцевий результат залежить від співвідношення швидкостей потоків називається «гонкою».
У мультипрограмних системах «глухий кут» виникає через неправильне звернення до даних.
Розглянемо кілька завдань по тупикам, взаємним блокувань.
Метою даної курсової роботи є вивчення основних принципів роботи ОС, ознайомлення з алгоритмами роботи планувальників, побудова схем арбітражу, а також вивчення основ синхронізації процесів.
Курсова робота складається з наведених нижче 4-х завдань, варіанти яких індивідуальні для кожного зі студентів.
1. Алгоритми планування мультипрограмних операційних систем
У більшості операційних систем універсального призначення планування здійснюється динамічно (on-line), тобто рішення приймаються під час роботи системи на основі аналізу поточної ситуації. ОС працює в умовах невизначеності - потоки і процеси з'являються у випадкові моменти часу і так само непередбачено завершуються. Динамічні планувальники можуть гнучко пристосовуватися до мінливих ситуації і не використовують ніяких припущень про мультипрограмній суміші.
Інший тип планування - статичний (off-line) - може бути використаний в спеціалізованих системах, в яких весь набір одночасно виконуваних завдань визначений заздалегідь, наприклад, в системах реального часу.
Диспетчеризація полягає в реалізації знайденого в результаті планування (динамічного або статичного) рішення, тобто в переключення процесора з одного потоку на інший. Процес диспетчеризації здійснюється диспетчером (dispatcher) ОС.
Диспетчеризація зводиться до наступного:
) збереженню контексту поточного потоку, який потрібно змінити;
) завантаженні контексту нового потоку, обраного в результаті планування;
) запуску нового потоку на виконання.
Оскільки операція перемикання контекстів істотно впливає на продуктивність НД, програмні моделі ОС виконують диспетчеризацію потоків спільно з апаратними засобами процесора.
З найзагальніших позицій все безліч алгоритмів планування можна розділити на два класи: Невитісняючаі витісняюча алгоритми планування.
невитисняючих (non-preemptive) алгоритми грунтуються на тому, що активному потоку дозволяється виконуватися, поки він сам, за власною ініціативою, не віддасть керування операційній системі для того, щоб та вибрала з черги інший готовий до виконання потік.
витісняє (preemptive) алгоритми - це такі способи планування потоків, в яких рішення про переключення процесора з виконання одного потоку на виконання іншого потоку приймається ОС, а не активної завданням.
У більшості сучасних операційних систем (ОС), наприклад Windows 2000/XP, використовуються витісняючі алгоритми планування.
Далі серед безлічі алгоритмів планування виділяються два великі класи - безпріорітетна та пріоритетні алгоритми (рис. 1).
При безпріорітетна плануванні вибір процесів або потоків проводиться відповідно з деяким заздалегідь встановленим порядком без урахування їхньої відносної важливості і часу обслуговування.
Рис. 1 Класифікація алгоритмів плануванн...