Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Иерархия памяти компьютера




Организация работы ЭВМ

Организацию работы ЭВМ легко проследить на рис. 1.1. Следует отметить лишь некоторые моменты.

Как было сказано ранее, передача данных между элементами ЭВМ взаимодействие идет через системный интерфейс.

Вся работа программ строится на системе приоритетов. Каждому процессу присваивается определенный приоритет (в операционной системе Windows XP их 6: Низкий, Ниже среднего, Средний, Выше Среднего, Высокий, Реального времени). Далее (при последовательной обработке) каждому процессу выделяется процессорное время, т.е. время, в течение которого можно занимать ЦП. Далее начинает работу следующий процесс, потом следующий и т.д. Но, если у одного из процессов приоритет выше, чем у остальных, то предоставлять ресурсы ЦП ему будут существенно чаще.

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

Кратко об иерархии памяти компьютера было рассказано в пункте 1.1. Физическая память компьютера имеет иерархическую структуру. Но логическая память организована иным способом. Об этом и пойдет речь в данном пункте.

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

Память можно разделить на внутреннюю и внешнюю. Внутренняя – это упорядоченный массив однобайтовых ячеек, обладающих уникальным адресом. Как было сказано в пункте 1.1, эта память энергозависима. Внешняя – энергонезависима, обладает намного большим объемом. Между внутренней и внешней памятью можно поместить промежуточную память (см. рис. 1.2).

Рис. 1.2 Иерархия памяти [2]

При поиске необходимых данных процессор начинает искать на самом верхнем уровне. Если информации там нет, то он (процессор) продолжает поиск на более низком уровне. Так продолжается до тех пор, пока необходимые данные не будут найдены. Затем, найденная информация переносится на более быстрые уровни. Очевидно, что через некоторое время организуется некоторая система, в которой по мере увеличения времени доступа к уровню памяти, уменьшается частота обращений к нему. Оказывается, что реальные программы в некоторый временной промежуток работают с малым набором адресов. Это называют свойством локальности (локализация обращений). Подобный принцип справедлив не только в среде ЭВМ. Как правило, соседние во времени и пространстве объекты характеризуются схожими свойствами. Так и человек, решая задачу оперирует с ограниченным набором данных, остальное хранится во внешней памяти (например, в книгах). Программы работают по тому же принципу, какой-то фрагмент кода обрабатывает ограниченный набор данных. Поэтому, если он будет помещен в быструю память, то время доступа к нему существенно сократится. Именно это обусловливает использование иерархической схемы.

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

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

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

Рис. 1.3. Расположение сегментов процессов в памяти компьютера [2]

Практически все современные ОС поддерживают сегментную органи­зацию памяти, а в ряде архитектур, это заложено на аппаратном уровне.

Таким образом, процесс обращается к адресу, который отличается от реального адреса в оперативной памяти. Адреса, используемые программой, могут быть представлены различными способами. В исходных текстах адреса чаще всего символические. Связь этих символических адресов с переме­щаемыми адресами осуществляет компилятор. Такой адрес (сгенериро­ванный программой) называют логическим. Совокупность логических адре­сов (иногда их называют виртуальными адресами) образует логическое (вир­туальное) адресное пространство.

Как правило максимальный размер логического адресного про­странства определяется разрядностью процессора (232, 264 и т.д.), что значи­тельно превышает реальное физическое адресное пространство. Т.о. ОС и процессор должны отображать ссылки в коде программы в реальные физи­ческие адреса. Подобное отображение называют трансляцией (привязкой). Схема связывания адресов приведена на рис. 1.4.

Рис. 1.4. Формирование логического адреса и связывание логического адреса с физическим [2]

Связать физический и логический адрес можно на следующих этапах.

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

Загрузка. Когда неизвестно размещение программы на стадии компиляции, компилятор должен генерировать перемещаемый код. Тогда связывание произойдет на этапе загрузки. При изменении начального адреса, перезагружают код с учетом этого изменения.

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




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 618; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.