Лекции по предмету Операционные системы
в оперативную память (при
этом для каждого из этих сегментов операционная система подыскивает
подходящий участок свободной памяти), а часть сегментов размещается в
дисковой памяти. Сегменты одной программы могут занимать в оперативной
памяти несмежные участки. Во время загрузки система создает таблицу
сегментов процесса (аналогичную таблице страниц), в которой для каждого
сегмента указывается начальный физический адрес сегмента в оперативной
памяти, размер сегмента, правила доступа, признак модификации, признак
обращения к данному сегменту за последний интервал времени и некоторая
другая информация. Если виртуальные адресные пространства нескольких
процессов включают один и тот же сегмент, то в таблицах сегментов этих
процессов делаются ссылки на один и тот же участок оперативной памяти, в
который данный сегмент загружается в единственном экземпляре.
[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. Если нужных данных нет, то они вместе со своим адресом копируются из
оперативной памяти в кэш-память, и результат выполнения запроса
передается в процессор. При копировании данных может оказаться, что в
кэш-памяти нет свободного места, тогда выбираются данные, к которым в
последний период было меньше всего обращений, для вытеснения из кэш-
памяти. Если вытесняемые данные были модифицированы за время
нахождения в кэш-памяти, то они переписываются в оперативную память.
Если же эти данные не были модифицированы, то их место в кэш-памяти
объявляется свободным.
На практике в кэш-память считывается не один элемент данных, к которому
произошло обращение, а целый блок данных, это увеличивает вероятность так
называемого "попадания в кэш", то есть нахождения нужных данных в кэш-
памяти.
Покажем, как среднее время доступа к данным зависит от вероятности
попадания в кэш. Пусть имеется основное запоминающие устройство со средним
временем доступа к данным t1 и кэш-память, имеющая время доступа t2,
очевидно, что t2
| | скачать работу |
Лекции по предмету Операционные системы |