русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление памятью


Дата добавления: 2013-12-23; просмотров: 2079; Нарушение авторских прав


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

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

Преобразование виртуальных адресов в реальные (привязка адресов) может происходить при загрузке программы или при выполнении программы. В настоящее время только в ОС MS DOS привязка адресов выполняется при загрузке, во всех же современных системах – при выполнении. При таком подходе привязка выполняется при каждом обращении к памяти, то есть очень часто. Поэтому естественным решением является выполнение этой функции на аппаратном уровне. Аппаратура переводит виртуальные адреса в реальные, используя некоторые таблицы привязки. Подготовка таблиц привязки адресов - операция, выполняемая для процесса одноразово, модификация их производится также одноразово, поэтому задача формирования и модификации таблиц привязки возлагается на ОС. Разработка программ, работающих в виртуальном адресном пространстве, имеет целый ряд преимуществ, которые можно сгруппировать по трем основным направлениям.

1. Удобство для программиста. Программист имеет в своем распоряжении виртуальную память, представляющую собой адресное пространство либо совершенно плоское - с адресами, линейно возрастающими от 0 до максимального значения, либо сегментированное в соответствии с потребностями задачи. При этом он не заботится о том, как будет размещен его процесс в реальной памяти.

2. Реорганизация памяти. Системные средства управления памятью могут выбрать такое отображение виртуальной памяти в реальную, которое обеспечит максимально эффективное использование реальной памяти. В случае, если обеспечивается аппаратная привязка адресов, реорганизация реальной памяти может производиться и в ходе выполнения процесса прозрачно для последнего.



3. Защита. Процесс никак не может обратиться за пределы своего виртуального пространства, никакой процесс не будет иметь доступа к адресному пространству другого процесса.

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

Модели виртуальной памяти.

Традиционные моделей виртуальной памяти, использующие развитые средства аппаратной трансляции адресов сводятся к: сегментной; страничной; комбинированной сегментно-страничной.

В сегментной модели распределение реальной памяти производится блоками переменной длины (сегментами), в страничной – блоками постоянной длины (страницами). Первая модель удобнее для программиста, так как позволяет структурировать адресное пространство программы, вторая – для ОС, т.к. управлять страницами одинакового размера проще. Современные аппаратные средства (Intel-Pentium) поддерживают сегментно-страничную модель, в которой адресное пространство процесса состоит из набора сегментов, а каждый сегмент – из набора страниц. Свопинг ведется на уровне страниц. Для обеспечения возможности миграции страниц из ОП во внешнюю память и обратно, аппаратура поддерживает дескриптор для каждой виртуальной страницы, в котором имеются признаки: присутствия виртуальной страницы в реальной памяти, обращения к странице, обращения к странице для записи. В случае нехватки ОП для вытеснения выбирается страница, к которой дольше всего не было обращений.

В некоторых современных системах на базе 32-разрядных процессоров (Windows 9х, Windows NT, OS/2) обеспечивается плоская модель, в которой виртуальное адресное пространство не сегментируется. Однако, методы такового обеспечения различны. Windows 9х просто отводит каждому процессу единственный сегмент размером 4Гбайт и, таким образом, сводит плоскую модель к страничной. Сама ОС располагается в верхней части этого адресного пространства и, таким образом, не гарантируется ее надежная защита. OS/2 выделяет процессу несколько сегментов, но обеспечивает прозрачный для процесса переход между сегментами. ОС также располагается в верхней части адресного пространства, но в отдельных сегментах, таким образом, ее защита надежнее. Windows NT также создает один сегмент, но верхняя часть адресного пространства содержит не саму ОС, а только переходники – обращения к защищенным процессам ОС, порча этой части адресного пространства не приведет к порче ОС.

Дальнейшее расширение разрядной сетки процессоров может привести к появлению совершенно новых моделей памяти. Уже сейчас одна из таких моделей – одноуровневая – реализована в вычислительной системе AS/400. 64-разрядное адресное слово позволяет процессу иметь плоскую виртуальную память размером до 64 Гэксабайт (!). В AS/400 эта возможность позволяет реализовать два принципиально важных свойства модели памяти:

· в виртуальное адресное пространство процесса включается не только ОП, но вся память - и оперативная и внешняя - имеющаяся в системе;

· все процессы работают в одном и том же виртуальном адресном пространстве, разделяя его, защита памяти обеспечивается дополнительными программно-аппаратными средствами;



<== предыдущая лекция | следующая лекция ==>
Планирование процессов | Порождение программ и процессов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.469 сек.