![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Особливості багатозадачності в середовищі Windows |
Контрольна робота з інформатики Особливості багатозадачності в середовищі Wi dows Вступ Основні поняття багатозадачності в Wi dows 95 - процес (задача) і потік (нитка). Під процесом розуміється виконання програми в цілому (Wi Word, Excel, Visual C і т.д.) Потоками у свою чергу є частини процесу, що виконуються паралельно. Процесом звичайно називають екземпляр програми, що виконується. Хоча на перший погляд здається, що програма і процес поняття практично однакові, вони фундаментально відрізняються один від одного. Програма представляє собою статичний набір команд, а процес це набір ресурсів і даних, що використовуються при виконанні програми. Процес в Wi dows складається з наступних компонентів: - Структура даних, що включає в себе всю інформацію про процес, в тому числі список відкритих дескрипторів різних системних ресурсів, унікальний ідентифікатор процесу, різноманітну статистичну інформацію і т.д.; - Адресний простір - діапазон адресів віртуальної пам‘яті, яким може користуватися процес; - Програма, що виконується і дані, що проектуються на віртуальний адресний простір процесу. Будь який процес має хоча б один потік (у цьому випадку його можна ототожнити з потоком). Це первинний потік створюється системою автоматично при створенні процесу. Далі цей потік може породити інші потоки, ті в свою чергу нові і т.д. Таким чином, один процес може володіти декількома потоками, і тоді вони одночасно виконують код в адресному просторі процесу. Wi dows краще всього працює, коли всі потоки можуть займатися своїм ділом, не взаємодіючи один з одним. Але така ситуація дуже рідкісна. Звичайно потік створюється для виконання певної роботи, про завершення якої, ймовірно, захоче узнати інший потік. Приклад: один потік підготовляє дані, інший їх сортує, а третій виводить результат у файл. Передавши готові дані другому потоку на сортування, перший починає обробку нового блоку. Тим часом другий потік повідомляє третьому, що можна виводити результати. Роботу цих трьох потоків необхідно синхронізувати. Всі потоки в системі повинні мати доступ до системних ресурсів — кучам, послідовним портам, файлам, вікнам і т д. Якщо один із потоків запросить монопольний доступ до якого-небудь ресурсу, іншим потокам, яким теж потрібен цей ресурс, не вдасться виконати свої задачі. А с другої сторони, просто недопустимо, щоб потоки безконтрольно користувались ресурсами. Інакше може статися так, що один потік пише в блок пам‘яті, з якого інший щось зчитує. Потоки повинні взаємодіяти один з одним в двох основних випадках: 1) спільно використовуючи один і той же ресурс (щоб не розрушити його); 2) коли треба повідомити інші потоки про завершення яких-небудь операцій В Wi dows є маса засобів, що спрощують синхронізацію потоків. Але точно спрогнозувати, в який момент потоки будуть робити то-то и то-то, надзвичайно складно. Механізми синхронізації Найбільш простим механізмом синхронізації є використання I erlocked-функцій. Використання цих функцій гарантує “атомарне” виконання потрібних операцій, тобто потоки не будуть заважати один одному.
Пояснимо на прикладі: // defi i io of global viriable lorig g x = 0; DWORD WI API hreadFu c1(PVOID pvParam) { g x ; re ur (0); } DWORD WI API hreadFu c2(PVOID pvParam} { g x ; re ur (0); } Нема ні якої впевненості, що отримаємо двійку, тому що ми не управляємо механізмом витіснення потоків. // defi i io of global viriable lo g g x = 0; DWORD WI API hreadFu c1(PVOID pvParam) { I erlockedExcha geAdd(&g x, 1); re ur (0); } DWORD WI API hreadFu c2(PVOID pvPararr) { I erlockedExcha geAdd(&g x, 1); re ur (0); } Тут вже можна бути впевненим, що значення g x=2. Розглянемо ці функції більш детально Якщо кілька потоків мають доступ до однієї змінного, те немає ніякої гарантії, що в процесі зміни значення цієї змінний одним потоком не відбудеться переключення на інший потік, що може читати її значення. Інший потік у цьому випадку одержить невірну інформацію. Для запобігання таких конфліктів у Wi dows 95 уведений ряд функцій, що дозволяють коректно змінювати змінні, доступ до яких мають кілька потоків. Перелічимо функції, що охороняють від переключення під час зміни значення змінної: LO G I erlockedI creme (LPLO G lpAdde d) - збільшує значення за адресою lpAdde d на одиницю; LO G I erlockedDecreme (LPLO G lpAdde d) - зменшує значення за адресою lpAdde d на одиницю; LO G I erlockedExcha ge (LPLO G arge , LO G Value) - заміняє значення, що знаходиться за адресою arge , на значення, передане в параметрі Value; LO G I erlockedExcha geAdd (PLO G Adde d, LO G I creme ) - додає до значення за адресою Adde d значення I creme ; PVOID I erlockedCompareExcha ge (PVOID Des i a io , PVOID Excha ge, PVOID Compera d) - порівнює значення за адресою Des i a io зі значенням, переданим у параметрі Compera d, і якщо ці значення рівні, то за адресою Des i a io міститься значення, передане в параметрі Excha ge. Іншими словами, якщо в тексті програми є загальна змінна, те її зміна повинна вироблятися в такий спосіб: { lo g Val; . Val ; // неправильно I erlockedI creme (&Val); // правильно . } Усі спроби зробити щось, що вимагає моментальної реакції на зовнішні події, у середовищі Wi dows 3.x приводили до більш ніж скромних результатів, тому що подібні програми здобували відносно стандартизований, але неповороткий графічний інтерфейс, і більше нічого. Wi dows 95 у принципі дозволяє розробляти критичне вчасно реакції ПО типу систем керування. Цей метод хороший для дуже простих речей, для більш складної синхронізації він не допоможе. На щастя у Wi dows передбачено п'ять стандартних механізмів для синхронізації процесів і потоків: семафор критична секція м’ютекс подія таймер Розглянемо кожний з цих механізмів. Критична секція Критична секція - це частина коду, доступ до якого тепер має тільки один потік. Інший потік може звернутися до критичного розділу, тільки коли перший вийде з нього. Для роботи з критичними секціями використовуються наступні функції: VOID I i ializeCri icalSec io (LPCRI ICAL SEC IO lpCri icalSec io ) - ініціалізація синхронізатора типу критичний розділ. lpCri icalSec io - покажчик на змінну типу CRI ICAL SEC IO . VOID E erCri icalSec io (LPCRI ICAL SEC IO lpCri icalSec io ) - запит на вхід у критичну секцію(розділ) lpCri icalSec io - покажчик на змінну типу CRI ICAL SEC IO .
VOID LeaveCri icalSec io (LPCRI ICAL SEC IO lpCri icalSec io ) - вихід із критичного розділу (звільнення семафора). lpCri icalSec io - покажчик на змінну типу CRI ICAL SEC IO . VOID Dele eCri icalSec io (LPCRI ICAL SEC IO lpCri icalSec io ) - видалення критичного розділу (звичайно при виході з програми). lpCri icalSec io - покажчик на змінну типу CRI ICAL SEC IO . Отже, для створення критичного розділу необхідно ініціалізувати структуру CRI ICAL SEC IO . Що Wi dows у цій структурі зберігає, нас не стосується - важливо, що покажчик на цю структуру ідентифікує наш семафор. Створивши об'єкт CRI ICAL SEC IO , ми можемо працювати з ним, тобто можемо позначити код, доступ до якого для одночасно виконуються задач потрібно синхронізувати. Розглянемо такий приклад. Ми хочемо записувати і зчитувати значення з деякого глобального масиву mas. Причому запис і зчитування повинні вироблятися двома різними потоками. Цілком природно, що краще якщо ці дії не будуть виконуватися одночасно. Тому введемо обмеження на доступ до масиву. І хоча приведений нами приклад подібного обмеження (см. лістинг 1)надзвичайно спрощений, він добре ілюструє роботу синхронізатора типу критичний розділ: поки один потік &quo ;володіє&quo ; масивом, інший доступу до нього не має. М‘ютекси (взаємовиключення) М’ютекс (взаємовиключення, mu ex) - це об’єкт синхронізації, який установлюється в особливий сигнальний стан, коли не зайнятий яким-небудь потоком. Тільки один потік володіє цим об’єктом в любий момент часу, звідси и назва таких об‘єктів – одночасний доступ до спільного ресурсу виключається. Наприклад, щоб виключити запис двох потоків в спільний участок пам’яті в один і то й же час, кожний потік очікує, коли звільниться м’ютекс, стає його власником и тільки потім пише щось в цю ділянку пам’яті. Після всіх необхідних дій м’ютекс звільняється, надаючи іншим потокам доступ до спільного ресурсу. Два (або більше) процесів можуть створити м‘ютекс з одним і тим же іменем, визвавши метод Crea eMu ex. Перший процес дійсно створює м’ютекс, а наступні процеси отримують хендл існуючого вже об‘єкта. Це дає можливість декільком процесам отримати хендл одного і того ж м’ютекса, звільняючи програміста від необхідності турбуватися про те, хто насправді створює м’ютекс. Якщо використовується такий підхід, бажано встановити флаг bI i ialOw er в FALSE, інакше виникнуть певні труднощі при визначенні справжнього “творця” м’ютекса. Декілька процесів можуть отримати хендл (ha dle) одного й того ж м‘ютекса, що робить можливим взаємодію між процесами. Ви можете використовувати наступні механізми такого підходу: Дочірній процес, створений за допомогою функції Crea eProcess може наслідувати хендл м‘ютекса у випадку, якщо при його (м‘ютекса) створенні функцією Crea eMu ex був вказаний параметр lpMu exA ribu es. Процес може отримати дублікат існуючого м‘ютекса з допомогою функції Duplica eHa dle. Процес може вказати ім‘я існуючого м‘ютекса при виклику функцій Ope Mu ex або Crea eMu ex.
Найбільш змістовними з точки зору наявності конкретно-історичної інформації є узагальнюючі матеріали радянських органів держбезпеки. Так, у документі під назвою "Отчет Центральной Украинской Чрезвычайной Комиссии за 1920 г." [89] дається характеристика повстансько-підпільному руху в Україні, роботі спецслужб УНР по його організації, контрзаходів ВУНК проти антирадянського руху опору, діяльності в Україні спецслужб іноземних держав Антанти, Польщі, Греції, Норвегії. Велику інформативність мають і звіти радянських розвідників, що працювали у середовищі військових та політичних кіл діючих українських урядів. Автором, наприклад, використаний звіт співробітника особливого відділу 14-ї радянської армії О.Бірюкова про його роботу при урядових інституціях Директорії УНР [90]. Розвідник дає характеристику морально-політичного стану в державних інституціях УНР, розповідає про роботу спецслужб Української Народної Республіки (розвідки, контррозвідки), їх агентурну мережу, організацію повстанського руху, міжпартійні стосунки в урядових колах. О.Бірюков у звіті, звичайно, упереджено підходить до стану справ у силових структурах та урядових інституціях УНР, але документ має службово-інформаційний характер і тому близький до об'єктивності. Інша група документів в архівах радянських спецслужб пов'язана з політичними репресіями проти діячів української національної державності або співробітників їх силових структур
1. "О культуре" по работе Н.А. Бердяева "Философия неравенства" (Windows)
2. Анализ системы безопасности Microsoft Windows 2000 Advanced Server и стратегий ее использования
3. Организация Linux - сервера для Windows клиентов
5. Windows 98
9. Текстовый редактор Word для Windows
10. Основные принципы просесса инсталляции приложений в ОС Windows
12. Разработка цикла лабораторных работ по основам работы в WINDOWS 2000
14. Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x
15. Настройка рабочего стола в Windows
16. Неполадки при загрузке Windows и их устранение. Загрузочная дискета
19. Особливості реформації в Англії
20. Особливості функціонування локальних інформаційних мереж
21. Коммуникационные функции в Windows for workgroups
25. Екологія та охорона навколишнього середовища
26. Особливості перехідної економіки України
27. Соціально-економічні риси та особливості розвитку економіки України на сучасному етапі
28. Особливості обліку на підприємстві роздрібної торгівлі – платника єдиного податку
29. Населення України, його динаміка, структура та особливості розміщиння
30. Особливості українського комп`ютерного жаргону
32. Взаємодія людини і суспільства із природним середовищем, їх життя: сучасний стан, перспективи
33. Операционная система WINDOWS-98
34. Текстовой редактор “Word for Windows 6
35. Сказка о том, как Windows и Linux дружили в одной сети
36. Вирусы против технологии NX в Windows XP SP2
37. Ваш собственный сервер: установка Windows Server 2003
41. Графическая оболочка X-Windows System
42. Windows, Microsoft Word и Microsoft Excel
44. MS Windows
45. Windows NT - ОС нового поколения
46. Windows XP
48. Компьютер (Интенет, Windows, пакет программ Micrsoft Office)
49. Операційна система MS Windows
50. Особенности операционной системы Windows 95
51. Программа демонстрирующая иерархию окон Windows
57. Работа с бинарными данными и реестром Windows на платформе .NET
58. Windows, Microsoft Word и Microsoft Excel
59. Построение многооконных приложений для Windows
60. Программа, демонстрирующая иерархию окон Windows
61. Тесты производительности Windows XP против Win 2000, NT4, 98 и ME
62. Оптимизация Windows XP SP1
63. Параметры электропитания и завершения работы Windows XP
64. Тонкая настройка Windows Firewall в Windows XP SP2
65. Работа в Windows
68. Windows XP Service Pack 2: пакет обновлений или новая ОС?
73. Долгий старт Windows Vista
74. Архитектура памяти Windows CE 6
75. Boot Record, команды DOS, Norton Commander, Windows
76. Ділові прийоми, їх різновиди та особливості організації
77. Національний банк України та особливості його функціонування
78. Особливості встановлення грошового обігу і банківництва в Північній Америці
79. Особливості оцінки кредитних ризиків банку
80. Особливості функціонування підприємства на фондовому ринку
81. Види комерційних банків, крітерії їх класифікації та особливості побудови і функціонування
82. Вплив техносфери на навколишнє середовище
83. Економічний аспект забруднення навколишнього середовища
84. Охорона праці і навколишнього середовища
85. Морфологічні та фізіологічні особливості зорового аналізатора
89. Генетичні особливості мікроорганізмів
90. Екологічні особливості родини складноцвітних (Ромашка)
91. Анатомо-фізіологічні особливості кролів
92. Особливості вирощування кореневласних саджанців обліпихи в умовах правобережного лісостепу України
93. Особливості і форми комунікативної поведінки собак
94. Особливості розвитку рибного ставкового господарства
96. Правове регулювання бухгалтерського обліку та особливості його організації в бюджетних установах
98. Характеристика й особливості розвитку Київської області
99. Регіональна економічна політика України й особливості регіонального розвитку