Як iTunes продовжує відтворювати музику, якщо вся система заморожена?


4

Я сьогодні це помітив - вся моя система застигла суцільно, годинник застиг, нічого не реагує на клацання та натискання клавіш, а анімація моєї машини перестала працювати. Під час перерозподілу завантажувального диска. У мене також був відкритий iTunes, який із задоволенням продовжував грати музику. Як iTunes вдається зберегти відтворювати медіа, якщо вся ОС застигла? Жоден інший медіаплеєр OS X, якого я бачив, не може цього зробити, і я хотів би знати, як це можливо.

Дякую.


Я думаю, що завжди добре запитати, як можна зробити свою програму більш чуйною!
Yuji

Це правда. Я не витримую невідповідальних програм!
Трістан Сейферт

Відповіді:


4

Я вважаю, що iTunes використовує real-time threadsпевний тип потоків, яким надається постійна частка часу, що відбувається на машині. Дивіться цього яблучного документа для короткого обговорення. Додаткову інформацію можна знайти у внутрішній книзі OS X. Книга трохи датована (в основному йде мова про 10,4 тигра), але внутрішні ядра кардинально не змінилися.

Я думаю, що інші медіаплеєри не працюють в режимі реального часу; в наші дні комп’ютери є досить потужними, і музика не зупиняється навіть за стандартної політики планування, якщо ви не виконаєте надзвичайно напружених ядер.


Дякую за посилання, я ніколи не знав, що в OS X було більше ніж один тип потоку. Я вважаю, що це має бути те, що використовує iTunes. Дякуємо за відповідь!
Трістан Сейферт

2

Я здогадуюсь, що коли ви вибираєте пісню для відтворення в iTunes, iTunes передасть майже всі вихідні дані пісні в DMA. Через те, що пристрої вводу / виводу спілкуються з процесором, кожен пристрій має свою власну адресу пам'яті. Після того, як процесор закінчить надсилання даних на цю адресу, пристрій вводу / виводу може використовувати там дані, без того, щоб ЦП потребував їх няні. Таким чином iTunes переміщує дані пісні на адресу пам'яті звукового пристрою, і звуковий пристрій починає відтворювати її. Коли процесор блокується під час відтворення пісні, звуковий пристрій не зрозумів, що процесор зупинився і просто продовжує використовувати дані зі своєї адреси пам'яті, відтворюючи пісню.


Хе, я подумав, що iTunes повинен виконувати деякі функції низького рівня. Але захищена ОС НЕ дозволить додаткам (некореневим) користувальницького простору прямо зараз отримувати доступ до пам'яті / обладнання, чи не так?
Трістан Сейферт

2
Ні, це не так, як працює iTunes - цікава теорія!
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.