Wie spielt iTunes weiter Musik, wenn das gesamte System eingefroren ist?


4

Ich habe das heute bemerkt - mein gesamtes System ist eingefroren, die Uhr ist eingefroren, nichts reagiert auf Klicks und Tastendrücke, und meine Zeitmaschinenanimation läuft nicht mehr. Während der Neupartitionierung meines Startlaufwerks. Ich hatte auch iTunes geöffnet, das gerne weiter Musik abspielte. Wie schafft es iTunes, Medien weiter abzuspielen, wenn das gesamte Betriebssystem nicht mehr reagiert? Kein anderer OS X-Mediaplayer, den ich gesehen habe, kann dies, und ich würde gerne wissen, wie dies möglich ist.

Vielen Dank.


Ich denke, es ist immer eine gute Frage, wie man sein Programm reaktionsfähiger machen kann!
Yuji

Das ist richtig. Ich kann nicht reagieren Programme stehen!
Tristan Seifert

Antworten:


4

Ich glaube, iTunes verwendet real-time threads, was eine bestimmte Art von Threads ist, die einen konstanten Bruchteil der Zeit erhalten, was auch immer auf der Maschine passiert. In diesem Apple-Dokument finden Sie eine kurze Diskussion. Weitere Informationen finden Sie im Buch OS X Internal . Das Buch ist ein bisschen veraltet (es geht hauptsächlich um 10.4 Tiger), aber die Kernel-Interna haben sich nicht drastisch geändert.

Ich denke, andere Media Player fungieren nicht als Echtzeit-Threads. Heutzutage sind die Computer ziemlich leistungsfähig und die Musik hört auch unter den Standard-Planungsrichtlinien nicht auf, es sei denn, Sie erledigen eine äußerst kernelintensive Aufgabe.


Vielen Dank für die Links, ich habe nie gewusst, dass OS X mehr als eine Art von Thread hatte. Ich denke, das muss das sein, was iTunes verwendet. Danke für die Antwort!
Tristan Seifert

2

Ich vermute, wenn Sie einen Titel für iTunes auswählen, überträgt iTunes fast alle Rohdaten des Titels in einen DMA. Aufgrund der Art und Weise, wie E / A-Geräte mit der CPU kommunizieren, verfügt jedes Gerät über eine eigene Speicheradresse. Nachdem die CPU die Daten an diese Adresse gesendet hat, kann das E / A-Gerät die Daten dort verwenden, ohne dass die CPU sie überwachen muss. ITunes verschiebt also die Daten für den Titel an die Speicheradresse des Audiogeräts und das Audiogerät beginnt mit der Wiedergabe. Wenn die CPU während der Wiedergabe eines Songs abstürzt, hat das Audiogerät nicht bemerkt, dass die CPU gestoppt ist, und verwendet während der Wiedergabe des Songs weiterhin die Daten aus der Speicheradresse.


Heh, ich dachte mir, dass iTunes ein bisschen Spaß machen muss. Aber ein sicheres Betriebssystem würde es NICHT (Nicht-Root) -Benutzeranwendungen erlauben, direkt auf Speicher / Hardware zuzugreifen, oder?
Tristan Seifert

2
Nein, so funktioniert iTunes nicht - eine interessante Theorie!
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.