Операционные системы. Виртуальная память
Скачать 69.96 Kb.
|
Введение В последние два десятилетия массовое производство персональных компьютеров и стремительный рост Интернета существенно ускорили становление информационного общества в развитых странах мира. В информационном обществе главным ресурсом является информация, именно на основе владения информацией о самых различных процессах и явлениях можно эффективно и оптимально строить любую деятельность. Большая часть населения в информационном обществе занята в сфере обработки информации или использует информационные и коммуникационные технологии в своей повседневной производственной деятельности. Для жизни и деятельности в информационном обществе необходимо обладать информационной культурой, т.е. знаниями и умениями в области информационных технологий, а также быть знакомым с юридическими и этическими нормами в этой сфере. Информационный подход к исследованию мира реализуется в рамках информатики, комплексной науки об информации и информационных процессах, аппаратных и программных средствах информатизации, информационных и коммуникационных технологиях, а также социальных аспектах процесса информатизации. Виртуальная память Компактная микроэлектронная “память” широко применяется в современной аппаратуре самого различного назначения. Но тем не менее разговор о классификации памяти, её видах следует начать с определения места и роли, отведённой памяти в ЭВМ. Память является одной из самых главных функциональных частей машины, предназначенной для записи, хранения и выдачи команды обрабатываемых данных. Следует сказать, что команды и данные поступают в ЭВМ через устройство ввода, на выходе которого они получают форму кодовых комбинаций 1 и 0. Основная память как правило состоит из запоминающих устройств двух видов оперативного (ОЗУ) и постоянного (ПЗУ). Микросхемы памяти Как было сказано ранее, в современных компьютерах используется так называемая электронная память. Для построения ОЗУ, ПЗУ, регистровых ЗУ в настоящее время широко применяют полупроводниковые интегральные микросхемы, которые изготавливают по специальной полупроводниковой технологии с применением интегральных схем (ИС) и больших интегральных схем (БИС) на основе кремния с высокой степенью интеграции. Рис.1 Рис.2 На рисунках 1 и 2 изображены микросхемы памяти как функциональных узлов: рис. 1 ОЗУ, рис. 2 ПЗУ. Основной составной частью микросхемы ОЗУ является массив элементов памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может хранить один бит информации. Каждый ЭП обязательно имеет свой адрес. Для обращения к ЭП необходимо его “выбрать” с помощью кода адреса, сигналы которого подводят к соответствующим выводам микросхемы. ПЗУ построено аналогично, а функции ЭП в микросхемах ПЗУ выполняют перемычки в виде проводников. С развитием и появлением новых компьютерных технологий, машины несомненно преобразились в лучшую сторону. С изобретением персонального компьютера, даже простой непрофессиональный пользователь получил возможность использовать ПК для собственных целей и нужд. Фирмой Intel™ и другими производителями вычислительной техники были выпущены компьютеры достаточно простые в обращении (по сравнению с огромными ламповыми IBM1401 или “Унивак П”). Как экономить машинное время и в то же время производить больше? Ответ на этот вопрос был найден посредством организации мультипрограммной работы ЭВМ. “Открытие” виртуальной памяти (далее ВП) внесло огромную контрибуцию в развитие современных технологий, облегчило работу как профессионального программиста, так и обычного пользователя, обеспечивая процесс более эффективного решения задач на ЭВМ. Преимущество ВП состоит в том, что объем ОЗУ не может быть увеличено ни практически, ни теоретически. (Это попросту невозможно ни какими средствами нельзя оптимизировать или преобразовать ячейки памяти, для того, чтобы, скажем, помещать туда два бита информации вместо одного). Но как же построена ВП? Дело в том, что при работе машины, использующей виртуальную память, обязательно используется Внешнее Запоминающее Устройство (ВЗУ), которое обычно представляет собой накопитель на гибком магнитном диске или жестком диске типа “винчестер”. Использование виртуальной памяти обязательно подразумевает обращение к диску так как при разработке и внедрению систем с таким методом организации памяти, было представлено, что ячейки оперативной памяти и памяти на диске будут представлять собой единое целое. Виртуальная память представляет собой совокупность всех ячеек памяти оперативной и внешней, имеющих сквозную нумерацию от нуля до предельного значения адреса. Использование ВЗУ очень удобно, так как в это время пользователь оперирует с общим адресным пространством и ему безразлично какая физическая память при этом используется внешняя или внутренняя. При работе ВП всего лишь подразумевается различие между виртуальными адресами и физическими. Алгоритмы замещения страниц Идеальный алгоритм заключается в том, чтобы выгружать ту страницу, которая будет запрошена позже всех. Но этот алгоритм не осуществим, т.к. нельзя знать какую страницу, когда запросят. Можно лишь набрать статистику использования. Алгоритм NRU (Not Recently Used - не использовавшаяся в последнее время страница) Используются биты обращения (R-Referenced) и изменения (M-Modified) в таблице страниц. При обращении бит R выставляется в 1, через некоторое время ОС не переведет его в 0. M переводится в 0, только после записи на диск. Благодаря этим битам можно получить 4-ре класса страниц: не было обращений и изменений (R=0, M=0) не было обращений, было изменение (R=0, M=1) было обращение, не было изменений (R=1, M=0) было обращений и изменений (R=1, M=1) Алгоритм FIFO (первая прибыла - первая выгружена) Недостаток заключается в том, что наиболее часто запрашиваемая страница может быть выгружена. Алгоритм "вторая попытка" Подобен FIFO, но если R=1, то страница переводится в конец очереди, если R=0, то страница выгружается. Алгоритм "вторая попытка" В таком алгоритме часто используемая страница никогда не покинет память. Но в этом алгоритме приходится часто перемещать страницы по списку. Алгоритм "часы" Чтобы избежать перемещения страниц по списку, можно использовать указатель, который перемещается по списку. Алгоритм "часы" Алгоритм LRU (Least Recently Used - использовавшаяся реже всего) Первый метод: Чтобы реализовать этот алгоритм, можно поддерживать список, в котором выстраивать страницы по количеству использования. Эта реализация очень дорога. Второй метод: В таблице страниц добавляется запись - счетчик обращений к странице. Чем меньше значение счетчика, тем реже она использовалась. Алгоритм "рабочий набор" Замещение страниц по запросу - когда страницы загружаются по требованию, а не заранее, т.е. процесс прерывается и ждет загрузки страницы. Буксование - когда каждую следующую страницу приходится процессу загружать в память. Чтобы не происходило частых прерываний, желательно чтобы часто запрашиваемые страницы загружались заранее, а остальные подгружались по необходимости. Рабочий набор - множество страниц (к), которое процесс использовал до момента времени (t). Т.е. можно записать функцию w(k,t). Зависимость рабочего набора w(k,t) от количества запрошенных страниц Алгоритм WSClock Алгоритм основан на алгоритме "часы", но использует рабочий набор. Используются битов R и M, а также время последнего использования. Работа алгоритма WSClock Это достаточно реальный алгоритм, который используется на практике. 7.2 Распределение памяти 7.2.1 Политика распределения памяти Алгоритмы замещения бывают: локальные глобальные Размеры страниц Есть два крайних случая: Маленькие страницы - улучшает распределение памяти, но увеличивает таблицу и частые переключения уменьшают производительность. Большие страницы - наоборот. Совместно используемые страницы Отдельные пространства команд и данных Пример разделения пространства команд и данных Совместно используемые страницы Два процесса могут содержать в таблицах страниц указатели на общие страницы. В случае разделения пространств команд и данных это легко реализуется. Эти данные используются в режиме чтения. В UNIX, когда создается дочерний процесс, у родительского и дочернего процесса общее пространство данных, и только если один из процессов попытается изменить данные, происходит прерывание и создание копии этой страницы, если записи не происходит, то оба процесса продолжают работать с общей памятью. Это приводит к экономии памяти. Политика очистки страниц Лучше всегда держать в запасе свободные блоки, освобождая их заранее, чем при нехватке памяти, искать и освобождать их. Страничный демон - программа, периодически проверяющая состояние памяти, если занято много блоков, то производит выборочную выгрузку страниц. Заключение В целом, применение виртуальной памяти является весомым вкладом в прогрессировании современных компьютерных технологий и большим шагом в развитии программирования, открывающим профессиональному программисту путь к созданию мощных мультизадачных систем и комплексов. Применение виртуальной памяти широко оценивается специалистами в компьютерной медицине, научной кибернетике, профессиональном программировании. Список литературы Вахалия Ю. UNIX изнутри. — СПб.: Питер, 2015. С.844. ISBN 5-94723-013 Иртегов Д. Введение в операционные системы. СПб.: Питер, 2016. Bruce Jacob, Trevor Mudge. Virtual Memory: Issues of Implementation. — Los Alamitos, CA, USA: IEEE Computer Society Press, 2017. ISSN:0018-9162. |