Como o iTunes continua tocando música se todo o sistema estiver congelado?

4

Eu notei isso hoje - todo o meu sistema congelou, o relógio está congelado, nada responde a cliques e pressionamentos de teclas, e a animação da minha máquina do tempo parou de funcionar. Ao reparticionar minha unidade de inicialização. Eu também tinha o iTunes aberto, que felizmente continuava tocando música. Como o iTunes consegue continuar reproduzindo mídia se todo o sistema operacional estiver congelado? Nenhum outro media player do OS X que eu vi pode fazer isso, e eu adoraria saber como isso é possível.

Obrigado.

    
por Tristan Seifert 11.06.2011 / 05:54

2 respostas

4

Acredito que o iTunes use real-time threads , que é um determinado tipo de encadeamento que recebe uma fração constante de tempo, independentemente do que acontece na máquina. Consulte este documento da apple para uma breve discussão. Você pode encontrar mais informações no livro OS X Internal . O livro é um pouco datado (ele discute principalmente 10.4 Tiger), mas os internos do kernel não mudaram drasticamente.

Acho que outros players de mídia não funcionam como encadeamentos em tempo real; Atualmente, os computadores são bastante poderosos e a música não para até mesmo sob a política de agendamento padrão, a menos que você faça uma tarefa extremamente intensa no kernel.

    
por 11.06.2011 / 06:03
2

Meu palpite é que, quando você seleciona uma música para tocar no iTunes, o iTunes envia quase todos os dados brutos da música para um DMA. Devido à maneira como os dispositivos de E / S conversam com a CPU, cada dispositivo tem seu próprio endereço de memória. Uma vez que a CPU tenha terminado de enviar os dados para esse endereço, o dispositivo de E / S pode usar os dados sem que a CPU tenha que cuidar dela. O iTunes move os dados da música para o endereço de memória do dispositivo de som e o dispositivo de som começa a reproduzi-lo. Quando a CPU trava enquanto você está tocando uma música, o dispositivo de som não percebeu que a CPU parou e apenas continua usando os dados do seu endereço de memória, tocando a música.

    
por 11.06.2011 / 06:14