- •Курсовой проект
- •Выбор архитектуры вычислительной системы
- •3 Вытесняющая многозадачность и средства взаимодействия в ос windows хх и windows nt
- •События (events);
- •4 Проектирование командного языка ос
- •5 Определение состава и общей структуры системы
- •6 Формирование базы данных ос
- •7 Проектирование структуры и реализация логики управления файловой системы
- •8 Общее описание функционирования ос
6 Формирование базы данных ос
6.1 Структура управляющих блоков базы данных ОС
База данных операционной системы содержит всю информацию, необходимую ей для функционирования. Она состоит из статической и динамической частей. Размер статической части не изменяется, а динамическая часть может изменять свой размер в процессе работы системы.
База данных состоит из следующих управляющих блоков:
- блок управления пользователями;
- блок управления файлами;
- блок управления памятью;
- блок управления процессами.
Н
а
рисунке 1 приведена схема взаимодействия
управляющих блоков базы данных
операционной системы.
Рисунок 1 – Взаимодействие управляющих блоков базы данных ОС
При входе в систему пользователь регистрируется при помощи блока управления пользователями, при выходе пользователя из системы запись о нём, соответственно, удаляется.
При обращении к оперативной памяти блок управления памятью это регистрирует, определяет по ряду признаков возможность доступа и права пользователя, при завершении работы процесса с этим сегментом блок позволяет другому процессу найти этот сегмент.
Блок управления устройствами регистрирует все устройства, их текущее состояние, при необходимости изменяет его в ходе работы.
Блок управления файлами заносит запись об открытом файле в таблицу, устанавливает признаки, при закрытии файла запись удаляется из таблицы.
Блок управления процессами имеет следующую структуру:
- PID – ID процесса;
- NAME – имя процесса;
- QID – идентификатор очереди, в которой стоит процесс;
- ID – идентификатор пользователя;
- PRI – приоритет процесса;
- ST – текущее состояние процесса (0 – процесс находится в режиме исполнения, 1 – процесс находится в режиме ожидания, 2 - процесс находится в режиме готовности).
Блок управления памятью хранит информацию об оперативной памяти (располагается в статической части базы данных). Структура блока управления памятью имеет вид:
- RCB_HANDLE – дескриптор блока;
- RCB_SIZE – размер блока;
- RCB_CADR – текущий адрес блока;
- RCB_RIGHT – права доступу.
Блок управления файлами - динамическая часть базы данных, размер этого блока изменяется при изменении системной переменной, определяющей количество открытых файлов.
При открытии файла, в БД создается запись для этого файла, при его закрытии, он удаляется. Если с файлом работает несколько процессов одновременно, то все связи с процессами этого файла указываются.
Структура блока управления файлами представляет собой следующее:
- FCB_ID - ID файла;
- NAME - имя файла;
- SIZE - размер файла;
- UID - идентификатор владельца;
- TIME - время создания;
- BUSYBLOCKS - перечень блоков, занимаемых данным файлом.
В динамической части базы данных содержится информация о пользователях, работающих в системе в настоящее время. Структура блока управления пользователями:
- U_ID - ID пользователя;
- U_Name - имя пользователя;
- U_GROUP - группа пользователя (текущая);
- U_RIGHT - права пользователя.
Операционная система автоматически проверяет статус устройства. При отсутствии устройства, который был подключен, драйвер выгружается из памяти. При обнаружении нового устройства операционная система, получает данные об устройстве и загружает соответствующий драйвер. Каждое устройство имеет свой запрос на прерывание и порт ввода вывода. При загрузке драйвера ему сообщается эта информация, и дальнейшая работа с устройством ведется только с помощью драйвера.
Блок управления устройством содержит следующую информацию:
- DCB_ID - ID устройства;
- DCB_NAME - имя устройства;
- DCB_ST - статус устройства;
- DCB_INT - таблица точек входа;
- DCB_INIT - инициализация;
- DCB_WRITE - флаг записи;
- DCB_READ - флаг чтения;
- DCB_PROP - параметры устройства;
- DCB_DRV - адрес драйвера устройства;
- DCB_NEXT - адрес следующего DCB.
