- 10.6.3. Группы процессов
- Читайте также
- 9.2. Группы процессов
- 10.6. Сеансы и группы процессов
- 10.6.4. Висячие группы процессов
- Текущие и фоновые группы процессов
- Группы
- 3.3. Группы ключевых процессов
- ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ
- 1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями
- 2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации
- 3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом
- 4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов
- 10.6. Сеансы и группы процессов
- Читайте также
- 9.2. Группы процессов
- 10.6.1. Сеансы
- 10.6.3. Группы процессов
- 10.6.4. Висячие группы процессов
- Группы и сеансы
- Текущие и фоновые группы процессов
- Группы и сеансы
- 3.3. Группы ключевых процессов
- ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ
- 1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями
- 2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации
- 3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом
- 4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов
10.6.3. Группы процессов
Одной из главных целей Unix было создание набора простых инструментов, которые могут быть использованы вместе сложными способами (с помощью механизмов, подобных программным каналам). Большинство пользователей Linux делали нечто вроде следующего практического примера этой философии:
Другое популярное средство, появившееся в Unix достаточно давно — управление заданиями (job control). Управление заданиями дает возможность пользователям прерывать текущее задание (известное как задание переднего плана (foreground task)) в то время, пока они уходят и делают на терминале что-то другое. Когда приостановленное задание представляет собой последовательность процессов, работающих вместе, система должна отслеживать, какие именно процессы должны быть приостановлены, когда пользователь желает приостановить задание переднего плана. Группы процессов позволяют системе видеть, какие процессы работают вместе, а потому должны управляться совместно средствами управления заданиями.
Процессы добавляются в группы с помощью setpgid().
int setpgid(pid_t pid, pid_t pgid);
pid — это процесс, который должен быть помещен в новую группу (0 обозначает текущий процесс), pgid — это идентификатор группы процессов, к которой должен принадлежать процесс pid, или 0, если процесс должен быть включен в новую группу процессов, чей pgid тот же, что и pid процесса. Подобно сеансам, лидер группы процессов — это процесс, чей pid совпадает в pgid группы.
Правила применения setpgid() несколько сложны.
1. Процесс может устанавливать группу для себя или одного из своих потомков. Он не может изменять группу для любого другого процесса в системе, даже если процесс, вызвавший setpgid(), имеет административные полномочия.
2. Лидер сеанса не может изменить свою группу.
3. Процесс не может быть перемещен в группу, чей лидер представляет другой сеанс, чем он сам. Другими словами, все процессы в группе должны относиться к одному и тому же сеансу.
Вызов setpgid() помещает вызывающий процесс в свою собственную группу и собственный сеанс. Это необходимо для того, чтобы гарантировать, что два сеанса не содержат процессы, принадлежащие к одной и той же группе.
Полный пример групп процессов будет приведен при обсуждении системы управления заданиями в главе 15.
Когда соединение с терминалом теряется, ядро посылает сигнал (SIGHUP; подробнее о сигналах рассказывается в главе 12) лидеру сеанса, содержащему группу процессов переднего плана данного терминала. Обычно это командная оболочка. Это позволит оболочке безусловно прерывать пользовательские процессы, извещая их о том, что пользователь выходит из системы (обычно посредством SIGHUP), либо выполнить некоторые другие действия (или бездействие). Хотя это все может показаться усложненным, это дает возможность лидеру группы сеанса принимать решения о том, как управлять закрывающимися терминалами, вместо того, чтобы возлагать эту обязанность на ядро. Это также дает возможность администраторам гибко управлять политиками пользовательских учетных записей.
Определение группы процесса может быть выполнено просто, с помощью функций getpgid() и getpgrp().
pid_t getpgid(pid_t pid) Возвращает pgid процесса pid. Если pid равен 0, возвращается pgid текущего процесса. Для вызова не требуется никаких специальных полномочий. Любой процесс может определять группу, к которой принадлежит любой другой процесс. pid_t getpgrp(void) Возвращает pgid текущего процесса pid (эквивалентно getprgid(0))
Читайте также
9.2. Группы процессов
9.2. Группы процессов Группа процесса является группой связанных процессов, которые в целях управления заданием (job) рассматриваются вместе. Процессы с одним и тем же ID группы процессов являются членами группы процессов, а процесс, PID которого равен ID группы процессов,
10.6. Сеансы и группы процессов
10.6. Сеансы и группы процессов В Linux, как и в других системах Unix, пользователи обычно взаимодействуют с группами взаимосвязанных процессов. Хотя изначально они входят через единственный терминал и используют единственный процесс (а именно — оболочку, предоставляющую
10.6.4. Висячие группы процессов
10.6.4. Висячие группы процессов Механизм прерывания процессов (либо возобновления их работы после приостановки) при исчезновении их сеанса довольно сложен. Представьте себе сеанс со многими группами процессов в нем (см. рис. 10.1). Сеанс запущен на терминале, и обычная
Текущие и фоновые группы процессов
Текущие и фоновые группы процессов Как было показано, для каждого управляющего терминала существует сеанс, включающий одну или несколько групп процессов. Одна из этих групп является текущей (foreground group), а остальные фоновыми (background group).[27] Сигналы SIGINT и SIGQUIT, которые
Группы
Группы С группами мы уже знакомы: они имеются в любой уважающей себя «социалке», например, в тех же Контактах. Фактически это самый обычный форум, болтальная тусовка, где близкие по духу слои общественности могут вволю обсасывать любую тему, словоблудствуя в рамках оной в
3.3. Группы ключевых процессов
3.3. Группы ключевых процессов Каждый уровень зрелости, кроме первого, состоит из нескольких групп ключевых процессов, указывающих на области концентрации усилий по совершенствованию производственного процесса организации. Группы ключевых процессов определяют круг
ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ
ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ Ниже перечислены цели всех групп ключевых процессов по уровням
1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями
1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями Цель 1. Установление контроля над системными требованиями к ПО в целях формирования базовой линии, используемой разработчиками ПО и руководством проекта.Цель 2. Поддержка
2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации
2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации Цель 1. Координация мероприятий по разработке и усовершенствованию производственного процесса в рамках всей организации.Цель 2. Выявление преимуществ и
3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом
3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом Цель 1. Планирование работ по количественному управлению процессом.Цель 2. Установление количественного контроля над выполнением производственного процесса проекта.Цель
4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов
4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов Цель 1. Планирование работ по предотвращению дефектов.Цель 2. Поиск и выявление общих причин возникновения дефектов.Цель 3. Определение приоритетов для общих причин возникновения
10.6. Сеансы и группы процессов
В Linux, как и в других системах Unix, пользователи обычно взаимодействуют с группами взаимосвязанных процессов. Хотя изначально они входят через единственный терминал и используют единственный процесс (а именно — оболочку, предоставляющую интерфейс командной строки), пользователи затем запускают множество процессов в результате перечисленных ниже действий.
• Запуск неинтерактивных заданий в фоновом режиме.
• Переключение между интерактивными заданиями с помощью управления заданиями (job control), которое более подробно обсуждается в главе 15.
• Запуск множества процессов, взаимодействующих через программные каналы.
• Запуск оконной системы, вроде X Window System, которая позволяет открывать несколько терминальных окон.
Чтобы управлять всеми этими процессами, ядру необходимо группировать процессы более сложным образом, чем простое отношение «родительский-дочерний», которое мы описали. Этот способ группировки называется сеансами и группами процессов. На рис. 10.1 показано отношение между сеансами, группами процессов и процессами.
Рис. 10.1. Сеансы, группы процессов и процессы
Читайте также
9.2. Группы процессов
9.2. Группы процессов Группа процесса является группой связанных процессов, которые в целях управления заданием (job) рассматриваются вместе. Процессы с одним и тем же ID группы процессов являются членами группы процессов, а процесс, PID которого равен ID группы процессов,
10.6.1. Сеансы
10.6.1. Сеансы Когда пользователь выходит из системы, ядро должно прервать все процессы, которые пользователь запустил (иначе может остаться множество процессов, которые будут ожидать ввода, а тот никогда не последует). Чтобы упростить эту задачу, процессы организуются в
10.6.3. Группы процессов
10.6.3. Группы процессов Одной из главных целей Unix было создание набора простых инструментов, которые могут быть использованы вместе сложными способами (с помощью механизмов, подобных программным каналам). Большинство пользователей Linux делали нечто вроде следующего
10.6.4. Висячие группы процессов
10.6.4. Висячие группы процессов Механизм прерывания процессов (либо возобновления их работы после приостановки) при исчезновении их сеанса довольно сложен. Представьте себе сеанс со многими группами процессов в нем (см. рис. 10.1). Сеанс запущен на терминале, и обычная
Группы и сеансы
Группы и сеансы После создания процесса ему присваивается уникальный идентификатор, возвращаемый системным вызовом fork(2) родительскому процессу. Дополнительно ядро назначает процессу идентификатор группы процессов (process group ID). Группа процессов включает один или более
Текущие и фоновые группы процессов
Текущие и фоновые группы процессов Как было показано, для каждого управляющего терминала существует сеанс, включающий одну или несколько групп процессов. Одна из этих групп является текущей (foreground group), а остальные фоновыми (background group).[27] Сигналы SIGINT и SIGQUIT, которые
Группы и сеансы
Группы и сеансы Группы процессов и сеансы уже обсуждались в главе 2. Такое представление набора процессов используется в UNIX для управления доступом к терминалу и поддержки пользовательских сеансов работы в системе. Перечислим еще раз наиболее важные понятия, связанные с
3.3. Группы ключевых процессов
3.3. Группы ключевых процессов Каждый уровень зрелости, кроме первого, состоит из нескольких групп ключевых процессов, указывающих на области концентрации усилий по совершенствованию производственного процесса организации. Группы ключевых процессов определяют круг
ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ
ЦЕЛИ КАЖДОЙ ГРУППЫ КЛЮЧЕВЫХ ПРОЦЕССОВ Ниже перечислены цели всех групп ключевых процессов по уровням
1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями
1. Группы ключевых процессов для уровня 2: повторяемый уровень Управление требованиями Цель 1. Установление контроля над системными требованиями к ПО в целях формирования базовой линии, используемой разработчиками ПО и руководством проекта.Цель 2. Поддержка
2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации
2. Группы ключевых процессов для уровня 3: определенный уровень Координация производственного процесса организации Цель 1. Координация мероприятий по разработке и усовершенствованию производственного процесса в рамках всей организации.Цель 2. Выявление преимуществ и
3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом
3. Группы ключевых процессов для уровня 4: управляемый уровень Количественное управление процессом Цель 1. Планирование работ по количественному управлению процессом.Цель 2. Установление количественного контроля над выполнением производственного процесса проекта.Цель
4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов
4. Группы ключевых процессов для уровня 5: оптимизирующий уровень Предотвращение дефектов Цель 1. Планирование работ по предотвращению дефектов.Цель 2. Поиск и выявление общих причин возникновения дефектов.Цель 3. Определение приоритетов для общих причин возникновения