Программирование для Linux. Профессиональный подход
Шрифт:
3.2.3. Планирование процессов
Операционная система Linux планирует работу родительских и дочерних процессов независимо друг от друга. Нет гарантии, что один процесс будет запущен раньше другого. и неизвестно, как долго один процесс будет выполняться, прежде чем Linux прервет его работу и передаст управление другому процессу. В частности, к моменту завершения родительского процесса может оказаться, что команда
11
Способ синхронизации двух процессов представлен в разделе. 3 4.1, "Ожидание завершения процесса".
Можно
Для запуска программы с ненулевым фактором уступчивости необходимо воспользоваться командой
Здесь активизируется длительная операция сортировки, которая, благодаря пониженному приоритету, не приведет к сильному снижению производительности системы. Изменить фактор уступчивости выполняющегося процесса позволяет команда
Если требуется менять фактор уступчивости программным путем, воспользуйтесь функцией
Только программа с привилегиями пользователя
3.3. Сигналы
Сигналы — это механизм связи между процессами в Linux. Данная тема очень обширна, поэтому здесь мы рассмотрим лишь наиболее важные сигналы и методики управления процессами.
Сигнал представляет собой специальное сообщение, посылаемое процессу. Сигналы являются асинхронными: когда процесс принимает сигнал, он немедленно обрабатывает его, прерывая выполнение текущей функции и даже текущей строки программы. Есть несколько десятков различных сигналов, каждый из которых имеет свое функциональное назначение. Все они распознаются по номерам, но в программах для ссылки на сигналы пользуются символическими константами. В Linux эти константы определены в файле /usr/include/bits/signum.h (его не нужно включать в программы, для этого есть файл <signal.h>).
В ответ на полученный сигнал процесс выполняет ряд действий в зависимости от типа сигнала. У каждого сигнала есть стандартный обработчик, определяющий, что произойдет с процессом, если он попытается проигнорировать сигнал. Для большинства сигналов можно также задавать явную функцию обработки. В этом случае при поступлении сигнала выполнение программы приостанавливается, выполняется обработчик, а потом программа возобновляет свою работу.
Операционная система Linux посылает процессам сигналы в случае возникновения определенных ситуаций. Например, сигналы
Идентификация
3. Гардемарин ее величества
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Слово авторитета
Я – вор в законе
Детективы:
боевики
рейтинг книги
Газлайтер. Том 5
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Архил...? Книга 2
2. Архил...?
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Аляска
рейтинг книги
Поход
4. Ермак
Фантастика:
боевая фантастика
альтернативная история
рейтинг книги
В поисках христианской свободы
Религия и эзотерика:
прочая религиозная литература
рейтинг книги
Дитя прибоя
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
рейтинг книги
Неучтенный. Дилогия
Неучтенный
Фантастика:
боевая фантастика
попаданцы
рейтинг книги
Стихи и песни
Проза:
русская классическая проза
рейтинг книги