Реалізація багатозадачності в 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 Кб (Скачать файл)

ЗАТВЕРДЖЕНО

Наказ Міністерства освіти і  науки,

Молоді та спорту України

29 березня 2012 року №  384

Форма № Н-6.01

Відокремлений структурний  підрозділ Золочівський коледж

Національного університету «Львіррвська політехніка»

Методична комісія природничо-математичних та комп’ютерних дисциплін

 

 

КУРСОВА РОБОТА

з Операційних систем

на тему:

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

 

 

 

 

 

Студента ІІ курсу РПЗ групи

напряму підготовки 6.030501 «Програмна інженерія»

спеціальності 5.05010301 Розробка програмного забезпечення

Гринчишина Я.П.

Керівник викладач Повх Тетяна Володимирівна

Національна шкала ___________________

Кількість балів: __________Оцінка:  ECTS _____

Члени комісії

________________   __________________________

(підпис)                             (прізвище та ініціали)

________________  ___________________________

(підпис)                    (прізвище та ініціали)

________________  ___________________________

(підпис)                              (прізвище та ініціали)

 

 

 

м. Золочів – 2013 рік

Зміст

 

Вступ 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

 

 

Вступ

Windows Vista - це версія Microsoft Windows, із серії графічних операційних  систем для персональних комп'ютерів, яка використовується як для дому так і для роботи. До оголошення про її розробку 22 липня 2005, Vista була відома як Longhorn. 8 листопада 2006, розробка Windows Vista була завершена і версія вийшла в продаж.

Одним з найбільш актуальних питань, які вирішує будь багатозадачна операційна система, в тому числі і система Windows Vista, полягає в організації можливості простого, але ефективного способу надання процесорного часу різним паралельно виконуючим програмам. Іншими словами, мова йде про диспетчеризацію задач.

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

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

  1. Висвітлити сутність багатозадачності.
  2. Вивчити модель режиму багатозадачності.
  3. Приділити особливу увагу розгляду реалізації багатозадачності в Windows Vista.

Об'єктом дослідження  в даній роботі є операційна система Windows Vista. Предметом дослідження - реалізація багатозадачності в Windows Vista.

 

 

 

Розділ 1. Теоретична частина

1.1.Суть багатозадачності

1.1.1. Властивості багатозадачного середовища

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

 Істинна багатозадачність операційної системи можлива тільки в розподілених обчислювальних системах.

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

Більш розвинені багатозадачні системи проводять розподіл ресурсів динамічно, коли завдання стартує в пам'яті або покидає пам'ять залежно від її пріоритету і від стратегії системи. Така багатозадачна система володіє наступними особливостями:

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

 

1.1.2.Типи псевдопаралельної багатозадачності

Розподіл процесів між  наявними ресурсами має назву «планування процесів». Існує два основних типи процедур планування процесів - витісняючий (preemptive) і невитісняючий (non-preemptive).

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

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

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

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

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

 

1.1.3. Історія розвитку багатозадачних операційних систем

Основною ознакою багатозадачної ОС є здатність поєднувати виконання декількох прикладних програм. Велике значення при цьому має спосіб поєднання, тобто на якому рівні або як конкретно реалізовано поєднання. Якщо однопроцесорна, але багатозадачна, система виділяє кожній прикладній програмі певний квант часу (time slice), через який вона перемикається на виконання наступної програми, то це система з поділом часу (time-sharing system).

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

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

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

Перші операційні системи, реалізовані  на персональних комп'ютерах, сильно поступалися  в концептуальному плані і  по своїм реальним можливостям системам з розділенням часу, давно реалізованим в mainframe-комп'ютерах. У Win16, наприклад, теж  існує поняття багатозадачності. Реалізовано воно таким чином: обробивши чергове повідомлення, додаток передає управління операційній системі, яка може передати управління іншому застосуванню. Такий вид багатозадачності, при якому операційна система передає управління від одного застосування іншому не у будь-який момент часу, а тільки коли поточний додаток віддає управління системі, отримав, назву кооперативної багатозадачності (cooperative multitasking).

Якщо при такому підході  обробка повідомлення затягується, то користувач побачить реакцію системи  лише після завершення обробки поточним додатком поточного повідомлення. Зазвичай при виконанні тривалих операцій програміст змінює форму курсора (пісочний годинник), викликавши API-функцію BeginWaitCursor. Іноді, якщо це передбачив розробник програми, в таких випадках застрягле застосування навіть викликає функцію PeekMessage, повідомляючи системі, що вона може обробити чергове повідомлення, а поточне застосування здатне і почекати. Але головна неприємність при такому підході полягає в тому, що в разі нескінченного циклу, викликаного помилкою в програмі, ОС не має шансів одержати управління і також зависне. Користувачеві доведеться перезавантажувати систему.

У Windows починаючи з Windows 95 реалізований принципово інший вид багатозадачності, в якому операційна система дійсно контролює і керує процесами, потоками і їх перемиканням. Здатність операційної системи перервати виконуваний потік практично в будь-який момент часу і передати управління іншому чекаючому потоку визначається терміном preemptive multitasking - переважна, або витісняюча, багатозадачність. Реалізація її виглядає так: усі існуючі в даний момент потоки, частина з яких може належати одному і тому ж процесу, претендують на процесорний час і, з точки зору користувача повинні виконуватися одночасно. Для створення цієї ілюзії система через певні проміжки часу забирає управління, аналізує свою чергу повідомлень, розподіляє повідомлення по інших чергах в просторі процесів і, якщо вважає за потрібне, перемикає потоки (рис.1.1.3.1.)

Рис.1.1.3.1. Перемикання потоків в системі з витісняючою багатозадачністю

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

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