
- •Системное программное обеспечение Кошкин в. В.
- •Место программных средств в вычислительных системах
- •Состав по
- •Общие требования к программному обеспечению
- •Требования к проектируемому программному обеспечению
- •(2) Основные принципы проектирования программного обеспечения (по).
- •Механизмы выполнения программы
- •Последовательность выполнения программы. Основные положения.
- •2) Понятие процедур.
- •(3) Прерывания
- •(4) Процедура ввода/вывода.
- •Управление реальной памятью.
- •Управление виртуальной памятью.
- •Р абота с файлами.
- •Планирование заданий.
- •Распределение ресурсов
- •Защита пользователей.
- •Синхронизация процессов. (1) Синхронизация. Мониторы как инструмент синхронизации.
- •(2) Синхронизация. Реализация взаимного исключения. Семафоры.
- •Загрузчики.
- •Загрузчик, абсолютный загрузчик
- •Перемещающий загрузчик.
- •Управление процессами загрузки.
- •Связывающие загрузчики.
- •Динамическое связывание.
- •Макропроцессоры. (1) понятия о макропроцессорах.
- •(2 )Варианты построения макропроцессоров.
- •Компиляторы Основные функции компиляторов. Последовательность компиляции.
- •Свойства компиляторов, варианты построения.
- •Интерпретаторы.
- •Компиляторы в р-код.
- •Автоматизация процедуры компиляции.
- •Тестовое по. Основные принципы построения тестового по.
- •Основы методики тестирования.
- •Генерация тестовых последовательностей.
- •Вопросы для подготовки к экзаменам по Системному программному обеспечению
- •Объектный файл 1.Obj
- •Выполняемый файл 1.Exe
- •Если нужны изменения
Управление виртуальной памятью.
Виртуальная память – некая математическая копия памяти или ее проекция в реальную оперативную память. Термин применяют для адресного пространства, т.о. адреса некой большой памяти (ВЗУ) переносятся (проецируются) в основную память и процессор, работая с основной памятью, не ощущает, что действительные данные взяты из ВЗУ.
Содержимое виртуальной памяти хранится в ВЗУ по необходимости, часто отображается в ОЗУ реальной. При этом виртуальной она будет называться только тогда, когда пользователь не замечает того, что он работает не с ВЗУ. В процессе загрузки команд, данных промежуток между выполнением текущих команд, содержимое внешней памяти, перезагружается в ОЗУ за счет системных команд. Адреса, которые пользователь использует, находятся в адресном пространстве основной памяти. Пользователь не применяет команд обращения к ВЗУ. Те услуги, что предоставляет ОС по перенесению содержимого ВЗУ в оперативную память пользователь не должен ощущать. Термин виртуальной памяти достаточно условный.
Принято переносить (переписывать) содержимое ВЗУ в оперативную память фрагментами. Важно выделить следующие пункты: 1) когда переносить 2) сколько переносить (какой объем) 3) по каким адресам 4) как часто. Возникает потребность замены существующего содержимого ОЗУ на новый фрагмент, значит какой-то участок (раздел) нужно исключить, поэтому: 5) как выбирать разделы, подлежащие перезаписи. Наиболее простой метод реализации памяти – это размещение страниц по запросам. Вся виртуальная память делится на страницы некой фиксированной длины, число страниц произвольно, но большое. Реальная память поделена на страничные кадры того же объема, что и страницы. Любая страница из ВЗУ может быть отражена в страничном кадре. При этом соответствие между страницей и страничным кадром описывается таблицей отображения страниц. Для каждого процесса (процедуры) своя таблица. Она нужна при аппаратном при образовании адресов. Из виртуальной памяти в соответствующие адреса оперативной памяти.
Таблица преображений напоминает косвенную адресацию, в которой хранятся реальные адреса. Поскольку содержимое таблицы переписывается, такое отображение называют динамическим. Существует и статическое отображение, тогда определена жесткая прямая связь между адресами страниц виртуальной памяти и ОЗУ. При статическом отображения встает проблема эффективного использования объема ОЗУ (смотри размещение в памяти страниц). Динамический способ позволяет более эффективно использовать память, но требует введение таблицы. При использовании таблицы ОС загружает начальную страницу, страничный кадр с первого адреса, остальные страницы по мере надобности. Реальный адрес, который процессор выставляет в ОЗУ, определяется как сумма начального адреса и смещения (адреса в кадре).
В
страница
изменения
Преобразование адресов аппаратными средствами.
Т.е. реальный физический адрес формируется за счет сложения /объединения адреса внутри страницы и содержимого регистра смещения. Но разбиение памяти на страницы имеет недостаток. При смене страницы, при перезаписи время, затраченное на эту смену значительно больше на несколько порядков времени цикла ввода- вывода. Отсюда можно предположить, что загрузка новых страниц должна происходить не часто. Например: если на каждые 100 обращений в память, требуется перезагрузка одной страницы, то реальное время работы и загрузки страниц относиться как 1:100. Т.е. программное обеспечение постоянно перезагружает новые страницы. Такой термин называют пробуксовка. Отсюда страничная организация рациональна, если частота загрузки страниц будет значительно меньше времени обращения. Но этого можно достигнуть, если требуемая информация будет находиться в вызванной странице. Это условие частично выполняется благодаря локальности ссылок. Обращение в памяти происходит не случайно, а они группируются в адресном пространстве. Причины такого явления: 1) команды выполняются последовательно, т.е. необходимая информация или данные располагаются в соседних ячейках; 2) циклы выполняют довольно компактно, небольшая длина; 3) вычисление производиться последовательностью программ.
Если же в каких то заданиях необходимо перезагрузить страницу, число таких событий небольшое. С уменьшением числа хранимых в памяти страниц, возникает потребность перезагрузки, замене страниц на новые. Начиная с некоторой величины Х ход кривой резко меняется, поэтому стремятся число страниц в памяти хранить порядка N=Х. Значение адресов, загруженных страниц и содержимое регистра должны сохраняться при страничных прерываниях. Поэтому соответствующий объем стека д.б. предусмотрен. Наиболее неприятна процедура при работе со страницами возникает при решении – какую из уже загруженных страниц следует вытолкнуть. Субъективно существует вероятность, что она понадобится в текущей памяти. Чтобы формализовать эту процедуру используют признак частости обращения к страницам. В этом случае выталкивается страница, к которой реже обращались, т.е. нужен дополнительный анализатор. Размещение страниц по запросам подразумевает отлаженные связи, т.е. соответствие между адресами виртуальной и реальной памятью не важны, не определяются до момента обращения, загрузки страницы. Этот подход требует времени, но упрощает процедуры адресации.
Виртуальную память можно разделить не сегменты. При этом определяют номер сегмента и смещение внутри его. Сегмент отличается от страницы тем, что его длина произвольна в отличие от страницы, т.е. длина сегмента различна и стремятся их взять такой длины, сколько занимает программа или область данных. Механизм адресации к сегменту аналогичен страничному, поскольку произвольная программа может не уложиться в страницу полностью. При защите информации возникают некоторые сложности. С сегментом эти же процедуры решаются проще. Назначается запрет записи в такой то сегмент. Использование сегментов также позволяет разделить задание пользователю. Во многих устройствах используют как страничное деление памяти, так и сегментное.