У багатозадачних комп'ютерних системах процеси можуть перебувати у декількох станах. Ці окремі стани не обов'язково розпізнаються ядром операційної системи, але вони є важливими для розуміння роботи процесів.
Основні стани процесів
Наведені нижче стани дійсні для будь-якого типу комп'ютерів. Переважна більшість процесів у цих станах знаходиться у основній пам'яті.
Створений (Created)
При створенні процесу він знаходиться у стані «Створений», або ж «Новий». В такому випадку він очікує дозволу для переходу в стан готовності — «Ready». Такий дозвіл може бути отриманий одразу або через деякий час планувальником операційної системи. В більшості настільних ПК дозвіл надається автоматично. Тим не менше, в операційних системах реального часу процес підтвердження може бути відкладено. В таких ОС перехід в стан готовності надто великої кількості процесів може призвести до перенасичення та перевантаження ресурсів системи, наслідком якого може бути відмова роботи.
Готовність або очікування (Ready)
Процеси у стані готовності завантажуються до основної пам'яті і переводяться в стан очікування виконання на ЦП(чекають на зміну стану диспетчером чи планувальником ОС). Одночасно може бути багато процесів у стані готовності в певний момент роботи системи, наприклад, в однопроцесорній системі тільки один процес може виконуватися в конкретний момент часу, а всі решта процеси, які виконуються «паралельно» очікують на виконання.
При роботі планувальник ОС використовує чергу готовності, або ж чергу запуску. Сучасні комп'ютери здатні виконувати багато процесів одночасно. Але процесори можуть виконувати лише одне завдання одночасно. В такому випадку процеси, які вже готові для виконання зберігаються у спеціальній черзі. Інші процеси, які очікують на певні події, наприклад, зчитування даних з жорсткого диску чи відповіді інтернет-запису, не зберігаються у цій черзі.
Працює (Running)
Процес переходить в стан «Працює» тоді, коли його обрано планувальником або диспетчером для виконання. Команди процесу виконуються на одному з процесорів(або процесорних ядер) системи. На кожному процесорі чи ядрі завжди виконується не більше одного процесу одночасно. Процес може виконуватися у двох режимах: у режимі користувача(User mode) і режимі ядра(Kernel mode).
Kernel mode
- Процеси в цьому режимі мають доступ до адресного простору як ядра, так і користувача
- Kernel mode надає необмежений доступ до апаратного забезпечення, включаючи привілейовані інструкції.
- Деякі команди(наприклад, введення/виведення або переривання) є привілейованими інструкціями, які можуть виконуватися виключно в Kernel mode
- Для переходу в цей режим необхідний системний виклик від користувача
User mode
- Процеси мають доступ лише до своїх власних інструкцій та адресного простору
- Коли система виконує інструкції від імені користувача, це означає, що вона знаходиться в User mode. У випадку, якщо програма у режимі користувача запитує дані операційної системи(за допомогою системних викликів), система мусить переходити у kernel mode для виконання запиту.
- User mode запобігає різним небажаним ситуаціям:
- Віртуальний адресний простір є ізольованим для кожного процесу.
- У режимі користувача кожен процес гарантовано виконуватиметься окремо від інших процесів, що виключає можливість впливу на роботу інших інструкцій.
- Прямий доступ до апаратного забезпечення є забороненим
Заблокований (Blocked)
Процес, заблокований певною подією(наприклад, операціями введення/виведення чи спеціальним сигналом) може приймати стан Blocked з різних причин, як, наприклад, надмірне навантаження на ЦП або вичерпання процесорного часу.
Зупинено (Terminated)
Процес може бути зупинено(переведено в стан «Terminated» із стану «Running») після завершення його роботи або у випадку його умисного завершення. В обох випадках процес переходить до стану «Terminated». Програма, що відповідає цьому процесу, більше не виконується, але сам процес залишається у таблиці процесів як процес-зомбі, допоки процес, який його викликав не виконає системний виклик wait
для виходу, після якого процес буде прибрано з таблиці процесів, що завершить процес його життєдіяльності. Якщо батьківський процес не виконує wait
, то ресурси продовжуватимуть споживатися, що може призвести до витоку ресурсів.
Додаткові стани процесу
В системах, що підтримують віртуальну пам'ять, можливі ще два додаткові стани. В обох цих станах процес «знаходиться» у вторинній пам'яті (переважно — жорсткому диску).
Вивантажений і очікуючий
(Інша назва — призупинений і очікуючий). В системах які підтримують віртуальну пам'ять процес може бути вивантажений з основної пам'яті та поміщений у віртуальну пам'ять . Звідти процес може бути вивантажений у стан «очікуючий».
Вивантажений і блокований
(Інша назва — призупинений і блокований). Процеси які є заблокованими можуть також бути вивантажені. В цьому випадку процес є «вивантажений і очікуючий» і може бути вивантажений у тих же випадках, що і вивантажений і очікуючий процес (хоча в цьому випадку процес буде у блокованому стані і може все ще очікувати доки ресурс стане доступним).
Посилання
- Stallings, William (2005). Operating Systems: internals and design principles (5th edition). Prentice Hall. ISBN .
- Particularly chapter 3, section 3.2, «process states», including figure 3.9 «process state transition with suspend states»
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U bagatozadachnih komp yuternih sistemah procesi mozhut perebuvati u dekilkoh stanah Ci okremi stani ne obov yazkovo rozpiznayutsya yadrom operacijnoyi sistemi ale voni ye vazhlivimi dlya rozuminnya roboti procesiv Riznomanittya staniv procesu zobrazheno na diagrami staniv Strilkami poznacheno mozhlivi perehodi mizh stanami Deyaki z procesiv zberigayutsya v osnovnij pam yati zhovtij kolir inshi v dodatkovij swap pam yati zelenij kolir Osnovni stani procesivNavedeni nizhche stani dijsni dlya bud yakogo tipu komp yuteriv Perevazhna bilshist procesiv u cih stanah znahoditsya u osnovnij pam yati Stvorenij Created Pri stvorenni procesu vin znahoditsya u stani Stvorenij abo zh Novij V takomu vipadku vin ochikuye dozvolu dlya perehodu v stan gotovnosti Ready Takij dozvil mozhe buti otrimanij odrazu abo cherez deyakij chas planuvalnikom operacijnoyi sistemi V bilshosti nastilnih PK dozvil nadayetsya avtomatichno Tim ne menshe v operacijnih sistemah realnogo chasu proces pidtverdzhennya mozhe buti vidkladeno V takih OS perehid v stan gotovnosti nadto velikoyi kilkosti procesiv mozhe prizvesti do perenasichennya ta perevantazhennya resursiv sistemi naslidkom yakogo mozhe buti vidmova roboti Gotovnist abo ochikuvannya Ready Procesi u stani gotovnosti zavantazhuyutsya do osnovnoyi pam yati i perevodyatsya v stan ochikuvannya vikonannya na CP chekayut na zminu stanu dispetcherom chi planuvalnikom OS Odnochasno mozhe buti bagato procesiv u stani gotovnosti v pevnij moment roboti sistemi napriklad v odnoprocesornij sistemi tilki odin proces mozhe vikonuvatisya v konkretnij moment chasu a vsi reshta procesi yaki vikonuyutsya paralelno ochikuyut na vikonannya Pri roboti planuvalnik OS vikoristovuye chergu gotovnosti abo zh chergu zapusku Suchasni komp yuteri zdatni vikonuvati bagato procesiv odnochasno Ale procesori mozhut vikonuvati lishe odne zavdannya odnochasno V takomu vipadku procesi yaki vzhe gotovi dlya vikonannya zberigayutsya u specialnij cherzi Inshi procesi yaki ochikuyut na pevni podiyi napriklad zchituvannya danih z zhorstkogo disku chi vidpovidi internet zapisu ne zberigayutsya u cij cherzi Pracyuye Running Proces perehodit v stan Pracyuye todi koli jogo obrano planuvalnikom abo dispetcherom dlya vikonannya Komandi procesu vikonuyutsya na odnomu z procesoriv abo procesornih yader sistemi Na kozhnomu procesori chi yadri zavzhdi vikonuyetsya ne bilshe odnogo procesu odnochasno Proces mozhe vikonuvatisya u dvoh rezhimah u rezhimi koristuvacha User mode i rezhimi yadra Kernel mode Kernel mode Procesi v comu rezhimi mayut dostup do adresnogo prostoru yak yadra tak i koristuvacha Kernel mode nadaye neobmezhenij dostup do aparatnogo zabezpechennya vklyuchayuchi privilejovaniinstrukciyi Deyaki komandi napriklad vvedennya vivedennya abo pererivannya ye privilejovanimi instrukciyami yaki mozhut vikonuvatisya viklyuchno v Kernel mode Dlya perehodu v cej rezhim neobhidnij sistemnij viklik vid koristuvacha User mode Procesi mayut dostup lishe do svoyih vlasnih instrukcij ta adresnogo prostoru Koli sistema vikonuye instrukciyi vid imeni koristuvacha ce oznachaye sho vona znahoditsya v User mode U vipadku yaksho programa u rezhimi koristuvacha zapituye dani operacijnoyi sistemi za dopomogoyu sistemnih viklikiv sistema musit perehoditi u kernel mode dlya vikonannya zapitu User mode zapobigaye riznim nebazhanim situaciyam Virtualnij adresnij prostir ye izolovanim dlya kozhnogo procesu U rezhimi koristuvacha kozhen proces garantovano vikonuvatimetsya okremo vid inshih procesiv sho viklyuchaye mozhlivist vplivu na robotu inshih instrukcij Pryamij dostup do aparatnogo zabezpechennya ye zaboronenim Zablokovanij Blocked Proces zablokovanij pevnoyu podiyeyu napriklad operaciyami vvedennya vivedennya chi specialnim signalom mozhe prijmati stan Blocked z riznih prichin yak napriklad nadmirne navantazhennya na CP abo vicherpannya procesornogo chasu Zupineno Terminated Proces mozhe buti zupineno perevedeno v stan Terminated iz stanu Running pislya zavershennya jogo roboti abo u vipadku jogo umisnogo zavershennya V oboh vipadkah proces perehodit do stanu Terminated Programa sho vidpovidaye comu procesu bilshe ne vikonuyetsya ale sam proces zalishayetsya u tablici procesiv yak proces zombi dopoki proces yakij jogo viklikav ne vikonaye sistemnij viklik wait dlya vihodu pislya yakogo proces bude pribrano z tablici procesiv sho zavershit proces jogo zhittyediyalnosti Yaksho batkivskij proces ne vikonuye wait to resursi prodovzhuvatimut spozhivatisya sho mozhe prizvesti do vitoku resursiv Dodatkovi stani procesuV sistemah sho pidtrimuyut virtualnu pam yat mozhlivi she dva dodatkovi stani V oboh cih stanah proces znahoditsya u vtorinnij pam yati perevazhno zhorstkomu disku Vivantazhenij i ochikuyuchij Insha nazva prizupinenij i ochikuyuchij V sistemah yaki pidtrimuyut virtualnu pam yat proces mozhe buti vivantazhenij z osnovnoyi pam yati ta pomishenij u virtualnu pam yat Zvidti proces mozhe buti vivantazhenij u stan ochikuyuchij Vivantazhenij i blokovanij Insha nazva prizupinenij i blokovanij Procesi yaki ye zablokovanimi mozhut takozh buti vivantazheni V comu vipadku proces ye vivantazhenij i ochikuyuchij i mozhe buti vivantazhenij u tih zhe vipadkah sho i vivantazhenij i ochikuyuchij proces hocha v comu vipadku proces bude u blokovanomu stani i mozhe vse she ochikuvati doki resurs stane dostupnim PosilannyaStallings William 2005 Operating Systems internals and design principles 5th edition Prentice Hall ISBN 0 13 127837 1 Particularly chapter 3 section 3 2 process states including figure 3 9 process state transition with suspend states