МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ
КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
/
ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №1 на тему:
"Ознайомлення з процесами в ОС Windows"
Мета роботи: Ознайомитися з процесами та потоками в ОС Windows. Навчитися працювати із системними утилітами, що дають можливість отримувати інформацію про процеси, потоки, використовувану ними пам'ять, та іншу необхідну інформацію.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Процес є динамічним об'єктом, що описує виконання програми . Процесу виділяються системні ресурси: закритий адресний простір, семафори, комунікаційні порти, файли і т.д. Процес характеризується поточним станом (виконання , очікування , готовність і т.д.).
Завдання ОС полягає в тому, щоб організувати їх підтримку, яка має на увазі, що кожен процес отримає всі необхідні йому ресурси .
Незалежні процеси не повинні впливати один на одного, а процеси, яким необхідно обмінюватися інформацією, повинні мати можливість зробити це шляхом взаємодії між процесами.
У Windows процес - це об'єкт, створюваний і знищуваний менеджером об'єктів. Процес містить потоки, облікову інформацію та посилання на ресурси, які втілюється всіма потоками процесу.
Процес в Windows складається з наступних компонентів:
Структура даних, що містить всю інформацію про процес , у тому числі список відкритих дескрипторів різних системних ресурсів , унікальний ідентифікатор процесу , різну статистичну інформацію і т.д.;
Адресний простір - діапазон адрес віртуальної пам'яті , яким може користуватися процес ;
Виконується програма і дані , що проектуються на віртуальний адресний простір процесу .
Потік - якась сутність всередині процесу, яка отримує процесорний час для виконання. Без потоку програма процесу не може виконуватися. Потік включає наступні найбільш важливі елементи :
Вміст набору регістрів процесора , що відображають стан процесора;
Два стека, один з яких використовується потоком при виконанні в режимі ядра, а інший в режимі користувача;
Закриту область пам'яті, так звану локальну пам'ятю потоку і використану підсистемами, бібліотеками виконуючих систем і DLL;
Унікальний ідентифікатор потоку ;
Іноді потоки володіють своїм контекстом захисту, який зазвичай використовується багатопотоковими серверними додатками, підмінюють контекст захисту обслуговуваних клієнтів .
Вибір поточного потоку з декількох активних потоків, що намагаються отримати доступ до процесора називається плануванням .
Обраний для виконання потік працює протягом якогось періоду, так званого кванта, після закінчення якого потік витісняється. Передбачається, що потік не знає, в який момент він буде витіснений. Потік також може бути витіснений навіть, якщо його квант ще не закінчився.
Процедура планування зазвичай пов'язана з досить витратною процедурою диспетчеризації - перемиканням процесора на новий потік, тому планувальник повинен піклуватися про ефективне використання процесора. Належність потоків до процесу при плануванні не враховується, тобто одиницею планування в ОС Windows є саме потік .
В ОС Windows запуск процедури планування викликається одним з таких подій. Події, пов'язані із звільненням процесора:
Завершення потоку
Перехід потоку в стан готовності в зв'язку з тим, що його квант часу минув
Перехід потоку в стан очікування .
Події, в результаті яких поповнюється або може поповнитися чергу потоків в стані готовності.
Потік вийшов зі стану очікування
Потік щойно створений
Діяльність поточного потоку може мати наслідком висновок іншого потоку зі стану очікування створення процесів.
Створення Win32 процесу здійснюється викликом однієї з таких функцій, як CreateProcess , CreateProcessAsUser і CreateProcessWithLogonW і відбувається в кілька етапів:
Відкривається файл образу (EXE), який буде виконуватися в процесі. Якщо виконуваний файл не є Win32 додатком, то шукається образ підтримки для запуску цієї програми. Наприклад, якщо виконується файл з розширенням .bat, запускається cmd.exe і т.п.
Створ...