Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемНадежда Осташкова
1 Управление памятью Управление физической памятью
2 Оперативная память (ОП) Энергозависимое устройство хранения информации, хранящее программный код и данные работающих в системе процессов Энергозависимое устройство хранения информации, хранящее программный код и данные работающих в системе процессов
3 Роль ОП в работе системы (принципы фон Неймана) ОП память представляет собой упорядоченный массив пронумерованных ячеек ОП память представляет собой упорядоченный массив пронумерованных ячеек –Элементарная (минимальная адресуемая) единица памяти – байт –Номер байта в памяти - адрес Для того, чтобы процесс мог выполняться в системе, его программный код и данные должны быть загружены в ОП Для того, чтобы процесс мог выполняться в системе, его программный код и данные должны быть загружены в ОП Для представления данных и кода используется унифицированное представление (бинарный код) Для представления данных и кода используется унифицированное представление (бинарный код)
4 Физическая ОП Модель ОП – плоский массив Модель ОП – плоский массив Каждой ячейке (байту) присвоен номер – адрес Каждой ячейке (байту) присвоен номер – адрес Допустимое количество байтов в памяти (объем) определяется разрядностью шины адреса вычислительной системы – n Допустимое количество байтов в памяти (объем) определяется разрядностью шины адреса вычислительной системы – n Допустимый объем памяти равен 2 n Допустимый объем памяти равен 2 n Максимально допустимый адрес памяти равен 2 n-1 Максимально допустимый адрес памяти равен 2 n-1 Множество адресов памяти – адресное пространство Множество адресов памяти – адресное пространство Реальный объем ОП ограничен аппаратной реализацией или дополнительными ограничениями Реальный объем ОП ограничен аппаратной реализацией или дополнительными ограничениями n-1 2 n-2
5 Задачи управления физической ОП Выделение памяти под процессы Выделение памяти под процессы Освобождение памяти после завершения процессов Освобождение памяти после завершения процессов Решение проблемы фрагментации памяти Решение проблемы фрагментации памяти Современные ОС управляют не физической, а виртуальной памятью – отображение виртуального адресного пространства на физическое выполняется аппаратно Современные ОС управляют не физической, а виртуальной памятью – отображение виртуального адресного пространства на физическое выполняется аппаратно
6 Управление памятью в однозадачных системах (MS DOS) В однозадачных системах в ОП одновременно могут находиться: В однозадачных системах в ОП одновременно могут находиться: –Невыгружаемые части ОС –Резидентные программы –Один процесс (одна программа) пользователя Однозадачные системы, как правило, управляют непосредственно физическим адресным пространством Однозадачные системы, как правило, управляют непосредственно физическим адресным пространством В MS DOS использовалась технология виртуальной памяти – сегментация, но количество сегментов памяти, их индивидуальный и общий объем определялся строго аппаратно и не превышал объемов физической ОП В MS DOS использовалась технология виртуальной памяти – сегментация, но количество сегментов памяти, их индивидуальный и общий объем определялся строго аппаратно и не превышал объемов физической ОП
7 Организация памяти в MS DOS MS DOS использует ресурсы реального режима 16-ти разрядных процессоров Intel (i80286) MS DOS использует ресурсы реального режима 16-ти разрядных процессоров Intel (i80286) Разрядность шины адреса i80286 составляет 20 бит Разрядность шины адреса i80286 составляет 20 бит Допустимое адресуемое адресное пространство составляет 2 20 = 1Мбайт (с адресами от 0 до ) Допустимое адресуемое адресное пространство составляет 2 20 = 1Мбайт (с адресами от 0 до ) Все регистры процессора 16-ти разрядные, поэтому для работы с ОП использовались виртуальные адреса Все регистры процессора 16-ти разрядные, поэтому для работы с ОП использовались виртуальные адреса
8 Сегментация памяти в MS DOS Сегмент – непрерывный участок оперативной памяти нефиксированного размера Сегмент – непрерывный участок оперативной памяти нефиксированного размера Вся ОП в MS DOS делилась на сегменты Вся ОП в MS DOS делилась на сегменты Для обращения к сегментам использовались специальные сегментные регистры процессора (CS, SS, DS, ES, FS, GS), которые хранили сегментные адреса начал сегментов: Для обращения к сегментам использовались специальные сегментные регистры процессора (CS, SS, DS, ES, FS, GS), которые хранили сегментные адреса начал сегментов: –Физический адрес начала сегмента должен быть 20-ти битным –Длина любого сегментного регистра – 16 бит –Сегментный адрес = Физический адрес / 16 –Сегменты MS DOS могут начинаться только с физических адресов, кратных 16-ти, т.е. у которых последние 4 бита заполнены 0 (нулями)
9 Сегментация памяти в MS DOS Для обращения к ячейкам памяти в программе использовались виртуальные адреса имеющие формат segment:offset Для обращения к ячейкам памяти в программе использовались виртуальные адреса имеющие формат segment:offset –segment – сегментный (16-ти разрядный) адрес начала сегмента, в котором находится ячейка –offset – 16-ти разрядное смещение ячейки относительно начала сегмента Т.к. смешение в сегменте задавалось 16-ти разрядным значением, то максимально допустимый размер сегмента составлял 2 16 = 64 Кбайта (смещение – значение в диапазоне от 0 до Т.к. смешение в сегменте задавалось 16-ти разрядным значением, то максимально допустимый размер сегмента составлял 2 16 = 64 Кбайта (смещение – значение в диапазоне от 0 до Виртуальные адреса аппаратно преобразовывались в физические (20-ти разрядные) по формуле ФА = segment * 16 + offset Виртуальные адреса аппаратно преобразовывались в физические (20-ти разрядные) по формуле ФА = segment * 16 + offset
10 Представление программы в памяти в MS DOS Сегмент кода Сегмент стека Сегмент данных CS IP SS SP DS + Оперативная память
11 Распределение памяти в MS DOS: обычная память (640 Кбайт) Объем адресного пространства Содержимое Физический адрес начала области 1 Кбайт Векторы прерываний 00000h 256 байт Область данных BIOS 00400h Операционная система MS DOS 00500h Свободная память для загружаемых прикладных и системных программ
12 Распределение памяти в MS DOS: старшая память (384 Кбайт) Объем адресного пространства Содержимое Физический адрес начала области памяти 64 Кбайт Графический видеобуфер A0000h 32 Кбайт Свобоные адреса B0000h 32 Кбайт Текстовый видеобуфер B8000h 64 Кбайт ПЗУ-расширения BIOS C0000h 128 Кбайт Свободные адреса D0000h 64 Кбайт ПЗУ BIOS F0000h
13 Распределение памяти в MS DOS: расширенная память Объем адресного пространства Содержимое Физический адрес начала области памяти 64 Кбайт HMA (High Memory Area) h До 4 Гбайт XMS (eXtended Memory Specification) 10FFF0h
14 Размещение программ в памяти MS DOS В основной области памяти (первые 640Kбайт, после самой MS DOS с адреса 00500h) В основной области памяти (первые 640Kбайт, после самой MS DOS с адреса 00500h) В области HMA, если определить сегмент с сегментным адресом FFFFh и разрешить пользоваться линией A20 (управляющая линия, разрешающая преобразовывать 20-ти разрядные физические адреса в 32-х разрядные) В области HMA, если определить сегмент с сегментным адресом FFFFh и разрешить пользоваться линией A20 (управляющая линия, разрешающая преобразовывать 20-ти разрядные физические адреса в 32-х разрядные) –MS DOS может работать c HMA только при загруженном драйвере HIMEM.SYS –MS DOS позволяет загружать в HMA часть себя (директивой DOS=HIGH в файле CONFIG.SYS) –MS DOS позволяет загружать программы в HMA командой LH (Load High), указанной перед вызовом com- или exe-файла
15 Размещение программ в памяти MS DOS В области расширенной памяти XMS В области расширенной памяти XMS –Только если MS DOS работает на 32-х разрядной платформе Intel –Если загружен драйвер HIMEM.SYS –Если загружен драйвер emm386.exe, обслуживающий XMS-память и выполняющий отображение 16-ти разрядных адресов на физические –Использование XMS ограничено – пользовательские программы не могут быть загружены в эту область памяти –XMS используется для системных нужд, например, в ней можно создать виртуальные диски (RAMDRIVE.SYS)
16 Оверлейные программы Оверлеи (overlay) – специальные модули программ MS DOS, которые загружаются в ОП независимо от программы в те моменты, когда это необходимо Оверлеи (overlay) – специальные модули программ MS DOS, которые загружаются в ОП независимо от программы в те моменты, когда это необходимо Оверлеи позволяют снять ограничение на объем программы MS DOS Оверлеи позволяют снять ограничение на объем программы MS DOS При загрузке оверлеи размещаются в одном и том же месте памяти, перекрывая друг друга При загрузке оверлеи размещаются в одном и том же месте памяти, перекрывая друг друга
17 Оверлейные программы Основной модуль программы (com или exe) Свободная область основной памяти Дисковое пространство Оверлей - 1 Оверлей - 2 Оверлей - 1 Оверлей - 2
18 Резидентные программы Резидентные программы – это программы, загруженные в ОП и оставленные там до наступления определенного события Резидентные программы – это программы, загруженные в ОП и оставленные там до наступления определенного события Резидентные программы находятся в законсервированном состоянии до тех пор, пока в системе не произойдет какое-либо событие, например, прерывание Резидентные программы находятся в законсервированном состоянии до тех пор, пока в системе не произойдет какое-либо событие, например, прерывание В момент выполнения резидентной программы основная программа приостанавливается В момент выполнения резидентной программы основная программа приостанавливается Резидентные программы – это попытка избежать ограничений однозадачной MS DOS Резидентные программы – это попытка избежать ограничений однозадачной MS DOS
19 Управление физической памятью в многозадачных системах (RSX) Основной подход к управлению ФОП в многозадачных ОС – блочное выделение памяти Основной подход к управлению ФОП в многозадачных ОС – блочное выделение памяти Блок – область памяти, выделенная программе в момент ее загрузки Блок – область памяти, выделенная программе в момент ее загрузки Одна программа может занимать несколько блоков Одна программа может занимать несколько блоков
20 Проблемы при блочном управлении ОП Программы могут удаляться из ОП в произвольном порядке Программы могут удаляться из ОП в произвольном порядке Свободный участок ОП, оставшийся после удаления программы называется фрагментом (или дырой) Свободный участок ОП, оставшийся после удаления программы называется фрагментом (или дырой) При размещении новой программы в ОП ОС должна решить – куда поместить образ программы: При размещении новой программы в ОП ОС должна решить – куда поместить образ программы: –В конец ОП? Рано или поздно физическое адресное пространство закончится и программы не смогут быть загружены в ОП –В свободный фрагмент? Как подобрать подходящий фрагмент для конкретной программы Проблема управления ФОП в многозадачных ОС тесно связана с проблемой фрагментации памяти Проблема управления ФОП в многозадачных ОС тесно связана с проблемой фрагментации памяти
21 Сложение дыр ОС всегда размещает программу в конец уже занятого адресного пространство ОС всегда размещает программу в конец уже занятого адресного пространство Если в ОП возникает дыра, ОС сдвигает занятые участки так, чтобы между ними не было фрагментов свободной памяти (в сторону уменьшения адресов) Если в ОП возникает дыра, ОС сдвигает занятые участки так, чтобы между ними не было фрагментов свободной памяти (в сторону уменьшения адресов) Таким образом, свободное адресное пространство всегда находится в конце памяти Таким образом, свободное адресное пространство всегда находится в конце памяти
22 Пример сложения дыр PIDSAVOL Free Процесс 1 Процесс 2 Процесс 3PIDSAVOL Free1620
23 Заполнение дыр (RSX) При загрузке новой программы оценивается ее объем и находится фрагмент, наиболее подходящий по размеру При загрузке новой программы оценивается ее объем и находится фрагмент, наиболее подходящий по размеру Полностью проблемы фрагментации, но экономит время системы, затрачиваемое на сдвиг программ в памяти Полностью проблемы фрагментации, но экономит время системы, затрачиваемое на сдвиг программ в памяти
24 Пример заполнения дыр 1000 Процесс 1 Процесс 2 Процесс 3 PIDSAVOL Free2160 Free 1500 Процесс 4 (176)PIDSAVOL Free Free2160
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.