Автор работы: Пользователь скрыл имя, 28 Января 2013 в 15:44, шпаргалка
Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Системное программное обеспечение"
Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область. В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется "сжатием". Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц, а во втором - реже выполняется процедура сжатия. Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физическую должно выполняться динамическим способом.
Хотя процедура сжатия и приводит к более эффективному использованию памяти, она может потребовать значительного времени, что часто перевешивает преимущества данного метода.
На разных этапах жизненного цикла программы используются различные типы адресов:
· символьные имена присваивает пользователь при написании на алгоритмическом языке или ассемблере;
· виртуальные адреса вырабатывает транслятор, переводящий программу на машинный язык. Поскольку во время трансляции в общем случае неизвестно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные адреса, считая, что начальным адресом будет нулевой адрес;
· физические адреса соответствуют
номерам ячеек оперативной
Совокупность виртуальных
Системная часть виртуальной памяти в ОС любого типа включает область, подвергаемую страничному вытеснению, и область, на которую страничное вытеснение не распространяется. В невытесняемой области размещаются модули, требующие быстрой реакции и /или постоянного присутствия в памяти, например диспетчер потоков. Остальные модули ОС подвергаются страничному вытеснению, как и пользовательские процессы.
В разных ОС используются разные способы структуризации виртуального адресного пространства. В одних ОС виртуальное адресное пространство процесса представлено в виде непрерывной линейной последовательности виртуальных адресов. Такую структуру делится на адресного пространства называют плоской. При этом виртуальным адресом является одно число, представляющее собой смещение от начала виртуального адресного пространства. Это линейный виртуальный адрес. В других ОС виртуальное адресное пространство части, называемые сегментами. В этом случае помимо линейного адреса может быть использован виртуальный адрес, представляющий собой пару чисел (m,n), где n определяет сегмент, а m – смещение внутри сегмента. Существуют и более сложные способы организации виртуального адресного пространства.
Задачей ОС является отображение индивидуальных адресных пространств всех одновременно выполняющихся процессов на общую физическую память.
В настоящее время типична
Существует два подхода к преобразованию виртуальных адресов в физические:
1) Пересчет виртуальных адресов в физические выполняется один раз для каждого процесса во время начальной загрузки программы в память. Эту операцию выполняет специальная системная программа – перемещающий загрузчик.
2) Программа загружается в
Виртуализация оперативной памяти осуществляется совместно ОС и аппаратными средствами процессора и включает решение следующих задач:
· размещение данных в запоминающих устройствах разного типа, например часть кодов программы – в оперативной памяти, а часть – на диске;
· выбор образов процессов или их частей для перемещения из оперативной памяти на диск и обратно;
· перемещение по мере необходимости данных между памятью и диском;
· преобразование виртуальных адресов в физические.
Виртуализация памяти может быть осуществлена на основе двух различных подходов:
· свопинг (swapping) — образы процессов выгружаются на диск и возвращаются в оперативную память целиком;
· виртуальная память (virtual memory) — между оперативной памятью и диском перемещаются части (сегменты, страницы и т. п.) образов процессов.
Свопинг представляет собой частный
случай виртуальной памяти и, следовательно,
более простой в реализации способ
совместного использования
Ключевой проблемой
· Страничная виртуальная память организует перемещение данных между памятью и диском страницами — частями виртуального адресного пространства, фиксированного и сравнительно небольшого размера.
· Сегментная виртуальная память предусматривает перемещение данных сегментами — частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.
· Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница. Этот способ управления памятью объединяет в себе элементы обоих предыдущих подходов. Для временного хранения сегментов и страниц на диске отводится либо специальная область, либо специальный файл, которые во многих ОС по традиции продолжают называть областью, или файлом свопинга, хотя перемещение информации между оперативной памятью и диском осуществляется уже не в форме полного замещения одного процесса другим, а частями. Другое популярное название этой области — страничный файл (page file, или paging file). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл, тем больше приложений может одновременно выполнять ОС (при фиксированном размере оперативной памяти). Однако необходимо понимать, что увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла замедляет их работу, так как значительная часть времени при этом тратится на перекачку кодов и данных из оперативной памяти на диск и обратно. Размер страничного файла в современных ОС является настраиваемым параметром, который выбирается администратором системы для достижения компромисса между уровнем мультипрограммирования и быстродействием системы.
Адресация памяти в защищенном режиме процессора Intel 80286. Intel 80286 (также i286) — 16-битный x86-совместимый микропроцессор второго поколения фирмы Intel.
В процессоре i286 было реализовано два режима работы — защищённый режим и реальный режим.
В защищённом режиме процессор мог адресовать до 1 Гбайт виртуальной памяти (при этом объем реальной памяти составлял не более 16 Мбайт), за счёт изменения механизма адресации памяти. Суть защищённого режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 Мбайт.
Логический адрес
В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти.
Плоская модель памяти — метод
организации адресного
Управление памятью все ещё (на 2011 год) реализуется на основе плоской модели, в целях содействия функциональности операционной системы, защиты ресурсов, многозадачности или увеличения объёма памяти за пределы ограничений, налагаемых физическим адресным пространством процессора.
Преимущества управления памятью с плоской моделью:
В одном из многозадачных встроенных приложений, где управление памятью не нужно и не желательно, модель обеспечивает простейший интерфейс для программирования, с прямым доступом ко всем местам в памяти и минимальной сложностью конструкции программы.
При многозадачности и
Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти[1]. Также, в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за запрет исполнения кода в странице, что затрудняет атаку по методу переполнения буфера.
Впервые расширение появилось в процессоре Pentium Pro. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на аппаратном уровне (можно определить по команде CPUID) и программное включение режима PAE в ОС.
Кэширование данных
Память вычислительной машины представляет собой иерархию запоминающих устройств (ЗУ), отличающихся средним временем доступа к данным, объемом и стоимостью хранения одного бита (рис. 5.24). Фундаментом этой пирамиды запоминающих устройств служит внешняя память, как правило, представляемая жестким диском. Она имеет большой объем (десятки и сотни гигабайт), но скорость доступа к данным является невысокой. Время доступа к диску измеряется миллисекундами.
На следующем уровне располагается более быстродействующая (время доступа1 равно примерно 10-20 наносекундам) и менее объемная (от десятков мегабайт до нескольких гигабайт) оперативная память, реализуемая на относительно медленной динамической памяти DRAM.