Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Куровой.doc
Скачиваний:
13
Добавлен:
05.09.2019
Размер:
1.48 Mб
Скачать

5 Формирование базы данных ос

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

Большая часть элементов базы данных создается и уничтожается динамически. Также динамически создаются и модифицируются связи между элементами. Поэтому для реализации БД ОС, как правило, используют многосвязные списочные структуры данных.

Основу базы данных составляют управляющие блоки, объединяемые в списки сложной структуры. Заголовки основных списков и некоторые глобальные системные переменные образуют статическую часть базы данных. Динамически создаваемые и уничтожаемые блоки размещаются в куче ядра (kernel heap).

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

5.1 Структура управляющих блоков базы данных ОС

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

База данных состоит из следующих управляющих блоков:

- блок управления файлами;

- блок управления памятью;

- блок управления процессами.

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

5.2 Схема взаимодействия управляющих блоков базы данных ОС

На рисунке 5.1 приведена схема взаимодействия управляющих блоков базы данных операционной системы.

Очередь к файлу

Блок управления файлами (FCB)

Блок управления памятью (RCB)

Блок управления файлами (FCB)

Перекрёстная таблица(FPT)

Очередь всех процессов

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

Блок управления устройствами (DCB)

Очередь к устройству ID

Блок управления сообщениями (MCB)

Блок управления файлами (FCB)

Очередь готових процессов

Рисунок 5.1 – Взаимодействие управляющих блоков базы данных ОС

Блок управления процессами имеет следующую структуру:

- PID – ID процесса;

- NAME – имя процесса;

- QID – идентификатор очереди, в которой стоит процесс;

- ID – идентификатор пользователя;

- PRI – приоритет процесса;

- ST – текущее состояние процесса (0 – процесс находится в режиме исполнения, 1 – процесс находится в режиме ожидания, 2 - процесс находится в режиме готовности).

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

  • RCB_HANDLE – дескриптор блока;

  • RCB_SIZE – размер блока;

  • RCB_CADR – текущий адрес блока;

- RCB_RIGHT – права доступу.

Блок управления файлами - динамическая часть базы данных, размер этого блока изменяется при изменении системной переменной, определяющей количество открытых файлов.

При открытии файла, в БД создается запись для этого файла, при его закрытии, он удаляется. Если с файлом работает несколько процессов одновременно, то все связи с процессами этого файла указываются.

Структура блока управления файлами представляет собой следующее:

- FCB_ID - ID файла;

- NAME - имя файла;

- SIZE - размер файла;

- TIME - время создания;

- BUSYBLOCKS - перечень блоков, занимаемых данным файлом.

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

Блок управления устройством содержит следующую информацию:

- DCB_ID - ID устройства;

- DCB_NAME - имя устройства;

- DCB_ST - статус устройства;

- DCB_INT - таблица точек входа;

- DCB_INIT - инициализация;

- DCB_WRITE - флаг записи;

- DCB_READ - флаг чтения;

- DCB_PROP - параметры устройства;

- DCB_DRV - адрес драйвера устройства;

- DCB_NEXT - адрес следующего DCB.