Организация хранения информации — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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

Организация хранения информации

2017-09-30 200
Организация хранения информации 0.00 из 5.00 0 оценок
Заказать работу

Запоминающие устройства в ЭВМ служат для хранения информации и обмена ею с другими компонентами ЭВМ. Среди выпускаемых интегральных схем 40% приходится на схемы памяти. Организация устройств памяти в ЭВМ иерархическая.

Глобальная память (сетевые ресурсы) Внешняя Память (HDD, FDD и т.п.) Основная память RAM и ROM

К Р И С Т А Л Л
СОЗУ
Кэш уровня
Кэш уровня

 

CPU
I

 

D

Рис.8. Структура памяти.

При передаче в CPU инструкции (I) и при обмене данными (D) между CPU и памятью возникает “узкое горлышко”, приводящее к значительному снижению производительности CPU. Для повышения производительности используется конвейерное выполнение инструкций, организуется очередь инструкций, используются несколько CPU. Память любого уровня характеризуется быстродействием (временем доступа) и емкостью.

Время доступа задается в наносекундах (нс) и характеризует быстродействие памяти.

Емкость (Q) выражается в байтах (К = 1024 байт; М = 1024 Кбайт = 1048576 байт; Г = 1024 Мбайт).

Конфигурация запоминающих устройств выражается произведением количества хранимых слов на их разрядность. Например, выражения 4096х16, 8192х8 представляют память одинаковой емкости, но с разным внешним интерфейсом.

Управление памятью.

Под управлением памятью понимается:

  1. Учет и распределение памяти.
  2. Обеспечение доступа к информации в памяти.

Для учета и распределения используются системные функции. В DOS вызов системных функций осуществляется с помощью системы прерывания (int 21h). В Windows для манипуляции с памятью в режиме пользователя используются программные средства API Win32, а для манипуляции с памятью в режиме ядра используются специальные системные вызовы, отличающиеся от API вызовов.

При организации доступа к информации в памяти используются 2 метода:

a) Метод логической адресации элементов памяти (использование порций информации). Логический адрес не указывает пользователю местоположение ячейки памяти, в которой размещается адресуемый операнд. Операнд может размещаться в основной (ОЗУ) или во внешней памяти (ВЗУ).

b) Метод свопинга, заключающийся в перемещении порции информации между ОЗУ и фиксированным пространством ВЗУ. Перемещаемая порция данных содержит логически адресуемый операнд.

Метод логической адресации основан на логическом делении совокупности обрабатываемых элементов данных на порции. Порции организованы в виде сегмента, имеющего постоянный или переменный размер. Логический адрес элемента данных, состоящий из номера сегмента и величины, указывающей на смещение элемента данных в сегменте, преобразуется в линейный адрес. Линейный адрес элемента данных получается суммированием величин начального (базового) адреса размещения сегмента в памяти и адреса смещения элемента данных внутри сегмента. Линейные адреса составляют непрерывное несегментированное адресное пространство. Линейный адрес элемента данных может совпадать с его физическим (ОЗУ) адресом, если при трансляции логического адреса в физический не используется режим страничной адресации.

При использовании страничной адресации виртуальная память представляется совокупностью страниц фиксированного размера, например 212 байт, которые отображаются на физическую память (на страничный кадр). Логическое адресное пространство, получаемое при использовании сегментного и страничного способов адресации, называется виртуальным адресным пространством.

Трансляция виртуального (логического) адреса в физический адрес обычно осуществляется за время, соответствующее одному или двум тактам синхронизации в ЭВМ. Для трансляции используются специальные аппаратные средства, например, ассоциативная память, в которой размещаются таблицы описания страниц. Схема трансляции виртуального (логического) адреса в физический адрес представлена на рис. 9.

 

 
 

 

 


Нет

 

Да

 

 

 

 

 

Рис.9. Схема трансляции логического адреса.

Логический адрес в команде состоит из двух частей: селектора (sel 13 бит), размещенного в сегментном регистре и смещения, представленного в команде 32 битами (или 16). Предполагается два уровня трансляции. Число (13 бит) в сегментном регистре (селектор sel) используется на первом уровне трансляции логического адреса в линейный адрес для выбора строки в таблице дескрипторов, содержащей 213 строк. Каждая строка таблицы используется для задания физического адреса сегмента и его атрибутов, среди которых выделяется признак П_ОЗУ наличия сегмента в ОЗУ. Использование для задания местоположения элемента данных в сегменте величины смещения, состоящей из 32 битов, позволяет организовать логическое (виртуальное) адресное пространство размером 245 байт. Пространство линейных адресов памяти разделяется на страницы фиксированного размера, равного обычно 4-м килобайтам, но используются также расширенные страницы размером 2 Мбайта или 4 Мбайта. Описание каждой страницы из линейного адресного пространства хранится в одной из специальных таблиц. При трансляции линейного адреса, полученного после трансляции первого уровня, используются 1025 таблиц, каждая из которых состоит из 210 строк. В строках первой таблицы, называемой каталогом, содержатся 4-байтные указатели на 1024 таблицы страниц, в строках которых указаны физические адреса начала страниц и их атрибуты. Для указания смещения в странице используются 12 битов. Для пояснения логики преобразования виртуального адреса в физический на рис. 10 представлен один уровень трансляции адреса.

Пусть виртуальное адресное пространство (ВАП) разделяется на страницы фиксированного размера, а ОЗУ разделено на страничные кадры того же размера. Отображение виртуальных страниц в страничные кадры описывается таблицей отображения страниц (таблица дескрипторов). Для каждого вычислительного процесса (задачи) используется одна таблица, с помощью которой специальные аппаратные средства осуществляют динамическое преобразование виртуальных адресов в физические адреса. Исходная пользовательская программа логически разделяется на страницы.

 


Пользовательская sel:смещение

программа

Физический адрес П_ОЗУ Физическая память

0 страница ВАП ………… call A …………
1 страница
2 страница ret
………… n страница
   
ХХ  
ХХ  
· · ·  
   
0 ВАП
2 ВАП
· · ·

 


Внешнее ЗУ Таблица дескрипторов ОЗУ

Рис.10. Структура виртуальной памяти.

 

 

Операционная система при запуске пользовательской программы в свободный страничный кадр ОЗУ 0 загружает нулевую виртуальную страницу из ВАП (часть программы, расположенную в ВЗУ). После загрузки в таблице дескрипторов указываются физический адрес 0 размещения нулевой страницы ВАП и атрибуты, среди которых задано единичное значение признака наличия страницы в ОЗУ, обозначаемого П_ОЗУ. Кроме признака наличия страницы в ОЗУ атрибуты содержат также другие признаки, например, защиты от модификации страницы (разрешено только чтение из страницы). При выполнении команды call, принадлежащей нулевой виртуальной странице и размещенной в страничном кадре ОЗУ 0, произойдет так называемое страничное прерывание, так как адрес операнда A в данной команде указывает на процедуру, размещенную во второй виртуальной странице, которая в данный момент не находится в ОЗУ. То есть имеется препятствие для динамического преобразования виртуального адреса операнда A данной команды в физический адрес. Операционная система осуществляет проверку наличия требуемой страницы в файле свопинга (подкачки, откачки). Если данная страница в файле свопинга отсутствует, то процесс преобразования адреса завершается сообщением об ошибке.

При наличии требуемой страницы в файле свопинга операционная система по запросу страничного прерывания осуществит проверку наличия в ОЗУ свободного страничного кадра и при обнаружении свободного места в ОЗУ выполнит подкачку (свопинг) требуемой страницы программы (второй страницы ВАП) в свободный страничный кадр 1. После завершения подкачки виртуальной страницы таблица дескрипторов обновляется (смотри рис. 11) и заново выполняется команда call, вызвавшая прерывание (исключение).

Если при обслуживании запроса на страничное прерывание свободных страничных кадров в ОЗУ не оказывается, то осуществляется принудительное освобождение места для размещения требуемой виртуальной страницы. Существует специальный алгоритм принудительного освобождения пространства ОЗУ. В качестве критерия для принудительного перемещения страницы из ОЗУ в ВЗУ (в файл свопинга) обычно используется количество обращений к странице, размещенной в ОЗУ за последний заданный промежуток времени нахождения страницы в оперативной памяти.

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

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

   
хх  
1 страница  

Рис.11. Модернизация таблицы дескрипторов.

Распределение основной памяти программист может осуществлять принудительно, используя механизм оверлейных сегментов. Нескольким оверлейным сегментам выделяется одна и та же область основной памяти, в которую в определенном временном порядке загружаются оверлейные (перекрывающиеся) сегменты, каждый из которых содержит соответствующую часть программы. Такой механизм позволяет значительно экономить объем памяти при выполнении программы большой размерности. Однако на программиста возлагается осуществление разбиения программы на части и определения последовательности загрузки этих частей программы в основную память. Современные ОС позволяют заменить механизм оверлеев механизмом виртуальной памяти, обеспечивающим динамическое преобразование виртуальных (логических) адресов в физические.

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

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

Для динамической трансляции виртуальных адресов в физические в ОС выделен диспетчер виртуальной памяти, а также используются специальные аппаратные средства. Как уже отмечалось, каждой виртуальной странице сопоставлена строка таблицы отображения страниц, размещенной в основной памяти. В соответствующей строке таблицы отображения страниц указаны признаки, характеризующие страницу, например, признак модификации страницы, признак наличия виртуальной страницы в основной памяти.

Виртуальный адрес операнда может принадлежать команде чтения операнда из памяти или команде записи операнда в память. При выполнении операции записи модифицируется содержимое заданной страницы. Поэтому для заданной страницы устанавливается в единичное состояние признак модификации, указывающий на изменение содержимого страницы. Страницу, характеризующуюся нулевым значением признака модификации, не потребуется сохранять во внешнем запоминающем устройстве в процессе свопинга (выгрузки страницы из основной памяти).

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

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

Для ускорения процесса трансляции виртуального адреса в физический используется ассоциативный буфер (кэш-память или буфер трансляции-ТБ), предназначенный для хранения части таблицы отображения страниц. Обычно ассоциативный буфер хранит информацию о нескольких, например, о 128 последних активно используемых страницах.

Если признак наличия страницы в основной памяти имеет нулевое значение, то необходимо выполнить вызов страничного прерывания (исключения), которое обрабатывается специальной процедурой обслуживания, именуемой PageFault и принадлежащей ОС. Ниже приводится описание обобщенного алгоритма обработки страничных прерываний. Отметим, что при входе в процедуру обработки страничных прерываний флаг I разрешения прерываний от внешних устройств аппаратно сбрасывается, запрещая все внешние прерывания.

Начальные команды процедуры PageFault осуществляют сохранение состояния текущего пользовательского процесса (задачи), вызвавшего страничное прерывание, и процесс переводится в состояние ожидания события (помечается как блокированный).

Проверяется имеющаяся в ОС таблица с описанием состояний (занятости) всех страничных кадров и при обнаружении нескольких свободных кадров выбирается свободный страничный кадр с наименьшим номером. Выбранный кадр в таблице описания состояний страничных кадров помечается как занятый, так как в него будет загружена виртуальная страница. Флаг I разрешения прерываний от внешних устройств с помощью команды STI устанавливается в единицу, разрешая все внешние прерывания. Требуемая виртуальная страница может быть загружена и поэтому формируется запрос на ввод-вывод для чтения виртуальной страницы в выбранный страничный кадр.

Выполняется ожидание завершения операции перемещения (чтения) виртуальной страницы.

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

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

Если выбранный для выталкивания страничный кадр подвергался модификации, то обновляется таблица отображения страниц. Флаг I разрешения прерываний от внешних устройств с помощью команды STI устанавливается в единицу, разрешая все внешние прерывания. Формируется запрос на ввод-вывод для переписывания содержимого страничного кадра во внешнее запоминающее устройство.

Выполняется ожидание завершения операции перемещения содержимого страничного кадра. Затем восстанавливается состояние пользовательского процесса, вызвавшего страничное прерывание, и прерванный процесс переводится в состояние готовности. Процедура обработки страничного прерывания завершается

В процедуре PageFault процесс понимается как часть приложения, выполняющая некоторую функцию. Процесс – программа – задача. При функционировании центральное процессорное устройство CPU переключается между процессами (задачами). Каждому процессу назначается номер, который определяет его приоритет. Процесс может находиться в следующих состояниях.

Бездействие – процесс размещен в памяти и не имеет доступа к ОС.

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

Задержка – выполнение процесса отложено на неопределенный промежуток времени.

Ожидание события – для перехода в состояние готовности к действиям должно произойти событие.

Выполнение – процесс расходует время CPU.

Прерывание – CPU обрабатывает запрос на прерывание.

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

Рис. 12. Состояния процесса.

 

Завершая обсуждение организации виртуальной памяти, изобразим процедуру обработки команды ЭВМ, содержащей виртуальный адрес операнда. Смотри файл дополнение.

К достоинствам виртуальной памяти следует отнести, во-первых, возможность значительного расширения адресного пространства для пользователя. Во-вторых, используемое адресное пространство (ОЗУ и ВЗУ) является однородным и, в-третьих, обеспечивается защита пользовательских программ друг от друга. Используемые в программе ссылки возможны только для доступа к выделенным порциям памяти. При выполнении неправильной ссылки в программе произойдет прерывание по ошибке, которое предотвратит повреждение адресного пространства одного процесса другим.

Основной недостаток организации виртуальной памяти заключается в значительных затратах времени на осуществление свопинга. При страничной организации виртуальной памяти возможно неэффективное функционирование ЭВМ, называемое пробуксовкой (Thrashing). Для пояснения данного явления предположим, что время обращения к операнду, размещенному в ОЗУ, составляет 1 mks, а время считывания страницы, содержащей нужный операнд, из внешней памяти составляет 10000 mks (10 ms). Предположим также, что в среднем для всех задач в вычислительной системе только одно из ста обращений к виртуальной памяти вызывает страничное прерывание. Такое соотношение количества обращений и прерываний является заниженным, но даже при такой ситуации вычислительная система будет функционировать неэффективно.

На каждые 100 обращений вместо 100 mks вычислительная система потратит 10000 mks, так как осуществляется считывание страницы из внешней памяти. Следовательно, вычислительная система 99% потратит на свопинг и 1% на полезную работу.

Для ликвидации пробуксовки необязательно размещать все требуемые страницы в ОЗУ. Для реальных программ существует свойство локальности ссылок. То есть обращения в реальных программах происходят не к любому произвольному адресу пространства, выделяемого программе. Существует тенденция к группировке адресов, к которым производятся обращения при разработке программы. Поэтому можно достичь приемлемого количества страничных прерываний, не сохраняя все адресное пространство, выделенное программе в ОЗУ. При анализе разного типа программ выявлены условия появления пробуксовки, определяемые зависимостью между количеством страничных прерываний и количеством страниц, располагаемых в ОЗУ. Эта зависимость представлена ниже на рис. АА.

 

 

Рис. АА

Изображенная на рис. АА точка W является критической. Величина W соответствует количеству страниц. Если количество страниц, размещенных в ОЗУ, меньше величины W, то возникает пробуксовка в работе ЭВМ, иначе пробуксовка отсутствует и достигается удовлетворительная производительность ЭВМ.

Страничный метод управления доступом используется не только при организации виртуальной памяти, но и при построении кэш-памяти. Кэш-память представляет собой быстродействующую буферную память, имеющую специальные средства управления, в которой дублируется часть информации, хранимой в ОЗУ. При обращении CPU к ОЗУ осуществляется проверка наличия требуемых для CPU данных в кэш-памяти. При наличии данных в кэш-памяти CPU извлекает их из кэш-памяти. Время доступа к данным уменьшится на величину Dt = tдоступа ОЗУ – tдоступа кэш.

При организации кэш-памяти необходимо определить:

· стратегию размещения информации в кэш-памяти, то есть правила определения номеров страниц кэш-памяти, предназначенных для размещения информации из оперативной памяти и указания местоположения информации для последующего поиска.

· Стратегию обновления в оперативной памяти информации, которая должна соответствовать информации, размещаемой в кэш-памяти после взаимодействия с CPU. Т. е. необходимы правила для переноса информации из кэш-памяти в оперативную память с целью ее обновления.

· Стратегию замещения информации в кэш-памяти при отсутствии в ней свободного места, когда возникает потребность копирования в ней информации из оперативной памяти.


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.044 с.