8 Процессы в UNIX, потоки
Windows NT. Таблицы связи между структурами.
В основе UNIX лежит
концепция процесса - единицы управления и единицы потребления ресурсов. Процесс
представляет собой программу в состоянии выполнения, причем в UNIX в рамках
одного процесса не могут выполняться никакие параллельные действия.
Каждый процесс работает в
своем виртуальном адресном пространстве. Совокупность участков физической
памяти, отображаемых на виртуальные адреса процесса, называется образом процесса.
При управлении процессами
операционная система использует два основных типа информационных структур: дескриптор
процесса (структура proc) и контекст процесса (структура user).
Дескриптор
процесса
·
состояние процесса
·
размер и адрес процесса
·
указатель кому принадлежит процесс
·
идентификация процесса
·
канал ожидания
·
поле сигналов
·
таймер и счетчик используемого
времени
Контекст
процесса содержит информацию,
которая должна быть доступна только на уровне исполнения:
·
параметры в/в (адреса буферов и
др.)
·
окружение в файловой системе
(текущий каталог, корневой каталог и др.)
·
таблица открытых файлов
·
код возврата
·
номера ошибок
·
поле сигналов (информация о том
как надо реагировать на сигнал)
В UNIX
нет разделения задача/задание. Работа в UNIX
представлена множеством конкурирующих процессов. Ядро – тоже процесс.
Процесс строго последователен,
нельзя выполнить асинхронные действия внутри процесса, даже операции в/в не
могут быть выполнены асинхронно. Распределение ресурсов между процессами
выполняет ядро. Все программы ядра выполняются от имени процесса. Каждый
процесс может находиться в режиме "пользователь” и в режиме "система”.