Главная страница

Процессы. Процессы и потоки. Процессы и потоки


Скачать 0.73 Mb.
НазваниеПроцессы и потоки
АнкорПроцессы
Дата09.03.2023
Размер0.73 Mb.
Формат файлаppt
Имя файлаПроцессы и потоки.ppt
ТипПрограмма
#975992
страница2 из 8
1   2   3   4   5   6   7   8

Иерархия процессов (2). Пример.





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

Иерархия процессов (3). Пример.





В Windows не существует понятия иерархии процессов, и все процессы равноправны.
Единственное, в чем проявляется что-то вроде иерархии процессов - создание процесса, в котором родительский процесс получает специальный маркер (так называемый дескриптор), позволяющий контролировать дочерний процесс.
Но маркер можно передать другому процессу, нарушая иерархию.
В UNIX это невозможно.

Состояние процессов




Состояние процессов





Несмотря на самостоятельность каждого процесса, наличие собственного счетчика команд и внутреннего состояния, процессам зачастую необходимо взаимодействовать с другими процессами.
Один процесс может генерировать выходную информацию, используемую другими процессами в качестве входной информации.
Пример:
Выходные данные процесса cat могут служить входными данными для процесса grep.
Cat chapter.txt chapter2.txt | grep tree

Состояние процессов (2)





Возможны два вида блокировки процесса:
Процесс блокируется с точки зрения логики приложения (из-за отсутствия входных данных)
Процесс блокируется операционной системой (из-за отсутствия ресурсов)





Три возможных состояния процесса:
Работающий
Готовый к работе
Заблокированный


Действие


Блокировка


Готовность


1


2


3


4


1. Процесс блокируется, ожидая входных данных
2. Планировщик выбирает другой процесс
3. Планировщик выбирает этот процесс
4. Доступны входные данные


Переходы 2 и 3 вызываются
планировщиком процессов





Действие


Блокировка


Готовность


1


2


3


4


планировщик


0


1


2


N-1


N-2


N-3





процессы

Реализация процессов





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

Реализация процессов (таблица процессов)




Реализация процессов (работа с внешними устройствами)





С каждым классом устройств ввода-вывода связана область памяти называемая вектором прерываний.
Вектор прерываний содержит адрес процедуры обработки прерываний.
Например: в момент прерывания диска работал пользовательский процесс 3. Содержимое счетчика команд процесса записываются в стек аппаратными средствами прерывания. Затем происходит переход по адресу, указанному в векторе прерывания диска.
Вся остальная обработка прерывания производится программным обеспечением.

Реализация процессов (схема обработки прерываний)





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

1   2   3   4   5   6   7   8


написать администратору сайта