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

Один процесс в памяти: однозадачная ос

В памяти размещается один пользовательский процесс.

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

ОС

CPU

0 0

Регистр границы а

Польз.программа

а а

фрагмент

б

Рис.4 Организация одного граничного регистра.

Во время выполнения программы все ее адреса не должны быть меньше числа а. Иначе возможно запись какого – либо результата работы программы поверх Ос. Защиту ОС можно осуществить с помощью регистра границы. Во время работы прикладной программы все адреса, генерируемые CPU, сравниваются с содержимым регистра границы. Если генерируемый адрес меньше числа а, работа прерывается.

Мультипрограммирование с фиксированными разделами. (Защита памяти при мультипрограммировании с фиксированными разделами.)

Мультипрограммирование с фиксированными разделами предполагает разделение адресного пространства на ряд разделов фиксированного размера. В каждом разделе размещается один процесс. Для защиты памяти при мультипрограммировании с фиксированными количеством разделов необходимо два регистра. Первый – регистр верхней границы (наименьший адрес) второй – регистр нижней границы (наибольший адрес). Прежде чем программа в разделе N начнет выполняться, границы ее адреса загружаются в соответствующие регистры. В процессе работы, все формируемые ею адреса контролируются на удовлетворения условия а<Адр>б.

При выходи любого адреса за отведенные ей границы работы программы прерывается.

0

ОС

CPU

Регстр границы а

а

Раздел N

Регистр границы б

б

Рис. 5. Регистр границы при мультипрограммировании.

2. Оверлейная структура (для фиксированных разделов)

Так как размер логического адресного пространства процесса может быть больше чем  размер выделенного ему раздела (или больше чем размер самого большого раздела), иногда используется техника, называемая оверлей (overlay) или организация структуры с перекрытием.  Основная идея - держать в памяти только те инструкции программы, которые нужны в данный момент времени.

3. Распределение памяти динамическими (переменными) разделами

В этом случае память ОЗУ делится на разделы, но границы разделов не фиксируются. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера.

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