Операційна система unix навчальний посібник




НазваОпераційна система unix навчальний посібник
Сторінка14/26
Дата конвертації20.03.2013
Розмір1.15 Mb.
ТипДокументы
uchni.com.ua > Право > Документы
1   ...   10   11   12   13   14   15   16   17   ...   26
^

3.2 Логічна організація процесів


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

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

Групи процесів поєднуються в сеанси. Сеанси описують процеси, породжені користувачем за час роботи в системі. Кожний сеанс може мати один асоційований термінал, називаний керуючої, а групи й процеси, створені в даному сеансі, успадковують цей термінал. Отже, процеси, що належать до різних сеансів, одержують доступ до різних терміналів. Наявність керуючого термінала дозволяє ядру контролювати стандартне уведення/висновок, а також посилати сигнали всім процесам, асоційованим з терміналом групи.
В UNIX процеси ієрархічно строго впорядковані. Кожний процес має одного батька (parent) і може мати також одного або декількох нащадків(child). Процес init (названий так, тому що він запускає програму /etc/init) є першим прикладним процесом, створюваним під час завантаження системи. Цей процес породжує всі інші прикладні процеси. Якщо який-небудь процес завершений і після нього залишаються функціонуючі процеси-нащадки, то вони стають сиротами й успадковуються процесом init.

^

3.3 Життєвий цикл процесу


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

Стану процесу:

  1. виконання в користувальницькому режимі. При цьому процесором виконуються прикладні інструкції даного процесу.

  2. виконання в режимі ядра. При цьому процесом виконуються системні інструкції ядра від імені процесу. Існують усього три події, при яких виконання процесу переходить у режим ядра - апаратні переривання, особливі ситуації й системні виклики.

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

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

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

  6. тільки що створений системним викликом fork і перебуває в перехідному стані: він існує, але не готовий до запуску й не перебувати в стані сну.

  7. стан зомбі (zombie, defunct). Як такого процесу не існує, але залишаються записи, що містять код повернення й тимчасову статистику його виконання, доступну для батьківського процесу. Цей стан є кінцевим у життєвому циклі процесу.




Малюнок 3.1 - Життєвий цикл процесу
Процес починає свій життєвий шлях зі стану 6, коли батьківський процес виконує системний виклик fork. Після того як створення процесу повністю завершено, процес завершує "дочірню частину" виклику fork і переходить у стан 3 готовності до запуску, очікуючи своєї черги на виконання. Коли планувальник вибирає процес для виконання, він переходить у стан 1 і виконується в користувальницькому режимі.

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

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

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

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

Нарешті, процес виконує системний виклик exit і закінчує своє виконання. Процес може бути також завершений внаслідок одержання сигналу. В обох випадках ядро звільняє ресурси, що належать процесу, за винятком коду повернення й статистики його виконання, і переводить процес у стан зомбі. У цьому стані процес перебуває доти, поки батьківський процес не виконає системний виклик wait, після чого вся інформація про процес буде знищена, а батько одержить код повернення процесу, що завершився.
Створення процесу

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

Породжений процес успадковує від батьківського процесу наступні основні характеристики:

  • Способи обробки сигналів (адреси функцій обробки сигналів).

  • Реальні й ефективні ідентифікатори користувача й групи.

  • Значення виправлення пріоритету.

  • Всі приєднані поділювані сегменти пам'яті.

  • Ідентифікатор групи процесів.

  • Термінальну лінію.

  • Поточний каталог.

  • Кореневий каталог.

  • Маску створення файлів (umask).

  • Обмеження ресурсів (ulimit).

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

  • має свій унікальний ідентифікатор.

  • має інший ідентифікатор батьківського процесу, дорівнює ідентифікатору процесу, що породив.

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

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

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

  • Знайти виконується файл

  • Перевірити дозвіл на виконання

  • Прочитати й перевірити заголовок

  • Копіювати аргументи й середовище в ядро

  • Звільнити новий адресний простір

  • Копіювати аргументи й середовище в стек

  • Скинути сигнали

  • Ініциалізувати регістри


Перемикання контексту

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

Контекст перемикається в чотирьох випадках:

  1. Поточний процес переходить у стан сну, очікуючи недоступного ресурсу.

  2. Поточний процес завершує своє виконання.

  3. Якщо після перерахування пріоритетів у черзі на виконання є більше високопріоритетний процес.

  4. Відбувається пробудження більше високопріоритетного процесу.

Перші два випадки відповідають добровільному перемиканню контексту і ядро викликає процедуру перемикання контексту з функцій sleep або exit.

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

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

1   ...   10   11   12   13   14   15   16   17   ...   26

Схожі:

Операційна система unix навчальний посібник iconОпераційна система unix методичні вказівки до виконання лабораторних...
Розроблено кафедрою інформаційних систем І мереж відповідно до освітньо-професійної програми та структурно-логічної схеми підготовки...
Операційна система unix навчальний посібник iconДержавний фінансовий контроль Навчальний посібник
Навчальний посібник рекомендовано до видання науково-методичною радою нук (протокол №1 від 26 лютого 2008 р.)
Операційна система unix навчальний посібник iconКалендарно-тематичне планування навчального матеріалу з інформатики...
Тема Операційна система Windows. Вікна. Файлова система. Операції з папками І файлами
Операційна система unix навчальний посібник iconКалендарно-тематичне планування навчального матеріалу з інформатики...
Тема Операційна система Windows. Вікна. Файлова система. Операції з папками І файлами
Операційна система unix навчальний посібник iconДмитриченко М. Ф., Навчальний посібник
Вища освіта І болонський процес / Дмитриченко М. Ф., Навчальний посібник. К.: 2006. 440 с
Операційна система unix навчальний посібник iconДмитриченко М. Ф., Навчальний посібник
Вища освіта І болонський процес / Дмитриченко М. Ф., Навчальний посібник. К.: 2006. 440 с
Операційна система unix навчальний посібник iconДмитриченко М. Ф., Навчальний посібник
Вища освіта І болонський процес / Дмитриченко М. Ф., Навчальний посібник. К.: 2006. 440 с
Операційна система unix навчальний посібник iconДмитриченко М. Ф., Навчальний посібник
Вища освіта І болонський процес / Дмитриченко М. Ф., Навчальний посібник. К.: 2006. 440 с
Операційна система unix навчальний посібник iconОпераційна система Windows це

Операційна система unix навчальний посібник iconТема. Операційна система Windows. Робота з вікнами
Зменшіть розміри вікна, щоб з’явилися смуги прокручування. Поексперементуйте із ними
Додайте кнопку на своєму сайті:
Школьные материалы


База даних захищена авторським правом © 2014
звернутися до адміністрації
uchni.com.ua
Головна сторінка