Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемСветлана Финяева
1 1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович
2 2 Управление памятью Windows 2000
3 3 Основные понятия В windows 2000 у каждого пользовательского процесса есть виртуальное адресное пространство; Виртуальные адреса – 32-разрядные; Размер виртуального адресного пространства - 4 Гб: нижние 2 Гб за вычетом 256Мб доступны для программы и данных процесса; верхние 2 Гб защищенным образом отображаются на память ядра; Размер страницы виртуального адресного пространства – 4 Кб.
4 4 Пример конфигурация виртуального адресного пространства Приватные данные и программа процесса А Системные данные HAL + OS Стек, данные и т.д. Таблицы страниц процесса А Выгружаемый пул Невыгружаемый пул 0 2 Гб 4 Гб Приватные данные и программа процесса B Системные данные HAL + OS Стек, данные и т.д. Таблицы страниц процесса B Выгружаемый пул Невыгружаемый пул Приватные данные и программа процесса C Системные данные HAL + OS Стек, данные и т.д. Таблицы страниц процесса C Выгружаемый пул Невыгружаемый пул Процесс АПроцесс BПроцесс C 64 Кб
5 5 Виртуальная страница Состояние виртуальной страницы: Свободной является страница, если она не используется в настоящий момент Фиксированной является страница, после того как данные или программа отображаются на страницу Зарезервированная страница не может отображаться, пока не будет снято резервирование. Например, создание нового потока.
6 6 Отображение фиксированной страницы в файл подкачки 1 способ: выделение места в файле подкачки под каждую страницу 2 способ: место в файле подкачки под виртуальную страницу не выделяется до тех пор, пока не настанет необходимость ее выгрузки на диск.
7 7 Отображение файлов в виртуальное адресное пространство Файл может быть напрямую отображен в виртуальное адресное пространство процесса. После отображения файла на адресное пространство, он может читаться и записываться при помощи обычных команд обращения к памяти. Два процесса могут одновременно отображать свои виртуальные адресные пространства на одну и туже часть одного файла.
8 8 Страницы отображаемые на память Программа процесса А Совместно используемая библиотека Стек Процесс А Данные Программа процесса B Совместно используемая библиотека Стек Процесс B Данные файл подкачки lib.dll Prog1.exeProg2.exe
9 9 Системные вызовы управления памятью ФункцияОписание VirtualAllocЗарезервировать или фиксировать область VirtualFreeОсвободить область или отменить фиксацию VirtualProtectИзменить режим доступа (чтение/ запись/ выполнение) к области VirtualQueryУзнать состояние области VirtualLockСделать область резидентной в памяти VirtualUnlockРазрешить выгрузку области CreateFileMappingСоздать объект отображаемого файла MapViewOfFileОтобразить файл на адресное пространство UnmapViewOfFileУдалить отображаемый файл из адресного пространста OpenFileMappingОткрыть созданный ранее объект отображаемого файла
10 10 Реализация управления памятью Windows 2000 поддерживает подгружаемое по требованию одинарное линейное 4-гигабайтное адресное пространство для каждого процесса. Сегментация в любой форме не поддерживается. Теоретический размер страницы от 4 Кбайт до 64 Кбайт. Компьютеры с процессором Pentium имеют фиксированный размер в 4 Кбайт. Операционная система может использовать страницы по 4 Мбайт.
11 11 Реализация управления памятью Планировщик заданий следит за отдельными потоками; Менеджер памяти следит за процессами. Например: Процессу A выделено четыре области памяти. Менеджер памяти создает описатель виртуальной памяти (VAD, Virtual Address Descriptor): Диапазон отображаемых адресов; Файл резервного хранения; Смещение в файле; Режим доступа.
12 12 Реализация управления памятью Когда происходит обращение к первой странице, создается каталог таблиц страниц, указатель на нее помещается в описатель виртуальной памяти. Адресное пространство полностью описывается списком своих описателей виртуальной памяти. Это позволяет поддерживать несплошные адресные пространства.
13 13 Обработка страничных прерываний Запись таблицы для отображаемой страницы
14 14 Структура Windows 2000
15 15 Страничные прерывания 1. Страница, к которой было обращение, не является фиксированной; 2. Произошло нарушение защиты; 3. Запись в совместно используемую память; 4. Стеку требуется дополнительная память; 5. Страница, к которой было обращение, является фиксированной, но в настоящий момент она не загружена в память.
16 16 Алгоритмы замещения страниц Система пытается поддержать определенное количество свободных страниц в памяти, чтобы, когда произойдет страничное прерываний, свободная страница могла быть найдена немедленно, без необходимости сначала записать несколько других страниц на диск. В результате применения такой стратегии большинство страничных прерываний удовлетворяются при помощи одной операции (чтения страницы с диска).
17 17 Алгоритмы замещения страниц: списки страниц У каждого процесса есть набор рабочих страниц. Размер и состав рабочего набора, меняется по мере работы процесса. Параметры «рабочего набора»: минимальными и максимальными размер. (25-50 мин.; макс.)
18 18 Алгоритмы замещения страниц: менеджеры Менеджер балансового множества Менеджер рабочих наборов
19 19 Управление физической памятью Списки страниц: Список чистых (резервных) страниц Список грязных (модифицированных) страниц Список свободных страниц Список обнуленных страниц Список дефектных страниц памяти
20 20 Управление физической памятью
21 21 Страничные блоки
22 22
23 23 Pentium Пример реализации
24 24 Сегментация с использованием страниц: Intel Pentium Виртуальная память на компьютере Pentium использует сегментную и страничную организацию. Система Pentium поддерживает 16К независимых сегментов, каждый до 1 млрд 32-разрядных слов. Основа виртуальной памяти системы Pentium состоит их двух таблиц: локальной таблицы дескрипторов LDT (Local Descriptor Table); глобальной таблицы дескрипторов GDT (Global Descriptor Table).
25 25 Сегментация с использованием страниц: Intel Pentium У каждой программы есть своя собственная таблица LDT, глобальная таблица дескрипторов одна. Таблица LDT описывает сегменты, локальные для каждой программы, включая ее код, данные, стек и т.д. Таблица GDT несет информацию о системных сегментах, включая саму операционную систему.
26 26 Доступ к сегменту Операционная система Pentium сначала загружает селектор для сегмента в один из шести сегментных регистров машины. регистр CS содержит селектор для сегмента кода команд, регистр DS хранит селектор для сегмента данных. Каждый селектор представляет собой 16-разрядный номер. Один из битов селектора несет информацию о том, является ли данный сегмент локальным или глобальным. Тринадцать битов определяют номер записи в таблице дескрипторов. 2 бита относятся к проблемам защиты и будут описаны позже. Дескриптор 0 является запрещенным.
27 27 Селектор в системе Pentium
28 28 Дескриптор программного сегмента в системе Pentium.
29 29 Преобразование пары (селектор, смещение) в физический адрес
30 30 Отображение линейного адреса на физический адрес
31 31 Защита в системе Pentium
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.