1625914891-62d0978a4faa71912bcf30efde0ff3e3 (843827), страница 4
Текст из файла (страница 4)
В элементетаблицы сегментов помимо физического адреса началасегмента обычно содержится и длина сегмента.СегментацияСвязывание адресовЛогические и физические адресные пространства ни поорганизации, ни по размеру не соответствуют другдругу. Максимальный размер логического адресногопространства обычно определяется разрядностьюпроцессора (например, 232) и в современных системахзначительно превышает размер физическогоадресного пространства.Следовательно, процессор и ОС должны быть способныотобразить ссылки в коде программы в реальныефизические адреса, соответствующие текущемурасположению программы в основной памяти.Такое отображение адресов называют трансляцией(привязкой) адреса или связыванием адресовСвязывание адресовФункции системы управленияпамятьюЧтобы обеспечить эффективный контроль использованияпамяти, ОС должна выполнять следующие функции: отображение адресного пространства процесса наконкретные области физической памяти; распределение памяти между процессами; контроль доступа к адресным пространствампроцессов; выгрузка процессов (целиком или частично) вовнешнюю память, когда в оперативной памятинедостаточно места; учет свободной и занятой памяти.Схема с фиксированнымиразделамиСамым простым способом управления оперативнойпамятью является ее предварительное (обычно наэтапе генерации или в момент загрузки системы)разбиение на несколько разделов фиксированнойвеличины.
Поступающие процессы помещаются в тотили иной раздел.При этом происходит условное разбиение физическогоадресного пространства.Связывание логических и физических адресов процессапроисходит на этапе его загрузки в конкретныйраздел, иногда – на этапе компиляции.Схема с фиксированнымиразделамиСхема с фиксированными разделами:(a) – с общей очередью процессов,(b) – с отдельными очередями процессовВнутренняя фрагментацияВнутренняя фрагментация – потеря частипамяти, выделенной процессу, но неиспользуемой им.Фрагментация возникает потому, что процесс неполностью занимает выделенный ему разделили потому, что некоторые разделы слишкоммалы для выполняемых пользовательскихпрограмм.СвопингSwapping – перемещение процессов из главнойпамяти на диск и обратно целиком.Выгруженный процесс может быть возвращен вто же самое адресное пространство или вдругое.
Это ограничение диктуется методомсвязывания.Paging – частичная выгрузка процессов на диск(осуществляется в системах со страничнойорганизацией).Схема с переменнымиразделамиСхема с переменными разделами можетиспользоваться и в тех случаях, когда все процессыцеликом помещаются в памяти, то есть в отсутствиесвопинга.В этом случае вначале вся память свободна и неразделена заранее на разделы. Вновь поступающейзадаче выделяется строго необходимое количествопамяти, не более. После выгрузки процесса памятьвременно освобождается.
По истечении некотороговремени память представляет собой переменноечисло разделов разного размера. Смежныесвободные участки могут быть объединены.Схема с переменнымиразделамиДинамика распределения памяти между процессамиСтратегии размещенияпроцессов в памятиНаиболее распространены три стратегии. Стратегия первого подходящего (First fit). Процесспомещается в первый подходящий по размеру раздел. Стратегия наиболее подходящего (Best fit). Процесспомещается в тот раздел, где после его загрузки останетсяменьше всего свободного места. Стратегия наименее подходящего (Worst fit). Припомещении в самый большой раздел в нем остаетсядостаточно места для возможного размещения еще одногопроцесса.Моделирование показывает, что доля полезно используемойпамяти в первых двух случаях больше, при этом первыйспособ несколько быстрее.Внешняя фрагментацияВнешняя фрагментация – наличие большого числаучастков неиспользуемой памяти, не выделенной ни одномупроцессу.Выбор стратегии размещения процесса между первымподходящим и наиболее подходящим слабо влияет навеличину фрагментации.
Любопытно, что метод наиболееподходящего может оказаться наихудшим, так как оноставляет множество мелких незанятых блоков.Дефрагментация - процедура сжатия, то есть перемещениевсех занятых (свободных) участков в сторону возрастания(убывания) адресов, так, чтобы вся свободная памятьобразовала непрерывную область.Страничная организацияпамятиЛогическое и физическое адресное пространствопредставляются состоящими из наборов блоков или страницодинакового размера.При этом образуются логические страницы (page), асоответствующие единицы в физической памяти называютфизическими страницами или страничными кадрами (pageframes).Страницы (и страничные кадры) имеют фиксированную длину,обычно являющуюся степенью числа 2, и не могутперекрываться.При такой организации внешняя фрагментация отсутствует, апотери из-за внутренней фрагментации, поскольку процессзанимает целое число страниц, ограничены частьюпоследней страницы процесса.Страничная организацияпамяти: адресацияСвязь логического и физического адресов при страничной организации памятиОтличие страничной исегментной организацииСтраничная организация: линейный адреспреобразован в двумерный операционнойсистемой для удобства отображения.Сегментная организация: двумерность адресаявляется следствием представленияпользователя о процессе не в виделинейного массива байтов, а как наборсегментов переменного размера (данные,код, стек...)Сегментно-страничнаяорганизация памятиХранить в памяти сегменты большого размерацеликом так же неудобно, как и хранитьпроцесс непрерывным блоком.
Напрашиваетсяидея разбиения сегментов на страницы.При сегментно-страничной организации памятипроисходит двухуровневая трансляциявиртуального адреса в физический. В этомслучае логический адрес состоит из трехполей: номера сегмента логической памяти,номера страницы внутри сегмента и смещениявнутри страницы.Сегментно-страничнаяорганизация памятиВиртуальная памятьИнформация, с которой работает активный процесс, должнарасполагаться в оперативной памяти.
В схемахвиртуальной памяти у процесса создается иллюзия того,что вся необходимая ему информация имеется в основнойпамяти. Для этого:1. Занимаемая процессом память разбивается на страницы.2. Логический адрес (логическая страница), к которомуобращается процесс, динамически транслируется вфизический адрес (физическую страницу).3. В тех случаях, когда страница, к которой обращаетсяпроцесс, не находится в физической памяти, нужноорганизовать ее подкачку с диска.Для контроля наличия страницы в памяти вводитсяспециальный бит присутствия, входящий в составатрибутов страницы в таблице страниц.Обработка page fault1.2.3.Обслуживание исключительной ситуации;Чтение (подкачка) страницы из вторичнойпамяти;Возобновления выполнения процесса,вызвавшего данный page fault.Обработка page faultДля решения первой и третьей задач ОСвыполняет до нескольких сот машинныхинструкций в течение десятков микросекунд.Время подкачки страницы близко к несколькимдесяткам миллисекунд.Проведенные исследования показывают, чтовероятности page fault 5x10-7 оказываетсядостаточно, чтобы снизить производительностьстраничной схемы управления памятью на 10%Политики управления памятью1.2.3.Политика выборки (fetch policy) –в какой момент следует переписать страницуиз вторичной памяти в первичную.Политика размещения (placement policy) - вкакой участок первичной памяти поместитьпоступающую страницуПолитика замещения (replacement policy) какую страницу нужно вытолкнуть вовнешнюю память, чтобы освободить местоПреимущества виртуальной памятиВозможность выполнения программы, находящейся в памяти лишьчастично, имеет ряд вполне очевидных преимуществ:Программа не ограничена объемом физической памяти.
Упрощаетсяразработка программ, поскольку можно задействовать большиевиртуальные пространства, не заботясь о размере используемойпамяти.Поскольку появляется возможность частичного помещения программы(процесса) в память и гибкого перераспределения памяти междупрограммами, можно разместить в памяти больше программ, чтоувеличивает загрузку процессора и пропускную способность системы.Объем ввода-вывода для выгрузки части программы на диск можетбыть меньше, чем в варианте классического свопинга, в итоге каждаяпрограмма будет работать быстрее.Обеспечивается контроль доступа к отдельным сегментам памяти и, вчастности, защиту пользовательских программ друг от друга и защитуОС от пользовательских программ.Таблицы страницВ случае виртуальной памяти система отображения адресныхпространств помимо трансляции адресов должнапредусматривать ведение таблиц, показывающих, какиеобласти виртуальной памяти в данный момент находятся вфизической памяти и где именно размещаются.Поскольку число виртуальных страниц велико, таблица страницпринимает специфический вид, структура записей становитсяболее сложной, среди атрибутов страницы появляются битыприсутствия, модификации и другие управляющие биты.Структура таблицы страницВиртуальный адрес состоит из виртуальногономера страницы и смещения.