Главная » Просмотр файлов » Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop

Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop (1187416)

Файл №1187416 Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop (Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop)Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop (1187416)2020-09-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего профессионального образования

«Московский физико-технический институт

(государственный университет)»

Факультет управления и прикладной математики

Кафедра теоретической и прикладной информатики

Проектирование и разработка подсистемы виртуализации звука в Parallels Desktop

Выпускная квалификационная работа

(магистерская диссертация)

Направление подготовки: 03.04.01 Прикладная математика и физика

Выполнил:

студент 973 группы Бондарь Артем Олегович

Научный руководитель:

д. ф.-м.н, профессор Тормасов Александр Геннадьевич

Научный консультант:

Преподаватель Мелехова Анна Леонидовна

Москва 2015

Оглавление

1.2 Виртуализация мультимедиа 5

1.3 Системы реального времени 6

1.3 Проблемы виртуализации средств поддержки мультимедиа 11

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

3. Обзор существующих решений работы со звуком 19

3.1 Архитектурные подходы к виртуализации аудио потока 19

3.2 Существующие аудио библиотеки 21

3.2.1 Portaudio 22

3.2.2 RTAudio 23

3.2.3 JUCE 24

3.2.4 Core Audio 25

3.3 Заключение 27

4. Ход работ 28

4.1. Сравнительный анализ архитектурных подходов по виртуализации аудио устройств 28

4.1.1 Формальная модель аудио потока 28

4.1.2 Оценка мультипликативной константы модели 31

4.1.3 Интерпретация модели как Марковской цепи 33

4.1.4 Оценка метрики, характеризующей качество аудио потока 34

4.1.5 Сравнение архитектурных подходов в рамках приведенной формализации 36

4.2 Архитектура потоковой виртуализации аудио данных 39

4.3 Разработка аудио библиотеки 41

5. Оценка результатов работы 44

6. Заключение 45

7. Список использованной литературы 47

1. Введение в проблематику
1.1 Виртуализационные технологии.

Парадигма облачных вычислений в последние годы обрела высокую популярность в индустрии информационных технологий, что, в свою очередь, поспособствовало все более бурному развитию технологий аппаратной виртуализации [1]. Эта технология позволяет одновременно исполняться нескольким операционным системам в рамках одной физической машины. Такой сценарий работы системы реализуется посредством изоляции операционных систем от реального оборудования при помощи дополнительного программного слоя абстракции - гипервизора [2, 3]. Его задача - эмулировать поведение реальных устройств таким образом, что бы операционные системы могли работать так же, как если бы они имели эксклюзивный доступ к оборудованию.

Существующие конфигурации виртуализированных систем могут быть разделены на два широких класса: гипервизоры работающие без использования сервисной (хостовой) ОС и гипервизоры использующие сервисную ОС (гипервизоры первого и второго типа [38]). Гипервизоры первого типа по сути являются микро-ОС, так как сами могут работать с оборудованием, обслуживая запросы изолированных ОС (гостевые ОС). Примером такого гипервизороа являются VMWare ESXi [4]. Гипервизоры же второго типа не содержат в себе драйверов для работы с аппаратурой и исполняются как сервис хостовой ОС, которая и обслуживает все запросы по работе с оборудованием, приходящие от гостевых ОС. Такой метод виртуализации реализован в проектах KVM [5], VMWare Workstation [6], Parallels Desktop [7]. В рамках этой работы мы остановим свое внимание на гипервизорах второго типа.

Виртуализированные системы имеют ряд свойств, обеспечивших высокую популярность решений по аппаратной виртуализации в IT индустрии [39]. Среди них особенно стоит выделить высокий уровень утилизации ресурсов, надежность и гибкость в управления системой. Действительно, виртуальные машины изолированы друг от друга гипервизором и в любой момент могут быть скопированы или перемещены между реальными машинами, в том числе и без остановки (технология живой миграции [8]). Это позволяет реализовывать множество сценариев, повышающих надежность системы и ее эффективность.

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



1.2 Виртуализация мультимедиа



Вопросы виртуализации устройств мультимедиа и в частности аудио устройств приобрели особенную актуальность с развитием разработок виртуальных машин, рассчитанных для использования на рынке десктопной виртуализации (продукты вроде Virtual Box, Parallels Desktop и VMWare Workstation). В этом случае основной целью использования виртуальной машины является запуск приложений, не совместимых с используемой ОС. Таким приложением может являться приложение по работе с мультимедиа, и в коммерческом виртуализационном решении качество эмуляции мультимедиа устройств имеет большое значение.

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



1.3 Системы реального времени

Рассмотрим некоторую вычислительную систему, задачей которой является исполнение некоторой процедуры в ответ на внешнее событие. Если результат этих вычислений актуален и ценен только в течении определенного интервала времени с момента получения события (deadline), то такая система называется системой реального времени [9]. Разделяют такие системы на два подтипа:

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

- Система жесткого реального времени - система в котором ответ теряет актуальность полностью после опоздания к deadline.

Примерами систем жесткого реального времени являются цифровые контроллеры в двигателе автомобиля, где запаздывание ответа может привести к автокатастрофе.

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

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

Написание систем мягкого реального времени является хорошо изученной областью, и современные ОС умеют давать гарантии исполнения пользовательского кода с указанными ограничениями в случае выполнения следующих правил [13]:

- Код, чувствительный к задержкам, должен исполняться в системе с максимальным приоритетом

- Запрещено использовать системные вызовы, потенциально блокирующие исполнение (такие как обращения к файловой системе и сети, выделение/освобождение памяти)

- Запрещено использовать блокирующие примитивы синхронизации. Исключением является использование вызовов типа trylock(), исполняющихся за ограниченное сверху время

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

Принимая во внимание правила написание кода реального времени исполнения, мы можем построить концептуальную схему работы аудио системы (Рис 1):

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


- Далее запускается процесс воспроизведения: аудио контроллер периодически запрашивает у звукового модуля данные (как правило при помощи функции обратного вызова) и аудио модуль либо генерирует их, либо берет уже подгруженные в память данные (если они уже успели загрузиться), либо оповещает звуковой контроллер об отсутствии аудио данных.

Рис 1. Архитектура аудиопотока (output) в современных ОС

Для входящего потока аудио данных (input) работают та же схема, но меняется направление движения аудио данных.

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

Задержка между началом генерации аудио данных и стартом их воспроизведения (либо между началом записи звука и началом приема аудио данных записывающим приложением), так же называемая пребуферизацией, - это основной инструмент снижения рисков нарушения непрерывности аудио потока в современных операционных системах [14, 15, 16]. И это кажется вполне естественным - чем выше задержка, тем больше готовых для воспроизведения данных буферизировано, а значит в случае, если генератор по каким-либо причинам нарушит расписание синтеза новых данных, то у него будет возможность наверстать упущенное, пока аудио подсистема проигрывает/обрабатывает уже готовые для этого данные (более подробно этот вопрос будет рассмотрен в разделе 4.1). С другой стороны, задержки в воспроизведении звука свыше 180 мс в случае воспроизведения мультимедиа [17] и 400 мс для VoIP систем [18] уже различимы человеком и неприемлемы. Для систем работающих с цифровой обработкой звука этот параметр еще ниже: при задержках в 2-5 мс тембральная картина меняется, а при превышении порога в 10 мс эта задержка становится явно различимой, и не позволяет качественно работать с полученным аудио сигналом [19]. Для достижения высокого качества работы аудио системы разработчики операционных систем стараются выдерживать баланс между стабильностью аудио потока и величиной задержки. Для современных операционных систем характерны следующие минимальные величины задержки [14]:

- OSX - 2мс

- Windows - зависит от реализации драйвера (8 - 400мс). При использовании драйверов ASIO [20] - снижена до 1 - 2мс

- Unix-до10мс

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

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

- Код аудио рендеринга/обработки исполняется с наивысшим приоритетом

- Аудио подсистемы написаны с соблюдением правил написания кода мягкого реального времени исполнения

- Использованы максимально эффективные алгоритмы и методы работы с потоком аудио данных для снижения нежелательной составляющей задержки

- В системе выставляется максимальная задержка в рамках приемлемых значений

1.3 Проблемы виртуализации средств поддержки мультимедиа

Теперь же рассмотрим случай виртуализированой системы на базе гипервизора второго типа. В такой конфигурации гостевая и хостовая операционные системы изолированы друг от друга гипервизором, и виртуальная машина делегирует работу гостевой ОС c оборудованием хостовой ОС. Не вдаваясь в детали реализации, общую архитектуру виртуальной машины, опирающейся на технологию аппаратной виртуализации на платформе x86 можно описать следующим образом [35] (рис 2):

Рис 2. Архитектура виртуальной машины, опирающейся на средства аппаратной виртуализации

Характеристики

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

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

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6280
Авторов
на СтудИзбе
315
Средний доход
с одного платного файла
Обучение Подробнее