Процессы. Процессы и потоки. Процессы и потоки
Скачать 0.73 Mb.
|
Иерархия процессов (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. Содержимое счетчика команд процесса записываются в стек аппаратными средствами прерывания. Затем происходит переход по адресу, указанному в векторе прерывания диска. Вся остальная обработка прерывания производится программным обеспечением. Реализация процессов (схема обработки прерываний)Аппаратное обеспечение сохраняет в стеке счетчик команд и т. п. Аппаратное обеспечение загружает новый счетчик команд из вектора прерываний Процедура на ассемблере сохраняет регистры Процедура на ассемблере устанавливает новый стек Запускается программа обработки прерываний на С Планировщик выбирает следующий процесс Программа на С передает управление процедуре на ассемблере Процедура на ассемблере запускает новый процесс |