Системное программное обеспечение

Автор работы: Пользователь скрыл имя, 28 Января 2013 в 15:44, шпаргалка

Описание

Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Системное программное обеспечение"

Работа состоит из  1 файл

ОС Шпоры.docx

— 207.00 Кб (Скачать документ)

Перемещаемые разделы

Одним из методов борьбы с фрагментацией  является перемещение всех занятых  участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область. В дополнение к функциям, которые выполняет  ОС при распределении памяти переменными  разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места  памяти в другое, корректируя таблицы  свободных и занятых областей. Эта процедура называется "сжатием". Сжатие может выполняться либо при  каждом завершении задачи, либо только тогда, когда для вновь поступившей  задачи нет свободного раздела достаточного размера. В первом случае требуется  меньше вычислительной работы при корректировке  таблиц, а во втором - реже выполняется  процедура сжатия. Так как программы  перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы  в физическую должно выполняться  динамическим способом.

Хотя процедура сжатия и приводит к более эффективному использованию  памяти, она может потребовать  значительного времени, что часто  перевешивает преимущества данного  метода.

  1. Виртуальная память. Алгоритмы распределения виртуальной памяти.

На разных этапах жизненного цикла  программы используются различные  типы адресов:

· символьные имена присваивает  пользователь при написании на алгоритмическом  языке или ассемблере;

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

· физические адреса соответствуют  номерам ячеек оперативной памяти, где в действительности расположены  или будут расположены переменные и команды.

Совокупность виртуальных адресов  называется виртуальным адресным пространством. Различают максимально возможное  виртуальное адресное пространство (определяется архитектурой компьютера) и назначенное (выделенное) процессу виртуальное адресное пространство (фактически нужные процессу адреса, первоначально  назначается транслятором, размер его  может быть изменен во время выполнения). Обычно виртуальное адресное пространство процесса делится на две непрерывные  части: системную и пользовательскую (по умолчанию в Windows 2000 эти части имеют одинаковый размер – по 2 Гбайт; пользовательская часть адресного пространства процесса располагается в диапазоне адресов 00000000-7FFFFFFF, системная – 80000000-FFFFFFFF).

Системная часть виртуальной памяти в ОС любого типа включает область, подвергаемую страничному вытеснению, и область, на которую страничное вытеснение не распространяется. В  невытесняемой области размещаются модули, требующие быстрой реакции и /или постоянного присутствия в памяти, например диспетчер потоков. Остальные модули ОС подвергаются страничному вытеснению, как и пользовательские процессы.

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

Задачей ОС является отображение индивидуальных адресных пространств всех одновременно выполняющихся процессов на общую  физическую память.

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

Существует два подхода к  преобразованию виртуальных адресов  в физические:

1) Пересчет виртуальных адресов в физические выполняется один раз для каждого процесса во время начальной загрузки программы в память. Эту операцию выполняет специальная системная программа – перемещающий загрузчик.

2) Программа загружается в память  с неизмененными виртуальными  адресами. Во время выполнения  программы при каждом обращении  к оперативной памяти выполняется  преобразование виртуального адреса  в физический. Это так называемое  динамическое преобразование адресов.

Виртуализация оперативной памяти осуществляется совместно  ОС и аппаратными  средствами процессора и включает решение  следующих задач:

· размещение данных в запоминающих устройствах разного типа, например часть кодов программы – в  оперативной памяти, а часть –  на диске;

· выбор образов процессов или  их частей для перемещения из оперативной  памяти на диск и обратно;

· перемещение по мере необходимости  данных между памятью и диском;

· преобразование виртуальных адресов  в физические.

Виртуализация памяти может быть осуществлена на основе двух различных подходов:

· свопинг (swapping) — образы процессов выгружаются на диск и возвращаются в оперативную память целиком;

· виртуальная память (virtual memory) — между оперативной памятью и диском перемещаются части (сегменты, страницы и т. п.) образов процессов.

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

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

· Страничная виртуальная память организует перемещение данных между памятью  и диском страницами — частями  виртуального адресного пространства, фиксированного и сравнительно небольшого размера.

· Сегментная виртуальная память предусматривает  перемещение данных сегментами —  частями виртуального адресного  пространства произвольного размера, полученными с учетом смыслового значения данных.

· Сегментно-страничная виртуальная  память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения  данных здесь является страница. Этот способ управления памятью объединяет в себе элементы обоих предыдущих подходов. Для временного хранения сегментов и страниц на диске  отводится либо специальная область, либо специальный файл, которые во многих ОС по традиции продолжают называть областью, или файлом свопинга, хотя перемещение информации между оперативной  памятью и диском осуществляется уже не в форме полного замещения  одного процесса другим, а частями. Другое популярное название этой области  — страничный файл (page file, или paging file). Текущий размер страничного файла является важным параметром, оказывающим влияние на возможности операционной системы: чем больше страничный файл, тем больше приложений может одновременно выполнять ОС (при фиксированном размере оперативной памяти). Однако необходимо понимать, что увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла замедляет их работу, так как значительная часть времени при этом тратится на перекачку кодов и данных из оперативной памяти на диск и обратно. Размер страничного файла в современных ОС является настраиваемым параметром, который выбирается администратором системы для достижения компромисса между уровнем мультипрограммирования и быстродействием системы.

  1. Адресация в защищенном режиме микропроцессора Intel. Плоская модель памяти. PAE режим адресации.

Адресация памяти в защищенном режиме процессора Intel 80286.  Intel 80286 (также i286) — 16-битный x86-совместимый микропроцессор второго поколения фирмы Intel.

В процессоре i286 было реализовано  два режима работы — защищённый режим и реальный режим.

В защищённом режиме процессор мог  адресовать до 1 Гбайт виртуальной  памяти (при этом объем реальной памяти составлял не более 16 Мбайт), за счёт изменения механизма адресации  памяти. Суть защищённого режима заключается  в следующем. Программист и разрабатываемые  им программы используют логическое адресное пространство (виртуальное  адресное пространство), размер которого может составлять 1024 Мбайт.

Логический адрес преобразуется  в физический адрес автоматически  с помощью схемы управления памятью. Благодаря защищённому режиму, в  памяти можно хранить только ту часть  программы, которая необходима в  данный момент, а остальная часть  могла храниться во внешней памяти (например, на жёстком диске).

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

Плоская модель памяти — метод  организации адресного пространства оперативной памяти вычислительных устройств. В плоской модели код  и данные используют одно и то же адресное пространство. Для 16-битных процессоров  плоская модель памяти позволяет  адресовать 64 кБ оперативной памяти; для 32-битных процессоров 4 ГБ, для 64-битных — гипотетически до 16 эксабайт, фактически до 256 ТБ.

Управление памятью все ещё (на 2011 год) реализуется на основе плоской  модели, в целях содействия функциональности операционной системы, защиты ресурсов, многозадачности или увеличения объёма памяти за пределы ограничений, налагаемых физическим адресным пространством  процессора.

Преимущества управления памятью  с плоской моделью:

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

При многозадачности и распределении  ресурсов плоская модель по-прежнему обеспечивает максимальную гибкость для  реализации этого типа управления памятью.

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти[1]. Также, в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за запрет исполнения кода в странице, что затрудняет атаку по методу переполнения буфера.

Впервые расширение появилось в  процессоре Pentium Pro. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на аппаратном уровне (можно определить по команде CPUID) и программное включение режима PAE в ОС.

  1. Иерархия запоминающих устройств. Кэширование данных.

Кэширование данных

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

На следующем уровне располагается  более быстродействующая (время  доступа1 равно примерно 10-20 наносекундам) и менее объемная (от десятков мегабайт до нескольких гигабайт) оперативная  память, реализуемая на относительно медленной динамической памяти DRAM.

Информация о работе Системное программное обеспечение