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

570
Tristan Seifert

Ich habe das heute bemerkt - mein gesamtes System ist festgefroren, die Uhr ist eingefroren, nichts reagiert auf Klicks und Tastendruck und meine Zeitmaschinenanimation läuft nicht mehr. Beim Partitionieren meines Startlaufwerks. Ich hatte auch iTunes geöffnet, das gerne Musik spielte. Wie schafft es iTunes, Medien weiterhin abzuspielen, wenn das gesamte Betriebssystem festgefroren ist? Kein anderer OS X-Mediaplayer, den ich je gesehen habe, kann dies tun, und ich würde gerne wissen, wie dies möglich ist.

Vielen Dank.

4
Ich denke, es ist immer eine gute Frage zu fragen, wie man sein Programm ansprechbarer machen kann! Yuji vor 12 Jahren 0
Das ist richtig. Ich kann keine Programme ohne Reaktion aushalten! Tristan Seifert vor 12 Jahren 0

2 Antworten auf die Frage

4
Yuji

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

Ich denke, andere Mediaplayer funktionieren nicht als Echtzeit-Threads. Heutzutage sind die Computer ziemlich leistungsfähig und die Musik hört nicht auf, auch wenn Sie sich an die Standard-Planungsrichtlinien halten, es sei denn, Sie führen eine extrem Kernel-intensive Aufgabe aus.

Danke für die Links, ich habe nie gewusst, dass OS X mehr als einen Thread-Typ hat. Ich denke, das muss das sein, was iTunes verwendet. Danke für die Antwort! Tristan Seifert vor 12 Jahren 0
2

Meine Vermutung ist, dass, wenn Sie einen Titel für die Wiedergabe in iTunes auswählen, iTunes fast alle Rohdaten für den Titel in einen DMA überträgt. Da E / A-Geräte mit der CPU kommunizieren, hat jedes Gerät eine eigene Speicheradresse. Wenn die CPU die Daten an diese Adresse gesendet hat, kann das E / A-Gerät die Daten dort verwenden, ohne dass die CPU sie babysitten muss. So verschiebt iTunes die Daten für den Song an die Speicheradresse des Audiogeräts, und das Audiogerät beginnt mit der Wiedergabe. Wenn die CPU während des Abspielens eines Songs blockiert, hat das Audiogerät nicht erkannt, dass die CPU gestoppt hat, und verwendet die Daten der Speicheradresse weiter, um den Song abzuspielen.

Heh, ich dachte mir, dass iTunes ein bisschen Spaß haben muss. Aber ein sicheres Betriebssystem würde (NICHT-Root) User Space-Anwendungen NICHT den direkten Zugriff auf Speicher / Hardware erlauben, oder? Tristan Seifert vor 12 Jahren 0
Nein, so funktioniert iTunes nicht - eine interessante Theorie! vor 12 Jahren 2