Двухуровневое деление использует виртуальная память
В отличие от памяти жёсткого диска, которую называют внешней памятью, оперативной памяти для сохранения требуется постоянное электропитание.
Необходимым условием для того, чтобы программа могла выполняться, является ее нахождение в оперативной памяти. Только в этом случае процессор может извлекать команды из памяти и интерпретировать их. Объем оперативной памяти, который имеется в компьютере, существенно сказывается на характере протекания вычислительного процесса. Он ограничивает число одновременно выполняющихся программ и размеры их виртуальных адресных пространств. Подмена (виртуализация) оперативной памяти дисковой памятью позволяет повысить уровень мультипрограммирования - объем оперативной памяти компьютера теперь не столь жестко ограничивает количество одновременно выполняемых процессов, поскольку суммарный объем памяти, занимаемой образами этих процессов, может существенно превосходить имеющийся объем оперативной памяти. Понятно, однако, что работа такой «оперативной памяти» происходит значительно медленнее.
Виртуализация оперативной памяти осуществляется совокупностью программных модулей ОС и аппаратных схем процессора и включает решение следующих задач:
· размещение данных в запоминающих устройствах разного типа, например часть кодов программы - в оперативной памяти, а часть - на диске;
· выбор образов процессов или их частей для перемещения из оперативной памяти на диск и обратно;
· перемещение по мере необходимости данных между памятью и диском;
· преобразование виртуальных адресов в физические.
Виртуализация памяти может быть осуществлена на основе двух различных подходов:
· свопинг (swapping) - образы процессов выгружаются на диск и возвращаются в оперативную память целиком;
· виртуальная память (virtual memory) - между оперативной памятью и диском перемещаются части (сегменты, страницы и т. п.) образов процессов.
Свопинг представляет собой частный случай виртуальной памяти и, следовательно, более простой в реализации способ совместного использования оперативной памяти и диска. Однако подкачке свойственна избыточность. А перемещение избыточной информации замедляет работу системы, и также приводит к неэффективному использованию памяти. Кроме того, системы, поддерживающие свопинг не способны загрузить для выполнения процесс, виртуальное адресное пространство которого превышает имеющуюся в наличии свободную память. Из-за указанных недостатков свопинг как основной механизм управления памятью почти не используется в современных OC.
На смену ему пришел более совершенный механизм виртуальной памяти, который заключается в том, что при нехватке места в оперативной памяти на диск выгружаются только части образов процессов.
Ключевой проблемой виртуальной памяти является преобразование виртуальных адресов в физические. Решение этой проблемы, зависит от того, какой способ структуризации виртуального адресного пространства принят в данной ОС. В настоящее время все множество реализаций виртуальной памяти может быть представлено тремя классами.
Страничная виртуальная память организует перемещение данных между памятью и диском страницами - частями виртуального адресного пространства, фиксированного и сравнительно небольшого размера.
Сегментная виртуальная память предусматривает перемещение данных сегментами - частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.
Сегментная-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница.
Для временного хранения сегментов и страниц на диске отводится либо специальная область, либо специальный страничный файл (page file, или paging file). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл, тем больше приложений может одновременно выполнять ОС, однако увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла замедляет их работу, так как значительная часть времени в этом случае тратится на перекачку кодов и данных из оперативной памяти на диск и обратно.
Понятия конфиденциальности, целостности и доступности данных.
Безопасная информационная система - это система, которая, во-первых, защищает данные от несанкционированного доступа, во-вторых, всегда готова предоставить их своим пользователям, а в-третьих, надежно хранит информацию и гарантирует неизменность данных. Таким образом, безопасная система по определению обладает свойствами конфиденциальности, доступности и целостности.
· Конфиденциальность - гарантия того, что секретные данные будут доступны только тем пользователям, которым этот доступ разрешен (такие пользователи называются авторизованными);
· Доступность - гарантия того, что авторизованные пользователи всегда получат доступ к данным;
· Целостность - гарантия сохранности данных, которая обеспечивается запретом для неавторизованных пользователей каким-либо образом изменять, модифицировать, разрушать или создавать данные.
Требования безопасности могут меняться в зависимости от назначения системы, характера используемых данных и типа возможных угроз.
Например, если вы публикуете информацию в Интернете на Web-сервере и вашей целью является сделать её доступной для самого широкого круга людей, то конфиденциальность в данном случае не требуется. Однако требования целостности и доступности остаются актуальными.
Не менее важным в данном примере является и обеспечение доступности данных. Т.к. существует вероятность того, что злоумышленник предпримет атаку, в результате которой помещенные на сервер данные станут недоступными для тех, кому они предназначались.
Понятие конфиденциальности, доступности и целостности могут быть определенны не только по отношению к информации, но и к другим ресурсам вычислительной сети, например внешним устройствам или приложениям.
Любое действие, которое направлено на нарушение конфиденциальности, целостности и/или доступности информации, а также на нелегальное использование других ресурсов сети, называется угрозой. Реализованная угроза называется атакой. Риск-это вероятностная оценка величины возможного ущерба, который может понести владелец информационного ресурса в результате успешно проведенной атаки. Значение риска тем выше, чем более уязвимой является существующая система безопасности, и чем выше вероятность реализации атаки.
Основы симметричного алгоритма шифрования. Пример.
Любая процедура шифрования, превращающая информацию из обычного «понятного» вида в «нечитабельный» зашифрованный вид должна быть дополнена процедурой дешифрирования. Пара процедур - шифрование и дешифрирование - называется криптосистемой.
Алгоритм шифрования считается раскрытым, если найдена процедура, позволяющая подобрать ключ за реальное время. Сложность алгоритма раскрытия является одной из важных характеристик криптосистемы и называется криптостойкостью.
Существуют два класса криптосистем - симметричные и асимметричные. В симметричных схемах шифрования (классическая криптография) секретный ключ зашифровки совпадает с секретным ключом расшифровки. В асимметричных схемах шифрования (криптография с открытым ключом) открытый ключ зашифровки не совпадает с секретным ключом расшифровки.
Модель симметричного шифрования
Модель является универсальной - если зашифрованные данные хранятся в компьютере и никуда не передаются, отправитель и получатель совмещаются в одном лице, а в роли злоумышленника выступает некто, имеющий доступ к компьютеру в ваше отсутствие.
Наиболее популярным стандартом симметричным алгоритмом шифрования данных является DES (Data Enctyption Standart). Суть этого алгоритма заключается в следующем: Данные шифруются поблочно. Перед шифрованием любая форма представления данных преобразуется в числовую. Эти числа получают путем любой открытой процедуры преобразования блока текста в число. На вход шифрующей функции поступает блок данных размером 64 бита, он делится пополам на левую (L) и правую (R) части. На первом этапе на место левой части результирующего блока помещается правая часть исходного блока. Правая часть результирующего блока вычисляется как сумма по модулю 2 (операция XOR) левой, и правой частей исходного блока. Затем на основе случайной двоичной последовательности по определенной схеме в полученном результате выполняются побитные замены и перестановки. Используемая двоичная последовательность, представляющая собой ключ данного алгоритма, имеет длину 64 бита, из которых 56 действительно случайны, а 8 предназначены для контроля ключа.
Схема шифрования по алгоритму DES
Алгоритм DES широко используется в различных технологиях и продуктах безопасности информационных систем. Для того чтобы повысить криптостойкость алгоритмы DES, иногда применяют его усиленный вариант, называемый «тройным DES», который включает троекратное шифрование с использованием двух разных ключей. При этом длина ключа увеличивается с 56 бит до 112 бит, а значит, криптостойкость алгоритма существенно повышается. Но за это приходится платить производительностью – «тройной DES» требует в три раза больше времени, чем «обычный» DES.
В симметричных алгоритмах главную проблему представляют ключи. Во-первых, криптостойкость многих симметричных алгоритмов зависит от качества ключей, это предъявляет повышенные требования к службе генерации ключей. Во-вторых, принципиальной является надежность канала передачи ключа.
Основы несимметричного шифрования. Пример.
Любая процедура шифрования, превращающая информацию из обычного «понятного» вида в «нечитабельный» зашифрованный вид должна быть дополнена процедурой дешифрирования. Пара процедур - шифрование и дешифрирование - называется криптосистемой.
Алгоритм шифрования считается раскрытым, если найдена процедура, позволяющая подобрать ключ за реальное время. Сложность алгоритма раскрытия является одной из важных характеристик криптосистемы и называется криптостойкостью.
Существуют два класса криптосистем - симметричные и асимметричные. В симметричных схемах шифрования (классическая криптография) секретный ключ зашифровки совпадает с секретным ключом расшифровки. В асимметричных схемах шифрования (криптография с открытым ключом) открытый ключ зашифровки не совпадает с секретным ключом расшифровки.
В середине 70-х двое ученых - Винфилд Диффи и Мартин Хеллман - описали принципы шифрования с открытыми ключами.
Особенность шифрования на основе открытых ключей состоит в том, что одновременно генерируется уникальная пара ключей, таких, что текст, зашифрованный одним ключом, может быть расшифрован только с использованием второго ключа и наоборот.
Очевидно, что числа, одно из которых используется для шифрования текста, а другое - для дешифрирования, не могут быть независимыми друг от друга, а значит, есть теоретическая возможность вычисления закрытого ключа по открытому, но это связано с огромным количеством вычислений, которые требуют соответственно огромного времени.
В 1978 году трое ученых разработали систему шифрования с открытыми ключами RSA. полностью отвечающую всем принципам Диффи-Хеллмана. Этот метод состоит в следующем:
1) Случайно выбираются два очень больших простых числа р и q.
2) Вычисляются два произведения n=р*q и m=(p-l)*(q-l).
3) Выбирается случайное целое число Е, не имеющее общих сомножителей с m.
4) Находится D, такое, что DE= 1 по модулю m.
5) Исходный текст, Х, разбивается на блоки таким образом, чтобы О<Х <n.
7) Для дешифрирования вычисляется x=с^d по модулю n.
Зная открытый ключ (Е, n), можно вычислить значение закрытого ключа D. Необходимым промежуточным действием в этом преобразовании является нахождение чисел р и q, для чего нужно разложить на простые множители очень большое число n, а на это требуется очень много времени.
Вследствие сложности реализации операций модульной арифметики криптоалгоритм RSA Часто используют только для шифрования небольших объемов информации, например для рассылки классических секретных ключей или в алгоритмах цифровой подписи, а основную часть пересылаемой информации шифруют с помощью симметричных алгоритмов.
Виртуализация оперативной памяти осуществляется совокупностью программных модулей ОС и аппаратных схем процессора и включает решение следующих задач:
размещение данных в запоминающих устройствах разного типа, например часть кодов программы - в оперативной памяти, а часть - на
диске;
выбор образов процессов или их частей для перемещения из оперативной памяти на диск и обратно;
перемещение по мере необходимости данных между памятью и
диском;
преобразование виртуальных адресов в физические.
Очень важно то, что все действия по организации совместного использования диска и оперативной памяти - выделение места для перемещаемых фрагментов, настройка адресов, выбор кандидатов на загрузку и выгрузку - осуществляются операционной системой и аппаратурой процессора автоматически, без участия программиста, и никак не сказываются на логике работы приложений.
Виртуализация памяти может быть осуществлена на основе двух различных подходов:
свопинг (swapping) -образы процессов выгружаются на диск и возвращаются в оперативную память целиком;
виртуальная память (virtual memory) -между оперативной памятью и диском перемещаются части (сегменты, страницы и т. п.) образов про-цессов.
Свопинг представляет собой частный случай виртуальной памяти и, следовательно, более простой в реализации способ совместного использования оперативной памяти и диска. Однако подкачке свойственна избыточность: когда ОС решает активизировать процесс, для его выполнения, как правило, не требуется загружать в оперативную память все его сегменты полностью - достаточно загрузить небольшую часть кодового сегмента с подлежащей выполнению инструкцией и частью сегментов данных, с которыми работает эта инструкция, а также отвести место под сегмент стека. Аналогично при освобождении памяти для загрузки нового процесса очень часто вовсе не требуется выгружать другой процесс на диск целиком, достаточно вытеснить на диск только часть его образа. Перемещение избыточной информации замедляет работу системы, а также приводит к неэффективному использованию памяти. Кроме того, системы, поддерживающие свопинг, имеют еще один очень существенный недостаток: они не способны загрузить для выполнения процесс, виртуальное адресное пространство которого превышает имеющуюся в наличии свободную память. Именно из-за указанных недостатков свопинг как основной механизм управления памятью почти не используется в современных ОС. На смену ему пришел более совершенный механизм виртуальной памяти, который, как уже было сказано, заключается в том, что при нехватке места в оперативной памяти на диск выгружаются только части образов процессов.
Ключевой проблемой виртуальной памяти, возникающей в результате многократного изменения местоположения в оперативной памяти образов процессов или их частей, является преобразование виртуальных адресов в физические. Решение этой проблемы, в свою очередь, зависит от того, какой способ структуризации виртуального адресного пространства принят в данной системе управления памятью. В настоящее время все множество реализаций виртуальной памяти может быть представлено тремя классами.
Страничная виртуальная память организует перемещение данных между памятью и диском страницами - частями виртуального адресного пространства, фиксированного и сравнительно небольшого размера.
Сегментная виртуальная память предусматривает перемещение данных сегментами - частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.
Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница. Этот способ управления памятью объединяет в себе элементы обоих предыдущих подходов.
Для временного хранения сегментов и страниц на диске отводится либо специальная область, либо специальный файл, которые во многих ОС по традиции продолжают называть областью или файлом свопинга, хотя перемещение информации между оперативной памятью и диском осуществляется уже не в форме полного замещения одного процесса другим, а частями. Другое популярное название этой области - страничный файл (page file, или paging file). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл, тем больше приложений может одновременно выполнять ОС (при фиксированном размере оперативной памяти). Размер страничного файла в современных ОС является настраиваемым параметром, который выбирается администратором системы для достижения компромисса между уровнем мультипрограммирования и быстродействием системы.
Информатика в настоящее время является стремительно развивающийся наукой. Многие студенты постают в технические университеты, чтобы в будущем связать свою деятельность с IT или приближенными областями. Для проверки знаний по теме Операционные системы предлагаем пройти тестирование на этой странице. Обращаем ваше внимание, что в тесте правильные ответы выделены символом [+].
Сегментами процесса виртуального адресного пространства в ОС UNIX являются: 1) программный код; 2) страница; 3) буфер; 4) данные; 5) стек – из перечисленного:
ОС, предоставляющая возможность одновременного доступа к вычислительной системе нескольких пользователей, называется:
При управлении процессами изоляция одного процесса от другого входит в задачи:
[-] а) системного администратора
[-] б) программы пользователя
[+] в) операционной системы
При управлении процессами операционная система использует два основных типа информационных структур:
[+] а) дескриптор процесса и идентификатор процесса
[-] б) дескриптор процесса и идентификатор потоков
[-] в) описатель процесса и идентификатор процесса
Способ организации вычислительного процесса, при котором на одном процессоре выполняются сразу несколько программ, называется:
При делении ядра на основные слои непосредственно над слоем машинно-зависимых модулей расположен слой:
[-] а) менеджеров ресурсов
[+] б) базовых механизмов ядра
[-] в) интерфейса системных вызовов
Использование разделения модулей ОС на резидентные и транзитные позволяет рационально использовать такой ресурс, как:
[-] б) программный ресурс
[+] в) оперативная память
Объединение файловых систем, находящихся на разных устройствах, называется:
Граф, описывающий иерархию каталогов, может быть: 1) линейным списком; 2) двунаправленным списком; 3) деревом; 4) сетью – из перечисленного:
Распределение памяти без использования внешней памяти производится разделами: 1) фиксированными; 2) сегментными; 3) динамическими; 4) страничными; 5) перемещаемыми – из перечисленного:
Множество одновременно выполняемых задач в системах пакетной обработки называется:
[+] а) мультипрограммной смесью
[-] б) многозадачной смесью
[-] в) мультипроцессорной смесью
Крах ядра ОС приводит к краху:
[-] а) резидентных модулей ОС
[+] б) всей вычислительной системы
[-] в) пользовательских приложений
Однородность всех процессоров и единообразие их включения в общую схему системы присуще:
[+] а) симметричной архитектуре
[-] б) симметричной и асимметричной архитектуре
[-] в) асимметричной архитектуре
По отношению к обработчикам прерываний любой поток, назначенный на выполнение планировщиком, имеет:
[-] а) самый высокий приоритет
[-] б) произвольный приоритет
[+] в) самый низкий приоритет
Из перечисленного: 1) страничная; 2) динамическими разделами; 3) сегментная; 4) сегментно-страничная; 5) перемещаемыми разделами – реализация виртуальной памяти представлена классами:
Смесь задач по сравнению с последовательным выполнением всех задач этой смеси выполняется:
[-] а) за тоже время
[-] в) всегда быстрее
Дифференциация обслуживания при квантовании базируется на:
[-] а) только на основе анализа текущей ситуации
[-] б) тысячи миллисекунд
[+] в) истории существования потока в системе
… память компьютера может служить для долговременного хранения программ и данных:
Двухуровневое деление использует виртуальная память:
[-] б) динамическими разделами
Недостатком распределения памяти разделами с фиксированными границами является:
[-] а) фрагментация памяти
[+] б) ограниченность уровней мультипрограммирования
[-] в) значительные временные затраты
В среде NetWare
x различают следующие виды контекстов потока: 1) глобальный контекст; 2) контекст группы потоков; 3) идентифицирующий контекст; 4) контекст отдельного потока; 5) локальный контекст – из перечисленных:
Из перечисленного: 1) менеджер файлов; 2) менеджер ядра; 3) монитор безопасности; 4) менеджер объектов; 5) сетевой адаптер; 6) менеджер процессов – компонентами исполнительной части Windows NT являются:
Вычислительную систему, работающую под управлением ОС, построенной по классической архитектуре, можно представить как систему, состоящую из … связанных слоев:
[-] а) трех произвольно
[-] б) двух произвольно
[+] в) трех иерархически
Вынесенные в пользовательский режим работы модули ОС называются … ОС:
В ОС UNIX простейшими являются драйверы:
Редиректором называют:
[-] а) телекоммуникационную службу
[+] б) клиентскую службу
[-] в) транспортную службу
В системах с абсолютными приоритетами время ожидания потока в очередях может быть сведено к минимуму, если ему назначить:
[+] а) самый высокий приоритет
[-] б) самый низкий приоритет
[-] в) относительный приоритет потока
В промежутке между передачей команд контроллеру центральный процессор может:
[-] а) только опрашивать состояние контроллера
[-] б) находиться только в состоянии ожидания
[+] в) выполнять вычисления
Части файла, размещаемые вне записи MFT, называются:
Перемещение данных фиксированного небольшого размера организует виртуальная память:
Большинство систем виртуальной памяти используют технику, называемую страничной организацией памяти [32, 37]. Любой процесс, реализуемый в компьютере, может обратиться к множеству адресов в памяти. Адреса могут формироваться с применением индексации, базовых регистров, сегментных регистров и другими путями. Эти программно формируемые адреса, называемые виртуальными адресами, формируют виртуальное адресное пространство . На компьютерах без виртуальной памяти виртуальные адреса подаются непосредственно на шину памяти и вызывают для чтения или записи слово в физической памяти с тем же самым адресом.
Когда используется виртуальная память , виртуальные адреса не передаются напрямую шиной памяти. Вместо этого они передаются диспетчеру памяти ( MMU – Memory Management Unit), который отображает виртуальные адреса на физические адреса памяти, как показано на рис. 6.9. Здесь диспетчер памяти показан как часть микросхемы процессора, как обычно и бывает чаще всего. Но логически он мог бы быть отдельной микросхемой, как было в недавнем прошлом.
Все имеющееся в настоящее время множество реализаций виртуальной памяти различается в основном способом структуризации виртуального адресного пространства.
В настоящее время выделяют три метода реализации виртуальной памяти.
- Страничная виртуальная память организует перемещение данных между основной памятью и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера.
- Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученного с учетом смыслового значения данных.
- Сегментно- страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница.
Для временного хранения сегментов и страниц на диске отводится специальная область либо специальный файл (страничный файл или файл подкачки – paging file ). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл , тем больше приложений может одновременно выполнять ОС (при фиксированном размере оперативной памяти). Однако необходимо понимать, что увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла замедляет их работу, так как значительная часть времени при этом тратится на перемещение данных на диск и обратно.
Размер страничного файла в современных ОС является настраиваемым параметром, который выбирается администратором системы для достижения компромисса между уровнем программирования и быстродействием системы.
При страничной организации виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной системы размера, называемые виртуальными страницами ( Virtual pages). В общем случае размер виртуального адресного пространства не кратен размеру страницы, поэтому последняя страница дополняется фиксированной областью.
Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками, или кадрами). Размер страницы выбирается равным степени двойки: 1024, 2048, 4096 байт и т.д. Это позволяет упростить механизм преобразования адресов.
При создании процесса ОС загружает в операционную память несколько его виртуальных страниц (начальные страницы кодового сегмента и сегмента данных). Копия всего виртуального адресного пространства процесса находится на диске. Смежные виртуальные страницы не обязательно находятся в смежных физических страницах. Для каждого процесса ОС создает таблицу страниц – информационную структуру, содержащую записи обо всех виртуальных страницах процесса (рис. 6.10).
Запись таблицы ( дескриптор страницы) включает следующую информацию:
- номер физической страницы (N ф.с.), в которую загружена данная виртуальная страница ;
- признак присутствия Р, устанавливаемый в единицу, если данная страница находится в оперативной памяти;
- признак модификации страницы D, который устанавливается в единицу всякий раз, когда производится запись по адресу, относящемуся к данной странице;
- признак обращения А к странице, называемый также битом доступа, который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице;
- другие управляющие биты, служащие, например, для целей защиты или совместного использования памяти на уровне страниц.
Перечисленные признаки в большинстве моделей процессов устанавливаются аппаратно схемами процессора при выполнении операций с памятью. Информация из таблицы страниц используется для решения вопроса о необходимости перемещения той или иной страницы между памятью и диском, а также для преобразования виртуального адреса в физический. Сами таблицы страниц, так же как и описываемые ими страницы, размещаются в оперативной памяти.
Поскольку процесс может задействовать большой объем виртуальной памяти (например, в Windows 2000 он равен 2 32 = 4 Гбайт), при использовании страницы объемом 4 Кбайт (2 12 ) потребуется 2 20 записей в таблице страниц для каждого процесса. Понятно, что выделять такое количество оперативной памяти под таблицы страниц нецелесообразно. Для преодоления этой проблемы большинство схем виртуальной памяти хранит таблицы страниц не в реальной, а в виртуальной памяти. Это означает, что сами таблицы страниц становятся объектами страничной организации. При работе процесса как минимум часть его таблицы страниц должна располагаться в основной памяти, в том числе запись о странице, выполняющейся в настоящий момент. Адрес таблицы страниц включается в контекст процесса . При активизации очередного процесса ОС загружает адрес его таблицы страниц в специальный регистр .
При каждом обращении к памяти выполняется поиск номера виртуальной страницы , содержащей требуемый адрес , затем по этому номеру определяется нужный элемент таблицы страниц и из него извлекается описывающая страницу информация . Далее анализируется признак присутствия, и если данная виртуальная страница находится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск , то происходит страничное прерывание .
Выполняющий процесс переводится в состояние ожидания, активизируя процесс из очереди процессов, находящихся в состоянии готовности. Параллельно программа обработки страничного прерывания находит на диске требуемую виртуальную страницу и пытается ее загрузить в оперативную память . Если в памяти имеется свободная физическая страница , то загрузка выполняется немедленно. Если же свободных страниц нет, то на основании принятой в данной системе стратегии замещения страниц решается вопрос о том, какую страницу следует выгрузить из оперативной памяти.
После того как выбрана страница, которая должна покинуть оперативную память , обнуляется ее бит присутствия и анализируется ее признак модификации. Если удаляемая страница за время последнего требования в оперативной памяти была модифицирована, то ее новая версия должна быть переписана на диск . Если нет, то принимается во внимание, что на диске уже имеется предыдущая копия этой виртуальной страницы , и никакой записи на диск не производится. Физическая страница объявляется свободной. Из соображений безопасности в некоторых системах освобождаемая страница обнуляется, чтобы невозможно было использовать содержимое выгруженной страницы. Для хранения информации о положении вытесненной страницы в страничном файле ОС может задействовать специальные поля таблицы страниц.
Виртуальный адрес при страничном распределении может быть представлен в виде пары ( P, Sv ), где Р – номер виртуальной страницы процесса ( нумерация страниц начинается с 0), а Sv – смещение в пределах виртуальной страницы (рис. 6.11). Физический адрес также может быть представлен в виде пары ( N, Sf ), где N – номер физической страницы, а Sf – смещение а пределах физической страницы. Задача подсистемы виртуальной памяти состоит в отображении пары значений ( P, Sv ) в пару ( N, Sf ).
Чтобы понять механизм реализации этого отображения, следует остановиться на двух базисных свойствах страничной организации. Как уже отмечалось, объем страницы, как виртуальной, так и физической, выбирается равным степени двойки – 2 к ( k = 8 и более). Отсюда следует, что смещение Sv и Sf может быть получено отделением k младших разделов в двоичной записи виртуального и, соответственно, физического адреса страницы. При этом оставшиеся старшие разделы адреса представляют собой двоичную запись номера виртуальной и, соответственно, физической страницы. Дополнив эти номера к нулям, можно получить начальный адрес виртуальной и физической страниц.
Второе свойство – линейность адресного пространства виртуальной и физической страницы – приводит к тому, что Sf = Sv. Отсюда следует простая схема преобразования виртуального адреса в физический.
При обращении к памяти по некоторому виртуальному адресу ( P, Sv ) аппаратные схемы процессора выполняют следующие действия.
- Из специального регистра процессора извлекается начальный адрес АТ таблицы страниц активного процесса. С помощью сумматора по значениям АТ, Р, L (длина отдельной записи в таблице страниц) определяется адрес нужной записи в таблице страниц:
В итоге полученный физический адрес оперативной памяти представляется парой значений ( N, Sf ).
Рассмотрим пример, поясняющий основные характеристики организации страничной виртуальной памяти. Пусть компьютер имеет оперативную память объемом Еоп = 256 Мбайт , размер страницы выбран равным Естр= 4 Кбайт . В этом случае количество физических страниц равно
Для отображения физического адреса произвольного байта оперативной памяти потребуется K = log2 256*20 2 0 = 28 двоичных разрядов.
Число разрядов для отображения смещения в странице M = log2 4 Кбайт = log2 4096 = 12 .
Если процессор имеет 32-разрядную структуру, то на номер виртуальной страницы отводится 32-12=20 двоичных разрядов. Таким образом, число виртуальных страниц равно Nв = 220 (примерно 1 млн виртуальных страниц ).
Для каждой виртуальной страницы в таблице страниц должна быть запись , содержащая номер виртуальной страницы (20 двоичных разрядов), начальный адрес соответствующей ей физической страницы плюс дополнительные разряды, характеризующие свойства страницы (присутствие, модификация, обращение и т.п.), на которые потребуется 1 байт . Поскольку адрес начала физической страницы кратен 4096, то на него достаточно 28 – 12 = 16 двоичных разрядов (остальные 12 разрядов заполняются нулями). Таким образом, одна запись таблицы страниц займет 20 + 16 + 8 = 44 двоичных разрядов или 6 байт . Общий объем таблицы страниц составит 6 * Nв = 6 Мбайт .
Реально при выборе структуры записи таблицы страниц нужно учитывать следующие факторы. Современные компьютеры позволяют наращивать объем оперативной памяти (например, в ПК она может почти достигать объема виртуальной памяти и даже более). Поэтому на адрес физической страницы в нашем примере следует выделить 32-12 = 20 двоичных разрядов. С другой стороны, нет необходимости в записи (дескрипторе) виртуальной страницы иметь поле с номером виртуальной страницы (20 разрядов), так как адрес нужной записи можно вычислять, как это было рассмотрено выше. Следовательно, в нашем примере длина записи должна быть равной 32 - 12 + 8 = 28 двоичным разрядам, т.е. с округлением до целого числа байт – 4 байт . Таким образом, для каждого выполняющегося в компьютере процесса ОС должна создать страничную таблицу размером 4 * Nв байт = 5 * 2 20 = 4 Мбайт .
Процедура преобразования виртуального адреса в физический без принятия специальных мер ( кэширование активных страниц) занимает один цикл оперативной памяти, который затрачивается на считывание номера физической страницы из таблицы страниц. Поэтому любое обращение к ОП будет занимать 2 цикла вместо одного при работе без виртуальной памяти. Другим фактором, влияющим на производительность систем, являются затраты времени на обработку страничных прерываний. При неправильно выбранной стратегии замещения страниц может возникнуть ситуация, когда система тратит большую часть времени впустую на подкачку страниц из оперативной памяти на диск и обратно.
Читайте также: