- •«Операционные системы.Командный интерфейс» конспект лекций Тема 1. Введение. Содержание курса
- •Тема 2. Классификация режимов работы ос
- •Диалоговый пакетный
- •Тема 3. Виды нтерфейсов пользователя ос unix
- •Тема 4. Обобщенные принцпы построения современных ос
- •Тема 5. Состав ос unix
- •Тема 6. Среда для работы пользователя
- •Тема 7. Регистрация пользователя в системе
- •Тема 8. Группа коммуникационных команд
- •Тема 9. Группа вспомогательных команд
- •Тема 10. Перенаправление ввода-вывода
- •Файловая система unix
- •Тема 11. Файлы unix
- •Тема 12. Генерация имен файлов
- •Тема 13. Структура системы каталогов unix
- •Тема 14. Управление каталогами в unix
- •Тема 15. Команды поиска файлов в системе каталогов
- •Тема 16. Управление файлами
- •Тема 17. Управление правами доступа к файлам и каталогам
- •Здесь файл fil1.C, владельцем которого является пользова-
- •Тема 18. Конвееры и фильтры
- •Тема 19. Создание и редактирование текстовых файлов
- •Команды удаления текста
- •Введение в shell- программирование
- •Тема 20. Операторы – команды
- •В unix при написании операторов важное значение отводится
- •Тема 21. Управление локальными переменными
- •Тема 22. Подстановка значений переменных
- •Тема 23. Экспортирование локальных переменных в среду shell
- •Тема 24. Проверка условий
- •2. Сравнение числовых значений:
- •3. Сравнение строк:
- •If список_команд1
- •Тема 25. Построение циклов
- •Тема 26. Управление процессами в unix
- •Тема 27. Создание фоновых процессов
- •Тема 28. Управление приоритетами
- •Тема 29. Завершение процессов
- •Тема 30. Перехватывание сигналов
- •Тема 31. Сетевые средства unix
Тема 28. Управление приоритетами
Максимальный приоритет процессов каждого пользователя группы устанавливает администратор. Если при выполнении задания образуются несколько порожденных процессов, то все они имеют одинаковый приоритет равный родительскому. В этом случае все процессы получают ресурсы равными долями (простой режим разделения времени). При необходимости выделения наиболее важных родительских процессов порожденным второстепенным можно понизить приоритет с помощью команды:
nice [-k] имя_программы выполнениепрограммы,указанной
в строке, с пониженным приоритетом.
-k - к-т понижения приоритета (k = 1;...10; по умолчанию k = 10).
Пример 1.
$ prog1 &
$ ps -al
........ PID ...... PRI NI......CMD..
................... 20 sh
.................. . 20 prog1........
т.е. родительский и порожденный процессы имеют приоритет=20
Пример 2.
$ nice -5 prog2 &
[2] 3752
$ps -flu lev
........ PID ...... PRI .....NI.. CMD
.................. . 20 ........ sh
........ 3752 ..... 25 .......5 prog2.
................... 20 .. ......
Приоритет процесса задачи prog2 понижен на 5 единиц, тем самым другие процессы этой группы больше возможностей в использовании ресурсов.
Чем больше число, тем ниже приоритет.
Тема 29. Завершение процессов
Завершение процессов – одна из функций управления процессами. Прекратить выполнение любого процесса можно с помощью команды:
kill [-опции] PID1 [PID2......] - передает сигнал процессу PID
Сигнал - ключевое слово, при получении которого процесс выполняет некоторые действия. Сигналы с использованием команды kill могут передаваться другими прикладными процессами или системными программами (например при появлении некоторых событий, как то сбой в канале, сигнала с таймера, завершения фонового процесса и пр.). Существует двадцать пять видов сигналов, предназначенных для выполнения различных действий процессами при наступлении определенных собутий в системе. С получением большинства сигналов процесс завершается самостоятельно. Тот кто посылает сигнал должен быть владельцем процесса или администратором. Для безусловного и немедленного завершения указанного процесса kill должен послать сигнал с именем TERM (по умолчанию). Другие сигналы передаются с помощью опции -S.
Значения опций:
-S<имя_сигнала> или
-№ - системный номер сигнала
-l - вывод на экран справочника имен сигналов
Сигнал определяет дальнейшее действие процесса. Это еще один способ управления процессами (см. выше).
Примеры опций:
-S KILL - немедленное завершение процесса по сигналу KILL
-9 - то же, но уже по номеру сигнала KILL
Пример .
$kill [-9] 3752
3752: killed
$
Пример завершения фонового процесса:
$kill %1 - указывается номер завершаемого задания
[1] +Terminated inf
$
Если процесс указан идентификатором "0", то команда kill уничтожает все процессы, связанные с текущим shell-ом (завершается головной процесс swapper (имеющий PID=0)) и все связванные с ним порожденные процессы – init, shell, прикладные задачи).
