Помощь в написании студенческих работ
Антистрессовый сервис

Организация адресного пространства Windows NT 4.0/2000

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

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

Организация адресного пространства Windows NT 4.0/2000 (реферат, курсовая, диплом, контрольная)

Министерство образования и науки Российской Федерации ГОУ ВПО «Магнитогорский Государственный Технический Универститет им Г. И. Носова»

Институт Энергетики и Автоматки Курсовая работа по дисциплине Теория вычислительных процессов на тему «Организация адресного пространства Windows NT 4.0 / 2000»

Выполнил: студент гр. АВ-08−2

Забродский А.В.

Проверил Калитаев А.Н.

г. Магнитогорск, 2011 год

    • Введение
    • Виртуальная память
    • Организация адресного пространства Windows NT4/2000
      • Файл подкачки
      • Технология PAE
      • Application Memory Tuning — /3GB switch
      • Address Windowing Extensions
      • Производительность, архитектурные ограничения, RAM
      • 64-битные процессоры и адресные пространства
  • Практическая часть
    • Постановка задачи
    • Логика программы
  • Заключение
  • Список используемых источников

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

Первичная память (или основная память, или внутренняя память), зачастую называемая просто памятью, — единственная, доступная процессору напрямую: ЦПУ последовательно считывает и исполняет хранимые в ней инструкции; любые активно обрабатываемые данные так же хранятся в оперативное памяти.

Как видно из диаграммы, традиционно используется еще 2 подуровня первичной памяти, помимо оперативной большой емкости:

? регистры процессора, расположенные внутри ЦПУ. Каждый регистр вмещает одно слово (обычно 32 или 64 бита);

? кэш-память процессора, выступающая в роли буфера между сверхбыстрыми регистрами и значительно более медленным ОЗУ.

Оперативная память соединена с процессором через шину памяти, состоящую из двух компонентов: шина адреса и шина данных. ЦПУ сперва обращается к шине адреса, посылая число, называемое адресом памяти и определяющее расположение требуемых данных в ОЗУ. Затем процессор непосредственно считывает или записывает данные через шину данных. Так же в архитектуре может присутствовать устройство управления памятью, рассчитывающее реальный физический адрес и, среди прочего, обеспечивающее возможность применения виртуальной памяти.

Виртуальная память виртуальная память адресный процессор ram

Виртуальная память — технология управления памятью, разработанная для многозадачных систем. Эта техника виртуализирует различные аппаратные устройства памяти (например, ОЗУ, жесткие диски) и позволяет программе быть спроектированной так, что:

? для программы существует только одно «виртуальное» устройство, работающее как ОЗУ;

? программа по умолчанию имеет исключительный доступ к этому ОЗУ как к непрерывному рабочему адресному пространству.

Системы с виртуальной памятью с точки зрения разработчика ПО обладают рядом преимуществ:

? скрытие фрагментации;

? упрощенная адресация памяти;

? передача ядру ОС функций управления иерархией памяти.

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

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

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

Организация адресного пространства Windows NT4/2000

Адресное пространство и процессы

Любой процесс, выполняемый в 32-битной версии Windows, получает в свое распоряжение набор виртуальных адресов (виртуальное адресное пространство) в пределах от 0 до 4 294 967 295 байт (432-1 = 4 ГБ) вне зависимости от реального количества установленной оперативной памяти.

В стандартной конфигурации системы по умолчанию 2 гигабайта этого пространства виртуальных адресов выделяются на непосредственные нужды процесса, другие 2 гигабайта — для общего использования всеми процессами и операционной системой. Обычно, «легкие» приложения вроде Блокнота, текстового процессора Microsoft Word, Adobe Reader используют только собственные 2 гигабайта.

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

Файл подкачки Физическая память — ограниченный ресурс, в то время как память виртуальная, с небольшим преувеличением — ресурс бесконечный: в системе одновременно могут быть запущены сотни процессов, каждый со своим собственным четырехгигабайтным виртуальным адресным пространством, два гигабайта которого исключительно самому процессу. Когда объем используемой всеми процессами памяти превышает количество доступной RAM, операционная система выгружает страницы (части размером 4 КБ) некоторых виртуальных адресных пространств на жесткий диск компьютера, освобождая тем самым оперативную память. Эти выгруженные страницы хранятся в одном или нескольких файлах с именами pagefile. sys на жестком диске (по одному на раздел).

Распространенной рекомендацией по выбору размера файла подкачки является объем в полтора раза превышающий количество установленной RAM-памяти. Это верно лишь для систем с малым объемом физической памяти. Например, не имеет особого смысла выделять 96 ГБ объема жесткого диска компьютера с 64 ГБ оперативной памяти под файл подкачки. Причиной же установки такого большого количества оперативной памяти является желание избежать использования файла подкачки весьма негативно влияющего на производительность.

Аргумент о возможности сохранения дампа всей памяти в пользу размера файла подкачки равного объему оперативной памяти является заблуждением по следующим причинам:

? дамп всей памяти редко помогает в диагностике причины неисправности. Обычно памяти ядра или другого небольшого участка достаточно;

? для старых версий Windows, работающих с объемами оперативной памяти больше 2 ГБ, полный дамп памяти невозможен;

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

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

При активной выгрузке страниц в файл подкачки и загрузки из него, для лучшей производительности необходимо создать файл подкачки на том разделе диска, который используется меньше остальных, предварительно дефрагментировав его. Это гарантирует последовательность файла подкачки на диске, минимизацию ресурсных затрат на его чтение/запись. Несмотря на это, лучшим способом поднятия производительности является увеличения объема оперативной памяти.

Технология PAE

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

Использование этой технологии не изменяет размеров виртуального адресного пространства процесса (оно по-прежнему остается равным 4 ГБ), но позволяет большему количеству виртуальных адресных пространств находится в оперативной памяти.

Существует утверждение о том, что активация PAE-режима негативно сказывается на производительности процессора. Действительно, некоторая документация подтверждает падение производительности при активации режима, но не называет конкретных цифр; вероятно, что они незначительны. К тому же, если частота процессора не является узким местом в конфигурации ПК, разница не будет заметна или вряд ли измерима (например, между 2.0 МГц и 2.1 МГц). К слову, многопроцессорность или многоядерность системы — тоже негативный фактор в производительности каждого из процессоров или ядер; тем не менее, система в целом работает быстрее, но не в несколько раза. С другой стороны, в большинстве ПК слабейшим местом является производительность жестких дисков, и размещение виртуальных адресных пространств в добавленной оперативной памяти наверняка компенсирует названные выше затраты процессора.

Стоит учесть, что с активацией PAE-режима, 32-битная система не всегда становится способной к адресации 4 ГБ физической памяти. Это связано с определенными ограничениями аппаратной архитектуры (подробнее — http://support.microsoft.com/kb/929 605).

Максимальное количество поддерживаемой 32-битной системой Windows оперативной памяти различается в зависимости от версии:

? Windows NT 4.0: 4 ГБ;

? Windows 2000 Professional: 4 ГБ;

? Windows 2000 Standard Server: 4 ГБ;

? Windows 2000 Advanced Server: 8 ГБ;

? Windows 2000 Datacenter Server: 32 ГБ.

Application Memory Tuning — /3GB switch

В расчете на приложения, способные эффективно использовать собственную часть виртуального адресного пространства, превышающую 2 ГБ, в некоторые версии Windows NT4.0 и 2000 (и более поздние) включена возможность настройки памяти приложения, которая сдвигает границу собственного виртуального адресного пространства таким образом, что ее размер становится равным трем гигабайтам, вместо стандартных двух. Эта возможность активируется добавлением флага /3GB в файл boot.ini.

Эта возможность доступна в 32-битных редакциях следующих версий Windows:

? Windows NT Server 4.0 Enterprise Edition;

? Windows 2000 Advanced Server;

? Windows 2000 Datacenter Server.

Для использования AMT в своем приложении нет необходимости в использовании дополнительных API; с другой стороны — выделение каждому процессу 3 ГБ собственного виртуального пространства неэффективно. Проблема решается следующим образом: исполняемые файлы, которым необходима эта возможность, содержат бит IMAGE_FILE_LARGE_ADDRESS_AWARE в своем заголовке.

Address Windowing Extensions

Эта возможность представляет собой набор API-функций, позволяющих приложению запрашивать у операционной системы адресовать страницы RAM в его виртуальное адресное пространство. Это позволяет процессу использовать больше 2 ГБ (3 ГБ с флагом /3GB) в собственной части виртуальной памяти. Важным аспектом при использовании AWE является понимание того, что размер виртуального адресного пространства не изменяется; по-прежнему используются 32-битные виртуальные адреса. Происходит отображение внешних RAM-страниц в виртуальное адресное пространство процесса. Также, такое отображение имеет предел, так как страницы располагаются только в физической памяти.

Производительность, архитектурные ограничения, RAM

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

? 2 ГБ общего виртуального адресного пространства;

? 2 ГБ собственного виртуального пространства процесса;

? 660 МБ — предельный размер системных PTE (Page table entries);

? 470 МБ — предельный размер выгружаемого пула;

? 256 МБ — предельный размер невыгружаемого пула;

? 1 ГБ — предельный размер системного кэша;

? 16 ТБ — предельный размер файла подкачки.

Эти ограничения описаны (http://support.microsoft.com/?kbid=294 418) для Windows 2003 Server, но применимы к Windows XP и Windows 2000.

64-битные процессоры и адресные пространства

64-битные процессоры, среди прочих своих преимуществ, позволяют использовать виртуальное и физическое адресные пространства размером больше 4 ГБ, что положительно сказывается на производительности некоторых приложений.

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

Размер адресного пространства, обеспечиваемый 64-битными архитектурами, кажется, на текущий момент, невообразимо огромным для полного использования. Тем не менее, история несколько раз показала нашу несостоятельность в предсказании будущих размеров адресных пространств.

Массово поддержка 64-битных архитектур в операционных системах Windows началась с линейки XP. Некоторые ограниченные издания WIndows 2000 (Advanced Server Limited Edition и Datacenter Server Limited Edition), релиз которых состоялся в 2001 году, поддерживали 64-битные процессоры Intel Itanium.

Практическая часть

Постановка задачи

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

На передачу сигнала от стрелка к стрелку тратится 1 секунда. Значение счетчика изменяется на 1 за 1 секунду.

Данная задача решается с помощью автоматной модели поведения стрелка. В течение работы программа-стрелок может находиться в одном из состояний:

? ожидание;

? прямой счет;

? обратный счет;

? открытие огня.

В состояния прямого счета и обратного счета стрелок переходит в случае изменения состояния соседних стрелков. В состояние прямого счета стрелка переводит изменение состояния соседа слева; в состояние обратного счета — изменение состояния соседа справа.

Логика программы

При запуске, программа проверяет наличие в системе «мьютекса офицера». В зависимости от результата, активируется один из режимов: «офицерский» или «рядовой».

Офицерский режим:

1. Создание «мьютекса офицера»;

2. Старт потока управления отрядом;

3. Ожидание первого солдата.

Режим рядового:

1. Подключения к соседу слева. Им может быть как офицер, так и рядовой.

2. Старт потока ожидания команды «открыть огонь»;

3. Старт потока ожидания следующего рядового.

При получении команды «открыть огонь», рядовой запоминает свой номер, увеличивает его на единицу и, если не является крайним, передает дальше.

Дойдя до последнего солдата в цепочке, номер запоминается крайним рядовым, уменьшается на единицу, и начинается его передача обратно. Получивший номер второй раз солдат запоминает его и начинает вести обратный отсчет. Отсчет ведется в секундах, начальное кол ичество секунд рассчитывается по формуле: полученный номер + 2.

Когда счет доходит до 0, рядовой производит выстрел.

Заключение

В данной работе мною рассмотрены основы виртуализации памяти, некоторые аспекты реализации виртуальной памяти в Windows NT4/2000 и их ограничения, а так же способы их обхода. Я постарался уделить особое внимание практическим аспектам (увеличение производительности; обход ограничения четырех гигабайт и т. п.) наряду с их теоретическим объяснением.

В практической части решена задача Майхилла о стрелкaх, получен опыт синхронизации Windows-приложений и их потоков.

Список используемых источников

1 Virtual memory // Wikipedia, the free encyclopedia [Электронный ресурс] / Wikimedia Foundation — Электорн. дан. — 2001;2011 — Режим доступа: http://en.wikipedia.org/wiki/Virtual_memory, свободый. — Загл. с экрана;

2 Computer Data Storage // Wikipedia, the free encyclopedia [Электронный ресурс] / Wikimedia Foundation — Электорн. дан. — 2001;2011 — Режим доступа: http://en.wikipedia.org/wiki/Computer_data_storage, свободый. — Загл. с экрана;

3 General Windows Information: RAM, Virtual Memory, PageFile and all that stuff // Bruce Sanderson — Электорн. дан. — 2010 — Режим доступа: http://members.shaw.ca/bsanders/WindowsGeneralWeb/RAMVirtualMemoryPageFileEtc.htm, свободный. — Загл. с экрана.

Показать весь текст
Заполнить форму текущей работой