Router# show process
CPU utilization for five second: 0%/0%; one minute: 0%; five minutes: 0%
PID | QTy | PC | Runtime(ms) | Invoked | uSecs | Stacks | TTY | Process |
M* | 10020/ | Exec | ||||||
Lst | 6024E528 | 5752/ | Check heaps | |||||
Cwe | 602355E0 | 5672/ | Pool Manager | |||||
Mst | 6027E128 | 5632/ | Timers | |||||
Mwe | 602F3E60 | 5656/ | OIR Handler | |||||
Msi | 602FA560 | 5628/ | EnvMon | |||||
Lwe | 5140/ | ARP Input | ||||||
Mwe | 6031C188 | 5680/ | RARP Input |
Рис.5.8. Результат роботи команди show process
Нижче описані значення полів виводу команди show process.
PID – ідентифікатор процесу (process identifier). Кожному процесу призначається унікальний ідентифікатор, який дозволяє розрізняти процеси в системі.
Qty –приорітет процесу і його стан. Перший сисвол даного поля показує приорітет процесу:
K –приорітет процесу не призначено, так як процес був «вбитий»;
D– немаєприорітету, так як процес розрушено;
X –немає приорітету, так як процес пошкоджено;
C –критичний приорітет;
H –високий приорітет;
M –середній приорітет;
L –низький приорітет;
Два наступних символа означають поточний стан процесу.
* -в даний момент процес виконується центральним процесором.
E –процес очікує події.
S –процес призупинено.
rd –процес готовий до виконання.
we –процес простоює в очікуванні події.
sa –процес простоює, в очікуванні деякого абсолютного часу.
si –процес простоює, очікуючи закінчення деякого інтервалу часу.
sp –процес простоює, очікуючи закінчення часового інтервалу (періодично).
st –процес простоює, очікуючи закінчення часового інтервалу таймера.
hg –процес «підвішено».
хx –«мертвий» процес.
РС– значення процесорного регістру program counter (програмний лічильник) на момент останнього виконання процесу. Дане значення представляє собою адресу комірки пам’яті, з якої буде продовжено виконання відповідного процесу при його наступному доступі до центрального процесора. Нульове значення свідчить про те, що процес в даний час виконується процесором.
Runtime (час виконання) –сумарний період часу виконання (в мілісекундах) процесу центральним процесором.
Invoked (активізація)дане поле відображає значення лічильника активізації даного процесу центральним процесором з моменту його (процесу) створення.
uSecs –середнє значення періоду виконання процесу при його активізації.
Stacks – статистика використання простору стека. Число праворуч від косої риски означає загальний розмір стекового простору, число ліворуч – розмір вільної області.
TTY – консольний пристрій, що зв’язаний з даним процесом. Нульове значення свідчить про те, що в процеса немає консолі, або що він зв’язаний з головною системною консоллю.
Process – параметер імені процесу. Дане ім’я не є унікальним (кілька копій одного процесу може виконуватись одночасно). Але ідентифікатори процесів завжди є унікальними.
Якщо виконувати команду show process на різних системах IOS, то можна помітити, що деякі процеси присутні у кожній системі. Більшість з тих процесів виконують сервісні функції або обслуговують інші процеси. В таблиці 5.2 наведено список таких процесів з описом виконаних ними задач.
Таблиця 5.2. Загальносистемні процеси і функції
Процес | Функція |
EXEC | Інтерфейс командної стрічки (CLI) консолі, або підключеної напряму термінальних асинхронних ліній. Процес EXEC приймає ввід від користувача і представляє інтерфейс для інтерпретатора команд (parser) |
Pool menager | Управлыння буферними пулами (бальш детальна інвформація в розділі «Управління пакетним буфером») |
Check heaps | Процес періодично перевіряє цілісність виконуваного коду системи IOS і структури кучі |
Per-minute jobs | Системний процес, який виконується кожні 60 сек., здійснюючи фонові сервісні задачі, наприклад перевірку цілісності стеків процесів |
Per-second jobs | Системний процес, що обслуговує задачі, які вимагають щосекунд-ного виконання |
Critical back-ground | Процес з критичним приорітетом, що надає необхідні системі функції, наприклад виділення додаткових елементів черги системи IOS при необхідності |
Net bасkground | Відсилає пакети життєзабезпечення мережевих інтерфейсів, дезактивує інтерфейси і змінює їх стан |
Logger | Проглядає повідомлення (відлагодження, повідомлення про помилки і інформаційні повідомлення), вистроїні в чергу повідомлень іншими процесами через ядро системи, і виводить їх на консоль і (при необхідності) на віддалений сервер |
TTY background | Відслідковує підключені асинхронні термінальні лінії і запускає EXEC при їх активації |
Всі описані вище процеси (за виключенням EXEC) створюються ядром системи під час ініціалізації і працюють в ОС IOS аж до її зупинки.
Планувальник системи IOS
В термінах операційної системи (див. главу 5.І) ядро являє собою центральну частину ОС і виконується в спеціальному захищеному режимі процесора та керує всіма системними ресурсами. Структура ядра Cisco IOS відрізняється від ядер інших ОС. Зокрема ядро IOS не представлене окремим модулем, а представляється широким набором компонентів і функцій, які зв’язані з іншими частинами системи і виконеється на рівні з нимию Тобто для ядра IOS не існує спеціального захищеного режиму виконання.
Ядро операційної системи IOS планує виконання процесів, управляє пам’яттю, надає сервісні функції для захоплення і обробки апаратних переривань, підтримує таймери і обробляє програмні виключення.
Всі задачі, що стосуються планування процесів, цілком і повністю покладаються на планувальник (scheduler). Планувальник системи IOS координує роботу всіх процесів в системі з допомогою черг процесів (process queue), кожна з яких відповідає певному стану процесу. Черги також зберігають інформацію про контексти процесів у відповідних станах. Процеси переходять з одного стану в інший, а планувальник переміщує їх контексти із однієї черги в іншу. Існують наступні черги процесів:
Черга простою містить процеси, які ще активні, але знаходяться в стадії очікування події.
Черга «мертвих» процесів містить процеси, виконання яких було завершено, однак перед тим як вони будуть повністю видалені з системи, то зайняті ними ресурси повинні бути звільнені.
Черга готових процесів містить процеси готові для виконання процесором. Існують чотири черги готових процесів – по одній для кожного приорітету виконання:
Критичний;
Високий;
Середній;
Низький.
Коли процес, що виконується призупиняється, управління ресурсами буру на себе планувальник. Використовуючи спеціальний алгоритм, планувальник вибирає з черги готових процесів один і надає йому ресурси процесора. Розглянемо дію планувальника поетапно.
Етап 1 | Спочатку планувальник перевіряє чергу процесів з критичним приорітетом. Він вибирає з цієї черги процеси один за одним до тих пір, поки кожен не виконається по одному разу. |
Етап 2 | Після того, як критичні процеси мали можливість виконатись хоча б по одному разу, планувальник перевіряє чергу процесів з високим приорітетом. Якщо немає готових до виконання процесів з високим приорітетом, то планувальник пропускає етап 3 і переходить до огляду черги процесів з середнім приорітетом. Якщо в черзі є процеси з високим приорітетом, то планувальник вибирає з черги процеси на виконання. В інтервалах між обробкою процесів з високим приорітетом планувальник заглядає в чергу з критичним приорітетом і виконує всі наявні там процеси. Після того як всі процеси з високим приорітетом виконались по одному разу, планувальник пропускає черги процесів з середнім та низьким приорітетами та повертається до першого етапу. |
Етап 3 | Після того як в черзі процесів з високим приорітетом не залишилось жодного процесу, планувальник перевіряє чергу процесів з середнім приорітетом. Якщо процесів в даній черзі немає, то планувальник переходить до етапу 4 і перевіряє чергу низькоприорітетних процесів. В іншому випадку планувальник «витягує» з черги процеси і виконує їх. Під час виконання процесів з середнім приорітетом планувальник перевіряє чергу процесів з високим приорітетом і виконує їх всіх (заглядаючи в чергу з критичним приорітетом) перед тим, як перейти до виконання чергового процесу з середнім приорітетом. Після того як всі процеси з черги виконались, планувальник пропускає етап 4 і переходить до етапу 1. Планувальник пропускає чергу низькоприорітетних процесів максимум 15 раз, перед тим як перейти до етапу 4. Цей поріг дозволяє запобігти блокуванню низькоприорітетних процесів. |
Етап 4 | Після того як всі процеси з високим і середнім приорітетами були виконані (або виконання даного пункту було пропущено 15 разів), планувальник переходить до черги низькоприорітетних процесів. Планувальник «витягує» з черги процес і виконує його. Між виконанням низькоприорітетних процесів планувальник виконує процеси з середнім приорітетом (заглядаючи в черги з високим та критичним приорітетами). |
Етап 5 | На завершення планувальник повертається до виконання етапу 1 |
Дата добавления: 2016-05-05; просмотров: 534;