Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.DOC
Скачиваний:
18
Добавлен:
28.10.2018
Размер:
653.82 Кб
Скачать
    1. Диспетчер unix

Диспетчер UNIX - это программа, которая позволяет процессам конкурировать между собой за время центрального процессора.

Мультипрограммирование - это квантование времени между группой одновременно выполняющихся процессов.

Приостановление и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса, то есть иллюзия выполнения нескольких программ одновременно. В качестве иллюстрации рассмотрим следующий пример (рис. 4).

Три программиста желают выполнить различные программы X, Y, Z. Диспетчер UNIX загружает эти программы в память и создает 3 процесса. Отличие термина «программа» от термина «процесс» в данном случае в том, что программа - это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе его исполнения. После того как процесс Z получил свой квант времени и обработал его, диспетчер возвращает управление процессу X. Он начинает выполнение X не с самого начала, а с того места, где тот был приостановлен в конце своего кванта времени.

-работающий процесс

X

X

X

Y

Y

Y

Z

Z

Z

-неработающий процесс

Квант времени 1

Квант времени 2

Квант времени 3

Рис.4. Схема разделения времени центрального процессора

    1. Процессы unix

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

Дескриптор и контекст процесса

Системные данные, используемые ядром для идентификации процесса, которые существуют в течение всего времени жизни процесса, образуют дескриптор (описатель) процесса. Множество дескрипторов образуют таблицу процессов (таблицу дескрипторов).

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

Информация о состоянии включает:

  1. расположение (адрес в памяти),

  2. размер выгружаемой части образа процесса,

  3. идентификаторы процесса и запустившего его пользователя.

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

  1. привилегии доступа к файлам,

  2. ссылки на системную таблицу файлов для всех открытыx процессом файлов,

  3. указатель на индексный дескриптор текущего каталога в таблице индексных дескрипторов,

  4. список реакций на различныe сигналы.

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