Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Свопинг и виртуальная память




Текст лекции

Ключевые вопросы

· Свопинг и виртуальная память.

· Оперативная память ОС.

· Страницы.

 

Необходимым условием для того, чтобы программа могла выполняться, являет­ся ее нахождение в оперативной памяти. Только в этом случае процессор может извлекать команды из памяти и интерпретировать их, выполняя заданные дейст­вия. Объем оперативной памяти, который имеется в компьютере, существенно сказывается на характере протекания вычислительного процесса. Он ограничи­вает число одновременно выполняющихся программ и размеры их виртуальных адресных пространств. В некоторых случаях, когда псе задачи мультипрограмм­ной смеси являются вычислительными (то есть выполняют относительно мало операций ввода-вывода, разгружающих центральный процессор), для хорошей загрузки процессора может оказаться достаточным всего 3-5 задач. Однако если вычислительная система загружена выполнением интерактивных задач, то для эффективного использования процессора может потребоваться уже несколько де­сятков, а то и сотен задач. Эти рассуждения хорошо иллюстрирует график зависимости коэффициента загрузки процессора от числа одновременно выполняемых процессов и доли времени, проводимого эти­ми процессами в состоянии ожидания ввода-вывода.

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

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

Виртуализация памяти может быть осуществлена на основе двух различных под­ходов:

Q свопинг (swapping) — образы процессов выгружаются на диск и возвращаются в оперативную память целиком;

□ виртуальная память (virtual memory) — между оперативной памятью и дис­ком перемещаются части (сегменты, страницы и т. п.) образов процессов.

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

Именно из-за указанных недостатков свопинг как основной механизм управле­ния памятью почти не используется в современных ОС1. На смену ему пришел более совершенный механизм виртуальной памяти, который заключается в том, что при нехватке места в оперативной памяти на диск выгружаются только части образов процессов.

В некоторых современных ОС, например версиях UNIX, основанных на коде SVR4, ме­ханизм свопинга используется как дополнительный к виртуальной памяти, включаю­щийся только при серьезных перегрузках системы.

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

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

- Сегментная виртуальная память предусматривает перемещение данных сег­ментами — частями виртуального адресного пространства произвольного раз­мера, полученными с учетом смыслового значения данных.

- Сегментная-страничная виртуальная память использует двухуровневое деле­ние: виртуальное адресное пространство делится на сегменты, а затем сегмен­ты делятся на страницы. Единицей перемещения данных здесь является стра­ница. Этот способ управления памятью объединяет в себе элементы обоих предыдущих подходов.

Для временного хранения сегментов и страниц на диске отводится либо специ­альная область, либо специальный файл, которые во многих ОС по традиции продолжают называть областью, или файлом свопинга, хотя перемещение ин­формации между оперативной памятью и диском осуществляется уже не в фор­ме полного замещения одного процесса другим, а частями. Другое популярное название этой области — страничный файл (page file, или paging file). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл, тем боль­ше приложений может одновременно выполнять ОС (при фиксированном раз­мере оперативной памяти). Однако необходимо понимать, что увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла замедляет их работу, так как значительная часть времени при этом тра­тится на перекачку кодов и данных из оперативной памяти на диск и обратно. Размер страничного файла в современных ОС является настраиваемым парамет­ром, который выбирается администратором системы для достижения компро­мисса между уровнем мультипрограммирования и быстродействием системы.




Поделиться с друзьями:


Дата добавления: 2014-11-25; Просмотров: 502; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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