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

3. Организация памяти компьютера.

Схема управления памяти

Функции системы управления памятью:

  • Отображение логического адресного пространства процесса на физическое адресное пространство

  • Распределение памяти между конкурирующими процессами

  • Контроль доступа к адресным пространствам процессов

  • Выгрузка процессов (целиком или частично) во внешнюю память

  • Учет свободной и занятой памяти

Логическая память.

Большинство программ состоят из набора модулей, работающих независимо друг от друга. Модули могут располагаться в памяти один за другим, образуя линейное пространство адресов или в разных областях памяти.  Управление памятью, когда модули программ и данных располагаются в разных областях памяти, называется сегментацией. Сегмент – область памяти, внутри которой поддерживается линейная адресация. При сегментной организации память становится двумерной. Адрес определяется номером сегмента и смещением внутри сегмента. Пример расположения сегментов процессов в памяти компьютера представлено на рисунке ?. Рис. Расположение сегментов процессов в памяти компьютера Сегментная организация памяти поддерживается в большинстве современных операционных системах. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием. Таким образом, реально существующие адреса оперативной памяти отличаются от адресов, к которым обращается процесс. Компилятор связывает адреса исходных текстов программ с перемещаемыми адресами (n байт от начала модуля). Подобный адрес, сгенерированный программой, называется логическим адресом, а в системах с виртуальной памятью - виртуальным адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством.

Физическая организация памяти.

Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную(главную,оперативную,физическую) и вторичную (внешнюю) память.

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

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

Виртуальная память.

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

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

  • Объем физической памяти не ограничивает размеры программы, что упрощает ее разработку. 

  • Размещение в памяти большего количества программ, что увеличивает загрузку компьютера и пропускную способность системы. 

  • Объем ввода-вывода для выгрузки части программы меньше, чем при классическом свопинге, что убыстряет работу программы.

  • Осуществление контроля доступа к отдельным сегментам памяти, что позволяет защитить пользовательские программы друг от друга, а операционную систему от пользовательских программ.  Во всех схемах управления памятью используется трансляция адресов, но в случае виртуальной памяти она является более сложной операцией, т.к. логическое пространство является многомерным и разрывным.  При организации виртуальной памяти может использоваться любая схема управления: страничная, сегментная и сегментно-страничная.