- •Вопросы к экзамену по спо
- •Перечислите и охарактеризуйте средства аппаратной поддержки функций ос.
- •Механизм виртуальной памяти и его реализация в процессорах фирмы Интел.
- •Понятие процесса и потока: раскройте и охарактеризуйте.
- •6. Перечислите и охарактеризуйте средства аппаратной поддержки функций ос.
- •7. Механизм виртуальной памяти и его реализация в процессорах фирмы Интел.
- •Страничное распределение
- •Сегментное распределение
- •Свопинг
- •8. Понятие процесса и потока: раскройте и охарактеризуйте.
- •9Двоичное кодирование информации. Представление элементарных типов данных: натуральные числа, целые числа со знаком, числа с плавающей точкой.
- •Странично-сегментное распределение
- •10.Компилятор ассемблер-программ, редактор связей (загрузчик).
- •11.Общая структура машинных команд.
- •12.История развития вт в связи с историей развития системного программного обеспечения.
- •13.Организация ввода-вывода, классификация внешних устройств.
- •14.Константы, метки, условная компиляция.
- •15.Атрибуты сегментов
- •17.Этапы проектирования и выполнения программ.
- •Обработка прерываний. Контекст процесса (потока). Особенности операционных систем реального времени.
7. Механизм виртуальной памяти и его реализация в процессорах фирмы Интел.
Существуют различные механизмы, позволяющие распределить адресное пространство-управление памятью:
- с внешней памятью
механизмы использования: страничная память / сегментная память / странично-сегментная память
- без внешней памяти
механизмы использования:
с фиксированными разделами (размер, выделяемый в физ.MEM задается при запуске ОС),
с динамическими разделами (первоначально память не разделена),
с перемещаемыми разделами (overlay / swapping / виртуальная память)
Виртуальным называется ресурс, который пользователю или пользовательской программе представляется обладающим свойствами, которыми он в действительности не обладает. Таким образом, виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи, которые выполняются автоматически:
размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;
перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память;
преобразует виртуальные адреса в физические.
Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг.
Страничное распределение
Виртуальное адресное пространство каждого процесса делится механически на равные части, - виртуальные страницы. Вся оперативная память машины делится на части такого же размера, - физические страницы. При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные - на диск. При загрузке ОС создает для каждого процесса информационную структуру - таблицу страниц, в которой устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка, что виртуальная страница выгружена на диск. Кроме того, в таблице страниц содержится управляющая информация. При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. Если данная виртуальная страница находится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск, то происходит так называемое страничное прерывание. Выполняющийся процесс переводится в состояние ожидания, и активизируется другой процесс из очереди готовых. Параллельно программа обработки страничного прерывания находит на диске требуемую виртуальную страницу и пытается загрузить ее в оперативную память. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если же свободных страниц нет, то решается вопрос, какую страницу следует выгрузить из оперативной памяти.
Сегментное распределение
Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п. Иногда сегментация программы выполняется по умолчанию компилятором. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса, в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа и другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
