- •Файловые системы
- •Понятие процессов в ос образ процесса
- •Распределенная память или общая память
- •Именованные/Неименованные каналы
- •Программный поток. Понятие и использование
- •Сегментная и страничная организация памяти. Виртуальная память
- •Сокеты tcp и udp
- •Объекты синхронизации
- •Состояние процессов
- •Принципы завершения процессов
Состояние процессов
Поняття процесу характеризує деяку сукупність набору виконуючих команд, асоційованих з ними ресурсів (виділена для виконання пам'ять або адресний простір, стеки, використовувані файли і пристрої введення-виведення і т. д.) і поточного моменту його виконання (значення регістрів, програмного лічильника, стан стека і значення змінних), що знаходиться під управлінням операційної системи. Все, що виконується в обчислювальних системах (не тільки програми користувачів, але і, можливо, певні частини операційних систем), організовано як набір процесів. Зрозуміло, що реально на одно процесорній комп'ютерній системі в кожен момент часу може виконуватися тільки один процес. Для мультипрограмних обчислювальних систем псевдопараллельна обробка декількох процесів досягається за допомогою перемикання процесора з одного процесу на інший. Поки один процес виконується, інші чекають своєї черги.
Як бачимо, кожен процес може знаходитися як мінімум в двох станах: процес виконується і процес не виконується. Діаграма станів процесу в такій моделі зображена на рис. 2.1.
Рис. 2.1. Найпростіша діаграма станів процесу
Процес, що знаходиться в стані процес виконується, через деякий час може бути завершений операційною системою або припинений і знову переведений у стан процес не виконується. Призупинення процесу відбувається з двох причин: для його подальшої роботи знадобилося яка-небудь подія (наприклад, завершення операції введення-виведення) або закінчився часовий інтервал, відведений операційною системою для роботи даного процесу. Після цього операційна система за певним алгоритмом вибирає для виконання один з процесів, що знаходяться в стані процес не виконується, і переводить його в стан процес виконується. Новий процес, що з'являється в системі, спочатку поміщається в стан процес не виконується.
Це дуже груба модель, вона не враховує, зокрема, те, що процес, вибраний для виконання, може все ще чекати події, через який він був призупинений, і реально до виконання не готовий. Для того щоб уникнути такої ситуації, розіб'ємо стан процес не виконується на два нових стану: готовність і очікування (див. рис. 2.2).
Рис. 2.2. Більш детальна діаграма станів процесу
Будь-який новий процес, що з'являється в системі, потрапляє в стан готовність. Операційна система, користуючись будь-яким алгоритмом планування, вибирає один з готових процесів і переводить його в стан виконання. У стані виконання відбувається безпосереднє виконання програмного коду процесу. Вийти з цього стану процес може з трьох причин:
операційна система припиняє його діяльність;
він не може продовжувати свою роботу, поки не відбудеться певна подія, і операційна система переводить його в стан очікування;
в результаті виникнення переривання в обчислювальній системі (наприклад, переривання від таймера після закінчення передбаченого виконавчі) його повертають в стан готовність.
Зі стану очікування процес потрапляє в стан готовність після того, як очікувана подія відбулася, і він знову може бути обраний для виконання.
Наша нова модель добре описує поведінку процесів під час їх існування, але вона не акцентує уваги на появу процесу в системі і його зникнення. Для повноти картини нам необхідно ввести ще два стани процесів: народження і закінчив виконання (див. рис. 2.3).
Рис. 2.3. Діаграма станів процесу, прийнята в курсі
Тепер для появи в обчислювальній системі процес повинен пройти через стан народження. При народженні процес отримує в своє розпорядження адресний простір, до якого завантажується програмний код процесу; йому виділяються стек і системні ресурси; встановлюється початкове значення програмного лічильника цього процесу і т. д. Народжений процес переводиться в стан готовність. При завершення своєї діяльності процес зі стану виконання потрапляє в стан закінчив виконання.
У конкретних операційних системах стану процесу можуть бути ще більш деталізовані, можуть з'явитися деякі нові варіанти переходів з одного стану в інший. Так, наприклад, модель станів процесів для операційної системи Windows NT містить 7 різних станів, а для операційної системи Unix - 9. Проте так чи інакше, всі операційні системи підкоряються викладеної вище моделі.
