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

4.3 Связное и несвязное распределение памяти

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

Организацию памяти в типичном случае связного распределения для одного пользователя можно представить так:

Операционная система

Программа пользователя

Свободно

Размер программ в обычном случае ограничивается ёмкостью имеющейся основной памяти, однако, существует возможность выполнения программ, превышающих по размеру основную память, благодаря использованию так называемых оверлейных сегментов. Если какой-то конкретный модуль программы не работает в течении периода выполнения программы, то из внешней памяти можно выбрать другой модуль и записать его в основную память на место уже не нужного модуля. Оверлейный режим предоставляет программисту возможность как бы расширить ограниченные рамки основной памяти.

Если программа пользователя начинает работать неправильно, то это может привести к порче ОС. Защиту ОС однопрограммной вычислительной машины можно реализовать с помощью одного граничного регистра, встроенного в УП. Граничный регистр содержит самый старший адрес команды относящейся к ОС. Если пользователь попытается войти в ОС, то его команда будет перехвачена. Для обращения за определёнными услугами к ОС в распоряжение пользователя предоставляются специальные команды.

4.4 Мультипрограммирование с фиксированными разделами

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