- стан, процес Якого может буті переведень в стан роботи, як Тільки це візнає потрібнім сделать ОС.
Блокування або, что ті ж самє, сон (sleeping, waiting) - стан, в якому процес НЕ может продовжуваті Виконання, пока не Відбудеться Деяка зовнішня по відношенню до процеса Подія.
Перші два стани часто об'єднують Поняття активного стану процеса.
Для станів готовності и сну СПІЛЬНЕ ті, что процес Не працює. У чому різніця между цімі двома «способами не працювати»?
Готовий до Виконання процес НЕ віконується Тільки тому, что є Інші не менше Готові Процеси, Які на мнение системи більш гідні займатись зараз процесорній годину. У кожен момент часу вибір одного з готових процесів на роль Працюючий візначається логікою роботи ОС. Цею вибір винен Забезпечувати ефективного квазіпараллельну роботи готові процесів. Як вірішується це Завдання - буде Розглянуто нижчих.
На Відміну Від цього, Спляча процес - це всегда процес, что очікує деякої конкретної події. Спляча процес Не зможу заробіті, даже ЯКЩО процесор Раптена виявило вільним. Такий процес, у відповідності Зі своєю Божою, власною логікою, чекає чогось, что має статтю.
Чого ВІН может чекати? Ну, Наприклад:
Завершення розпочатої Операції синхронного вводу / виводу (тоб, Наприклад, процес чекає натіскання клавіші Enter або Закінчення запису на диск);
Звільнення запитаня у системи ресурсу (Наприклад, додаткової области пам'яті або відкритого файлу);
Закінчення заданого інтервалу годині («посплю-но я хвилин десять!") Або Досягнення заданого моменту годині («розбудіть мене Рівно опівночі!") (В обох випадка процес чекає сигналу від запрограмованого таймера);
Сигналу на продовження Дій від Іншого, взаємопов'язаного процеса;
ПОВІДОМЛЕННЯ від системи ПРО необхідність Виконати певні Дії (Наприклад, перемалюваті вміст вікна).
У будь-якому з назвами (і багатьох неназваний) віпадків має стаття Деяка Подія, джерело Якої лежить поза данім процесом.
умовно можна Сказати, что ЯКЩО б в Обчислювальна систему Раптена Було додано ще кілька процесорів, то «Готові» Процеси могли б відразу перейти в стан «роботи», альо «сплячі» продовжіть б свой сон.
Зрозуміло, что процес может Виконувати Очікування путем ціклічної перевіркі очікуваної умови. При цьом ВІН формально залішатіметься активним, розтрачуючі дорогоцінній процесорній годину на активне Очікування. Однак таке решение буде Говорити позбав про крічущу НЕ кваліфікованість програміста. Будь-яка багатозадачна ОС надає в Розпорядження прикладних програм набор функцій, что переводящем процес в стан сну, в якому процес НЕ намагається використовуват процесорній годину (іншімі словами, стан сну є стан пасивного Очікування). Такі Сістемні Функції назіваються блокуючімі. До їх числа відносяться Функції синхронного вводу / виводу, запиту ресурсів, прізупінення до заданого годині, Отримання Повідомлень и Багато других.
Оскількі ОС бере на себе Блокування, «усіпляння» процеса, вона винна Забезпечити и его розблокування, «пробудження». Щоб це стало можливіть, система винна для шкірного Спляча процеса пам «ятати,« чого ВІН чекає », тоб пам» ятати умови пробудження процес...