2.3. Подсистема управления ВЗУ
ВЗУ состоит из 32 файловых блоков, в каждый из которых может быть записана 4-байтовая страница. Способ организации связи между файловыми блоками – связанная последовательность индексов. Максимальное число файлов, которым могут быть распределены файловые блоки, равно 32. Соответствие имени файла индекса его первого файлового блока сохраняется в таблице ОС, рис. 12.
Поскольку ВЗУ состоит из 16-ти файловых блоков, для сохранения индекса каждого из них следует выделить 1 байт. Если исходить из того, что имя файла состоит максимум из 8 байт, то размер таблицы соответствия имени файла его первому файловому блоку составит 9×4=36 байт. Таким образом, к 54 байтам основной памяти ВС, в которых располагаются таблицы управления ее памятью, следует добавить еще 36 байт.
Рис. 12. Соответствие начального индекса и первого файлового блока
Рис. 13 Подсистема управления ВЗУ
Таблица 10
Имя
|
Назначение
|
С какими классами связан
|
Тип прямой связи
|
HDD
|
Содержит ячейки ВЗУ а также каталог
|
|
|
CatalogRecord
|
Запись каталога
|
HDD
|
Агрегация
|
HDDCell
|
Ячейка ВЗУ
|
HDD
|
Агрегация
|
Таблица 11
Поля и свойства класса HDD
Имя
|
Тип данных
|
Назначение
|
Catalog
|
CatalogRecord[]
|
Записи каталога
|
CellsArray
|
HDDCell[]
|
Ячейки ВЗУ
|
Таблица 12
Поля и свойства класса CatalogRecord
Имя
|
Тип данных
|
Назначение
|
Address
|
int
|
Адрес
|
Filename
|
string
|
Имя файла
|
FileSize
|
int
|
Размер файла
|
StartIndex
|
int
|
Начальный индекс
|
IsOpen
|
bool
|
Статус файла
|
Таблица 13
Поля и свойства класса HDDCell
Имя
|
Тип данных
|
Назначение
|
Address
|
int
|
Адрес
|
Data
|
byte[]
|
Данные
|
Next
|
int
|
Следующий индекс
|
IsFree
|
bool
|
Статус ячейки
|
3. Технологическая часть
Для запуска программной модели функционирования операционной системы необходимо двойным кликом левой кнопки мыши запустить файл данной программы с расширением .ехе. На экране появится главное окно программы (рис. 14).
В данной программе наглядно представлены подсистемы управления памятью, ВЗУ и процессов.
Рис. 14 Главная форма приложения
На главной форме размещены
- таблица заявок
- таблица дескрипторов таблиц
- таблица дескрипторов страниц
- таблица ячеек оперативной памяти
- каталог файловой системы
- ВЗУ
- кнопка «выплнить такт»
- редактор заявки
Таблица заявок содержит три колонки: имя процесса, выполняемая заявка, текущее состояние заявки. Текущая выполняемая заявка помечается оранжевым цветом, зеленым – заявка, которая поставлена на паузу, серым – выполненная заявка.
В таблице дескрипторов таблиц первая колонка отвечает за адрес дескриптора в адресном пространстве, колонка «Владельцы» содержит информацию о владельцах адресного пространства, «Ссылка» - базовый адрес группы дескрипторов страниц.
В таблице дескрипторов страниц присутствуют поля:
- «Адрес» - адрес дескриптора в общем адресном пространстве
- «Present» - бит присутствия страницы в ОП
- «Mutex» - синхронизирующий объект
- «Swap» - адрес страницы в файле подкачки
- «Ссылка» - адрес страницы в ОП
- «Возраст» - возраст страницы в тактах (для алгоритма WSClock)
- «Access» - дополнительный бит (для алгоритма WSClock)
Таблица представления оперативной памяти содержит поле адреса страницы в общем адресном пространстве и значение каждого из 4 битов страницы.
Таблица представления каталога содержит поля:
- «Адрес» - адрес записи каталога в общем адресном пространстве
- «Открыт» - бит обращения
- «Имя файла» - имя файла
- «Индекс» - начальный индекс файла
- «Размер» - размер файла в страницах
Таблица ВЗУ визуально разделена на две области – файл подкачки и основная память. Также присутствует бит адреса ячейки. Присутствует бит «Свободно», который указывает на статус ячейки.
Рассмотрим подробнее редактор заявок (Рис 15).
Рис. 15 Редактор заявок
В редакторе заявок можно изменить тип заявки. Всего 4 типа:
- ВЗУ -> Память
- Память-> Память
- Память -> ВЗУ
- Обработка данных
Если заявка будет обращаться к ВЗУ, то можно изменить имя файла и номер файлового блока, откуда или куда будет производиться чтение или запись соответственно.
Нажимая кнопку «Выполнить», осуществляется попытка выполнить заявку. Если попытка неудачна (ресурсы системы заняты другими процессами), заявка переходит в режим ожидания освобождения ресурсов и ждет следующей очереди. Результат работы программы – все выполненные заявки в соответствии с Рис. 16.
Рис. 16 Схема действий, выполняемая процессами.
Прежде чем начнется основной алгоритм, происходит инициализация оперативной памяти из некоего файла на ВЗУ, содержащего исходные данные. Процесс А приступает копировать из своего логического пространства в разделяемое логическое пространство. Процесс Б обрабатывает информацию и обновляет ее в оперативной памяти. После обработки процесс Б записывает информацию на ВЗУ в файл с результатами. Процесс В считывает с жесткого диска эту информацию и записывает ее в свое адресное пространство. Результат работы программы – информация в адресном пространстве процесса В. Кроме того, необходимо учесть, что адресному пространству косвенно принадлежат ячейки файла подкачки, на которые указывают дескрипторы, принадлежащие адресному пространству процесса В.
Заключение
В результате выполнения данной курсовой работы были изучены основные аспекты моделирования операционной системы: принципы организации псевдопараллельной работы процессов, алгоритмы диспетчеризации процессов, алгоритмы управления виртуальной памятью и особенности организации записи и считывания информации на ВЗУ.
В результате проделанной работы, была разработана конечная программа, позволяющая моделировать процесс функционирования операционной системы, осуществляющей управление работой заданных процессов и всей совокупностью подсистем в целом.
Информационные источники
1. А.В. Гордеев Операционные системы: учебник для вузов. 2-е изд. – СПб.: Питер, 2004. – 416 с.
2. В.Г. Олифер, Н.А. Олифер Сетевые операционные системы. – СПб.: Питер, 2003. – 539 с.
3. А.М. Робачевский Операционная система UNIX®. – СПб.: БХВ-Петербург, 2003. – 528 с.
4. В. Столлингс Операционные системы. Внутреннее устройство и принципы проектирования. – М.: изд. дом Вильямс, 2002. – 848 с.
5. Э. Таненбаум Современные операционные системы. – СПб.: Питер, 2002. – 1040 с.
|