Керування процесами
Найважливішою частиною операційної системи, що безпосередньо впливає на функціонування обчислювальної машини, є підсистема керування процесами. Від неї великою мірою залежить використання ресурсів процесора.
Перед запуском програми операційна система створює оточення (середовище виконання завдання). До елементів середовища належать ресурси пам’яті, засоби доступу до пристроїв введення-виведення і різні системні ресурси, зокрема сервіси ядра. Це середовище завдання називається процес. Отже, процес можна зобразити як сукупність даних ядра системи, необхідних для опису образу програми у пам’яті комп’ютера і керування її виконанням. З іншого боку, процес можна зобразити як програму у стадії її виконання, оскільки він складається з інструкцій, що виконуються процесором, а також даних та інформації про завдання, яке виконується. Разом з тим не слід однозначно ототожнювати процес із програмою хоча б тому, що програма може породити більше одного процесу. Складні задачі, як правило, породжують у системі кілька одночасно виконуваних процесів. У багатозадачних операційних системах ці задачі можуть виконуватися одночасно. Виконання процесу полягає у точному проходженні набору інструкцій, який ніколи не передає керування іншому процесу. Процес зчитує і записує інформацію до розділу даних і до стеку, але дані і стеки інших процесів йому недоступні. Разом з тим процеси можуть обмінюватись один з одним даними через систему міжпроцесорної взаємодії. Вони перебувають у постійній взаємодії один з одним (наприклад, один процес може передавати дані іншому процесу або декілька процесів можуть обробляти дані із загального файлу). В усіх цих випадках виникає проблема синхронізації процесів, що може вирішуватися припиненням і активізацією процесів, організацією черг, блокуванням і звільненням ресурсів. Підсистема керування процесами планує її вирішення, тобто розподіляє процесорний час між кількома одночасно існуючими у системі процесами, а також створює і знищує процеси, забезпечує їх необхідними системними ресурсами, підтримує взаємодію між процесами.
Впродовж існування процесу його виконання багаторазово може перериватися, а потім продовжуватися. Для поновлення виконання процесу треба відновити стан його операційного середовища. Стан операційного середовища визначається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками відкритих файлів, інформацією про незавершені операції введення-виведення, кодами помилок, виконуваних процесом системних викликів, тощо. Ця інформація називається контекст процесу. Операційній системі для планування процесів необхідна додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце перебування кодового сегмента та ін. У деяких операційних системах (наприклад, в UNIX) інформація такого роду називається дескриптор процесу. Дескриптор процесу містить більш оперативну, порівняно з контекстом, інформацію, яка має бути легкодоступною підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується операційною системою тільки після прийняття рішення про поновлення перерваного процесу. Черги процесів являють собою дескриптори окремих процесів, об’єднані у списки. Отже, кожний дескриптор містить принаймні один покажчик на інший дескриптор, що знаходиться з ним у черзі. Така організація черг дає змогу легко їх перевпорядковувати, додавати і вилучати процеси, переводити процеси з одного стану в інший.
Дата добавления: 2015-08-11; просмотров: 810;