Организация адресного пространства Windows NT 4.0/2000
Виртуальная память и организация адресного пространства Windows NT4/2000: файл подкачки, PAE, Application Memory Tuning, Address Windowing Extensions. Производительность, архитектурные ограничения, RAM, 64–битные процессоры и адресные пространства.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.07.2012 |
Размер файла | 3,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
ГОУ ВПО “Магнитогорский Государственный Технический Универститет им Г. И. Носова”
Институт Энергетики и Автоматки
Курсовая работа
по дисциплине Теория вычислительных процессов
на тему “Организация адресного пространства 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/929605).
Максимальное количество поддерживаемой 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=294418) для 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, свободный. -- Загл. с экрана.
Размещено на Allbest.ru
Подобные документы
Семейство ОС Windows 2000. Windows 2000 Server. Windows 2000 Advanced Server. Windows 2000 Datacenter Server. ОС Windows Server 2003. Организация сети на основе Windows 2000. Службы каталогов, DHCP, DNS, WINS. Конфигурирование сервера.
курсовая работа [307,1 K], добавлен 06.10.2006Хранение файлов, доступ к ним, установка и изменение атрибутов. Операционные системы DOS, Windows 95/98/Me, Windows NT/2000/XP. Файловая система FAT 16. Уменьшение потерь дискового пространства. Количество секторов в кластере. Главная загрузочная запись.
реферат [72,9 K], добавлен 19.01.2012Windows как посредник пользователя и операционной системы, облегчая процесс общения между ними, история становления и развития ее первых версий. Функциональные особенности и отличия Windows 95/98/ME и Windows NT/2000/XP/Vista/7, их архитектурные решения.
презентация [12,7 K], добавлен 23.10.2013Стратегии размещения информации в памяти. Алгоритмы распределения адресного пространства оперативной памяти. Описание характеристик модели и ее поведения, классов и элементов. Выгрузка и загрузка блоков из вторичной памяти. Страничная организация памяти.
курсовая работа [708,6 K], добавлен 31.05.2013Динамическое распределение памяти. Анализ виртуальной памяти, алгоритм ее обращения, общие принципы защиты. Страничная организация. Особенности переключения в мультизадачный режим. Режим системного управления. Расширение размера адресного пространства.
презентация [1,3 M], добавлен 14.12.2013Администрирование дисков в WINDOWS 2000. Новые концепции в Windows 2000. Использование возможностей Disk Management. Двойная загрузка. Приложения в системе с двойной загрузкой. Усложненная процедура установки.
реферат [15,7 K], добавлен 14.06.2007Управление службами SQL Server 2000. Настройка данного приложения. Использование SQL Server Enterprise Manager для запуска и остановки служб. Применение инструментов Windows. Учетные записи служб SQL Server 2000, консоль, интерфейс и утилиты Osql.
презентация [200,9 K], добавлен 10.11.2013Состав однокристального микроконтроллера и его базовая организация. Совмещение логических линий для сокращения ширины физического интерфейса. Распределение адресного пространства. Разработка электрической принципиальной схемы и программного обеспечения.
курсовая работа [231,3 K], добавлен 22.10.2012Применение персональных компьютеров различных классов. Работа со встроенными программами Windows. Характеристика распространенных операционных систем (Windows 3.Х, 9Х, NT, 2000, XP, Windows7, Vista). Виды антивирусных программ и защита данных от вирусов.
контрольная работа [32,3 K], добавлен 23.01.2011Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)
презентация [965,2 K], добавлен 12.10.2013