3_Управление оперативной памятью
.pdf•Рекомендации по настройке файла подкачки
–Физическое расположение не на системном винчестере
–Постоянный
размер
–Дефрагментация
(c) 2008 Арьков В.Ю. |
11 |
Разрывное распределение
•Разрывные методы распределения памяти
•Область памяти, выделяемая задаче, не является непрерывной, состоит из нескольких непрерывных участков
–сегментная
–страничная
–сегментно-страничная
(c) 2008 Арьков В.Ю. |
12 |
Сегментная организация памяти
•Программа делится программистом на сегменты (подпрограммы)
–Физический адрес ячейки = адрес сегмента + смещение от начала сегмента
–Дескриптор сегмента: адрес начала и длина сегмента, бит присутствия (в памяти или на диске)
•Дескриптор - "описание"
–[E. describe ← L. de (вниз) + scribere (писать) = "записать"] - описывать
–[E. script – текст, запись, рукопись , сценарий]
•близко к "скрести", "царапать"
•первые тексты царапали на глиняных дощечках
•Таблица дескрипторов сегментов – отдельный сегмент данных
Сегментная адресация |
|
Табл. дескр. сегм. |
|
Адр. начала сегм. |
Длина сегм. |
|
Физ. память |
|
N-й сегмент |
Виртуальный адрес |
|
Номер сегм. |
Смещение |
(c) 2008 Арьков В.Ю. |
13 |
Сегментная организация памяти
–По каждому сегменту: флаги, права, адрес, длина.
•Проблема замещения: какой сегмент сохранить на диск или заместить новым. Правило – дисциплина замещения:
–FIFO (first in - first out) - первый пришел - первый выбывает
–LRU (least recently used) дольше всего неиспользуемый
–LFU (least frequently used) реже всего используемый
–Random - случайный выбор
•Сегментная организация виртуальной памяти использовалась в OS/2 v.1 для i80286
–Необходима аппаратная поддержка
Страничная организация памяти
•Память делится на страницы одинакового размера.
•Память разбивается на физические страницы, программа – на виртуальные. Часть виртуальных страниц находится в ОЗУ, часть – на диске.
•Файл подкачки (paging file), или страничный файл, - место на диске. Иногда также называют swap file.
•В ОС UNIX - специальный раздел диска (swap).
–Физический адрес: (номер физической страницы и смещение).
–Виртуальный адрес: (номер виртуальной страницы и смещение).
–Таблица страниц: дескриптор (адрес), бит присутствия, доступ (rwx).
•Проблема: замедление работы из-за частого обращения к диску:
–нарастить память
–меньше параллельных задач
–изменить дисциплину замещения (ОС)
•Менее требовательные приложения и ОС
(c) 2008 Арьков В.Ю. |
14 |
Реализация
•OS/2, Linux: дисциплина замещения LRU:.
•VAX/VMS, Win NT/2000/XP: FIFO + «буферизация». Перед выгрузкой страница помечается «кандидат» и ожидание. Если обратились к странице – в конец списка.
•Рабочее множество - активные страницы программы за интервал времени. Их меньше, чем вся программа.
•Недостатки:
–дополнительные расходы
–память для таблицы дескрипторов (аппаратный кэш 32 в 32-разрядных i80x86)
–машинное время для диспетчера
–деление программы на страницы без учета логических связей
•Начиная с i80386, поддерживается страничная память, 1 страница = 4 Кбайт.
Сегментно-страничная организация виртуальной памяти
•Программа делится на сегменты, логически завершенные части.
•Смещение от начала сегмента = виртуальная страница + индекс.
•Виртуальный адрес = сегмент + страница + индекс.
•Достоинства:
–сегменты в памяти целиком - реже подкачка
–страницы россыпью - меньше фрагментация
•Затраты:
–таблица дескрипторов сегментов
–таблицы адресов страниц по сегментам
•Нужна аппаратная поддержка механизма. Практически не используется в ПК.
(c) 2008 Арьков В.Ю. |
15 |
Примеры управления памятью
•DOS (MS DOS, PC DOS, DR DOS и др.)
•Используется на старых машинах, для простых приложений, в текстовом режиме, для запуска утилит и для установки других ОС.
•Однопрограммная. Простое распределение памяти.
•Стековый порядок загрузки. Предполагается, что программы выгружаются из памяти в порядке, обратном их запуску. Иначе возникают "дыры".
•После запуска COM-файл получает сегмент 64 кБ, EXE-программа - всю доступную память.
Состав DOS
•BIOS базовая система ввода-вывода
•программы самотестирования
•обработчики прерываний (драйверы)
•IO.SYS - расширение BIOS
•MSDOS.SYS - базовый модуль обработки прерываний
•COMMAND.COM - интерпретатор команд
•утилиты и драйверы
•boot record - загрузочная запись на диске - программа начальной загрузки ОС
•COMMAND.COM - из двух частей
•резидентная - постоянно в памяти
•транзитная - в верхней памяти
–уступает место программе
–затем восстанавливается.
•Основная память (conventional memory) небольшая - до 1 МБ.
•Механизмы XMS/EMS - extended/expanded memory specification
•Используются оверлеи - специальные вызовы в DOS
(c) 2008 Арьков В.Ю. |
16 |
MS Windows 95/98
•32-разрядные, многопотоковые, с вытесняющей многозадачностью. Графический пользовательский интерфейс (GUI). Для загрузки используют DOS 7 (DOS 98). Перед загрузкой ядра процессор переключается в защищенный режим работы и использует страничный механизм.
•Прикладные программы определяются 32-разрядными адресами.
•Виртуальное адресное пространство состоит из 4 КБ страниц.
•Диспетчер памяти постоянно находится в ОЗУ.
•Страницы разбросаны в памяти, могут выгружаться на диск.
•Программы Win16 могут иметь общее адресное пространство. Это приводит к сбоям, как и в Windows 3.x.
•Приложения Win32 работают в своем адресном пространстве.
•Четыре уровня защиты в процессорах i80х86 - кольца от 0 до 3.
•Файл подкачки в каталоге самой ОС, переменного размера. Его фрагментация замедляет работу
Windows 95/98
4 |
ГБ |
Системные компоненты |
|
3 |
ГБ |
(0 кольцо защиты) |
Общее адр. простр. |
|
|||
|
|
Библиотеки DLL |
|
2 |
ГБ |
Приложения Win16 |
|
|
|
||
|
|
Приложения Win32 |
Индивид. адр. простр. |
4 |
МБ |
|
|
|
|
Компоненты реального режима |
Общее адр. простр. |
64 |
кБ |
|
|
0 |
кБ |
|
|
(c) 2008 Арьков В.Ю. |
17 |
MS Windows NT
•Используются аппаратные средства защиты памяти.
•Другое логическое распределение адресного пространства:
–модули ОС в своих виртуальных адресных пространствах, недоступных для приложений
–приложения изолированы друг от друга, общение через:
•буфер (clipboard)
•OLE (object linking and embedding)
•DDE (dynamic data exchange).
•Приложения обращаются к DLL. DLL перенаправляет обращения к системе. Эти обращения обрабатываются процессом системного сервера в изолированном адресном пространстве.
•В многозадачном режиме могут выполняться несколько приложений Win16/Win32 (в общей или изолированной памяти)
инесколько сеансов DOS.
Windows NT
4 ГБ
Ядро
(0 кольцо защиты)
2 ГБ
DLL Win16 клиента
Приложения Win32
Виртуальные машины
64 кБ
0 кБ
(c) 2008 Арьков В.Ю. |
18 |
DLL
•VMM virtual memory manager - диспетчер виртуальной памяти управляет выделением памяти и подкачкой.
•Сборка в момент загрузки: DLL dynamically loadable library -
динамически загружаемая библиотека Win и OS/2. Содержат системные функции или внешние/разделяемые процедуры, загружаются по мере обращения. Используют общее адресное пространство, что приводит к порче кода в памяти. Для совместного использования несколькими программами требуется совместимость на уровне версий библиотек и спецификаций.
•Каждое приложение помещает "разделяемые" модули в
C:\WINDOWS\SYSTEM32 – трудности:
•простой запрос - "переписать DLL"? -> конфликт приложений
•Win NT/2000/XP требует для этого привилегий администратора
Режимы работы процессора
•Современные 32-разрядные процессоры Intel (i80386 и старше) могут работать в двух режимах –
–реальном
–защищенном
(c) 2008 Арьков В.Ю. |
19 |
Real mode
•Реальный режим работы – первые 16-
разрядные процессоры i8086 (Intel) и др.
•Пример адресации команды.
–Содержимое сегментного регистра CS, Code Segment умножают на 16, т.е. дописывают справа четыре нуля.
–Прибавляют содержимое указателя команд IP, Instruction Pointer.
–Получается 20-битовый адрес, позволяющий указать на любой байт из 2^20.
Protected mode
•Защищенный режим работы – возможность зашиты параллельных вычислений. Сегментная виртуальная память. Адреса – 32 бит. Возможная страничная трансляция адресов с 32-битовыми значениями. Возможно выполнение 16- и 32-разрядных приложений. Виртуальная 16-битная машина, режим виртуального процессора i8086, V86, виртуальный режим. 16-битовый защищенный режим для 32разрядных процессоров.
•Для реализации таких возможностей введены дополнительные регистры-указатели таблиц и регистры-дескрипторы. Размер страницы 4 Кб.
•Текущий режим работы процессора определяется регистром флагов EFLAGS.
(c) 2008 Арьков В.Ю. |
20 |