Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Завершення процесу



Після створення процес починає працювати і виконує своє завдання. Але ніщо не триває вічно, навіть процеси. Рано чи пізно нові процеси будуть завершені, зазвичай в силу наступних обставин:

1) __________________________________________________________________________________

2) ___________________________________________________________________________________

3) ___________________________________________________________________________________

4)____________________________________________________________________________________

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

Причина завершення — __________________________________________________________________

_______________________________________________________________________________________

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

Причина завершення, через яку процес може бути завершений, —__________________________________________________________________________________________________________________________________________________________________________________________ _

В UNIX цей виклик називається kill. Відповідна функція Win32 називається TerminateProcess. В обох випадках у процесу, викликають одного завершення, повинні бути на це відповідні повноваження. У деяких системах при добровільному або примусовому завершенні процесу тут же завершує і всі створені ним процеси. Але ні UNIX, ні Windows так не роблять.

Ієрархії процесів

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ (але нуль, один, два чи більше дітей).

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

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

Стани процесів

На рис. 2.2 показана діаграма, що відображає три стани, в яких може перебувати процес:

1) ­­­­­­­­­­­­­­­­­­­­­____________________________________________________________________________________;

2) ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________;

3) ____________________________________________________________________________________.

1. __________________________________________ 2. __________________________________________ 3. __________________________________________ 4. __________________________________________

Рис. 2.2. Процес може бути в виконуваному, заблокованому або готовому стані. Стрілками показані переходи між цими станами

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

Перехід 1 відбувається в тому випадку ________________________________________________________

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

Переходи 2 і 3 викликаються____________________________________________________________________________________________________________________________________________________________________________________________

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

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

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

Реалізація процесів

Для реалізації моделі процесів операційна система веде таблицю (складану з масиву структур), названу__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Ці записи містять важливу інформацію про стан процесу,________________________________

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

У табл. 2.1 показаний ряд ключових полів типової системи.

Таблиця 2.1. Деякі з полів типовою записи таблиці процесів

Управление процессом Управление памятью Управление файлами
Регистры Счетчик команд Слово состояния программы Указатель стека Состояние процесса Приоритет Параметры планирования Идентификатор процесса Родительский процесс Группа процесса Сигналы Время запуска процесса Использованное время процессора Время процессора, использованное дочерними процессами Время следующего аварийного сигнала Указатель на информацию о текстовом сегменте Указатель на информацию о сегменте данных Указатель на информацию о сегменте стека Корневой каталог Рабочий каталог Дескрипторы файлов Идентификатор пользователя Идентификатор группы

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

__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Короткий виклад процесу обробки переривання та планування наведено в табл. 2.2.

Таблица 2.2. Схема работи низщого рівня операційної системи при виникнення переривання

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

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

Лекція 7





Дата публикования: 2014-11-04; Прочитано: 539 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...