Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3_Управление оперативной памятью

.pdf
Скачиваний:
14
Добавлен:
18.03.2015
Размер:
806.76 Кб
Скачать

Рекомендации по настройке файла подкачки

Физическое расположение не на системном винчестере

Постоянный

размер

Дефрагментация

(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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]