Реалізація багатозадачності в Windows Vista

Автор работы: Пользователь скрыл имя, 26 Сентября 2013 в 21:57, курсовая работа

Краткое описание

Таким чином, метою даної роботи є розгляд реалізації багатозадачності в Windows Vista. Для досягнення поставленої мети необхідно вирішити наступні завдання:
Висвітлити сутність багатозадачності.
Вивчити модель режиму багатозадачності.
Приділити особливу увагу розгляду реалізації багатозадачності в Windows Vista.
Об'єктом дослідження в даній роботі є операційна система Windows Vista. Предметом дослідження - реалізація багатозадачності в Windows Vista.

Содержание

Вступ 3
Розділ 1. Теоретична частина 4
1.1.Суть багатозадачності 4
1.1.1. Властивості багатозадачного середовища 4
1.1.2.Типи псевдопаралельної багатозадачності 6
1.2. Моделювання режиму багатозадачності 12
1.2.1.Процеси і потоки 12
1.2.2.Стан процесу 15
1.3. Реалізяція багатозадачності в Windows Vista 21
1.3.1.Фундаментальні концепції 21
1.3.2. Реалізація процесів і потоків в Windows Vista 27
1.3.3. Планування 30
Розділ 2. Практична частина 38
Висновки 43
Список використаної літератури 44

Вложенные файлы: 1 файл

Realizatsiya_bagatozadachnosti.docx

— 538.43 Кб (Скачать файл)

Є ще один випадок коригування  пріоритетів. Уявімо, що два потоки працюють разом над завданням  «виробник-споживач». Робота виробника  важче, так що він отримує більш  високий пріоритет (наприклад, 12), ніж споживач (пріоритет 4). У певний момент виробник заповнює спільно використовуваний буфер і блокується на семафорі (рис. 1.3.3.2. а.).

Рис. 1.3.3.2. Приклад інверсії пріоритетів

До того як споживач отримує  можливість запуститися, якийсь інший  потік з пріоритетом 8 отримує  готовність і починає виконання (рис.1.3.3.2. б) .Цей потік зможе виконуватися стільки, скільки він захоче, - оскільки він має більш високий пріоритет планування, ніж споживач (а виробник, пріоритет якого ще вище, блокований). У таких обставинах виробник ніколи не зможе запуститися (поки потік з пріоритетом 8 не піде).

Windows вирішує цю проблему  наступним способом. Система відстежує,  скільки часу пройшло з того  моменту, коли в останній раз  виконувався готовий потік. Якщо  цей час перевищує певну межу, то його пріоритет підвищується  до 15 на час двох квантів. Це  може дати їй можливість розблокувати  виробника. Після закінчення двох  квантів часу це підвищення  різко знімається (а не зменшується  поступово). Ймовірно, більш вдалим  рішенням було б штрафувати  потоки, які використовують свій  квант знову і знову (знижувати  їх пріоритет). Зрештою, проблема  була викликана не голодним  потоком, а ненажерливим. Ця проблема  добре відома як інверсія пріоритетів  (priority inversion).

Аналогічна проблема відбувається тоді, коли потік з пріоритетом 16 захоплює мьютекс і протягом тривалого часу не отримує можливості виконання (придушити таким чином більш важливі системні потоки, які чекають цей мьютекс). Цю проблему можна було б запобігти всередині операційної системи, якщо б потребує мьютекс потік на деякий короткий час відключав планування. (У багатопроцесорної системі слід використовувати спін-блокування.)

На клієнтських системах Windows значення кванта за замовчуванням  дорівнює 20 мс. На серверних системах Windows - 180 мс. Короткий квант корисний інтерактивним користувачам, а довгий - зменшує кількість перемикань контексту і забезпечує таким чином більш високу ефективність.

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

 

Розділ 2. Практична частина

Windows Vista

Windows Vista —операційна система сімейства Microsoft Windows NT, призначена для користувальницьких персональних комп'ютерів. В стадії розробки дана операційна система мала кодову назву «Longhorn».

30 листопада 2006 року Microsoft офіційно випустила Windows Vista і Office 2007 для корпоративних клієнтів. 30 січня 2007 року почалися продажі системи для звичайних користувачів.

.

Рис. 2.1. Знімок екрану Windows Vista

 

 

Багатозадачність

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

Розрізняють два способи реалізації багатозадачності:

  • створити один процес, що має декілька потоків виконання (threads);
  • створити декілька процесів, кожен з яких має один або декілька потоків виконання.

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

 

Рис 2.2. Процес та його ресурси

 

 

 

Основні етапи створення процесу  функцією CreateProcess такі:

  1. Відкривається файл образу (ЕХЕ), що буде виконуватися в процесі.
  2. Створюється об'єкт "процес" виконавчої системи.
  3. Створюється первинний потік (стек, контекст і об'єкт "потік" виконавчої системи).
  4. Підсистема Windows повідомляється про створення нового процесу й потоку.
  5. Починається виконання первинного потоку (якщо не зазначено прапорець CREATE_SUSPENDED- створити "завислим").
  6. У контексті нового процесу й потоку ініціалізується адресний простір (наприклад, завантажуються необхідні DLL) і починається виконання програми.

Рис 2.3.  Головні етапи створення процесу

 

 

Планувальник  ОС

Планувальник ОС підтримує  для кожного з базових рівнів пріоритету функціонування черги виконуваних  або готових до виконання потоків (ready threads queue). Коли процесор стає доступним, то планувальник виробляє перемикання контекстів. Тут можна виділити такі кроки:

  • збереження контексту потоку, що завершує виконання; Об переміщення цього потоку в кінець своєї черги;
  • пошук черги з вищим пріоритетом, яка містить потоки, готові до виконання;
  • вибір першого потоку з цієї черги, завантаження його контексту і запуск на виконання.

Рис. 2.4. Витіснення потоку з нижчим пріоритетом

 

 

 

Task Manager (диспетчер завдань)

Найвідоміша утиліта для  аналізу активності процесів у Windows – системний Task Manager (диспетчер завдань). У ядрі Windows немає такого поняття, як завдання, тому Task Manager насправді є інструментом для керування процесами. Диспетчер завдань Windows відображає список активних процесів.

Рис 2.5. Диспетчер завдань із списком процесів

 

 

 

 

 

 

 

Висновки

У даній роботі були розглянуті основні елементи теоретичних основ  реалізації багатозадачності в Windows Vista.

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

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

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

 

 

 

 

 

 

 

 

Список використаної літератури

  1. Гордеев А.В. Операционные системы: Учебник. СПб.: Питер, 2004. – 416 с. С. 369-
  2. Левин А.М. Энциклопедия пользователей персональных компьютеров. СПб.: Питер, 2010. – 908 с.
  3. Олифер В.Г., Олифер Н.А. Сетевые операционные системы: Учебник для ВУЗов. СПб.: Питер, 2007. – 544 с.
  4. Руководство по Windows Vista. Корпорация Майкрософт (Microsoft Corp.), 2006.
  5. Таненбаум Э. Современные операционные системы. СПб.: Питер, 2010. – 1120 с.
  6. Таненбаум Э., Вудхалл А. Операционные системы. Разработка и реализация. СПб.: Питер, 2007. – 704 с.
  7. Храпский С. Ф. Операционные системы, среды и оболочки. Основные теоретические сведения: Учебное пособие. – Омск: ОГИС, 2005. – 268 c.
  8. Иллюстрований самовчитель по Visual Studio.Net // http://www.realcoding.net/teach/visualc7/index.html
  9. Классифікація ОС // http://citforum.ru/operating_systems/sos/glava_3.shtml
  10. http://ru.wikipedia.org/wiki/Многозадачность

 


Информация о работе Реалізація багатозадачності в Windows Vista