Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Тема: Процессы. Управление процессами.




    Цель работы: Изучение основных команд для контроля состояния запущенных процессов в ОС Linux.

    Программой называется исполняемый файл, а процессом называется последовательность операций программы или часть программы при ее выполнении. В Unix-подобных системах одновременно может выполняться множество процессов (эту особенность часто называют мультипрограммированием или многозадачным режимом). Процесс – это фундаментальное понятие в Unix. С помощью процессов происходит управление памятью и ресурсами ввода-вывода, используемыми для выполнения программы. На первый взгляд кажется, что в Unix происходит все одновременно, однако на самом деле в конкретный момент времени выполняется только один процесс. Иллюзию параллельного выполнения создает и поддерживает метод, называемый «квантованием времени», с помощью которого Unix через определенные промежутки времени (как правило, каждые 20 миллисекунд) меняет выполняемый процесс. Процессы сменяют друг друга настолько быстро, что кажется, что они выполняются одновременно, тогда как в реальности выполнение каждого процесса занимает лишь малую долю суммарного времени.

    Процесс состоит из адресного пространства и набора структур данных, содержащихся внутри ядра. Адресное пространство представляет собой совокупность страниц памяти, которые ядро выделило для выполнения процесса. Адресное пространство содержит сегменты для кода программы, которую выполняет процесс, используемые процессом переменные, стек процесса и различную вспомогательную информацию, необходимую ядру во время работы процесса.

    В структурах данных ядра хранится различная информация о каждом процессе. К наиболее важным сведениям относятся:

- Таблица распределения памяти процесса;

- Текущий статус процесса;

- Приоритет выполнения процесса;

- Информация о ресурсах, которые использует процесс;

- Маска обработки процесса;

- Владелец процесса.

Каждому новому процессу, созданному ядром, присваивается уникальный идентификационный номер (PID).

Исходный процесс в терминологии ОС Unix называют родительским, а его клон – порожденным. Помимо собственного идентификатора, каждый процесс имеет атрибут PPID, т.е. идентификатор своего родительского процесса.

UID – это идентификационный номер пользователя, создавшего данный процесс. Вносить изменения в процесс могут только его создатель и привилегированный пользователь.

От приоритета процесса зависит, какую часть времени центрального процессора он получит. Выбирая процесс для выполнения, ядро находит процесс с самым высоким «внутренним приоритетом».

Непосредственно установить внутренний приоритет невозможно, но можно установить значение nice, которое существенно влияет на внутренний приоритет.

Процессы не появляются в системе просто так и не создаются спонтанно ядром. Новые процессы порождаются другими процессами.

По состоянию процессов процессы могут быть:

Выполнимый – процесс можно выполнять.

Ожидающий – процесс ждет выделения какого-либо ресурса.

Зомби – процесс пытается «умереть».

Остановленный – процесс приостановлен (нет разрешения на выполнение)

Текущий контроль процессов: команда ps

    ps - выдача информации о состоянии процессов

СИНТАКСИС

   ps [-e] [-d] [-a] [-f] [-l] [-n файл_с_системой] [-t список_терминалов]

       [-p список_идентификаторов_процессов]

       [-u список_идентификаторов_пользователей]

       [-g список_идентификаторов_лидеров_групп]

ОПИСАНИЕ

    Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.

    Некоторые опции имеют один аргумент или список аргументов. Аргументы в списке могут быть либо отделены друг от друга запятыми, либо все вместе заключены в двойные кавычки и отделены пробелами или запятыми. Аргументы в списке_процессов и в списке_групп должны быть числами.

    Командой ps обрабатываются следующие опции:

    -e Вывести информацию обо всех процессах.

    -d Вывести информацию обо всех процессах, кроме лидеров групп.

    -a Вывести информацию обо всех наиболее часто запрашиваемых процессах, то есть обо всех процессах, кроме лидеров групп и процессов, не ассоциированных с терминалом.

    -f Генерировать полный листинг (см. ниже разъяснение смысла колонок).

    -l Генерировать листинг в длинном формате (см. ниже).

    -n файл_с_системой

    Считать, что операционная система загружена из файла_с_системой, а не из файла /unix.

    -t список_терминалов

    Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал - это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty.

    -p список_идентификаторов_процессов

    Выдавать информацию только об указанных процессах.

    -u список_идентификаторов_пользователей

    Выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f - в символьном.

    -g список_идентификаторов_лидеров_групп 

Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы - это процесс, номер которого идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы.

Расширенный просмотр запущенных процессов – команда ps –aux.

Пояснения к выходной информации команды ps –aux:

USER – имя владельца процесса.

PID – идентификатор процесса.

%CPU – доля времени центрального процессора (в %), выделенная данному процессу.

%MEM – часть реальной памяти, используемая данным процессом.

VSZ – виртуальный размер процесса в килобайтах.

RSS – Размер резидентного набора (количество 1К-страниц в памяти).

TTY – идентификатор управляющего терминала.

STAT – текущий статус процесса:

    R – выполнимый;

    D – кратковременное ожидание;

    S – ожидающий > 20 c;

    I – ожидающий <20 c;

    Z – зомби;

    T – остановленный;

    L – блокирован;

    S – процесс лидер сеанса.

START – время запуска процесса;

TIME – Время центрального процессора, потребленное процессом;

COMMAND – имя и аргументы команды.

    За более подробной информацией по данной команде обращаться к страницам руководства.

 

    Улучшенный текущий контроль процессов: команда top.

    Выдает регулярно обновляемую сводку активных процессов и используемых ими ресурсов.

Изменение приоритета выполнения: команды nice и renice.

    nice - выполнение команды с пониженным приоритетом

СИНТАКСИС

nice [-коэффициент_понижения] команда [аргумент ...]

ОПИСАНИЕ

    Команда nice выполняет команду с пониженным приоритетом. Коэффициент_понижения задается в диапазоне 1-19 (по умолчанию равен 10).

    Суперпользователь может выполнять команды с повышенным   приоритетом, для этого нужно указать отрицательный коэффициент_понижения, например --10.

    Команда nice возвращает код завершения подчиненной команды.

nice - изменение приоритета процесса

СИНТАКСИС

   int nice (incr)

   int incr;

ОПИСАНИЕ

   Системный вызов nice увеличивает поправку к приоритету вызывающего процесса на величину incr. Поправка к приоритету - неотрицательное число; чем оно больше, тем ниже приоритет процесса в смысле использования процессора.

   Максимальное (39) и минимальное (0) значения поправки к приоритету ограничиваются системой. (Подразумеваемое значение поправки равно 20). Эти значения используются, когда делается попытка выйти за соответствующую границу.

   [EPERM] Системный вызов nice завершается неудачей и не изменяет поправку к приоритету, если аргумент incr отрицателен или больше 39, а действующий идентификатор пользователя вызывающего процесса не является идентификатором суперпользователя.

В случае успешного завершения системный вызов nice возвращает новое значение поправки к приоритету минус 20. В случае ошибки возвращается -1, а переменной errno присваивается код ошибки.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 221.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...