Реферат Курсовая Конспект
Завершення процесу - раздел Образование, Лекція 4 5 Створення процесу Коли Процес Завершується, Його Блок Буп Руйнується, А Адресний Простір, Який...
|
Коли процес завершується, його блок БУП руйнується, а адресний простір, який він займав і ресурси звільняються. Код завершення розміщується в головну таблицю процесів. Як тільки батьківський процес прийме цей код, відповідна структура таблиці процесів буде видалена. Процес завершується, якщо дотримані наступні вимоги.
· Всі інструкції виконані.
· Процес очевидним чином передає керування батьківському процесу або викликає системну функцію, яка завершує процес.
· Дочірні процеси можуть завершуватися автоматично при завершенні батьківського процесу.
· Батьківський процес подає сигнал про завершення свої дочірніх процесів.
Аварійне завершення процесу може відбутися в тому випадку, якщо процес виконує неприпустимі дії.
· Процес потребує більше пам’яті, ніж система може йому надати.
· Процес намагається отримати доступ до недозволених ресурсів.
· Процес намагається виконати некоректну інструкцію або заборонені обчислення.
Завершення процесу може бути ініційоване користувачем, якщо цей процес інтерактивний.
Батьківський процес несе відповідальність за завершення (звільнення) своїх нащадків. Батьківський процес повинен очікувати до тих пір, доки не завершаться всі його дочірні процеси. Якщо батьківський процес виконає зчитування коду завершення дочірнього процесу, процес-нащадок покидає систему нормально. Процес залишається в ²зомбованому² стані до тих пір, доки його предок не прийме відповідний сигнал. Якщо батько ніколи не приймає сигнал (оскільки він вже встиг сам завершитися і вийти з системи або не очікував завершення дочірнього процесу), процес-нащадок залишається в ²зомбованому² стані до тих пір, доки процес init (вихідний системний процес) не прийме його код завершення. Велика кількість ²зомбованих² процесів може негативно вплинути на продуктивність системи.
4.1. Функції exit (), kill () і abort ()
Для самостійного завершення процес може викликати одну із двох функцій: exit () і abort (). Функція exit () забезпечує нормальне завершення процесу , який викликає. При цьому будуть закриті всі дескриптори відкритих файлів, пов’язаних з процесом. Функція exit () скине на диск всі відкриті потоки, які містять ще не переписані буферизовані дані, після чого відкриті потоки будуть закриті. Параметр status приймає статус завершення процесу, який повертається батьківському процесу, що очікує, який в подальшому перезапускається. Параметр status може приймати наступні значення: 0, EXIT_FAILURE або EXIT _SUCCESS. Значення 0 говорить про вдале завершення процесу. Батьківський процес, що очікує, має доступ лише до молодших восьми бітів значення параметру status. Якщо батьківський процес не очікує завершення дочірнього процесу, його (що став ²зомбі²) ²всиновлює² процес init.
Функція abort () реалізує аварійне закінчення процесу, який викликає, що за наслідками рівноцінне результату виконання функції fclose () для всіх відкритих потоків. При цьому батьківський процес, що очікує, отримає сигнал про завершення виконання дочірнього процесу. Процес може звернутися до передчасного закінчення тільки у випадку, якщо він виявить помилку з якою не зможе впоратися програмним шляхом.
– Конец работы –
Эта тема принадлежит разделу:
Синопсис... pstree a c h frac Hpid l n p u G frac U... pid frac user...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Завершення процесу
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов