русс | укр

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

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

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

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


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

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

Процессы в Linux

В операционной системе Linux процесс, или задание, представляется структурой данных taskstruct. Linux поддерживает таблицу task, представляющую собой линейный вектор указателей на каждую определенную в данный момент структуру данных task_struct. В этой структуре данных информация разбита на следующие категории.

  • Состояние. Состояние выполнения процесса (выполняющийся, готовый к выполнению, приостановленный, остановленный, зомби).
  • Информация по планированию. Информация, которая нужна операционной системе Linux для планирования процессов. Процесс может быть обычным или выполняющимся в реальном времени; кроме того, он обладает некоторым приоритетом. Процессы, выполняющиеся в реальном времени, планируются до обычных процессов; в каждой из категорий можно использовать относительные приоритеты. Счетчик ведет отсчет времени, отведенного процессу.
  • Идентификаторы. Каждый процесс обладает своим собственным идентификатором, а также идентификаторами пользователя и группы. Идентификатор группы используется для того, чтобы назначить группе пользователя права доступа к ресурсам.
  • Обмен информацией между процессами. В операционной системе Linux используется такой же механизм межпроцессного взаимодействия, как и в операционной системе UNIX SVR4, описанной в главе 6, "Взаимоблокировка и голодание".
  • Связи. Каждый процесс содержит в себе связи с параллельными ему процессами, с родственными ему процессами (с которыми он имеет общий родительский процесс) и связи со всеми своими дочерними процессами.
  • Время и таймеры. Сюда входит время создания процесса, а также количество процессорного времени, затраченного на данный процесс. С процессом также могут быть связаны интервальные таймеры (один или несколько). Интервальный таймер задается в процессе с помощью системного вызова; после истечения периода таймера процессу отправляется соответствующий сигнал. Таймер может быть создан для одноразового или периодического использования.
  • Файловая система. Содержит в себе указатели на все файлы, открытые данным процессом.
  • Виртуальная память. Определяет отведенную данному процессу виртуальную память.
  • Контекст, зависящий от процессора. Информация по регистрам и стеку, составляющая контекст данного процесса.
    На рис. 4.18 показаны состояния выполнения процесса.
  • Выполняющийся. Это состояние отвечает на самом деле двум состояниям: текущий процесс либо выполняется, либо готов к выполнению.
  • Прерываемый. Это состояние блокировки, в котором процесс ожидает наступления события, например, завершения операции ввода-вывода, освобождения ресурса или сигнала от другого процесса.
  • Непрерываемый. Это состояние блокировки другого рода. Его отличие от предыдущего состоит в том, что в непрерываемом состоянии процесс непосредственно ожидает выполнения какого-то аппаратного условия, поэтому он не воспринимает никаких сигналов.
  • Остановленный. Процесс был остановлен и может быть продолжен только при соответствующем воздействии другого процесса. Например, процесс, который находится в состоянии отладки, может перейти в состояние остановки.
  • Зомби. Процесс был прекращен, но по какой-то причине его структура остается в таблице процессов.

 

 

Потоки в Linux

В операционной системе Linux новый процесс создается путем копирования атрибутов текущего процесса. Новый процесс может быть клонирован (cloned); при этом такие ресурсы, как файлы, обработчики сигналов и виртуальная память, используются совместно. Если два процесса пользуются одной и той же виртуальной памятью, они функционируют как потоки в рамках одного и того же процесса. Однако для потоков структуры данных отдельно не задаются. Таким образом, в операционной системе Linux потоки и процессы не различаются.


Рис. 4.18. Модель процессов и потоков Linux

Просмотров:

Вернуться в оглавление:Операционные системы




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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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