Практичне заняття 9. Адміністрування ОС

Мета роботи: Ознайомитися з основними методами та засобами адміністрування операційних систем

Теоретичні відомості

Процес в ОС UNIX — програма, що виконується у власному віртуальному адресному просторі. Коли користувач входить у систему, автоматично створюється процес, у якому виконується програма командного інтерпретатора. Якщо командному інтерпретаторові зустрічається команда, що відповідає виконуваному файлу, то він створює новий процес і запускає в ньому відповідну програму, починаючи з функції main. Ця запущена програма, у свою чергу, може створити процес і запустити в ньому іншу програму (вона теж повинна містити функцію main) і т. д.

В ОС UNIX виділяється три типи процесів: системні, процеси-демони і прикладні процеси.

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

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

Демони - це не інтерактивні процеси, що запускаються звичайним образом - шляхом завантаження в пам'ять відповідних їм програм, і виконуються у фоновому режимі. Звичайно демони запускаються при ініціалізації системи, але після ініціалізації ядра і забезпечують роботу різних підсистем UNIX: системи термінального доступу, системи печатки, мережних служб і т.д. Демони не зв'язані з жодним користувачем. Велику частину часу демони очікують, поки той або інший процес запросить визначену послугу.

До прикладних процесів відносяться всі інші процеси, що виконуються в системі. Як правило, це процеси, породжені в рамках користувальницького сеансу роботи. Найважливішим користувальницьким процесом є початковий командний інтерпретатор, що забезпечує виконання команд користувача в системі UNIX.

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

Команда ps визначає, які процеси в системі запущений. Якщо неї запустити без усяких параметрів, то вона видає список процесів, запущених у поточній сесії. Якщо ви хочете побачити список усіх процесів, запущених у системі, треба задати ту ж команду з параметром -ax.

Команда ps

Існує три рівноправних формати завдання цієї команди:

ps [-опції]

ps [опції]

ps [-- довге_ім'я_опції [-- довге_ім'я_опції] ...]

При цьому опції різних типів не можна вживати в одній команді.

Приклади:

  • Для того щоб побачити всі процеси в системі, використовуючи стандартну форму виводу:

[user]$ pse

  • Можна до тієї ж команди додати опцію –o, після якої вказати через кому, які саме полючи ви хочете бачити у виводі команди:

[user]$ ps –eo pid,user,cmd

  • Для того, щоб побачити всі процеси в системі, використовуючи форму виводу BSD-систем:

[user]$ ps ax

  • Для того, щоб побачити всі процеси в системі, із застосуванням графічного відображення відносини "предок-нащадок":

[user]$ psef

  • Утім, для того, щоб побачити "ліс" дерев "предок-нащадок", краще скористатися дуже цікавим аналогом команди psef — командою pstree.
  • Для того, щоб побачити, скільки % ЦПУ і пам'яті займають запущені вами процеси:

[user]$ psu

  • Щоб довідатися пріоритет процесу і значення nice, скористайтеся опцією -l:

[user]$ psl

Команда top

Команда ps дозволяє зробити як би "моментальний знімок" процесів, запущених у системі. На відміну від ps команда top відображає стан процесів і їхня активність "у реальному режимі часу".

top — консольна команда UNIX-сумісних операційних систем, виводить список процесів. Команда top показує список процесів, що працюють в цей час, і інформацію про них, включаючи використання ними пам'яті і процесора.

Список інтерактивно формується в реальному часі. Для того, щоб вийти з програми top, натисніть клавішу [q].

Корисні інтерактивні команди, які можна використовувати в top:

[Пробіл] Негайно відновити вміст екрану

[h] Вивести довідку про програму

[k] Знищити процес. Програма запрошує у вас код процесу і сигнал, який буде йому посланий.

[n] Змінити число процесів, що відображаються. Вам пропонується ввести число.

[u] Сортувати за іменем користувача.

[M] Сортувати за об'ємом використовуваній пам'яті.

[P] Сортувати за завантаженням процесора.

Планувальник завдань в Linux відіграє незамінну роль в автоматизації адміністрування операційної системи. Роль планувальника завдань виконує демон cron (crond - у деяких дистрибутивах). Демон cron зазвичай запускаєтьсяпроцесом init в момент запуску системи. Після запуску, демон cron щохвилини переглядає свої таблиці, в яких містяться інформація про періодичність запуску команд і запускає команди, коли значення полів хвилина, година, місяць і хоча б одне з полів число і день_неделі, збігаються з поточним часом.

В / etc / crontab завдання виконуються за допомогою команди run-parts, яка запускає скрипти та програми із зазначених каталогів (/etc/cron.hourly, /etc/cron.daily і т.д.). Кожен рядок запускає з відповідного каталогу завдання щогодини, щодня, щотижня і щомісяця, відповідно рядкам зверху вниз. Зверніть увагу, що всі команди тут запущені від імені користувача root. Зауважте також, що crontab може містити присвоювання значень змінним shell, які будуть встановлені перед запуском команди.

Так само, якщо необхідно запускати якісь команди за особливим розкладом (не щогодини, щодня, щотижня іщомісяця), то таблиці завдань поміщаються в теку /etc/cron.d/.

Кожен користувач системи має свій файл завдань crontab, в якому описано, в який час і які програми запускати від імені цього користувача. Для редагування файлу crontab використовується спеціальна однойменна програма crontab, що дозволяє не переривати процес cron на час редагування. Редагувати вручну таблиці cron не рекомендується.

Остання зміна: Saturday 30 May 2020 15:51 PM