ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 645
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
может осуществ- ляться по разным правилам: «первый попавшийся раздел достаточного размера»; «раздел, имеющий наименьший достаточный размер»; «раз- дел, имеющий наибольший достаточный размер». Все эти правила име- ют свои преимущества и недостатки.
По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток – фрагментация памяти. Фрагмен- тация – это наличие большого числа несмежных участков свободной па- мяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в од- ном из участков, хотя суммарный объем фрагментов может составить зна- чительную величину, намного превышающую требуемый объём памяти.
t0 t1 t2 t3
– занятая область – свободная область
Рис. 4.13. Распределение памяти динамическими разделами
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших ад- ресов так, чтобы вся свободная память образовывала единую свободную область (рис. 4.14). В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из
одного места памяти в другое, корректируя таблицы свободных и заня- тых областей.
a b
c
Процедура
d сжатия
a+b+c+d
Рис. 4.14. Распределение памяти перемещаемыми разделами
Эта процедура называется сжатием. Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного разме- ра. В первом случае требуется меньше вычислительной работы при кор- ректировке таблиц, а во втором – реже выполняется процедура сжатия. Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физи- ческую должно выполняться динамическим способом.
Хотя процедура сжатия и приводит к более эффективному исполь- зованию памяти, она может потребовать значительного времени, что ча- сто перевешивает преимущества данного метода.
Концепция виртуальной памяти
Общепринятая в настоящее время концепция виртуальной памяти появилась достаточно давно. Она позволила решить целый ряд актуаль- ных вопросов организации вычислений. Прежде всего к числу таких во- просов относится обеспечение надежного функционирования мульти- программных систем. В любой момент времени компьютер выполняет множество процессов (или задач), каждый из которых располагает сво- им адресным пространством. Было бы слишком накладно отдавать всю физическую оперативную память какой-то одной задаче, тем более, что многие задачи реально используют только небольшую часть своего ад-
ресного пространства. Поэтому необходим механизм разделения не- большой физической памяти между различными задачами. Виртуальная память является одним из способов реализации такой возможности. Она делит физическую память на блоки и распределяет их между различны- ми задачами, при этом она предусматривает также некоторую схему за- щиты, которая ограничивает задачу теми блоками, которые ей принад- лежат. Большинство типов виртуальной памяти сокращают также время
начального запуска программы на процессоре, поскольку не весь про- граммный код и данные требуются ей в физической памяти, чтобы начать выполнение.
Другой вопрос, тесно связанный с реализацией концепции вирту- альной памяти, касается организации вычислений на компьютере задач очень большого объёма. Раньше, если программа становилась слишком большой для физической оперативной памяти, часть её необходимо бы- ло хранить во внешней памяти (на диске) и задача приспособить её для решения на компьютере ложилась на программиста. Программисты де- лили программы на части и затем определяли те из них, которые можно было бы выполнять независимо, организуя оверлейные структуры, ко- торые загружались в основную память и выгружались из неё под управ- лением программы пользователя. Программист должен был следить за тем, чтобы программа не обращалась вне отведённого ей пространства физической памяти. Виртуальная память освободила программистов от этого бремени.
Виртуальным называется такой ресурс, который для пользователя (пользовательской программы) представляется обладающим свойства- ми, которыми он в действительности не обладает. Так, например, поль- зователю может быть предоставлена виртуальная оперативная память, размер которой превосходит всю имеющуюся в системе реальную ОП. Пользователь пишет программы так, как будто в его распоряжении име- ется однородная (одноуровневая) оперативная память большого объёма, но в действительности все данные, используемые программой, хранятся на нескольких разнородных запоминающих устройствах, обычно в ОП и на дисках, и при необходимости частями перемещаются между ними. Все эти действия выполняются автоматически, без участия программи- ста, т.е. механизм виртуальной памяти является прозрачным по отноше- нию к пользователю.
Наиболее распространенными реализациями виртуальной памяти являются страничное, сегментное и странично-сегментное распределе- ние памяти (рис. 4.11).
На рис. 4.15 показана схема страничного распределения памяти.
Виртуальное адресное пространство каждого процесса делится на части, называемые виртуальными страницами, одинакового, фиксированно- го (для данной системы) размера. В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью.
Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками).
Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.
При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные – на диск. Смежные виртуальные страницы необязательно располагаются в смежных физических страни- цах. При загрузке операционная система создает для каждого процесса информационную структуру – таблицу страниц, в которой устанавли- вается соответствие между номерами виртуальных и физических стра- ниц для страниц, загруженных в оперативную память, или делается от- метка о том, что виртуальная страница выгружена на диск (ВЗУ). Кроме того, в таблице страниц содержится управляющая информация, такая как признак модификации страницы, признак невыгружаемости (вы- грузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчёта числа обращений за определён- ный период времени) и другие данные, формируемые и используемые механизмом виртуальной памяти.
В данной ситуации может быть использовано много разных крите- риев выбора, наиболее популярные из них следующие:
В некоторых системах используется понятие рабочего множества
По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток – фрагментация памяти. Фрагмен- тация – это наличие большого числа несмежных участков свободной па- мяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в од- ном из участков, хотя суммарный объем фрагментов может составить зна- чительную величину, намного превышающую требуемый объём памяти.
t0 t1 t2 t3
– занятая область – свободная область
Рис. 4.13. Распределение памяти динамическими разделами
Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших ад- ресов так, чтобы вся свободная память образовывала единую свободную область (рис. 4.14). В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из
одного места памяти в другое, корректируя таблицы свободных и заня- тых областей.
ОС | |
П1 | |
| |
П2 | |
| |
П3 | |
| |
П4 | |
| |
ОС | |
П1 | |
П2 | |
П3 | |
П4 | |
| |
a b
c
Процедура
d сжатия
a+b+c+d
Рис. 4.14. Распределение памяти перемещаемыми разделами
Эта процедура называется сжатием. Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного разме- ра. В первом случае требуется меньше вычислительной работы при кор- ректировке таблиц, а во втором – реже выполняется процедура сжатия. Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физи- ческую должно выполняться динамическим способом.
Хотя процедура сжатия и приводит к более эффективному исполь- зованию памяти, она может потребовать значительного времени, что ча- сто перевешивает преимущества данного метода.
-
Организация виртуальной памяти
Концепция виртуальной памяти
Общепринятая в настоящее время концепция виртуальной памяти появилась достаточно давно. Она позволила решить целый ряд актуаль- ных вопросов организации вычислений. Прежде всего к числу таких во- просов относится обеспечение надежного функционирования мульти- программных систем. В любой момент времени компьютер выполняет множество процессов (или задач), каждый из которых располагает сво- им адресным пространством. Было бы слишком накладно отдавать всю физическую оперативную память какой-то одной задаче, тем более, что многие задачи реально используют только небольшую часть своего ад-
ресного пространства. Поэтому необходим механизм разделения не- большой физической памяти между различными задачами. Виртуальная память является одним из способов реализации такой возможности. Она делит физическую память на блоки и распределяет их между различны- ми задачами, при этом она предусматривает также некоторую схему за- щиты, которая ограничивает задачу теми блоками, которые ей принад- лежат. Большинство типов виртуальной памяти сокращают также время
начального запуска программы на процессоре, поскольку не весь про- граммный код и данные требуются ей в физической памяти, чтобы начать выполнение.
Другой вопрос, тесно связанный с реализацией концепции вирту- альной памяти, касается организации вычислений на компьютере задач очень большого объёма. Раньше, если программа становилась слишком большой для физической оперативной памяти, часть её необходимо бы- ло хранить во внешней памяти (на диске) и задача приспособить её для решения на компьютере ложилась на программиста. Программисты де- лили программы на части и затем определяли те из них, которые можно было бы выполнять независимо, организуя оверлейные структуры, ко- торые загружались в основную память и выгружались из неё под управ- лением программы пользователя. Программист должен был следить за тем, чтобы программа не обращалась вне отведённого ей пространства физической памяти. Виртуальная память освободила программистов от этого бремени.
Виртуальным называется такой ресурс, который для пользователя (пользовательской программы) представляется обладающим свойства- ми, которыми он в действительности не обладает. Так, например, поль- зователю может быть предоставлена виртуальная оперативная память, размер которой превосходит всю имеющуюся в системе реальную ОП. Пользователь пишет программы так, как будто в его распоряжении име- ется однородная (одноуровневая) оперативная память большого объёма, но в действительности все данные, используемые программой, хранятся на нескольких разнородных запоминающих устройствах, обычно в ОП и на дисках, и при необходимости частями перемещаются между ними. Все эти действия выполняются автоматически, без участия программи- ста, т.е. механизм виртуальной памяти является прозрачным по отноше- нию к пользователю.
Наиболее распространенными реализациями виртуальной памяти являются страничное, сегментное и странично-сегментное распределе- ние памяти (рис. 4.11).
Страничное распределение
На рис. 4.15 показана схема страничного распределения памяти.
Виртуальное адресное пространство каждого процесса делится на части, называемые виртуальными страницами, одинакового, фиксированно- го (для данной системы) размера. В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью.
Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками).
Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.
При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные – на диск. Смежные виртуальные страницы необязательно располагаются в смежных физических страни- цах. При загрузке операционная система создает для каждого процесса информационную структуру – таблицу страниц, в которой устанавли- вается соответствие между номерами виртуальных и физических стра- ниц для страниц, загруженных в оперативную память, или делается от- метка о том, что виртуальная страница выгружена на диск (ВЗУ). Кроме того, в таблице страниц содержится управляющая информация, такая как признак модификации страницы, признак невыгружаемости (вы- грузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчёта числа обращений за определён- ный период времени) и другие данные, формируемые и используемые механизмом виртуальной памяти.
В данной ситуации может быть использовано много разных крите- риев выбора, наиболее популярные из них следующие:
-
дольше всего не использовавшаяся страница; -
первая попавшаяся страница; -
страница, к которой в последнее время было меньше всего обра- щений.
В некоторых системах используется понятие рабочего множества