Por qué el cambio de procesos no hace que nuestra experiencia informática sea discontinua

Por qué el cambio de procesos no hace que nuestra experiencia informática sea discontinua

Todos somos conscientes de que la CPU cambia entre los procesos que está ejecutando, pero ¿cómo es que nunca experimentamos ninguna interrupción mientras la CPU cambia y usamos aplicaciones?

Yo diría que esto se debe a la enorme velocidad de los cambios entre procesos, pero tengo curiosidad por saber cuántos procesos realmente afectarían el rendimiento de una CPU hasta el punto en que los humanos experimentarían interrupciones (o interrupciones) en una sola aplicación y cómo ¿Se manifestaría en los sistemas operativos modernos?

Respuesta1

Yo diría que esto se debe a la gran velocidad de los cambios entre procesos.

Estás en lo correcto. Pero aún así, las operaciones que realiza el microprocesador se realizan en pasos discretos y no de forma continua. Cada ciclo de reloj hace que la CPU busque el contenido de la memoria señalada por el contador del programa. En el siguiente ciclo de reloj decodifica la instrucción y así sucesivamente. Si puedes volverte lo suficientemente rápido (para darte cuenta), podrás notar que la música que crees que es continua en realidad se reproduce durante un tiempo y luego se detiene, luego se reproduce de nuevo y así sucesivamente.

La bestia rápida y complejaque hace que el proceso de cambio sea increíblemente rápido se llama programador a corto plazo (programador de CPU). Debe ser rápido porque se invoca cada pocos milisegundos y no realiza ningún trabajo útil (desde la perspectiva del usuario). Aunque las diferentes implementaciones pueden tener ligeras diferencias, casi todos los programadores mantienen colas de prioridad para diferentes clases de procesos, como activos, en segundo plano, etc.

Entonces, incluso si se ejecutaran miles de procesos en una computadora, solo unos pocos de ellos interactuarían directamente con el usuario. Los programadores tienen en cuenta esta información al cambiar de proceso. Porque un proceso de verificación de actualizaciones puede esperar, pero la transmisión de música en tiempo real no.

Pero tengo curiosidad por saber cuántos procesos afectarían realmente el rendimiento de una CPU hasta el punto en que los humanos experimentarían una interrupción.

No existe un número mágico y hay muchos otros factores que afectan el rendimiento (velocidad de la memoria, tamaño, etc.). Creo que se quedará sin memoria antes de que el rendimiento del programador se convierta en un problema. Una cosa que puede manifestarse como rupturas es cuando se invoca alguna rutina de interrupción de alta prioridad y se ejecuta durante mucho tiempo.

Hecho de la diversión: - Para mejorar la experiencia del usuario en un sistema (lo olvidé), Steve Jobs ordenó a los ingenieros de Apple que asignaran la prioridad más alta a la interrupción del mouse para que el puntero no se retrasara mientras se movía.

información relacionada