Борьба со звуковыми сбоями в Windows 7

Автор: Topol Среда, Май 2nd, 2012 Нет комментариев

Рубрика: Операционные системы

Добиться безупречного воспроизведения звука на ПК — задача на самом деле непростая, связанная со множеством технических ограничений, которые приходится преодолевать. В отличие от устройств, специально предназначенных для работы со звуком и видео, ПК вынужден во время воспроизведения выполнять массу сторонних задач, обусловленных наличием большого числа аппаратных и программных компонентов. Многим из вас знакомо явление внезапных сбоев при воспроизведении. В этом сообщении Кристин Карр (Kristin Carr), руководитель группы в отделе Devices and Media, расскажет об усилиях, предпринятых при разработке Windows 7 для того, чтобы избавиться от этой проблемы. Один из уроков, усвоенных мной ещё на ранней стадии разработки продукта, звучит так: мы не говорим «без сбоев», мы говорим — «устойчивый к сбоям». Надеюсь, это — важное замечание для читателей. —Стивен
Вы когда-нибудь использовали компьютер, чтобы проигрывать МР3 или ДВД? Если ответ будет положительным, то вы находитесь в рядах подавляющего большинства пользователей, использующих свои ПК для воспроизведения аудио- и видео-приложений, включающих в себя всё, что угодно — от просмотра фильма и запуска игры до проигрывания роликов с YouTube. Но вам, вероятно, пришлось удостовериться, что процесс этот не лишён недостатков — возможно, у видеофрагмента выпадали кадры, а звуковая композиция «заикалась». Мы называем это «глитчем» — сбоем — ощутимым прерыванием воспроизведения звука и/или изображения, нарушающим целостность восприятия медиа-контента. В этом сообщении мы рассмотрим звуковые сбои: посмотрим, какие технические трудности способствуют появлению таких сбоев и обсудим проделанную нами работу для уменьшения этого неприятного эффекта.

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

Воспроизведение звука — особо чувствительная область. Для того, чтобы из динамиков зазвучала музыка, необходимо доставлять данные к вашему оборудованию примерно каждые 10 миллисекунд, или в 30 раз быстрее, чем длится моргание. Проблема в том, что ваш компьютер именно в это время загружен массой прочих задач, — как раз сейчас загружается ролик из YouTube или новая композиция, и для этих задач временнАя точность исполнения команд также чрезвычайно важна. Как вы догадываетесь, в действительности всё довольно просто: медленная сетевая карта или видеоадаптер отнимают массу процессорного времени — и пожалуйста, ваша музыка начала «заедать».

Итак, что же мы предприняли для того, чтобы избежать такого рода неприятностей? Короткий ответ: «Предостаточно!», а остальное пространство сообщения будет посвящено нижеперичисленным аспектам:

1. Сбор данных для установления характера проблемы
2. Разработка способа систематического определения и анализа сбоев
3. Широкое внедрение созданных инструментов и методов тестирования как внутри Microsoft, так и у наших партнёров по работе с Windows
4. Тесное сотрудничество с партнёрами для обнаружения, изучения и устранения сбоев

Кто сталкивается со сбоями?
При изучении этого вопроса на стадии разработки Windows 7, нашей первостепенной задачей был сбор данных. Мы получали сообщения о сбоях, но мы не представляли себе истинного масштаба проблемы. Как часто пользователи слышат сбои? Происходит ли это на одних компьютерах чаще, чем на других? Задавая себе эти вопросы, мы смогли приблизиться к истинному пониманию проблемы.

Мы осуществляли сбор данных посредством встроенной в ОС инфраструктуры для телеметрии, позволяющей потребителям предоставлять Microsoft сведения о производительности и другую статистику, благодаря которой мы совершенствуем Windows. Для каждого компьютера, отсылавшего информацию в Microsoft, мы определяли, сколько раз оборудование для воспроизведения звука не получало нужные ему данные (т.е. когда пользователь слышал сбой). Эти данные группировались по т.н. «сессиям», каждая из которых являлась представлением данных, собранных с определённого ПК в определённый день или данных, собранных в интервале между перезагрузками — в зависимости от того, какой период короче.

Давайте теперь взглянем на результаты. Сначала посмотрим на общий уровень сбоев:


Рис. 1: Количество сбоев на одну сессию

График показывает данные от пользователей, не являющихся сотрудниками Microsoft. Примерно в 80% сессий сбоев нет совсем, но в 4,3% сбоев больше 10, что показывает — от сбоев страдает значительное количество пользователей.

Определив, как часто происходит сбой, мы начинаем выяснять, почему он происходит. В первую очередь, мы фильтруем сведения по критерию портативный/настольный ПК:


Рис. 2: Вероятность сбоев в зависимости от типа ПК (портативный/настольный)

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

Следующим этапом стало определение вероятности сбоев в зависимости от изготовителя оборудования:


Рис 3: Вероятность сбоев в зависимости от изготовителя оборудования (Mfr)

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

Теперь мы можем посмотреть на график сбоев у широкого спектра моделей компьютеров:


Рис. 4: Сводная таблица всех сбойных сессий по моделям ПК

В этой таблице представлен результат наших исследований сессий, в ходе которых зарегистрирован хотя бы один сбой. При этом мы пытались определись соответствие проблемы подели и производителю оборудования, как показано в таблице (реальные названия заменены псевдонимами). Первое, на что следует обратить внимание, — на компьютере А сбои случаются в три раза чаще, чем на всех остальных ПК, представленных в таблице. Эти данные подтверждают ранние сведения о том, что на определённых ПК сбои происходят чаще обычного, и мы установили, что виновата в этом неправильно сконфигурированная видеокарта. В результате производитель изменил конфигурацию.

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

Создание инструментария для анализа сбоев
Как только у нас появились данные о времени и причинах сбоев, команда Windows Devices & Media Performance принялась за создание универсального набора тестов, сосредоточенных вокруг воспроизведения медиа-контента и способных оценить качество исполнения сценария компьютером. Во время воспроизведения медиа-контента эти тесты многократно регистрировали статистические параметры системной производительности, включая загрузку центрального процессора, активность всех компонентов и взаимодействие между ними, и, конечно же, случаи сбоев, если они имели место. Мы намеренно задействовали широчайший спектр сценариев и конфигураций оборудования, включая мобильные ПК, работающие от аккумуляторов, оборудование под пиковой нагрузкой, сотни типов медиафайлов, и т.д. Задача состояла в том, чтобы испытать каждый ПК в различных ситуациях, характерных для пользователей, установить и исключить сбои при воспроизведении звука.

Кроме того, группа Devices & Media Performance создала инструмент с графическим интерфейсом, выделяющий сбои и активность процессора непосредственно перед и во время возникновения сбоя. Это позволило нам быстро диагностировать любую проблему, которую мы фиксировали. Например, на рис. 5 можно видеть графическое представление момента возникновения сбоя. Мы также можем отобразить соответствующие измерения, сделанные в момент сбоя, чтобы точно определить момент начала подозрительного поведения оборудования.


Рис. 5: Пример графического представления момента сбоя и его устранения

В этом случае видны четыре сбоя (вертикальные красные линии на верхней панели). На четвёртой панели отображается активность, отбирающая более 3 мс (т.н. «долгие» ISR/DPC). На этом примере демонстрируется прямая зависимость между сбоями и долгими ISR/DPC, которые являются процедурными запросами, генерируемыми операционной системой, которые обладают потенциальной способностью затормозить процессор и вызвать сбой. Отсюда можно проследить, какие компоненты ответственны за эти запросы, чтобы снизить или избежать воздействия сбоя. Этот рисунок демонстрирует дополнительную информацию, которой мы пользовались для определения конкретных проблем, обсуждавшихся выше; впрочем, эта информация, наряду со многими другими результатами телеметрии, помогает диагностировать остальные сбои при воспроизведении медиа-контента на широком спектре оборудования.

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

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

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

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

Вот перечень проводившихся нами мероприятий:

  • Предоставление телеметрии по сбоям нашим партнёрам. Они прежде располагали минимальными сведениями о проблеме сбоев при воспроизведении звука. С помощью собранных нами данных они могут успешно диагностировать недоработки и совершенствовать свои продукты.
  • Запуск многих тысяч тестов на видео- и аудиовоспроизведения на сотнях машин, предоставленных ОЕМ-партнёрами, и передача полученных данных в их распоряжение. Оценивая работу многих компьютеров, мы смогли приблизиться к разрешению проблемы сбоев при воспроизведении звука.
  • Предоставляя инструментарий и поддержку, мы помогаем партнёрам оценить воздействие работы их компонентов на полностью укомплектованный компьютер и устранить возможные причины сбоев при воспроизведении звука.

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

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты