русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление приоритетом процессов


Дата добавления: 2015-07-09; просмотров: 699; Нарушение авторских прав


В GNU/Linux используется режим выполнения процессов с разделением вре- мени. В каждый момент времени центральный процессор выполняет инст- рукции одного-единственного процесса, а все остальные процессы находятся в режиме ожидания. Все процессорное время разделено на части — time slices (другое название — TIC). Маловероятно, чтобы процесс находился на испол- нении процессора в течение всего времени TIC. Он может быть снят с испол- нения более "важным" для системы процессом. Поэтому говорят о приори- тете процессов в GNU/Linux.

Процессы, обладающие в системе бóльшим приоритетом, исполняются быст- рее. Процесс выполняется тем быстрее, чем: чаще процесс попадает на ис- полнение, чем полнее он использует промежуток времени time slice.

Работа по обслуживанию очереди процессов осуществляется планировщи- ком. Планировщик вычисляет для каждого процесса величину, которую можно увидеть в поле PRI листинга, выводимого командой ps –l (при- мер 5.23). Чем ниже величина PRI, тем выше приоритет процесса, следова- тельно, быстрее он выполняется, поэтому для избежания путаницы далее в тексте вместо слов "увеличение и уменьшение приоритета" будут исполь- зованы, соответственно, "улучшение и уменьшение приоритета". Величина PRI постоянно изменяется, обеспечивая для процессов, которые давно не бы- ли на исполнении процессором, улучшение приоритета, и, наоборот, для процессов, которые были исполнены только что, — его ухудшение.

 

Пример 5.23. Приоритет процессов

 

$ ps -l

 

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 74 - 783 11c541 pts/0 00:00:00 bash
0 R 4 77 - 618 - pts/0 00:00:00 ps

 



На основании вычисленной величины приоритета PRI ядро определяет, какой процесс следующим попадет на исполнение. В примере 5.23 заметна также величина NI — nice number. Это число, устанавливаемое пользователем, на- зывается иначе относительным приоритетом.

С помощью nice number пользователь может влиять на вычисляемую плани- ровщиком величину приоритета процесса. Чем ниже значение nice number, тем лучше будет приоритет процесса и тем быстрее он будет работать. В GNU/Linux значение nice number задается в пределах от –20 до 19. По умол- чанию nice number равно 0.


 

Для обычных пользователей отведен диапазон положительных значений nice number. В область отрицательных значений эту величину может устанавли- вать только суперпользователь. То есть обычные пользователи могут жерт- вовать производительностью своих приложений ради общего быстродейст- вия системы.

Значение nice number можно установить с помощью команды nice. После нее в качестве аргумента задается команда, которая должна быть исполнена с измененным приоритетом. По умолчанию команда nice увеличивает значе- ние nice number на 10, ухудшая, таким образом, приоритет этого процесса. Если требуется указать иное значение увеличения nice number, то его следует указать после опции -n.

Запустим, например, Bash с ухудшенным приоритетом (пример 5.24).

 

Пример 5.24. Запуск процесса с измененным значением nice number

 

$ nice -n 19 bash

$ ps -l

 

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S - 784 11c541 pts/0 00:00:00 bash
0 S - 780 11c541 pts/0 00:00:00 bash
0 R - 618 - pts/0 00:00:00 ps

$ nice 19

 

В примере 5.24 продемонстрировано, как с помощью команды nice -n 19 bash была запущена оболочка bash с ухудшенным приоритетом. В поле NI для этой оболочки команда ps -l выводит значение 19. Поле PRI этого же лис- тинга показывает, что приоритет запущенной оболочки bash действительно ухудшен (78 у дочерней оболочки против 74 у родительской).

Для установки иного значения nice number для уже исполняющегося процес- са следует использовать команду renice. Эта команда обычно доступна только для суперпользователя. Новое значение nice number указывается в ка- честве аргумента команды renice. С помощью этой команды можно изме- нить nice number для конкретного процесса, заданного с помощью его PID после опции -p или же в качестве второго аргумента. Например, для измене- ния nice number оболочки bash из предыдущего примера можно выполнить команду, показанную в примере 5.25.


 

Пример 5.25. Команда renice

 

# renice 10 2559

2559: old priority 19, new priority 10

# ps -l -p 2559

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

0 S 500 2559 1747 0 76 10 - 782 read_c pts/1 00:00:00 bash

 

Данная команда установила новое значение приоритета (поле NI) для обо- лочки, которая была исходно запущена с nice number 19. Заметно, что при- оритет процесса (см. поле PRI) также изменился.

С помощью команды renice можно изменять приоритет всех процессов для заданного после опции -u пользователя (-g для группы пользователей) — пример 5.26.

 

Пример 5.26. Изменение приоритета процессов заданного пользователя

 

# renice 0 -u user1



<== предыдущая лекция | следующая лекция ==>
Перехват и обработка сигналов в Bash | Права владения файлами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.