Система управління процесами в ос windows 7. Управління процесами. Поняття об'єкта у Windows

24.03.2021 Огляди

Практична робота №

Управління процесами в Windows.

Мета роботи : вивчення можливостей контролю та керування процесами в операційних системах Windows, навчитися працювати з Диспетчером завдань, ознайомитися з керуванням процесами в Windows за допомогою утиліти Process Explorer.

ТЕОРЕТИЧНА ЧАСТИНА.

Для правильного виконання того чи іншого завдання в Windows необхідно, щоб було запущено ту чи іншу програму. У цій роботі ви ознайомитеся з мінімальним набором програм, які мають бути запущені для коректної роботи Windows . Для того, щоб побачити повний списоквиконуваних завдань у Наразіможна скористатися Диспетчером завдань Windows або будь-який інший аналогічною програмою(Утиліти Process Explorer (procexp.exe.)). У цій роботі ми ознайомимося лише з Диспетчером завдань, який можна запустити натисканням комбінації CTRL+ALT+DELETE.

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

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

На вкладці Швидкодія динамічно відображаються такі відомості про швидкодію комп'ютера.

  1. Графіки завантаження ЦП та використання пам'яті.
  2. Загальна кількість дескрипторів, процесів на комп'ютері.
  3. Загальний обсяг фізичної пам'яті, пам'яті ядра та виділення пам'яті в кілобайтах.

Якщо є підключення до мережі, можна переглянути стан мережі та параметри її роботи.

Якщо до комп'ютера підключено кілька користувачів, можна побачити їхні імена, які завдання вони виконують, а також надіслати їм повідомлення.

Щоб побачити всі програми, завантажені в оперативну пам'ять, потрібно перейти з вкладки Програми на вкладку Процеси.

Перелічені тут процеси - це програми, які зараз завантажені в оперативну пам'ять. Це можуть бути спеціальні службові програми, без яких Windows не буде працювати, програми, що відповідають за надання будь-яких послуг, наприклад звірка системного часу з сервером часу в мережі Internet , і т.д. У наведеній нижче таблиці є відомості про назву деяких процесів і призначення даної програми.

Процес Бездіяльність системиє окремим потоком, що виконується на кожному процесорі і має єдину задачу - заповнення процесорного часу, коли система не обробляє інші потоки. У Диспетчері завдань цей процес займає більшу частину процесорного часу.

Ім'я процесу

Опис

Explorer.exe

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

Spoolsv.exe

Програма відповідає за чергу друку (постановка документів у чергу, видалення черги, відстеження кількості надрукованих аркушів)

services.exe

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

svchost.exe

Дозволяє налаштовувати розклад автоматичного виконаннязадач на цьому комп'ютері.

svchost.exe

Керує об'єктами папки Мережа та віддалений доступдо мережі"", що відображає властивості локальної мережіта підключень до віддаленого доступу.

svchost.exe

Керує синхронізацією дати та часу на всіх клієнтах та серверах у мережі. Якщо служба зупинена, синхронізація дати та часу не буде доступна.

svchost.exe

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

svchost.exe

Дозволяє віддаленим користувачамзмінювати настройки реєстру на цьому комп'ютері.

mdm.exe

Керує місцевим та віддаленим налагодженням для відладчиків Visual Studio

lsass.exe

Зберігає інформацію про безпеку для облікового записулокального користувача.

Winlogon.exe

Програма входу до системи Windows NT

Зміна виду вікна Менеджер завдань, вибір для відображення тих чи інших параметрів здійснюється за допомогою пунктів меню. Усю інформацію про роботу з Менеджером завдань можна знайти в пункті меню «Довідка».

Управління процесами та потоками в ОС Windowsза допомогою утиліти Process Explorer фірми SysInternals.

Утиліта показує не просто список активних процесів, а й файли динамічних бібліотек, пов'язані з процесом, пріоритет процесу, навантаження на процесор окремо кожної програми і т.д.

Крім цього, за допомогою програми можна змінити пріоритет процесу, переглянути інформацію про DLL-файл і примусово завершити програму, що безнадійно зависла.

Утиліта містить 2 вікна. У верхньому відображається список активних процесів (в т.ч. ідентифікатор процесу – PID, відсоток завантаження процесора – CPU, опис – Description, найменування облікового запису власника – Owner, пріоритет процесу – Priority, Handles, Windows Title). Інформація, що відображається в нижньому вікні, залежить від режиму Process Explorer - якщо він знаходиться в режимі handle mode, Ви можете бачити handles (файли для Windows 9x/Ме), які відкрив процес, вибраний у верхньому вікні; якщо це режим DLL (DLL mode) – Ви можете бачити DLL, які завантажив даний процес.

Перемикання між режимами здійснюється "гарячими клавішами" або за допомогою відповідних пунктів меню:

Ви можете сортувати процеси за будь-яким критерієм, клацаючи мишкою на відповідній колонці; або уявити процеси як дерева процесів (process tree) шляхом вибору пункту меню View - Show Process Tree.

Клацнувши правою кнопкою миші по вибраному процесу, за допомогою появи контекстного менюВи можете змінити базовий пріоритет процесу (Set Priority), примусово завершити процес (Kill Process) та переглянути Додаткові параметрипроцесу (Properties):

За допомогою пункту меню Options – Highlight Services можна виділити процеси, які обслуговують хост. Для виділення процесів поточного користувачавиберіть пункт меню Options - Highlight Own Processes.

Запустивши утиліту, запустіть кілька програм (наприклад, Far, Word, Paint, Notepad тощо), зверніть увагу на зміни у вікні процесів. Прокоментуйте їх. Наведіть копію екрана та опишіть процес, породжений запущеною програмою.

Завдання для виконання:

1. На вкладці Процеси Менеджера завдань змініть кількість стовпців, запишіть виконані для цього операції. Які процеси запущені Користувачем?

2. Скільки процесів активно на момент виконання практичної роботи, на скільки завантажено центральний процесор, який обсяг пам'яті виділено на поточні процеси?

3. Переглянути довідкову системуДиспетчер задач. Знайти інформацію про запуск нових програм, завершення поточних програм з використанням Диспетчера та виписати у зошит.

4. Виконайте такі дії за допомогою програми Process Explorer . Відсортуйте процеси за заданим критерієм. Опишіть один із системних процесів. Запустіть вказану програму. Опишіть процес, що виник за заданими характеристиками. Примусово завершіть цей процес. Виконувані дії ілюструйте копіями екранів.

No завдання

Критерій

додаток

Характеристики

Показати дерево системних процесів

Far Manager

Визначити використовувані DLL

Відсортувати за PID

Блокнот

Wordpad

Відсортувати за пріоритетом

Калькулятор

Переглянути дод. властивості процесу

Відсортувати за власником

Paint

Провідник

Переглянути дод. властивості процесу

Відсортувати за найменуванням

Редактор реєстру

Визначити використовувані DLL

Відсортувати за пріоритетом

Web-браузер

Змінити пріоритет процесу користувача

Сортувати за: датою процесора

мережеве оточення

Визначити використовувані handles

Показати дерево процесів користувача

Дефрагментація диска

Визначити використовувані DLL

Копії екрана з виконаним завданням та опис виконаних дій навести у звіті.

Контрольні питання:

  1. Що таке процес?
  2. Опишіть загальні відомостіпро Диспетчер завдань?
  3. Що означає параметр «бездіяльність системи»?
  4. Чи можна змінити зовнішній виглядвкладки процеси в диспетчері завдань?
  5. Як завершити процес?
  6. Опишіть можливості роботи за допомогою утиліти Process Explorer.
  7. Записати процеси та їх опис з таблиці в зошит та вивчити їх напам'ять.

Управління процесами

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

Для кожного знову створюваного процесу ОС генерує системні інформаційні структури, які містять дані про потреби процесу в ресурсах обчислювальної системи, а також про фактично виділені йому ресурси. Τᴀᴋᴎᴎᴩᴀᴈᴏᴍ, процес можна також визначити як деяку заявку на споживання системних ресурсів.

Щоб процес міг бути виконаний, операційна система повинна призначити йому область оперативної пам'яті , в якій будуть розміщені коди та дані процесу, а також надати йому вкрай важливу кількість процесорного часу. Разом з тим, процесу може бути потрібний доступ до таких ресурсів, як файли і пристрої введення-виведення.

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

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

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

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

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

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

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

Управління пам'яттю

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

Існує велика різноманітність алгоритміврозподілу пам'яті. Οʜᴎ можуть відрізнятися:

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

Ступенем свободи кордону областей (вона має бути жорстко зафіксована на час існування процесу або ж динамічно переміщатися при виділенні процесу додаткових об'ємів пам'яті),

У деяких системах розподіл пам'яті виконується сторінками фіксованого розміру, а в інших - сегментами змінної довжини

Одним із найпопулярніших способів управління пам'яттю в сучасних операційних системах є так звана віртуальна пам'ять.

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функціями ОС з управління пам'яттю є (рис.5) відстеження вільної та зайнятої пам'яті; виділення пам'яті процесам та звільнення пам'яті при завершенні процесів; захист пам'яті; витіснення процесів з оперативної пам'яті на диск, коли розміри основної пам'яті недостатні для розміщення в ній всіх процесів, і повернення їх в оперативну пам'ять, коли в ній звільняється місце, а також налаштування адрес програми на конкретну область фізичної пам'яті.

Керування файлами та зовнішніми пристроями

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

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

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

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

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

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

Підтримка високорівневого уніфікованого інтерфейсу прикладного програмування до різнорідних пристроїв введення-виведення є одним із найважливіших завдань ОС.

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функціями ОС з управління файлами та зовнішніми пристроями (рис.6) є віртуалізація окремих наборів даних; перетворення символьних імен файлів на фізичні адреси даних на диску; передачу даних між зовнішніми пристроями та оперативною пам'яттю; управління конкретним типом периферійних зовнішніх пристроїв; реалізації концепції файлового доступу для обміну даними із зовнішніми пристроями.

Управління процесами - поняття та види. Класифікація та особливості категорії "Управління процесами" 2017, 2018.

Операційна система- дуже складна з архітектури програмна система, В якій можна виділити такі основні компоненти:
  1. Управління процесами
  2. Управління основною пам'яттю
  3. Керування файлами
  4. Управління системоювведення-виведення
  5. Управління зовнішньою пам'яттю
  6. Підтримка мереж (networking)
  7. Система захисту (protection)
  8. Система підтримки командного інтерпретатора.
  9. Графічні оболонки.

Розглянемо ці компоненти докладніше.

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

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

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

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

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

Система підтримки командного інтерпретатора.Будь-яка операційна системапідтримує командну мову (або набір командних мов), що складаються з користувацьких команд, що виконуються з терміналу користувача (з користувальницької консолі). Типові команди – це отримання інформації про оточення, встановлення та зміна поточної робочої директорії, пересилання файлів, компіляція та виконання програм, отримання інформації про стан системита виконання своїх процесів та ін. системі Windowsдля виконання команд за традицією використовується вікно консолі користувача MS DOS (MS DOS Prompt ), в системі Linux- Спеціальне вікно "Термінал" (Start / System Tools / Terminal). Найбільш потужні командні процесориє у системах типу UNIX ( UNIX , Solaris, Linux та інших.). Їхні командні мови дозволяють писати скриптикомандні файли, Що містять часто використовувані послідовності команд ОС У UNIX це найзручніше. Можна назвати такі командні мови UNIX, як sh (Bourne Shell), csh (C shell), ksh (Korn shell), bash.Кожен UNIX-програміст має свою улюблену командну мову і звикає постійно використовувати скрипти та довгі нетривіальні послідовності команд, які він виконує з терміналу. Що стосується Windows, порівняно недавно в ній з'явився потужний командний інтерпретатор PowerShell,який і рекомендується до використання. Крім того, для Windows є система CygWin, що дозволяє виконувати команди та командні файли UNIX в середовищі Windows. Типова послідовність команд у стилі UNIX: ps -a | grep saf, яка виводить у стандартний висновокінформацію про активних процесах, причому тільки тих, хто належить користувачеві saf.Вертикальна характеристика (p1 | p2) позначає операцію конвеєр (pipe), що дозволяє використовувати стандартний висновокпроцесу p1 як стандартне введенняпроцесу p2, що використовується операцією grep ( фільтрація рядків, Що містять задану послідовність). Докладніше про UNIX (Linux) можна прочитати в книзі [16].

Графічна оболонка- Підсистема ОС, що реалізує графічний користувальницький інтерфейскористувачів та системних адміністраторівіз операційною системою. Зрозуміло, використання однієї лише командної мови та системних викликів незручно, тому простий і наочний графічний інтерфейс користувача з ОС необхідний. Є багато відомих графічних оболонок для операційних систем, причому їх можливості дуже схожі один на одного – настільки, що часом не зовсім зрозуміло, яка саме ОС використовується. Серед графічних оболонок, які у системах типу UNIX , можна назвати CDE , KDE, GNOME. Windows і MacOS мають власні, дуже зручні графічні оболонки.

Управління процесами

Процес (process) -це програма користувача при її виконанні в комп'ютерній системі. Для виконання процесу потрібен ряд ресурсів, включаючи час процесора, пам'ять , файли, пристрої введення-виводу, мережеві пристроїта ін.

У класичній схемі UNIX, при створення процесудля нього створюється новий простір віртуальної пам'яті, тобто. таблиця сторінок для відображення віртуальних адресу фізичні, своя для кожного нового процесу. У цьому витрачаються значні ресурси. Якщо врахувати, що UNIX кожна команда користувача (наприклад, ls – висновок вмісту поточної директорії) запускається як окремий процес, то стає зрозумілим, наскільки "дорога" операція створення процесу у класичному сенсі. Тому ще в 1980-х роках. з'явилася концепція полегшеного процесу(lightweight process) – виконуваного у тому просторі віртуальної пам'яті, як і процес-батько. При створенні нового полегшеного процесу ОС створює для нього лише стек– системний резидентний масив у пам'яті, призначений для підтримки виконання процедур процесу та зберігає їх локальні дані та зв'язуючу інформацію між ними.

ОС відповідає за такі дії, пов'язані з управлінням процесами:

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

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

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

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

Семафори. У 1966 р. у роботі [17] проф. Едсгер Дейкстра запропонував новий спосіб синхронізації процесів, що став класичним - семафори.

Двійковий семафор (binary semaphore)– змінна S, яка може перебувати у двох станах: "відкритий" та "закритий"; над S визначено дві операції ("семафорні дужки"): P(S) – закрити, V(S) – відкрити. При спробі закрити вже закритий семафор відбувається переривання і ОС додає поточний процес в чергу до закритого семафору. Операція V(S) активізує перший процес, що стоїть у черзі до S, який успішно завершує операцію P(S). Якщо семафор S вже відкрито, операція V(S) не має жодного ефекту.

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

Управління процесами з командного рядка

Способів керувати процесами в Windows достатньо, і командний рядок займає в них далеко не перше місце. Проте іноді бувають ситуації, коли решта інструментів крім командного рядка недоступні, наприклад деякі шкідливі програмиможуть блокувати запуск Task Manager та подібних до нього програм. Та й просто для загального розвитку корисно знати способи керування комп'ютером із командного рядка.

Для управління процесами в командному рядку є дві утиліти. tasklistі taskkill. Перша показує список процесів на локальному або віддаленому комп'ютері, друга дозволяє завершити їх. Спробуємо …

Якщо просто набрати команду tasklistу командному рядку, вона видасть список процесів на локальному комп'ютері.

За замовчуванням інформація відображається у вигляді таблиці, однак ключ /foдозволяє задати висновок у вигляді списку або у форматі CSV, а ключ /vпоказує більше детальну інформаціюпро процеси, наприклад команда tasklist /v /fo listвиведе докладний описвсіх процесів як списку.

Список буде досить великий, тому спробуємо уточнити запит. Для цього використовуємо ключ /fi, який дозволяє використовувати фільтри для виведення даних, наприклад команда tasklist /fi ″username eq user″ /fi ″memusage le 40000″виводить список процесів користувача userякі споживають не більше 40Мб пам'яті.

Знайшовши процеси, які потрібно завершити, скористаємося командою taskkill.Завершувати процеси можна на ім'я, ідентифікатор процесу (PID) або задавши умови за допомогою фільтрів. Наприклад запустимо кілька екземплярів блокнота (notepad.exe) і спробуємо завершити його різними способами.

Ключ /fзавершує процес примусово, а /tзавершує усі дочірні процеси.

Повну довідку по командах tasklist та taskkill можна отримати, ввівши їх із ключем /?

Тепер пустимо в хід важку артилерію PowerShell . Його можна запустити, не виходячи з командного рядка. Для отримання списку процесів використовуємо командлет Get-Process.

Щоб не виводити весь список процесів, можемо скористатися командлетом. Where-Object, який задає фільтр для інформації, що виводиться. Наприклад виведемо список процесів, які завантажують процесор і відсортуємо їх за зростанням навантаження за допомогою команди:

Get-Process | де ($_.cpu -gt 0) | sort cpu

За допомогою PowerShell ми можемо отримати будь-яку інформацію про процес. Як приклад візьмемо процес cmd і виведемо список його властивостей командою:

Get-Process -Name cmd | Get-Member -Membertype property

Вибираємо ті властивості, що нам цікаві (у прикладі ім'я та ID процесу, шлях до файлу, використовувані модулі та час запуску) та виводимо їх у вигляді списку командою:

Get-Process -Name cmd | Format-List name, id, path, modules, starttime

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

Для завершення процесу PowerShell є командлет Stop-Process. Він завершує зазначений процес за його ім'ям або ідентифікатором. Однак ми зробимо інакше і передамо результат виконання командлета Get-Processпо конвеєру:

Get-Process | where ($_.name -match "notepad") | Stop-Process

Get-Processне може показати процеси на віддаленому комп'ютері, для цього скористаємося командлетом Get-WmiObjectнаприклад, подивимося процеси на віддаленому комп'ютері PC командою:

Get-WmiObject win32_process-computername PC | ft name, processid, description

Для повного ознайомлення з PowerShell можна скористатися вбудованою довідкою, для виклику довідки потрібно набрати Get-Help"ім'я командлета"

Ну і для повноти огляду розглянемо ще один засіб для керування процесами з командного рядка. Це утиліти Pslistі Pskillщо входять до складу пакету PSTools від компанії Sysinternals.

Ці утиліти не вимагають спеціальної установки, достатньо просто скопіювати їх на диск. Для запуску потрібно зайти до папки з утилітами та ввести в командному рядку необхідну команду.

Завершення процесу програмою pskill гранично просто, вводимо команду та ім'я (або ID) процесу та все.

Довідку з утиліт Pslistі Pskillможна подивитися, ввівши команду з ключем /?

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

Мета роботи: практичне знайомство з методикою керування процесами ОС MS Windows XP за допомогою диспетчера завдань

1 КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ

1.1 Процеси та потоки

На відміну від MS DOS, процеси в Win32 інертні, т. е. У Win32 процес нічого не виконує.

Процес має:

4 Гб адресним простором (при виконанні на 32-х розрядному ЦП);

Файли;

модулями (наприклад, завантаженими в адресний простір DLL);

Одним чи кількома потоками.

Процес має:

Ідентифікатор процесу (PID);

Базовим класом пріоритету;

маркером доступу (access token);

Ідентифікатор батьківського процесу;

Набором використовуваних описників (Handles) системних об'єктів;

Робочим безліччю сторінок оперативної пам'яті тощо.

Процес (Пр) може породити інший процес-див. рис.1.

Малюнок 1 – породження процесів.

Процес Пр1 породив процес Пр2, який породив процеси Пр3 та Пр4.

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

У кожній системі Windows виконуються такі системні процеси:

Процес Idle (включає по одному потоку на процесор для врахування часу простою процесора);

процес System (що містить більшість системних потоків режиму ядра);

Диспетчер сеансів (Smss.exe);

підсистема Windows (Csrss.exe);

процес входу в систему (Winlogon.exe);

Диспетчер управління сервісами (Services.exe) та створювані ним дочірні процеси сервісів (наприклад, універсальний процес для хостингу сервісів, Svchost.exe);

Серверний процес локальної автентифікації (Lsass.exe)

Два із зазначених процесів, Idle – бездіяльність системи та System, не є процесами у строгому сенсі цього слова, оскільки вони не виконують будь-який код користувача режиму.

Диспетчер сеансів (Session Manager) Smss.exe є першим процесом користувача режиму, що створюється в системі. Він породжується системним потоком режиму ядра і запускає процеси підсистем Csrss.exe і Winlogon, що у свою чергу створює інші системні процеси.

Процес входу в Windows - Winlogon.exe обробляє інтерактивний вхід користувача до системи та вихід із неї. При натисканні клавіш Alt+Ctrl+Del Winlogon отримує повідомлення про запит користувача на вхід до системи.

Після введення ім'я та пароль користувача надсилаються для перевірки серверного процесу локальної автентифікації LSASS. Після успішної аутентифікації LSASS викликає будь-яку функцію в моніторі стану захисту, щоб згенерувати об'єкт "маркер доступу" (access token object), що містить профіль безпеки користувача. Згодом Winlogon використовує його створення початкового процесу оболонки. Інформація про початковий процес зберігається у параметрі Userinit у розділі реєстру HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

За замовчуванням початковим процесом вважається Userinit.exe, який виконує деякі дії з ініціалізації користувача середовища, а потім шукає в реєстрі параметр Shell і створює процес для запуску певної системної оболонки - за промовчанням Explorer.exe. Після цього процес Userinit.exe завершується і не відображається у списку виконуваних процесів. Процес Explorer.exe є «внучатим» процесом Winlogon. Процес Explorer.exe - предок всіх запущених прикладних (користувацьких) процесів.

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

Користувальницькі процеси пов'язані з виконанням прикладного програмного забезпечення. Вони виконуються в режимі роботи процесора з накладенням певних обмежень. Як правило, процеси користувача створюються за допомогою Explorer.exe при запуску користувачем програм або за розкладом.

Щоб процес щось виконав, у ньому потрібно створити потік (Thread). В принципі, один процес може містити кілька потоків і одночасно використовують код в адресному просторі процесу. Для цього кожен потік повинен розташовувати власним набором регістрів процесора, а кожен процес - як мінімум - одним потоком. Щоб ці потоки працювали, ОС відводить кожному їх певне процесорний час (квант часу). Час видається потокам квантами по колу (див. рис. 2) відповідно до їх пріоритетів:

Малюнок 2 - схема виділення квантів часу потокам (П)

Під час створення процесу первинний потік створюється системою автоматично, далі первинний потік може створювати додаткові потоки, використовуючи функцію CreateThread.

Потоки можуть також створюватися драйверами режиму ядра.

WinNT, 2000, XP Windows Server - за потоком може бути закріплений окремий процесор (процесорів може бути до 32), тоді потоки дійсно виконуються паралельно.

1.2 Інструменти управління процесами

У ОС Windows вбудована програма Диспетчер завдань (Task Manager), за допомогою якої можна отримати інформацію про системні і прикладні процеси, що виконуються в системі, кількість використовуваних ними потоків і споживаних ресурсів, управляти виконанням процесів, змінювати пріоритети процесів. Для запуску диспетчера завдань можна використовувати комбінацію Alt+Ctrl+Del або правою кнопкою миші на панель завдань. Вікно диспетчера завдань показано на рис. 3.

Малюнок 3 - Вікно диспетчера завдань (закладка Процеси)

У вікні Процеси можна побачити список всіх виконуваних у системі процесів та їх параметри – на рис.3 це ідентифікатори процесів, завантаження ЦП кожним процесом та кількість потоків. Зауважте, що кількість потоків, що дорівнює 0, не говорить про те, що їх дійсно немає (це процес такий).

За допомогою меню Вигляд можна видалити зі списку показані на мал.3 параметри або додати нові.

Закладка Швидкодія (див. рис.4) дає можливість вивести графіки сумарного завантаження ЦП, використання файлу підкачки, а також отримати відомості про сумарне споживання ресурсів ПК.

Диспетчер завдань – дуже простий інструмент, його можливостей замало вирішення навіть нескладних завдань аналізу та управління системою. ПРИКЛАД – побудуйте дерево виконуваних у системі процесів з урахуванням отриманої з допомогою диспетчера завдань інформації.

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

Малюнок 4 - Вікно диспетчера завдань (закладка Швидкодія)

2. МЕТОДИКА ВИКОНАННЯ

1. Запустити диспетчер завдань, ознайомитись із переліком параметрів процесів (меню вид закладки Процеси).

2. Ознайомитися з можливостями диспетчера завдань з управління процесами (створення процесу завершення процесу). Зміна пріоритету вибраного процесу за допомогою контекстного меню.

3. Ознайомитися з можливостями диспетчера з керування виведенням інформації на екран (упорядкування списку зростання та зменшення значень обраного параметра).

4. Побудувати графік зміни завантаження ЦП під час переміщення миші, зміни розмірів вікна диспетчера, запуску додатків Open Office.

5. Побудувати графік зміни розміру виділеної у файлі підкачки пам'яті під час запуску програм (Open Office, Visual Studio).

6. Отримати список виконуваних процесів відповідно до індивідуальних завдань для бригад

Таблиця 1 Індивідуальні завдання

Таблиця 2 – Параметри процесів

3. ЗВІТ ПРО РОБОТУ

Готується письмово за допомогою Open Office один на бригаду.

1. Титульна сторінказ номером та назвою роботи, номером групи, бригади, прізвищами студентів та викладача

2. Перелік використаних під час виконання параметрів процесів

3. Результати, отримані під час виконання індивідуального завдання.

КОНТРОЛЬНІ ПИТАННЯ

1. Дати визначення процесу, потоку, системного та прикладного процесу

2. Яка інформація необхідна для побудови переліку процесів, що виконуються в системі, у вигляді дерева. Чи можна отримати таку інформацію у MS Windows, використовуючи диспетчер завдань?