Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 52
Текст из файла (страница 52)
Тогда при просмотре очереди планировщик первым делом проверяет200значение этого счетчика: если его значение — ноль и процесс помещается в освободившемсяразделе, то планировщик обязан загрузить данный процесс в этот раздел.К достоинствам данной модели распределения оперативной памяти можно отнестипростоту аппаратных средств организации мультипрограммирования (например, использованиедвух регистров границ) и простоту используемых алгоритмов. Сделаем небольшое замечание.Если речь идет о модели с N очередями, то никаких дополнительных требований к реализации невозникает.
Можно так все организовать, что подготавливаемый процесс в зависимости от егоразмера будет настраиваться на адресацию соответствующего раздела. Если же речь идет о моделис единой очередью процессов, то появляется требование к перемещаемости кода, это жетребование добавляется и к аппаратной части. В данном случае это регистр базы, который можетсовпадать с одним из регистров границ.К недостаткам можно отнести внутреннюю фрагментацию в разделах, поскольку зачастуюпроцесс, загруженный в раздел, оказывается меньшего размера, чем сам раздел.
Во-вторых, этоограничение предельного размера прикладных процессов размером максимального физическогораздела ОЗУ. И, в-третьих, опять-таки весь процесс размещается в памяти, что может привести кнеэффективному использованию ресурса (поскольку, как упоминалось выше, зачастую процессработает с локализованной областью памяти).5.3Распределение перемещаемыми разделамиДанная модель распределения (5.3) разрешает загрузку произвольного (нефиксированного)числа процессов в оперативную память, и под каждый процесс отводится раздел необходимогоразмера. Соответственно, система допускает перемещение раздела, а, следовательно, и процесса.Такой подход позволяет избавиться от фрагментации.ОСV1(процесс1)ОСV1(процесс1)ОСV1(процесс1)V2(свободно)V3(процесс2)V3(процесс2)V3(процесс2)V4(процесс3)V4(процесс3)V4(процесс3)V5(свободно)Рис. 123.V2+V5(свободно)V2+½V5(процесс4)Распределение перемещаемыми разделами.По мере функционирования операционной системы после завершений тех или иныхпроцессов пространство оперативной памяти становится все более и более фрагментированным: впамяти присутствует множество небольших участков свободного пространства, суммарный объемкоторых позволяет поместить достаточно крупный процесс, но каждый из этих участков меньшеэтого процесса.
Для борьбы с фрагментацией используется специальный процесс компрессии.Данная модель позволяет использовать компрессию за счет того, что исполняемый код процессовможет перемещаться по оперативной памяти.Очевидно, что в общем случае операция компрессии достаточно трудоемкая, поэтомусуществует ряд подходов для ее организации. С одной стороны компрессия может быть201локальной, когда система для высвобождения необходимого пространства передвигает небольшоеколичество процессов (например, два процесса). С другой стороны, возможен вариант, когда внекоторый момент система приостанавливает выполнение всех процессов и начинает ихперемещать, например, к началу оперативной памяти, тогда в конце ОЗУ окажется вся свободнаяпамять.
Таким образом, стратегии могут быть разными.Что касается аппаратной поддержки, то здесь она аналогична предыдущей модели:требуются аппаратные средства защиты памяти (регистры границ или же ключи защиты) иаппаратные средства, позволяющая осуществлять перемещение процессов (в большинстве случаевдля этих целей используется регистр базы, который в некоторых случаях может совпадать с однимиз регистров границ). Используемые алгоритмы также достаточно очевидны и могут напоминатьалгоритмы, рассмотренные при обсуждении предыдущей модели.К основному достоинству данной модели распределения памяти необходимо отнестиликвидацию фрагментации памяти. Отметим, что для систем, ориентированных на работу вмультипрограммном пакетном режиме (когда почти каждый процесс является более или менеебольшой вычислительной задачей), задача дефрагментации, или компрессии, не имеетсущественного значения, поскольку для многочасовых вычислительных задач редкая минутнаяприостановка для совершения компрессии на эффективность системы не влияет.
Соответственно,данная модель хорошо подходит для такого класса систем.Если же, напротив, система предназначена для обработки большого потока задачпользователей, работающих в интерактивном режиме, то частота компрессии будет достаточночастой, а продолжительность компрессии с точки зрения пользователя достаточно большой, что, вконечном счете, будет отрицательно сказываться на эффективности подобной системы.К недостаткам данной модели необходимо отнести опять-таки ограничение предельногоразмера прикладного процесса размером физической памяти. И, так или иначе, это накладныерасходы, связанные с компрессией. В одних системах они несущественны, в других — напротив,имеют большое значение.5.4Страничное распределениеОб этой модели распределения оперативной памяти уже шла речь ранее, но тогда переднами стояла задача лишь ввести читателя в курс дела, в этом же разделе будут обсуждаться болееподробно современные подходы страничной организации памяти.Данная модель основывается на том, что все адресное пространство может бытьпредставлено совокупностью блоков фиксированного размера (5.4), которые называютсястраницами.
Есть виртуальное адресное пространство — это то пространство, в которомоперирует программа, и физическое адресное пространство — это то пространство, которое естьв наличии у компьютера. Соответственно, при страничном распределении памяти существуютпрограммно-аппаратные средства, позволяющие устанавливать соответствие между виртуальнымии физическими страницами. Механизм преобразования виртуального адреса в физическийобсуждался выше, он достаточно прост: берется номер виртуальной страницы и заменяетсясоответствующим номером физической страницы. Также отмечалось, что для этих целейиспользуется т.н. таблица страниц, которая целиком является аппаратной, что на самом делеявляется большим упрощением.
Если рассмотреть современные машины с современным объемомвиртуального адресного пространства, то окажется, что эта таблица будет очень большой поразмеру. Соответственно, возникает важный вопрос, как осуществлять указанное отображениевиртуальных адресов в физические.202Виртуальноеадресное пр-во0123×виртуальнаястраницаПространствофизической памяти0123…K–3K–2K–1Рис. 124.…L–1××Страничное распределение.Ответ на поставленный вопрос, как всегда, неоднозначный и имеет несколько вариантов.Первое решение, приходящее на ум, — это полное размещение таблицы преобразования адресов ваппаратной части компьютера, но это решение применимо лишь в тех системах, где количествостраниц незначительное. Примером такой системы может служить машина БЭСМ-6, котораяимела 32 виртуальные страницы, и вся таблица с 32 строками располагалась в процессоре.
Если жетаблица получается большой, то возникают следующие проблемы: во-первых, высокая стоимостьаппаратной поддержки, а во-вторых, необходимость полной перезагрузки таблицы при сменеконтекстов. Но при этом скорость преобразования оказывается довольно высокой.Альтернативой служит решение, предполагающее хранение данной таблицы в оперативнойпамяти, тогда каждое преобразование происходит через обращение к ОЗУ, что совсемнеэффективно. К аппаратуре предъявляются следующие требования: должен быть регистр,ссылающийся на начало таблицы в ОЗУ, а также должно аппаратно поддерживаться обращение воперативную память по адресу, хранящемуся в указанном регистре, извлечение данных изтаблицы и осуществление преобразования.Возможно оптимизировать рассмотренный подход за счет использования кэширования L1или L2.
С одной стороны, поскольку к таблице страниц происходит постоянное обращение,странички из данной таблицы «зависают» в КЭШе. Но, если в компьютере используется всегоодин КЭШ и для потока управления, и для потока данных, то в этом случае через негонаправляется еще и поток преобразования страниц. Поскольку эти потоки имеют своиособенности, то добавление дополнительного потока со своими индивидуальнымихарактеристиками приведет к снижению эффективности системы.Стоит также отметить, что в современных системах таблицы страниц каждого процессамогут оказаться достаточно большими, мультипрограммные ОС поддерживают обработку сотенили даже тысяч процессов, поэтому держать всю таблицу страниц в оперативной памяти такжеоказывается дорогим занятием.
С другой стороны, если в ОЗУ хранить лишь оперативную частьэтой таблицы, то возникают проблемы, связанные со сменой процессов: необходимо будет частьтаблицы откачивать на внешнюю память, а часть — наоборот, подкачивать, что являетсядостаточно трудоемкой задачей.
Соответственно, возникает проблема организации эффективнойработы с таблицей страниц, чтобы возникающие накладные расходы не приводили к деградациисистемы.Помимо указанных подходов размещения таблицы страниц, каждый из которых имеет своипреимущества и недостатки, в реальности применяют смешанные, или гибридные, решения.Что касается используемых алгоритмов и способов организации данных для моделистраничного распределения памяти, то традиционно применяются решения, связанные сиерархической организацией этих таблиц.203Типовая структура записи таблицы страниц (5.4) содержит информацию о номерефизической страницы, а также совокупность атрибутов, необходимых для описания статусаданной страницы.