DAY03 (Старые версии Машбука или нечто подобное)

2019-05-08СтудИзба

Описание файла

Файл "DAY03" внутри архива находится в следующих папках: Старые версии Машбука или нечто подобное, Лекции (Машечкин 1998). Документ из архива "Старые версии Машбука или нечто подобное", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "DAY03"

Текст из документа "DAY03"

4

Лекция №3

Лекция 3

На прошлой лекции перед нами возник целый комплекс проблем по централизации доступа к физическим ресурсам. Мы обсудили тот факт, что исполняемый код может быть привязан к конкретным адресам оперативной памяти. И на один и тот же фрагмент памяти могут претендовать несколько программ. Кроме того, возникает проблема, которую мы назвали проблемой фрагментации, когда длины даже самого большого фрагмента памяти, при необходимости загрузить новый процесс в ОЗУ, может не хватить.

Рассмотрим теперь аппаратные возможности, связанные с организацией работы оперативной памяти, которые позволили бы разрешить эти проблемы.

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

В современных компьютерных системах существуют аппаратные средства, позволяющие использовать два типа адресации:

  • Программную (или виртуальную адресацию);

  • Реальную физическую адресацию;

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

Возникает необходимость в установке соответствия между физическими и виртуальными адресами. Установка этого соответствия реализуется в разных ОС по-разному.

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

Мы рассмотрели общую схему работы виртуальной памяти. Но теперь «опустимся на землю» и рассмотрим конкретный пример организации виртуальной памяти. Рассмотрим схему работы системы с так называемой страничной организацией виртуальной памяти.

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


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

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

Содержимое таблицы заполняется операционной системой при загрузке программы. ОС ставит в соответствие всем виртуальным страницам их физические аналоги. ОС как бы размещает виртуальные страницы в некоторых физических страницах оперативной памяти. Например, ОС взяла 0-ую виртуальную страницу памяти и поместила ее в 25-ую страницу физической памяти, 1-ую страницу разместила в 1-ой, а 2-ую - в 30-ой и т. д. пока ОС не распределит все виртуальные страницы программы. После этого передается управление на начало программы, а затем работает тот механизм, который был описан выше: по номеру виртуальной страницы из таблицы аппаратно выбирается соответствующий номер физической страницы, который опять таки аппаратно подставляется в исполнительный адрес вместо номера виртуальной страницы, то есть происходит изменение старших битов исполнительного адреса.

При этом следует учесть тот факт, что при обращении какой-либо строке таблицы ОС в первую очередь производит контроль. Значение в правом столбце ТП есть код, который является либо номером физической страницы, либо некоторым специальным кодом, на значение которого схемы управления ЦП реагируют определенным образом. Если этот код больше или равен нулю, значит все в порядке и значение этого кода есть номер физической страницы; если же значение этого кода меньше нуля, например -1, то обращение к строке, содержащей этот код, устройств преобразования виртуального адреса в физический, вызовет прерывание. Это прерывание обычно называется прерыванием по защите памяти. (Windows 95 любит выдавать сообщения: «Memory protection error! Page № ...».) Это прерывание происходит, когда в программе осуществляется попытка выхода за пределы адресного пространства, принадлежащего данной программе. Дело в том, что ОС, заполняя ТП, указывает, какие из виртуальных страниц адресного пространства принадлежат данной программе, и если происходит выход за пределы дозволенной памяти, генерируется описанное выше прерывание.

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

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

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

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

Необходимость подкачки (swapping).

Заметим, что при загрузке программы в память может возникнуть ситуация, при которой размера доступного физического адресного пространства может оказаться недостаточно для размещения в нем адресного пространства программы. (Т.е. при загрузке виртуальных страниц в физические доступных физических страниц может просто на просто не хватить). Что делать в данной ситуации?

На этот случай умные люди придумали механизм подкачки (или swapping, еще один термин, встречающийся в литературе это paging). Swapping - аппаратно-программные средства, позволяющие размещать в ОЗУ только часть исполняемой программы и подгружать остальные части по мере необходимости. Это позволяет нам работать с программами, размер которых превышает объем ОЗУ.

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

На этой лекции мы рассмотрели способ страничной организации памяти. Это довольно простой механизм. Но он имеет два существенных недостатка:

  1. ТП должна быть аппаратно реализована в CPU.

  2. Не устранена до конца проблема фрагментации.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее