Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС.doc
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
429.57 Кб
Скачать

Вопрос 5. Вирт. Память. Методы распределения памяти.

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

I без использования внешней памяти

1. фиксированный раздел:

Вся память делится на блоки фиксированной длины. Система управления памяти решает следующие задачи:

сравнивает размер программы, поступившей на выполнение, и свободные разделы, и выбирает раздел; осуществление загрузки и настройку адресов; 2. динамический раздел:

Изначально вся память свободна. Поступает задача и выделяется память.

Задачи ОС:

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

3. перемещение:

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

по завершению каждой задачи; время от времени

II Виртуальным называется ресурс, который пользователю и пользовательским ресурсам предоставляется свойствами, которыми он в действительности не обладает.

Виртуальная память – это совокупность программно-аппаратных средств, позволяющие пользователю писать программы, размер которых превосходит имеющую оперативную память.

Решает следующие задачи:

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

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

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

Вопрос 6. Принцип кэширования данных. Содержимое cash-памяти представляет из себя совокупность записей обо всех загруженных в неё элементов данных. Каждая запись об элементе включает в себя адрес, который этот элемент данных имеет в АЗУ. Каждая загрузка к АЗУ в системе, где есть cash-память, выполняется в соответствии со следующим алгоритмом:

Просматривается содержимое cash-памяти с целью определения, не находятся ли нужные данные в cash. Поскольку cash-память не адресуема, поэтому поиск данных осуществляется по значению поля адреса в АЗУ.

Объективные свойства:

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

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

В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти выполняется в соот­ветствии со следующим алгоритмом: Просматривается содержимое кэш-памяти с целью определения, не находятся ли нужные данные в кэш-памяти; кэш-память не является адресуемой, поэтому поиск нужных данных осуществляется по содержимому - значению поля "адрес в оперативной памяти", взятому из запроса; Если данные обнаруживаются в кэш-памяти, то они считываются из нее, и результат передается в процессор; Если нужных данных нет, то они вместе со своим адресом копируются из оперативной памяти в кэш-память, и результат выполнения запроса передается в процессор. При копировании данных может оказаться, что в кэш-памяти нет свободного места, тогда выбираются данные, к которым в последний период было меньше всего обращений, для вытеснения из кэш-памяти. Если вытесняе­мые данные были модифицированы за время нахождения в кэш-памяти, то они переписываются в оперативную память. Если же эти данные не были модифицированы, то их место в кэш-памяти объ­является свободным.

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

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

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

Готовность – пассивное состояние процесса; процесс заблокирован в связи с внешними по отношению к нему условиями. У процесса есть все ресурсы, он готов к выполнению, но процессор занят выполнением другого процесса.

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

На протяжении существования процесса его выполнения может быть многократно прервано и продолжено. Чтобы возобновить выполнение процесса, необходимо восстановить его состояние: Восстановить содержимое регистров и программного счетчика; Указатели на открытые файлы; Состояние об ошибках и т.д.

Соответствующая информация называется контекстом. Кроме того, системе для организации планирования процесса требуется определенная дополнительная информация: Идентификатор; Состояние; Данные о степени привилегированности; Место нахождения кодового сегмента

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

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