Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS_MAShA-2.doc
Скачиваний:
29
Добавлен:
10.05.2015
Размер:
333.31 Кб
Скачать

Блок управления процессом

Блок управления процессом (Process Control Block – PCB) – системная структура данных, используемая ОС для управления процессом, как правило содержащая следующую информацию, ассоциируемую с каждым процессом:

  • Идентификационный номер процесса

  • Ссылки на места в программе и ее данные, в которых последний раз происходила обработка

  • Содержимое регистра

  • Состояние различных флагов и переключателей

  • Ссылки на верхние и нижние пределы участка памяти, требуемого для процесса

  • Список файлов, открытых данным процессом

  • Приоритет процесса

  • Статус всех устройств ввода/вывода, требующихся для процесса

У каждого процесса имеется связанный с ним статус. Многие процессы не используют времени центрального процессора, пока не получат некую входную информацию. Например, процесс может ожидать нажатия клавиши пользователем. Ожидая этого нажатия, он не использует время центрального процессора. Во время ожидания такой процесс является "приостановленным". Когда нажимается клавиша, операционная система меняет его статус. При изменении статуса процесса, например, со ждущего на активный, либо с приостановленного на работающий, информация в блоке управления процессом должна использоваться как данные в любой другой программе, управляя работой части операционной системы, занимающейся переключением задач.

Эта смена статуса процессов проходит без прямого вмешательства пользователя и каждый процесс получает достаточное количество циклов центрального процессора для выполнения своей задачи за приемлемое время. Проблемы могут возникнуть тогда, когда пользователь пытается одновременно запускать слишком много процессов. Сама операционная система нуждается в использовании некоторой части циклов центрального процессора для осуществления сохранения и подкачки в ОЗУ всех регистров, очередей и стеков процессов приложений. Если запущено достаточно много процессов и операционная система недостаточно тщательно спроектирована, система может начать использовать большую часть имеющихся циклов центрального процессора для переключения процессов, а не для обработки самих процессов. Такое явление называется пробуксовкой системы, или трешингом (thrashing) и обычно нуждается в определенном прямом вмешательстве пользователя, с целью остановки тех или иных процессов и восстановления в системе порядка.

Жизненный цикл процесса (все что нашел, на примере unix)

В качестве вступления о жизненном цикле процессов. Для того, чтобы появился новый процесс в unix сиcтеме, существующий процесс с помощью системного вызова fork клонирует себя. Но у вновь появившегося процесса есть отличия. У него свой PID и свои ресурсы. Новый процесс запускает новую программу с помощью системного вызова exec. При этом код процесса замещается кодом запускаемой программы. Когда процесс завершается, он сообщает об этом ядру. Передается целое число, указывающее причину завершения. В случае успешного завершения передается ноль. В unix системах завершение процесса должно быть подтверждено родительским процессом. Для этого ядро хранит код завершения процесса, пока родительский процесс его не запросит. В этот момент ядро не выделяет этому процессу процессорного времени, ресурсы освобождаются, но запись о процессе остается. Когда родительский процесс выполнит системный вызов wait, процесс будет завершен. В случае, если родительский процесс завершился раньше, то решение этой проблемы берет на себя процесс init. Он должен сам послать системный вызов wait и закрыть процесс. А вот когда он с этой задачей не справляется по какой-либо причине, то такой процесс убить нельзя. Только перезагрузкой. Такие процессы называются зомби.

Существует несколько типов процессов:

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

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

Прикладные процессы. К этой категории относятся все остальные процессы. Одним из важнейших прикладных процессов является процесс командного интерпретатора. Этот процесс интерактивный. Он ожидает ввода команд и для каждой команды порождает дочерний процесс интерпретатора. Но бывают исключения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]