Главная сайта | Форум | Фотоальбом | Регистрация   | Вход | Cайт в избранное | Правила сайта и форума

Приветствую Вас Гость | RSS


Фильмы | Онлайн Видео | Софт | Новости и Статьи | Игры онлайн | Фотоальбом | Форум

ДЛЯ ПРОСМОТРА САЙТА РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ:  Uran - браузер от uCoz на базе проекта Chromium. | Google ChromeOpera | Firefox 


МЕНЮ САЙТА

ПОИСК ПО САЙТУ

Gamesblender № 661: будущее Xbox, новая игра авторов Ori, «неправильная» Subnautica 2 и прощание с Dead Cells

Gamesblender № 660: «портативки» от Sony и Microsoft, эксклюзивы Xbox на PlayStation, сделка Epic и Disney и показ Final Fantasy VII Rebirth

Tekken 8: 10 аниме из 10

Gamesblender № 659: Death Stranding 2 и другие показы State of Play, новый президент Blizzard, отмена Deus Ex и перенос «Смуты»

Gamesblender № 657: дата выхода S.T.A.L.K.E.R. 2, «Индиана Джонс» от авторов Wolfenstein, закрытие Piranha Bytes, Larian против подписок

Gamesblender № 656: ремастер Half-Life 2, сиквел Cyberpunk 2077 и новый конкурент Steam Deck

Gamesblender № 654: главные события 2023 года в игровой индустрии

Будущее Starfield, фанаты The Day Before, Spider-Man 2 и Wolverine на PC! Новости игр ALL IN 21.12

Обзор Warhammer 40000: Rogue Trader

Видеообзор Avatar: Frontiers of Pandora

Во что поиграть на этой неделе — 4 мая (Total War Saga: Thrones of Britannia, City of Brass)

Во что поиграть на этой неделе — 16 июня (Arms, THE KING OF FIGHTERS XIV, MotoGP 17)

Left 2 Play - Выпуск 03 - Resident Evil: Operation Raccoon City

Во что поиграть на этой неделе — 20 мая (Fallout 4: Far Harbor, Homefront: The Revolution)

Во что поиграть на этой неделе — 13 апреля (Extinction, Dead in Vinland, Lobotomy Corporation)

Во что поиграть на этой неделе — 9 ноября + Лучшие скидки на игры

Во что поиграть на этой неделе — 29 декабря (Rage Room, Disassembly Line, Back to the Egg!)

Во что поиграть на этой неделе — 22 декабря (PUBG, Bridge Constructor Portal, Tiny Metal)
СТАТИСТИКА
Всего материалов:
Фильмомания: 1510
Видео: 220
Каталог файлов: 98
Каталог статей: 6781
Фотоальбом: 1236
Форум: 1137/8102
Каталог сайтов: 386

Всего зарегистрировано:
Зарегистрировано: 1675
Сегодня: 0
Вчера: 2
За неделю: 5
За месяц: 12

Из них:
Пользователи: 1600
Проверенные: 23
Друзья: 5
Редакторы: 0
Журналисты: 8
В вечном бане: 33
Модераторы: 1
Администраторы: 3

Из них:
Парней 1265
Девушек 408


ON-Line всего: 2
Гостей: 2
Пользователей: 0

Сейчас на сайте:


День Рождения у: r56een(44), buffa(31), appdap(31)
ВЫ МОЖЕТЕ ОКАЗАТЬ ПОДДЕРЖКУ ЗА ТРУДЫ, ПОЖЕРТВОВАВ ЛЮБУЮ СУММЫ.

WEBMONEY



Категории каталога

Главная » Статьи » Статьи » Статьи: Windows Vista

Внутреннее устройство ядра Windows Vista: часть 2 - (стр.1)

В этом выпуске мы познакомимся с нововведениями ОС Windows Vista в области управления памятью, а также с главными усовершенствованиями в области запуска системы, завершения работы и управления электропитанием (часть 1).

С каждым новым выпуском ОС Windows® повышается масштабируемость и производительность системы. ОС Windows Vista ™ не является исключением. Диспетчер памяти ОС Windows Vista содержит множество нововведений, в том числе более широкое использование методов синхронизации без блокировок, улучшенная гранулярность блокировки, более плотная упаковка структур данных, увеличенный размер страниц операций ввода-вывода, поддержка архитектур памяти современных графических процессоров и более эффективное использование аппаратного буфера ассоциативной трансляции (TLB). Помимо этого диспетчер памяти в Windows Vista поддерживает динамическое выделение адресного пространства для меняющейся рабочей нагрузки.

В ОС Windows Vista впервые представлены четыре новые технологии увеличения производительности: SuperFetch, ReadyBoost, ReadyBoot и ReadyDrive. Они будут подробно рассмотрены далее в этой статье.

Динамическое адресное пространство ядра

ОС Windows и приложения, выполняемые под ее управлением, сталкиваются с ограничениями адресного пространства 32-разрядных процессоров. Размер адресного пространства ядра ОС Windows по умолчанию ограничен значением 2 Гбайт (половина 32-разрядного виртуального адресного пространства). Вторая половина зарезервирована для использования процессом, выполняющимся в текущий момент на ЦП. На свою половину памяти ядро должно отобразить себя, драйверы устройств, кэш файловой системы, стеки ядра, структуры данных кода для каждого сеанса, а также невыгружаемые (заблокированные в физической памяти) и выгружаемые буферы, выделенные драйверами устройств. В операционных системах, предшествовавших ОС Windows Vista, диспетчер памяти распределял адресные пространства для перечисленных нужд в момент загрузки системы. Этот негибкий механизм приводил иногда к ситуациям, когда некоторые области адресного пространства оказывались исчерпанными, в то время как в других еще оставалось много свободного места. Нехватка адресного пространства в одной из областей может привести к сбоям в работе приложений и нарушить операции ввода-вывода, выполняемые драйверами устройств.

В 32-разрядной версии ОС Windows Vista диспетчер памяти динамически распределяет адресное пространство ядра, выделяя и освобождая адресное пространство с учетом потребностей текущей рабочей нагрузки. Таким образом, количество виртуальной памяти, используемое для хранения выгружаемых буферов, может увеличиваться, когда этого требуют драйверы устройств, и уменьшаться, когда драйверы устройств освобождают память. Это позволяет ОС Windows Vista поддерживать более широкий диапазон рабочих нагрузок, а 32-разрядная версия следующего выпуска ОС Windows Server® (кодовое название «Longhorn») сможет поддерживать больше одновременно работающих пользователей сервера терминалов.

Конечно, в 64-разрядной версии ОС Windows Vista пределы адресных пространств не представляют практических ограничений, поэтому они не требуют каких-либо особых мер и установлены на максимальные значения.


Приоритеты памяти

Помимо приоритетов ввода-вывода (которые обсуждались в предыдущем выпуске), в ОС Windows Vista появились также и приоритеты памяти. Чтобы понять, как система использует приоритеты памяти, нужно разобраться, как в диспетчере памяти реализован кэш памяти, называемый списком ожидания (Standby List). Во всех версиях ОС Windows, предшествовавших Windows Vista, физическая страница, затребованная системой у приложения (размер страницы обычно составляет 4 Кбайт), помещалась диспетчером памяти в конец списка ожидания. Если процессу снова требовался доступ к этой странице, диспетчер памяти извлекал ее из списка ожидания и вновь назначал процессу. Если процессу требовалась новая страница физической памяти, но свободной памяти не было, диспетчер памяти отдавал процессу страницу из начала списка ожидания. В такой схеме все страницы в списке ожидания были равнозначны, и порядок страниц определялся только временем их помещения в список.

В ОС Windows Vista каждая страница памяти имеет приоритет от 0 до 7, и диспетчер памяти разделяет список ожидания на 8 списков, в каждом из которых хранятся страницы с соответствующим приоритетом. Если диспетчеру памяти нужно забрать страницу из списка ожидания, первыми будут извлекаться страницы из списков с более низким приоритетом. Приоритет страницы обычно совпадает с приоритетом потока, который первым вызвал выделение этой страницы. (Приоритет страницы с совместным доступом соответствует наивысшему приоритету памяти среди потоков, совместно использующих эту страницу). Поток наследует значение приоритета памяти от процесса, которому он принадлежит. Диспетчер памяти назначает низкий приоритет для страниц, которые он считывает с диска, когда предвидится обращение процесса к памяти.

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

Функция SuperFetch

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

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

Функция SuperFetch реализована в библиотеке %SystemRoot%\System32\Sysmain.dll; она выполняется в качестве службы Windows внутри процесса Service Host (%SystemRoot%\System32\Svchost.exe). Благодаря поддержке со стороны диспетчера памяти эта схема позволяет службе получать историю обращений к страницам памяти и отдавать диспетчеру памяти указания по предварительной загрузке данных или кода из файлов на диске или из файла подкачки в список ожидания, а также присваивать приоритет страницам памяти. Служба SuperFetch существенно расширяет отслеживание страниц памяти, учитывая страницы, которые были ранее загружены в память, но впоследствии освобождены диспетчером памяти для других данных и кода. Эта информация хранится в папке %SystemRoot%\Prefetch в виде файлов сценариев с расширением «.db» вместе со стандартными файлами упреждающего чтения, используемыми для оптимизации запуска приложений. Располагая подробной информацией об использовании памяти, служба SuperFetch может осуществлять предварительную загрузку данных и кода при освобождении физической памяти.

Когда освобождается память (например, при завершении работы приложения или когда приложение освобождает выделенную память), служба SuperFetch дает диспетчеру памяти инструкцию загрузить недавно выгруженные данные и код. Эта процедура осуществляется со скоростью в несколько страниц в секунду с приоритетом ввода-вывода «Very Low» (очень низкий), поэтому предварительная загрузка не мешает работе пользовательских и других активных приложений. Благодаря этому, когда пользователь оставляет свое рабочее место на время обеденного перерыва, и фоновые задачи, интенсивно работающие с памятью, приводят к выгрузке страниц памяти активных пользовательских приложений, службе SuperFetch зачастую удается вернуть большинство страниц в память еще до того, как пользователь вернется на рабочее место. У службы SuperFetch есть также специальные сценарии поддержки гибернации, ждущего режима, быстрого переключения пользователей (FUS) и запуска приложений. Например, когда система переходит в режим гибернации, служба SuperFetch сохраняет в файле гибернации данные и код, доступ к которым вероятнее всего потребуется после загрузки системы, с учетом истории предыдущих переходов в режим гибернации. В случае возобновления работы ОС Windows XP из режима гибернации при обращении к данным, находившимся в кэше до перехода в режим гибернации, необходимо было заново считывать эти данные с диска.

На врезке «Наблюдение за службой SuperFetch» представлены краткие результаты влияния службы SuperFetch на объем доступной памяти.

Наблюдение за службой SuperFetch

После работы в течение некоторого времени в ОС Windows Vista пользователь может заметить, что на вкладке «Быстродействие» диспетчера задач показатель свободной физической памяти становится невысоким. Это объясняется тем, что служба SuperFetch и стандартное кэширование Windows используют всю доступную физическую память для кэширования данных с диска. Например, если сразу после загрузки системы открыть диспетчер задач, можно заметить, что показатель свободной памяти уменьшается, в то время как показатель кэшированной памяти увеличивается. Если запустить приложение, использующее для работы большой объем памяти, а затем завершить его работу (подойдет любой бесплатный «оптимизатор памяти», который выделяет большое количество памяти и затем освобождает ее), или просто скопировать очень большой файл, показатель свободной памяти возрастет, и на графике использования физической памяти будет наблюдаться падение по мере того, как в систему возвращается освобожденная память. Однако через некоторое время служба SuperFetch снова заполнит кэш данными, которые были вытеснены из памяти, и показатель кэшированной памяти возрастет, а показатель свободной памяти уменьшится.

Watching memory 

Watching memory

Функция ReadyBoost

Скорость работы ЦП и памяти гораздо выше скорости работы жесткого диска, из-за чего жесткие диски часто являются узким местом для производительности системы. Операции произвольного дискового ввода-вывода особенно сильно влияют на производительность, потому что время позиционирования головок жестких дисков (порядка 10 мс) – это вечность для современных процессоров с тактовой частотой 3 ГГц. Хотя оперативная память идеально подходит для кэширования дисковых данных, ее стоимость сравнительно высока. Флэш-память обычно дешевле оперативной памяти, при этом время произвольного доступа у флэш-памяти может быть на порядок меньше, чем у жесткого диска. Поэтому в ОС Windows Vista добавлена функция под названием ReadyBoost, которая позволяет воспользоваться преимуществами запоминающих устройств на основе флэш-памяти, создавая на них промежуточный уровень кэширования, логически расположенный между оперативной памятью и жесткими дисками.

Функция ReadyBoost состоит из службы, реализованной в файле %SystemRoot%\System32\Emdmgmt.dll, которая выполняется в процессе Service Host, и драйвера фильтра томов %SystemRoot%\System32\Drivers\Ecache.sys (EMD – это сокращение от рабочего названия функции ReadyBoost «External Memory Device» (внешнее устройство памяти), которое использовалось в процессе ее разработки). При подключении запоминающего устройства флэш-памяти к компьютеру служба ReadyBoost определяет производительность этого устройства и записывает результат в раздел реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Emdmgmt, как показано на рис. 1.

Figure 1 ReadyBoost device test results in the registry
Figure 1 ReadyBoost device test results in the registry

Если объем памяти устройства от 256 МБ до 32 ГБ, скорость передачи для произвольных операций чтения блоками по 4 КБ превышает 2,5 МБ/с, скорость передачи для произвольных операций записи блоками по 512 КБ превышает 1,75 МБ/с, и это устройство еще не используется для кэширования, служба ReadyBoost предложит выделить до 4 ГБайт памяти этого устройства для кэширования дисков. (Хотя служба ReadyBoost может работать с разделами NTFS, максимальный объем кэша ограничен 4 ГБ для совместимости с файловой системой FAT32). Если пользователь соглашается, служба создает в корневой папке устройства файл кэша с именем ReadyBoost.sfcache и отдает службе SuperFetch указание заполнить кэш в фоновом режиме.

После инициализации кэширования службой ReadyBoost драйвер устройства Ecache.sys перехватывает все обращения чтения и записи к локальным жестким дискам (например, диску C:\) и копирует записываемые данные в созданный службой файл кэширования. Драйвер Ecache.sys осуществляет сжатие данных, достигая обычно степени сжатия 2:1, поэтому кэш объемом 4 ГБ, как правило, содержит около 8 ГБ данных. Драйвер шифрует каждый записываемый блок с помощью ключа сеанса, генерируемого случайным образом при каждой загрузке системы; при этом используется алгоритм AES. Шифрование обеспечивает конфиденциальность данных, содержащихся в кэше, на случай извлечения устройства.

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

Функция ReadyBoot

Если в системе установлено менее 512 МБ оперативной памяти, механизм упреждающего чтения при загрузке ОС Windows Vista не отличается от механизма, использовавшегося при загрузке ОС Windows XP. Если же размер оперативной памяти превышает 700 МБ, то для оптимизации процесса загрузки используется кэш в ОЗУ. Размер этого кэша зависит от общего объема доступной памяти; он достаточно велик, чтобы обеспечить эффективное кэширование, но оставляет при этом достаточно свободной памяти для нормального выполнения процедуры загрузки системы.

После каждой загрузки системы служба ReadyBoost (та же самая служба, которая реализует описанную выше функцию ReadyBoost) в моменты простоя ЦП планирует кэширование для следующей загрузки системы. Она анализирует информацию об обращениях к файлам за пять предыдущих загрузок и определяет, к каким файлам производились обращения, и где эти файлы расположены на диске. Обработанная информация об обращениях сохраняется в папке %SystemRoot%\Prefetch\Readyboot в виде файлов с расширением «.fx», а план кэширования сохраняется в разделе реестра HKLM\System\CurrentControlSet\Services\Ecache\Parameters в виде значений типа REG_BINARY с именами, соответствующими именам внутренних дисков.

Кэширование реализуется с помощью того же драйвера, что и в функции ReadyBoost (драйвер Ecache.sys), но управление заполнением кэша во время загрузки осуществляется службой ReadyBoost. Хотя кэш загрузки сжимается так же, как и кэш ReadyBoost, есть еще одно отличие между управлением кэшем в функциях ReadyBoost и ReadyBoot. В отличие от функции ReadyBoost, в режиме ReadyBoot содержимое кэша не изменяется при операциях чтения и записи, а определяется только обновлениями, вносимыми службой ReadyBoost. Служба ReadyBoost удаляет кэш через 90 секунд после начала загрузки или в случае, если требуется дополнительная оперативная память. Статистика использования кэша записывается в раздел реестра HKLM\System\CurrentControlSet\Services\Ecache\Parameters\ReadyBootStats, как показано на рис. 2. Измерение производительности, проведенное в корпорации Майкрософт, показало, что при использовании функции ReadyBoot производительность увеличивается примерно на 20 процентов по сравнению с технологией упреждающего чтения, используемой при загрузке ОС Windows XP.

Figure 2 ReadyBoot Performance statistics
Figure 2 ReadyBoot Performance statistics

 

Продолжение>>


Если на странице вы заметили в посте отсутствие изображений, просьба сообщить , нажав на кнопку.



После прочтения материала " Внутреннее устройство ядра Windows Vista: часть 2 - (стр.1) ", можно просмотреть форум и поискать темы по данной игре.



ДРУГИЕ МАТЕРИАЛЫ
Выход игры Wolfenstein откладывается на две недели
Zotac GeForce 9800 GTX+ с новым кулером и 1 Гб памяти
Opera готовит революцию в интернете
Firefox скачан более миллиарда раз
IDF SF 2008: подробности об Intel Core i7, 6-ядерный Xeon устанавливает мировой рекорд
Дата релиза, скачивание и вся остальная информация по Microsoft Office 2021
150 секретных скринов Fallout 3
Resistance 2 выходит 4 ноября
Вышла Doom Resurrection для iPhone
ATI Radeon HD 4730: официальный дебют в версии PowerColor
Demigod выйдет на русском языке
Снимается фильм по ужастику Dead Space
О борьбе со спамом: соперник живее всех живых
HX850W и HX750W: экономичные и бесшумные БП от Corsair
История создания Mercenaries на видео
Последний день Билла Гейтса в Microsoft (видео)
ФАС обвиняет Microsoft в нарушении законодательства
Футуристический интернет-планшет Lenovo IdeaPad U8
Palit Radeon HD 4870 Sonic: два "винта", DisplayPort и Dual BIOS
Робот достиг самой глубокой точки планеты

Если вам понравился материал "Внутреннее устройство ядра Windows Vista: часть 2 - (стр.1)", - поделитесь ним с другими.


html-cсылка на публикацию
BB-cсылка на публикацию
Прямая ссылка на публикацию


Категория: Статьи: Windows Vista | Добавил: Фокусник (29.09.2009)
Просмотров: 1743

Ниже вы можете добавить комментарии к материалу " Внутреннее устройство ядра Windows Vista: часть 2 - (стр.1) "

Внимание: Все ссылки и не относящиеся к теме комментарии будут удаляться. Для ссылок есть форум.


Всего комментариев : 0
avatar
ФОРМА ВХОДА
ПОЖЕРТВОВАНИЯ



WMZ: Z143317192317
WMB: X706980753649

Boosty - Donate

Payeer: P48650932
На кофе / ko-fi
ПАРТНЕРЫ

World of Warships — это free-to-play ММО-экшен, который позволяет окунуться в мир масштабных военно-морских баталий. Возьмите под управление легендарные боевые корабли первой половины ХХ века и завоюйте господство на бескрайних океанских просторах.

Курсы обмена WebMoney


Что такое ресурс Turbobit и как качать.


Получи 10 ГБ места бесплатно, на всю жизнь.


Boosty – сервис по сбору донатов.
Сюрприз
Сюрприз
Ночная операция: Цветок Сакуры | World of Warships
Ночная операция: Цветок Сакуры | World of Warships
Блондинка на бентли не догадывается, что ее снимают
Блондинка на бентли не догадывается, что ее снимают
Этническая аэробика - Русский стиль
Этническая аэробика - Русский стиль
Календарь Игромании: Июль 2018
Календарь Игромании: Июль 2018
Нереально психованый препод
Нереально психованый препод
Gamesblender № 202: Halo идет на ПК, а Crowfall – к успеху
Gamesblender № 202: Halo идет на ПК, а Crowfall – к успеху
Неадекват в Ставрополе
Неадекват в Ставрополе
Монстры на каникулах 4 [Обзор] / [Трейлер на русском]
Монстры на каникулах 4 [Обзор] / [Трейлер на русском]
Gamesblender №368: Ubisoft выступает за потоковые сервисы, а Google поглядывает на консольный рынок
Gamesblender №368: Ubisoft выступает за потоковые сервисы, а Google поглядывает на консольный рынок

Фото-приколов много не бывает (35 шт)
Фото-приколов много не бывает (35 шт)
Постеры к блокбастерам Марвел из повседневных предметов (22 фото)
Постеры к блокбастерам Марвел из повседневных предметов (22 фото)
Безумное и ужасное  (30 фото)
Безумное и ужасное (30 фото)
Потрясающие песочные скульптуры (16 фото)
Потрясающие песочные скульптуры (16 фото)
Города мира тогда и сейчас
Города мира тогда и сейчас
Немного прикольных демотиваторов на любой вкус (17 шт)
Немного прикольных демотиваторов на любой вкус (17 шт)
Французская художница превращает персонажей поп-культуры в очаровательные иллюстрации (16 фото)
Французская художница превращает персонажей поп-культуры в очаровательные иллюстрации (16 фото)
Самые безумные рестораны в мире
Самые безумные рестораны в мире
СТАТИСТИКА
Яндекс.Метрика


Copyright © 2000-2024, Alex LTD and System PervertedХостинг от uCoz