ФЕДЕРАЛЬНОЕ
ГосударственноЕ БЮДЖЕТНОЕ образовательное
учреждениЕ
Высшего профессионального
образования
«КУРГАНСКИЙ
Государственный университет»
Кафедра информационных технологий
и методики преподавания информатики
Факультет математики и информационных
технологий
Контрольная работа по дисциплине
«Вычислительные
системы, сети, телекоммуникации»
«Отображение адресного
пространства программы на основную память.
Статическое и динамическое перемещение.
Фрагментация реальной памяти»
Выполнил: студент группы Мз-10312
Проверил: доцент
Медведев А.А.
Курган
2013
Оглавление
Введение.
Главная задача компьютерной
системы – выполнять программы. Программы
вместе с данными, к которым они имеют
доступ, в процессе выполнения должны
(по крайней .мере частично) находиться
в оперативной памяти. Операционной системе
приходится решать задачу распределения
памяти между пользовательскими процессами
и .компонентами ОС. ..Эта деятельность
называется управлением памятью. Таким
образом, память (storage, .memory) является важнейшим
ресурсом, требующим тщательного управления.
В недавнем прошлом память была самым
дорогим ресурсом. Вопросы, связанные
с организацией памяти, являются .СЛОЖНЕЙШИМИ
во всей теории операционных систем.
История
вопроса.
Первые режимы организации
памяти
Логика развития ситуации
с организацией памяти хронологическом
порядке: Вначале появилась задача
ограничить ОС, размещенную в
оперативной памяти, от внешних
посягательств исполняемых программ,
т.е обеспечить ее защиту. Появились два
режима организации работы с памятью:
реальный и защищенный
Дальнейшее развитие
методов организации
.Далее развивалась непростая
ситуация с размером памяти, необходимой
для выполнения .программ (поэтапно):
1. .Реальный режим – сколько
есть оперативной памяти для программы,
столько она и может .использовать. Не
больше. Введена адресация сегмента <сегмент,
смещение>.
2. .В защищенном режиме попробовали
расширить возможности организации памяти:
.использовали возможность размещения
части программы в памяти внешнего устройства.
.
3. .Метод этот назвали сегментным
методом. Введена адресация сегмента <селектор,
.смещение> и понятия дескриптора и таблицы
дескрипторов.
4. .Потом разработали страничный
метод организации памяти, который также
использовался .в защищенном режиме.
5. .Развитие техники привело
к увеличению размера прикладных программ,
и, следовательно, к необходимости предоставления
им больших ресурсов памяти. .
6. .Но адресное пространство
памяти, к которому можно обратиться, ограничено
.разрядностью Шины Адреса (и разрядностью
регистров памяти, они могут не совпадать).
7. .Физически мы уже не можем
увеличить разрядность ША, но программно-аппаратными
.способами можем обойти это ограничение.
8. .Здесь за основу взяли сегментную
и страничную модели организации памяти,
но с .некоторыми модификациями.
9. .Эти модификации привели
к появлению принципиально нового режима
(модели) .организации памяти -Метод виртуализации
памяти (или виртуальный режим). .Дополнительно
этот метод позволил существенно улучшить
защиту ОС от внешнего .вмешательства.
10. Для уровней защищенного
и виртуального режимов введено
понятие линейного адреса. .Сегментная
организация в чистом виде практически
умерла. .По сути своей защищенный режим
и виртуальный .очень близки, поэтому и
в учебной литературе идет смешение .терминов
виртуальный или логический адрес, виртуальный
или защищенный режим.
Классификация
методов управления памятью
Рисунок
1
По степени использования внешней
памяти (классическая модель) Современные
системы распределения памяти делятся
на:
Динамические (выделение некоторой
части из полного объема требуемой памяти
.и обеспечение работы с этой частью; остальная
память выделяется по мере .необходимости)
Виртуальные (работа с виртуальной
памятью, емкость которой равна всему
физическому адресному пространству)
Идеи,
реализованные в менеджере памяти
Часть ОС, которая отвечает
за управление памятью, называется менеджером
памяти.В процессе эволюции в менеджерах
памяти современных ОС было реализовано
.несколько основополагающих идей:
- Идея сегментации
- Идея разделения памяти на физическую и логическую
- Идея локальности
Сегментация
По-видимому, вначале сегменты
памяти появились в связи с необходимостью
обобществления процессами фрагментов
программного кода (текстовый редактор,тригонометрические
библиотеки и т.д.), без чего каждый процесс
должен был хранить в.своем адресном пространстве
дублирующую информацию.
Эти отдельные участки памяти,
хранящие информацию, которую система
отображает в память нескольких процессов,
получили название сегментов. Память,
таким образом, стала двумерной.
Адрес состоит из двух компонентов:
<номер сегмента, смещение внутри сегмента>.
Далее оказалось удобным размещать в разных
сегментах данные разных типов (код .программы,
данные, стек и т. д.). Попутно выяснилось,
что можно контролировать характер работы
с конкретным сегментом, приписав ему
атрибуты, например, права .доступа или
типы операций, разрешенные с данными,
хранящимися в сегменте.
Большинство современных ОС
поддерживают (наряду с прочими) сегментную
организацию памяти. В некоторых архитектурах
(Intel, например) сегментация поддерживается
оборудованием.
Разделение на физическую
и логическую память
Вторая идея, о которой можно
упомянуть, рассматривая поддержку памяти
в ОС, это разделение памяти на физическую
и логическую (или виртуальную).
Адреса, к которым обращается
процесс, отделяются от адресов,
реально существующих в оперативной
памяти.
Адрес, сгенерированный программой,
обычно называют логическим (в системах
с виртуальной памятью он обычно называется
виртуальным) адресом, тогда как адрес,
который видит устройство памяти (то есть
нечто, загруженное в адресный регистр)
обычно называется физическим адресом.
Задача ОС -в какой-то момент
времени осуществить связывание (или отображение)
.логического адресного пространства
с физическим.
Рисунок
2
Локальность
Свойство локальности присуще
природе.
Свойство локальности присуще
и работе ОС. Фактически свойство локальности
объяснимо, если учесть, как пишутся программы
и организованы данные, то есть обычно
в течение какого-то отрезка времени ограниченный
фрагмент кода работает с .ограниченным
набором данных.
Понимание данной особенности
позволяет организовать иерархию памяти,
используя быструю дорогостоящую память
для хранения минимума необходимой информации,
размещая оставшуюся часть данных на устройствах
с более медленным доступом и .подкачивая
их в быструю память по мере необходимости.
Типичный пример иерархии: регистры
процессора, кэш процессора, главная (основная)
.память, внешняя память на магнитных дисках
(вторичная память).
Физическая
организация памяти компьютера
Классификация памяти
Запоминающие устройства компьютера
разделяют, как минимум, на два уровня:
- основную (главную, оперативную, физическую, реальную) память
- вторичную (внешнюю) память.
Основная память представляет
собой упорядоченный массив однобайтовых
ячеек, .каждая из которых имеет свой уникальный
адрес (номер).
Процессор извлекает команду
из основной памяти, декодирует и выполняет
ее. Для выполнения команды могут потребоваться
обращения еще к нескольким ячейкам основной
памяти.
Обычно основная память изготавливается
с применением полупроводниковых .технологий
и теряет свое содержимое при отключении
питания.
Адреса в основной памяти, характеризующие
реальное расположение данных в физической
памяти, называются физическими адресами.
Набор физических адресов, с которым работает
программа, называют физическим адресным
пространством. Вторичную память (это
главным образом диски) также можно рассматривать
как одномерное линейное адресное пространство,
состоящее из последовательности байтов.
Вторичная память характеризуется
тем, что:
- В отличие от оперативной памяти, она является энергонезависимой.
- Имеет существенно большую
емкость (это требование ко вторичной памяти)
- Используется в качестве расширения основной памяти.
Иерархия памяти
Схема иерархии памяти. Разновидности
памяти могут быть объединены в иерархию
по убыванию времени доступа, возрастанию
цены и увеличению емкости.
Рисунок 3 Иерархия
памяти
Многоуровневую схему используют
следующим образом:
- Информация, которая находится
в памяти верхнего уровня, обычно хранится
также на уровнях с большими номерами.
- Если процессор не обнаруживает
нужную информацию на i-м уровне, он начинает искать ее на следующих уровнях.
- Когда нужная информация найдена,
она переносится в более быстрые уровни.
Оказывается, при таком способе
организации по мере снижения скорости
доступа к уровню памяти снижается также
и частота обращений к нему.
Описание уровней иерархии
Цель стратегий управления
памятью заключается в том, чтобы обеспечить
наиболее эффективное использование такого
дорогостоящего ресурса, каким является
основная память, и при этом достигнуть
наивысших возможных скоростных характеристик
машины.
Память должна быть:
- Достаточно большо
- Чрезвычайно быстрой
- Очень дешёвой
Проанализируем уровни иерархии
памяти:
- Регистры ЦП - При доступе к регистру задержки
не происходят, программы могут .сами управлять регистрами
(Сами решают, что в них хранить без вмешательства .аппаратуры).
Регистры микропроцессора делятся
на регистры общего назначения и .специальные.
Специальные регистры применяются для
хранения различных адресов (адреса команды,
например), признаков результатов выполнения
операций и режимов работы ПК (регистр
флагов, например) и др. Регистры общего
назначения являются универсальными и
могут использоваться для хранения любой
информации, но некоторые из них .тоже
должны быть обязательно задействованы
при выполнении ряда .процедур.
- КЭШ - Контролируемая оборудованием
память, ограниченная в размерах => .Высокая стоимость/
- ОЗУ -десятки-сотни мегабайт.
Все запросы ЦП, которые не могут быть
выполнимы КЭШ памятью, поступают для
обработки в основную память. Оперативное
запоминающее устройство предназначено
для хранения информации (программ и данных),
непосредственно участвующей в вычислительном
процессе на текущем .этапе функционирования ПК.
ОЗУ – энергозависимая память:
при отключении напряжения питания информация,
хранящаяся в ней, теряется. Основу ОЗУ
составляют большие интегральные схемы,
содержащие матрицы полупроводниковых
запоминающих элементов (триггеров) Запоминающие
.элементы расположены на пересечении
вертикальных и горизонтальных шин .матрицы;
запись и считывание информации осуществляются
подачей .электрических импульсов по тем
шинам матрицы, которые соединены с .элементами,
принадлежащими выбранной ячейке памяти.
Конструктивно элементы оперативной памяти
выполняются в виде отдельных .микросхем
- .Жесткий диск - дисковая память на два порядка
дешевле и по сравнению с ОЗУ на .два порядка больше по емкость.
Но у диска есть только одна проблема:
случайный доступ к данным на нём занимает
примерно на три порядка больше времени.
Причиной низкой скорости жесткого
диска является тот факт, что диск представляет
собой сложную механическую конструкцию
и состоит из одной или .нескольких металлических
пластин, вращающихся со скоростью 5400,7200
или 10800 оборотов в минуту. Перемещение
головки от одного цилиндра к другому
занимает около 1мс., а перемещение к произвольному
цилиндру требует от 5 до 10 мс, в зависимости
от диска. Когда головка располагается
над правильной дорожкой, нужно ждать,
пока двигатель повернет диск так, чтобы
под головкой встал требуемый сектор.
- ПЗУ - Программируется при производстве,
его нельзя изменить
Логическая
память
Аппаратная организация памяти
в виде линейного набора ячеек не соответствует
.представлениям программиста о том, как
организовано хранение программ и данных.
Большинство программ представляет собой
набор модулей, созданных независимо друг
.от друга. Иногда все модули, входящие
в состав процесса, располагаются в памяти
один за другим, образуя линейное пространство
адресов. Однако чаще модули помещаются
в разные области памяти и используются
по-разному.
Понятие сегмента
Схема управления памятью, поддерживающая
этот взгляд пользователя на то, как .хранятся
программы и данные, называется сегментацией.
Сегмент – область памяти определенного
назначения, внутри которой поддерживается
линейная адресация. Сегменты содержат
процедуры, массивы, стек или скалярные
.величины. Размер сегмента может быть
переменным.
Эти отдельные участки памяти,
хранящие информацию, которую система
отображает в память нескольких процессов,
получили название сегментов.
Рисунок
4 Пример расположения сегментов процессов
в памяти компьютера
Адресация сегмента
в реальной памяти (режиме)