МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Лекции по предмету Операционные системы

    Виртуальным называется ресурс, который пользователю или пользовательской

    программе представляется обладающим свойствами, которыми он в

    действительности не обладает. Так, например, пользователю может быть

    предоставлена виртуальная оперативная память, размер которой превосходит

    всю имеющуюся в системе реальную оперативную память. Пользователь пишет

    программы так, как будто в его распоряжении имеется однородная оперативная

    память большого объема, но в действительности все данные, используемые

    программой, хранятся на одном или нескольких разнородных запоминающих

    устройствах, обычно на дисках, и при необходимости частями отображаются в

    реальную память.

    Таким образом, виртуальная память - это совокупность программно-аппаратных

    средств, позволяющих пользователям писать программы, размер которых

    превосходит имеющуюся оперативную память; для этого виртуальная память

    решает следующие задачи:

    . размещает данные в запоминающих устройствах разного типа, например,

    часть программы в оперативной памяти, а часть на диске;

    . перемещает по мере необходимости данные между запоминающими

    устройствами разного типа, например, подгружает нужную часть программы

    с диска в оперативную память;

    . преобразует виртуальные адреса в физические.

    Все эти действия выполняются автоматически, без участия программиста, то

    есть механизм виртуальной памяти является прозрачным по отношению к

    пользователю.

    Наиболее распространенными реализациями виртуальной памяти является

    страничное, сегментное и странично-сегментное распределение памяти, а также

    свопинг.

    Страничное распределение

    На рисунке 2.12 показана схема страничного распределения памяти.

    Виртуальное адресное пространство каждого процесса делится на части

    одинакового, фиксированного для данной системы размера, называемые

    виртуальными страницами. В общем случае размер виртуального адресного

    пространства не является кратным размеру страницы, поэтому последняя

    страница каждого процесса дополняется фиктивной областью.

    Вся оперативная память машины также делится на части такого же размера,

    называемые физическими страницами (или блоками).

    Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д.,

    это позволяет упростить механизм преобразования адресов.

    При загрузке процесса часть его виртуальных страниц помещается в

    оперативную память, а остальные - на диск. Смежные виртуальные страницы не

    обязательно располагаются в смежных физических страницах. При загрузке

    операционная система создает для каждого процесса информационную структуру

    - таблицу страниц, в которой устанавливается соответствие между номерами

    виртуальных и физических страниц для страниц, загруженных в оперативную

    память, или делается отметка о том, что виртуальная страница выгружена на

    диск. Кроме того, в таблице страниц содержится управляющая информация,

    такая как признак модификации страницы, признак невыгружаемости (выгрузка

    некоторых страниц может быть запрещена), признак обращения к странице

    (используется для подсчета числа обращений за определенный период времени)

    и другие данные, формируемые и используемые механизмом виртуальной памяти.

    [pic]

    Рис. 2.12. Страничное распределение памяти

    При активизации очередного процесса в специальный регистр процессора

    загружается адрес таблицы страниц данного процесса.

    При каждом обращении к памяти происходит чтение из таблицы страниц

    информации о виртуальной странице, к которой произошло обращение. Если

    данная виртуальная страница находится в оперативной памяти, то выполняется

    преобразование виртуального адреса в физический. Если же нужная виртуальная

    страница в данный момент выгружена на диск, то происходит так называемое

    страничное прерывание. Выполняющийся процесс переводится в состояние

    ожидания, и активизируется другой процесс из очереди готовых. Параллельно

    программа обработки страничного прерывания находит на диске требуемую

    виртуальную страницу и пытается загрузить ее в оперативную память. Если в

    памяти имеется свободная физическая страница, то загрузка выполняется

    немедленно, если же свободных страниц нет, то решается вопрос, какую

    страницу следует выгрузить из оперативной памяти.

    В данной ситуации может быть использовано много разных критериев выбора,

    наиболее популярные из них следующие:

    . дольше всего не использовавшаяся страница,

    . первая попавшаяся страница,

    . страница, к которой в последнее время было меньше всего обращений.

    В некоторых системах используется понятие рабочего множества страниц.

    Рабочее множество определяется для каждого процесса и представляет собой

    перечень наиболее часто используемых страниц, которые должны постоянно

    находиться в оперативной памяти и поэтому не подлежат выгрузке.

    После того, как выбрана страница, которая должна покинуть оперативную

    память, анализируется ее признак модификации (из таблицы страниц). Если

    выталкиваемая страница с момента загрузки была модифицирована, то ее новая

    версия должна быть переписана на диск. Если нет, то она может быть просто

    уничтожена, то есть соответствующая физическая страница объявляется

    свободной.

    Рассмотрим механизм преобразования виртуального адреса в физический при

    страничной организации памяти (рисунок 2.13).

    Виртуальный адрес при страничном распределении может быть представлен в

    виде пары (p, s), где p - номер виртуальной страницы процесса (нумерация

    страниц начинается с 0), а s - смещение в пределах виртуальной страницы.

    Учитывая, что размер страницы равен 2 в степени к, смещение s может быть

    получено простым отделением k младших разрядов в двоичной записи

    виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную

    запись номера страницы p.

    [pic]

    Рис. 2.13. Механизм преобразования виртуального адреса в физический

    при страничной организации памяти

    При каждом обращении к оперативной памяти аппаратными средствами

    выполняются следующие действия:

    1. на основании начального адреса таблицы страниц (содержимое регистра

    адреса таблицы страниц), номера виртуальной страницы (старшие разряды

    виртуального адреса) и длины записи в таблице страниц (системная

    константа) определяется адрес нужной записи в таблице,

    2. из этой записи извлекается номер физической страницы,

    3. к номеру физической страницы присоединяется смещение (младшие разряды

    виртуального адреса).

    Использование в пункте (3) того факта, что размер страницы равен степени 2,

    позволяет применить операцию конкатенации (присоединения) вместо более

    длительной операции сложения, что уменьшает время получения физического

    адреса, а значит повышает производительность компьютера.

    На производительность системы со страничной организацией памяти влияют

    временные затраты, связанные с обработкой страничных прерываний и

    преобразованием виртуального адреса в физический. При часто возникающих

    страничных прерываниях система может тратить большую часть времени впустую,

    на свопинг страниц. Чтобы уменьшить частоту страничных прерываний,

    следовало бы увеличивать размер страницы. Кроме того, увеличение размера

    страницы уменьшает размер таблицы страниц, а значит уменьшает затраты

    памяти. С другой стороны, если страница велика, значит велика и фиктивная

    область в последней виртуальной странице каждой программы. В среднем на

    каждой программе теряется половина объема страницы, что в сумме при большой

    странице может составить существенную величину. Время преобразования

    виртуального адреса в физический в значительной степени определяется

    временем доступа к таблице страниц. В связи с этим таблицу страниц

    стремятся размещать в "быстрых" запоминающих устройствах. Это может быть,

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

    уменьшения времени доступа ассоциативный поиск и кэширование данных.

    Страничное распределение памяти может быть реализовано в упрощенном

    варианте, без выгрузки страниц на диск. В этом случае все виртуальные

    страницы всех процессов постоянно находятся в оперативной памяти. Такой

    вариант страничной организации хотя и не предоставляет пользователю

    виртуальной памяти, но почти исключает фрагментацию за счет того, что

    программа может загружаться в несмежные области, а также того, что при

    загрузке виртуальных страниц никогда не образуется остатков.

    Сегментное распределение

    При страничной организации виртуальное адресное пространство процесса

    делится механически на равные части. Это не позволяет дифференцировать

    способы доступа к разным частям программы (сегментам), а это свойство часто

    бывает очень полезным. Например, можно запретить обращаться с операциями

    записи и чтения в кодовый сегмент программы, а для сегмента данных

    разрешить только чтение. Кроме того, разбиение программы на "осмысленные"

    части делает принципиально возможным разделение одного сегмента несколькими

    процессами. Например, если два процесса используют одну и ту же

    математическую подпрограмму, то в оперативную память может быть загружена

    только одна копия этой подпрограммы.

    Рассмотрим, каким образом сегментное распределение памяти реализует эти

    возможности (рисунок 2.14). Виртуальное адресное пространство процесса

    делится на сегменты, размер которых определяется программистом с учетом

    смыслового значения содержащейся в них информации. Отдельный сегмент может

    представлять собой подпрограмму, массив данных и т.п. Иногда сегментация

    программы выполняется по умолчанию компилятором.

    При загрузке процесса часть сегментов помещается в оперативную память (при

    этом для каждого из этих сегментов операционная система подыскивает

    подходящий участок свободной памяти), а часть сегментов размещается в

    дисковой памяти. Сегменты одной программы могут занимать в оперативной

    памяти несмежные участки. Во время загрузки система создает таблицу

    сегментов процесса (аналогичную таблице страниц), в которой для каждого

    сегмента указывается начальный физический адрес сегмента в оперативной

    памяти, размер сегмента, правила доступа, признак модификации, признак

    обращения к данному сегменту за последний интервал времени и некоторая

    другая информация. Если виртуальные адресные пространства нескольких

    процессов включают один и тот же сегмент, то в таблицах сегментов этих

    процессов делаются ссылки на один и тот же участок оперативной памяти, в

    который данный сегмент загружается в единственном экземпляре.

    [pic]

    Рис. 2.14. Распределение памяти сегментами

    Система с сегментной организацией функционирует аналогично системе со

    страничной организацией: время от времени происходят прерывания, связанные

    с отсутствием нужных сегментов в памяти, при необходимости освобождения

    памяти некоторые сегменты выгружаются, при каждом обращении к оперативной

    памяти выполняется преобразование виртуального адреса в физический. Кроме

    того, при обращении к памяти проверяется, разрешен ли доступ требуемого

    типа к данному сегменту.

    Виртуальный адрес при сегментной организации памяти может быть представлен

    парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический

    адрес получается путем сложения начального физического адреса сегмента,

    найденного в таблице сегментов по номеру g, и смещения s.

    Недостатком данного метода распределения памяти является фрагментация на

    уровне сегментов и более медленное по сравнению со страничной организацией

    преобразование адреса.

    Странично-сегментное распределение

    Как видно из названия, данный метод представляет собой комбинацию

    страничного и сегментного распределения памяти и, вследствие этого,

    сочетает в себе достоинства обоих подходов. Виртуальное пространство

    процесса делится на сегменты, а каждый сегмент в свою очередь делится на

    виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная

    память делится на физические страницы. Загрузка процесса выполняется

    операционной системой постранично, при этом часть страниц размещается в

    оперативной памяти, а часть на диске. Для каждого сегмента создается своя

    таблица страниц, структура которой полностью совпадает со структурой

    таблицы страниц, используемой при страничном распределении. Для каждого

    процесса создается таблица сегментов, в которой указываются адреса таблиц

    страниц для всех сегментов данного процесса. Адрес таблицы сегментов

    загружается в специальный регистр процессора, когда активизируется

    соответствующий процесс. На рисунке 2.15 показана схема преобразования

    виртуального адреса в физический для данного метода.

    [pic]

    Рис. 2.15. Схема преобразования виртуального адреса в физический для

    сегментно-страничной организации памяти

    Свопинг

    Разновидностью виртуальной памяти является свопинг.

    На рисунке 2.16 показан график зависимости коэффициента загрузки процессора

    в зависимости от числа одновременно выполняемых процессов и доли времени,

    проводимого этими процессами в состоянии ожидания ввода-вывода.

    [pic]

    Рис. 2.16. Зависимость загрузки процессора от числа задач и интенсивности

    ввода-вывода

    Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех

    счетных задач. Однако для того, чтобы обеспечить такую же загрузку

    интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются

    десятки таких задач. Необходимым условием для выполнения задачи является

    загрузка ее в оперативную память, объем которой ограничен. В этих условиях

    был предложен метод организации вычислительного процесса, называемый

    свопингом. В соответствии с этим методом некоторые процессы (обычно

    находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик

    операционной системы не исключает их из своего рассмотрения, и при

    наступлении условий активизации некоторого процесса, находящегося в области

    свопинга на диске, этот процесс перемещается в оперативную память. Если

    свободного места в оперативной памяти не хватает, то выгружается другой

    процесс.

    При свопинге, в отличие от рассмотренных ранее методов реализации

    виртуальной памяти, процесс перемещается между памятью и диском целиком, то

    есть в течение некоторого времени процесс может полностью отсутствовать в

    оперативной памяти. Существуют различные алгоритмы выбора процессов на

    загрузку и выгрузку, а также различные способы выделения оперативной и

    дисковой памяти загружаемому процессу.

    Иерархия запоминающих устройств. Принцип кэширования данных

    Память вычислительной машины представляет собой иерархию запоминающих

    устройств (внутренние регистры процессора, различные типы сверхоперативной

    и оперативной памяти, диски, ленты), отличающихся средним временем доступа

    и стоимостью хранения данных в расчете на один бит (рисунок 2.17).

    Пользователю хотелось бы иметь и недорогую и быструю память. Кэш-память

    представляет некоторое компромиссное решение этой проблемы.

    [pic]

    Рис. 2.17. Иерархия ЗУ

    Кэш-память - это способ организации совместного функционирования двух типов

    запоминающих устройств, отличающихся временем доступа и стоимостью хранения

    данных, который позволяет уменьшить среднее время доступа к данным за счет

    динамического копирования в "быстрое" ЗУ наиболее часто используемой

    информации из "медленного" ЗУ.

    Кэш-памятью часто называют не только способ организации работы двух типов

    запоминающих устройств, но и одно из устройств - "быстрое" ЗУ. Оно стоит

    дороже и, как правило, имеет сравнительно небольшой объем. Важно, что

    механизм кэш-памяти является прозрачным для пользователя, который не должен

    сообщать никакой информации об интенсивности использования данных и не

    должен никак участвовать в перемещении данных из ЗУ одного типа в ЗУ

    другого типа, все это делается автоматически системными средствами.

    Рассмотрим частный случай использования кэш-памяти для уменьшения среднего

    времени доступа к данным, хранящимся в оперативной памяти. Для этого между

    процессором и оперативной памятью помещается быстрое ЗУ, называемое просто

    кэш-памятью (рисунок 2.18). В качестве такового может быть использована,

    например, ассоциативная память. Содержимое кэш-памяти представляет собой

    совокупность записей обо всех загруженных в нее элементах данных. Каждая

    запись об элементе данных включает в себя адрес, который этот элемент

    данных имеет в оперативной памяти, и управляющую информацию: признак

    модификации и признак обращения к данным за некоторый последний период

    времени.

    [pic]

    Рис. 2.18. Кэш-память

    В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти

    выполняется в соответствии со следующим алгоритмом:

    1. Просматривается содержимое кэш-памяти с целью определения, не

    находятся ли нужные данные в кэш-памяти; кэш-память не является

    адресуемой, поэтому поиск нужных данных осуществляется по содержимому

    - значению поля "адрес в оперативной памяти", взятому из запроса.

    2. Если данные обнаруживаются в кэш-памяти, то они считываются из нее, и

    результат передается в процессор.

    3. Если нужных данных нет, то они вместе со своим адресом копируются из

    оперативной памяти в кэш-память, и результат выполнения запроса

    передается в процессор. При копировании данных может оказаться, что в

    кэш-памяти нет свободного места, тогда выбираются данные, к которым в

    последний период было меньше всего обращений, для вытеснения из кэш-

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.