Главная сайта | Форум | Фотоальбом | Регистрация   | Вход | 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

Игромания! ИГРОВЫЕ НОВОСТИ, 7 мая (Red Dead Redemption 2, Beyond Good and Evil 2, Hotline Miami)

Игромания! Игровые новости, 20 марта (Bulletstorm 2, System Shock 3, War Thunder)

Во что поиграть на этой неделе — 28 июля (Solstice Chronicles: MIA, Sundered, Theseus)

Во что поиграть на этой неделе — 30 марта (Far Cry 5, Neverwinter Nights EE, Titan Quest)

Игромания! ИГРОВЫЕ НОВОСТИ, 29 июля (Death Stranding, Dying Light 2, DC, GTA V, SWJ: Fallen Order)

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

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

Игромания! Игровые новости, 17 апреля (Cyberpunk 2077, Heroes of the Storm, Remedy, Bioware)
СТАТИСТИКА
Всего материалов:
Фильмомания: 1510
Видео: 220
Каталог файлов: 98
Каталог статей: 6781
Фотоальбом: 1236
Форум: 1137/8079
Каталог сайтов: 386

Всего зарегистрировано:
Зарегистрировано: 1663
Сегодня: 0
Вчера: 0
За неделю: 1
За месяц: 7

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

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


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

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


День Рождения у: dwolf(41), RWBel(35)
ВЫ МОЖЕТЕ ОКАЗАТЬ ПОДДЕРЖКУ ЗА ТРУДЫ, ПОЖЕРТВОВАВ ЛЮБУЮ СУММЫ.

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) ", можно просмотреть форум и поискать темы по данной игре.



ДРУГИЕ МАТЕРИАЛЫ
Нефть против биотоплива: война еще не проиграна?
Microsoft закроет видеосервис Soapbox
Последний шанс
Троян выдает себя за Антивирус Касперского
Системные требования Call of Duty: World at War
Computex 2009: 5 ГГц на воздухе для Lynnfield не проблема
Совет недели по групповым политикам 5 – Защищаем проводник Windows от пользователей
Двухчасовая демоверсия Final Fantasy XIII
«Тетрису» исполнилось 25 лет
Microsoft готовится доминировать на рынке консолей
Демоверсия и дата выхода Resident Evil 5 на PC
В Европейской Windows 7 не будет Internet Explorer
Бесплатные офисы дорого обходятся Microsoft
Снимается фильм по ужастику Dead Space
Официальный релиз 6-ядерных AMD Opteron Istanbul
Игра Tropico 3 отправлена на золото
Как реанимировать IE7
Обзор вирусной обстановки за июль 2009 года от компании «Доктор Веб»
Империя Google замедляется
ОХОТА НА РОССИЮ

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


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


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

Ниже вы можете добавить комментарии к материалу " Внутреннее устройство ядра 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 – сервис по сбору донатов.
Невероятные приключения Факира — Русский фрагмент (2018)
Невероятные приключения Факира — Русский фрагмент (2018)
Лучшие новые фэнтези фильмы 2018/2019
Лучшие новые фэнтези фильмы 2018/2019
Gamesblender № 214: Mass Effect мчится к Андромеде, а Shenmue 3 борется за корону Kickstarter
Gamesblender № 214: Mass Effect мчится к Андромеде, а Shenmue 3 борется за корону Kickstarter
Gamesblender № 187
Gamesblender № 187
Gamesblender № 199
Gamesblender № 199
Форсаж 9 [Обзор] / [Трейлер 2 на русском]
Форсаж 9 [Обзор] / [Трейлер 2 на русском]
Игрозор №196
Игрозор №196
Видеообзор игры inFamous: First Light
Видеообзор игры inFamous: First Light
Видеообзор игры Broken Age: Act 2
Видеообзор игры Broken Age: Act 2
Gamesblender № 313: погони и бандиты в NFS Payback, гигантомания в Extinction
Gamesblender № 313: погони и бандиты в NFS Payback, гигантомания в Extinction

Прикольные картинки и фото (24 шт)
Прикольные картинки и фото (24 шт)
Художник изобразил диснеевских персонажей в виде реальных людей (17 фото)
Художник изобразил диснеевских персонажей в виде реальных людей (17 фото)
Что здесь происходит?! (26 фото)
Что здесь происходит?! (26 фото)
12 новых демотиваторов на среду
12 новых демотиваторов на среду
Безумное и ужасное  (30 фото)
Безумное и ужасное (30 фото)
Редкие старые фотографии знаменитостей из коллекции Morrison Hotel Gallery (34 фото)
Редкие старые фотографии знаменитостей из коллекции Morrison Hotel Gallery (34 фото)
Прикольные комментарии из соцсетей (15 шт)
Прикольные комментарии из соцсетей (15 шт)
Женщина потратила 3 года и $70 тысяч на переделку старого автобуса в комфортный дом на колёсах (23 фото)
Женщина потратила 3 года и $70 тысяч на переделку старого автобуса в комфортный дом на колёсах (23 фото)
СТАТИСТИКА
Яндекс.Метрика


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