Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиС-КЛ1.docx
Скачиваний:
24
Добавлен:
23.09.2019
Размер:
562.29 Кб
Скачать

8.2 Сегментная организация памяти

В соответствии с /1, 5/, сегментирование – это разделение памяти на логические блоки произвольной длины. Логическое пространство задачи обычно представляется в виде нескольких сегментов. Каждый сегмент имеет имя, в соответствии с которым ОС при распределении памяти назначает базовый адрес. Количество сегментов определяет пользователь при подготовке программы. Для раздельного хранения команд, данных, стековых данных выделяются специальные сегменты: сегмент кода, сегмент данных, сегмент стека. Максимальное количество сегментов (s) определяется разрядностью поля команды, которое используется для задания номера сегмента. Например, в процессорах Pentium разрядность индекса селектора сегмента равна 13, что соответствует 8192 сегментам. Предельный размер (длина) каждого сегмента определяется разрядностью внутрисегментного смещения. Например, для процессоров Pentium длина сегмента ограничивается величиной Гбайта. Длина сегмента может меняться во время выполнения программы. Естественно, сегмент может переполниться, но это случается довольно редко, поскольку длина сегментов достаточно большая.

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

Рисунок 8.1 – Сегментное распределение памяти

Стрелками на рисунке 8.1 показано размещение сегментов в ОП в соответствии с адресами, определяемыми ОС, а пунктирными линиями – обмены между сегментами ОП и ВЗУ при свопингах.

Помимо базового адреса сегмента в ОП каждый дескриптор таблицы соответствия содержит биты управления виртуальной памятью и дополнительные атрибуты, используемые механизмом защиты процессора (см. лекцию 6). Например, бит присутствия P (Present) показывает, где находится искомый сегмент: в ОП (P=1) или на диске (P=0). Бит доступа A (Access) помогает ОС выбрать сегмент, который возвращается в ВЗУ, когда в ОП нет достаточного места для нового сегмента.

Лекция 9. Организация ввода-вывода информации. Системная шина

Согласно /1, 2, 5, 6, 17/, вычислительная машина представляет собой сложную систему, включающую в себя большое количество различных устройств, в т.ч., периферийных (внешних). Передача информации с периферийного устройства (ПУ) в ВМ называется операцией ввода, а передача данных из ВМ в ПУ – операцией вывода. Для информационного обмена между устройствами ВМ применяются магистрали (шины), к которым эти устройства подключаются. В современных ВМ используется иерархия шин отличающихся пропускной способностью, набором сигналов и протоколом.

Далее рассмотрим принципы организации шин ВМ /1, 5, 6, 17/.