ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 618
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
страниц. Рабочее множество определяется для каждого процесса и представляет собой перечень наиболее часто используемых страниц, которые должны постоянно находиться в оперативной памяти и поэто- му не подлежат выгрузке.
Виртуальное адресное пространство процесса 1
Виртуальное адресное пространство процесса 2
Таблица страниц процесса 1
Таблица страниц процесса 2
Vвирт.стр. = Vфиз.стр. = 2k
Регистр адреса таблицы страниц
ВЗУ
Страничный обмен
Рис. 4.15. Страничное распределение памяти
После того как выбрана страница, которая должна покинуть опера- тивную память, анализируется ее признак модификации (из таблицы страниц). Если выталкиваемая страница с момента загрузки была моди- фицирована, то ее новая версия должна быть переписана на диск. Если нет, то она может быть просто уничтожена, т.е. соответствующая физи- ческая страница объявляется свободной.
Рассмотрим механизм преобразования виртуального адреса в фи- зический при страничной организации памяти (рис. 4.16).
Виртуальный адрес kдвоичных разрядов
Таблица страниц
Размер страницы 2k
Физический адрес
Рис. 4.16. Механизм преобразования виртуального адреса в физический при страничной организации памяти
Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p – номер виртуальной страницы процесса (нумерация страниц начинается с 0), s – смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2 в степе- ни k, смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.
При каждом обращении к оперативной памяти аппаратными сред- ствами выполняются следующие действия:
Использование в пункте (3) того факта, что размер страницы равен степени 2, позволяет применить операцию конкатенации (присоедине- ния) вместо более длительной операции сложения, что уменьшает время
получения физического адреса, а значит, повышает производительность компьютера.
На производительность системы со страничной организацией па- мяти влияют временные затраты, связанные с обработкой страничных прерываний и преобразованием виртуального адреса в физический. При часто возникающих страничных прерываниях система может тратить большую часть времени впустую, на перемещение страниц. Чтобы уменьшить частоту страничных прерываний, следовало бы увеличивать размер страницы. Кроме того, увеличение размера страницы уменьшает
размер таблицы страниц, а значит, уменьшает затраты памяти. С другой стороны, если страница велика, значит велика и фиктивная область в последней виртуальной странице каждой программы. В среднем на каждой программе теряется половина объема страницы, что в сумме при большой странице может составить существенную величину. Время преобразования виртуального адреса в физический в значительной сте- пени определяется временем доступа к таблице страниц. В связи с этим таблицу страниц стремятся размещать в «быстрых» запоминающих устройствах. Это может быть, например, набор специальных регистров или память, использующая для уменьшения времени доступа ассоциа- тивный поиск и кэширование данных.
Страничное распределение памяти может быть реализовано в упрощенном варианте, без выгрузки страниц на диск. В этом случае все виртуальные страницы всех процессов постоянно находятся в опера- тивной памяти. Такой вариант страничной организации хотя и не предо- ставляет пользователю виртуальной памяти, но почти исключает фраг- ментацию за счет того, что программа может загружаться в несмежные области, а также того, что при загрузке виртуальных страниц никогда не образуется остатков.
При страничной организации виртуальное адресное пространство процесса делится механически на равные части. Это не позволяет диф- ференцировать способы доступа к разным частям программы (сегмен- там), а это свойство часто бывает очень полезным. Например, можно запретить обращаться с операциями записи и чтения в кодовый сегмент программы, а для сегмента данных разрешить только чтение. Кроме то- го, разбиение программы на «осмысленные» части делает принципи- ально возможным разделение одного сегмента несколькими процесса- ми. Например, если два процесса используют одну и ту же математиче-
скую подпрограмму, то в оперативную память может быть загружена только одна копия этой подпрограммы.
Рассмотрим, каким образом сегментное распределение памяти реа- лизует эти возможности. Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. От- дельный сегмент может представлять собой подпрограмму, массив дан- ных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором.
При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут за- нимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физи- ческий адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делают- ся ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружают- ся, при каждом обращении к оперативной памяти выполняется преобра- зование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.
Виртуальное адресное пространство процесса 1
0 |
1 |
2 |
3 |
4 |
Виртуальное адресное пространство процесса 2
Таблица страниц процесса 1
Nв.с. | Nф.с. | Упр.ин. |
0 | 5 | |
1 | ВЗУ | |
2 | ВЗУ | |
3 | 10 | |
4 | 2 | |
Физи- ческая память | N физ. стр. |
| 0 |
| 1 |
4 пр.1 | 2 |
| 3 |
| 4 |
0 пр.1 | 5 |
| 6 |
| 7 |
0 пр.2 | 8 |
| 9 |
| 10 |
5 пр.2 | 11 |
| 12 |
| 13 |
| 14 |
Nв.с. | Nф.с. | Упр.ин. | |
0 | 8 | | |
| |||
1 | ВЗУ | | |
2 | ВЗУ | | |
3 | ВЗУ | | |
4 | ВЗУ | | |
5 | 11 | |
Таблица страниц процесса 2
0 |
1 |
2 |
3 |
4 |
5 |
Vвирт.стр. = Vфиз.стр. = 2k
Регистр адреса таблицы страниц
ВЗУ
Страничный обмен
Рис. 4.15. Страничное распределение памяти
После того как выбрана страница, которая должна покинуть опера- тивную память, анализируется ее признак модификации (из таблицы страниц). Если выталкиваемая страница с момента загрузки была моди- фицирована, то ее новая версия должна быть переписана на диск. Если нет, то она может быть просто уничтожена, т.е. соответствующая физи- ческая страница объявляется свободной.
Рассмотрим механизм преобразования виртуального адреса в фи- зический при страничной организации памяти (рис. 4.16).
Виртуальный адрес kдвоичных разрядов
Nвиртуальной страницы | Nфизической страницы | ||
| | ||
p | n | ||
| | | |
| | | |
| | |
Таблица страниц
Размер страницы 2k
Физический адрес
Рис. 4.16. Механизм преобразования виртуального адреса в физический при страничной организации памяти
Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p – номер виртуальной страницы процесса (нумерация страниц начинается с 0), s – смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2 в степе- ни k, смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.
При каждом обращении к оперативной памяти аппаратными сред- ствами выполняются следующие действия:
-
На основании начального адреса таблицы страниц (содержимое регистра адреса таблицы страниц), номера виртуальной страницы (старшие разряды виртуального адреса) и длины записи в таблице стра- ниц (системная константа) определяется адрес нужной записи в таблице. -
Из этой записи извлекается номер физической страницы. -
К номеру физической страницы присоединяется смещение (младшие разряды виртуального адреса).
Использование в пункте (3) того факта, что размер страницы равен степени 2, позволяет применить операцию конкатенации (присоедине- ния) вместо более длительной операции сложения, что уменьшает время
получения физического адреса, а значит, повышает производительность компьютера.
На производительность системы со страничной организацией па- мяти влияют временные затраты, связанные с обработкой страничных прерываний и преобразованием виртуального адреса в физический. При часто возникающих страничных прерываниях система может тратить большую часть времени впустую, на перемещение страниц. Чтобы уменьшить частоту страничных прерываний, следовало бы увеличивать размер страницы. Кроме того, увеличение размера страницы уменьшает
размер таблицы страниц, а значит, уменьшает затраты памяти. С другой стороны, если страница велика, значит велика и фиктивная область в последней виртуальной странице каждой программы. В среднем на каждой программе теряется половина объема страницы, что в сумме при большой странице может составить существенную величину. Время преобразования виртуального адреса в физический в значительной сте- пени определяется временем доступа к таблице страниц. В связи с этим таблицу страниц стремятся размещать в «быстрых» запоминающих устройствах. Это может быть, например, набор специальных регистров или память, использующая для уменьшения времени доступа ассоциа- тивный поиск и кэширование данных.
Страничное распределение памяти может быть реализовано в упрощенном варианте, без выгрузки страниц на диск. В этом случае все виртуальные страницы всех процессов постоянно находятся в опера- тивной памяти. Такой вариант страничной организации хотя и не предо- ставляет пользователю виртуальной памяти, но почти исключает фраг- ментацию за счет того, что программа может загружаться в несмежные области, а также того, что при загрузке виртуальных страниц никогда не образуется остатков.
Сегментное распределение
При страничной организации виртуальное адресное пространство процесса делится механически на равные части. Это не позволяет диф- ференцировать способы доступа к разным частям программы (сегмен- там), а это свойство часто бывает очень полезным. Например, можно запретить обращаться с операциями записи и чтения в кодовый сегмент программы, а для сегмента данных разрешить только чтение. Кроме то- го, разбиение программы на «осмысленные» части делает принципи- ально возможным разделение одного сегмента несколькими процесса- ми. Например, если два процесса используют одну и ту же математиче-
скую подпрограмму, то в оперативную память может быть загружена только одна копия этой подпрограммы.
Рассмотрим, каким образом сегментное распределение памяти реа- лизует эти возможности. Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. От- дельный сегмент может представлять собой подпрограмму, массив дан- ных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором.
При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут за- нимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физи- ческий адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делают- ся ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружают- ся, при каждом обращении к оперативной памяти выполняется преобра- зование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.