2012-09-07 45 views
5

Estaba leyendo un libro que dice que un procesador con un solo núcleo y sin hiper-threading puede procesar solo un proceso a la vez, por lo que surge la duda de que cuando hacemos tantas operaciones en una PC y también los procesos en segundo plano siempre están ahí, entonces ¿por qué no el reproductor de música se detiene en el corto plazo? Sé que la CPU es bastante rápida, pero el reproductor de música suele reproducir música sin interrupciones (eso es observable). ¿Alguien puede aclarar este comportamiento?Reproductor de música proceso

Respuesta

4

1) Una CPU de un solo núcleo sin hyperthreading puede, como usted dice, ejecutar solo un proceso a la vez. Los procesos múltiples se manejan mediante el cambio de contexto, es decir, la CPU ejecutará un proceso y luego pasará al siguiente proceso y al siguiente y luego al primer proceso, y así sucesivamente. La frecuencia con la que se programa un determinado proceso depende de muchos factores diferentes, donde la prioridad del proceso es uno. (En los días en que a menudo se necesitaba ejecutar WinAmp con prioridad elevada para evitar problemas técnicos, etc. Hoy en día esto no es necesario ya que la CPU es mucho más rápida).

2) Entonces, con esto en mente, ¿cómo es que suena genial y sin problemas técnicos?

Al procesar audio, la CPU alimenta el dispositivo de sonido con muestras colocándolos en un búfer de hardware en la tarjeta de sonido o en la RAM. El procesador de sonido no obtiene sus datos directamente de la CPU, sino que lee las muestras de uno de estos dos búferes. Siempre que tengamos muestras en el búfer, estamos bien, aunque la CPU no esté haciendo otra cosa.

Los detalles sobre el tamaño del búfer de hardware son diferentes en las tarjetas de sonido diferentes. Algunas tarjetas de sonido (antiguas) no tienen ningún buffer de sonido, y aquí la RAM entra en juego.

Se está quedando sin muestras se llama falta de memoria intermedia. Incluso en las computadoras modernas esto puede suceder, por ejemplo, si comienza un proceso pesado mientras ejecuta su reproductor de audio, es posible que la CPU no pueda retroceder en el tiempo y podamos escuchar problemas técnicos y lagunas en la alimentación del sonido.

0

Esto se debe a un sistema operativo que hace preemptive multi-tasking. De hecho, el proceso se interrumpe durante un período de tiempo muy corto, no lo suficiente como para que lo note un humano. Otra razón es también que la tarjeta de audio tiene un búfer de reproducción que permite la reproducción de forma continua, mientras que los datos se alimentan en trozos. Por lo tanto, aunque el proceso de alimentación de la tarjeta con datos se está interrumpiendo durante un tiempo muy corto, la reproducción todavía puede ocurrir.

+0

pero por lo general no se oye ninguna interrupción. ¿Es tan rápido que no podemos observar ningún descanso? –

-1

Esto es manejado por el Programador del sistema operativo.

El planificador asignará un intervalo de tiempo a cada proceso (esto tal vez unos pocos milisegundos) y permitirá que un proceso ejecute lo que necesita durante ese período de tiempo. La longitud asignada está determinada por el algoritmo utilizado por el sistema operativo (es decir, la programación a corto plazo, a largo plazo, etc.). La razón por la que no se da cuenta de esto es porque la CPU puede operar a tales altas frecuencias, es decir, 1 GHz lo que hace que la tarea múltiple en un solo núcleo/hilo sea transparente para el usuario.

http://en.wikipedia.org/wiki/Scheduling_(computing) http://web.cs.wpi.edu/~cs3013/c07/lectures/Section05-Scheduling.pdf

Cuestiones relacionadas