Es útil pensar en ellos en un orden diferente. El cambio de contexto significa que se almacena el estado visible del programador (registros) de un subproceso, y se carga el estado de otro subproceso (y se permite que ese subproceso se ejecute). Un sistema operativo de programación preventiva hará esto para “forzar” uno hilo para dejar de ejecutar (adelantarse) a favor de otro. Esto permite que el sistema operativo proporcione segmentos de tiempo a muchos subprocesos ejecutables, y puede permitir que los subprocesos sensibles al tiempo se ejecuten antes.
El intercambio generalmente se denomina mejor “paginación”, y simplemente significa que el sistema operativo roba algunas páginas sucias de un proceso, las escribe en el disco, marca su dirección virtual como “no presente” y entrega la RAM física a un uso más urgente. Cuando (si) el proceso original toca esas direcciones virtuales, el sistema operativo debe restaurar las páginas del disco. El intercambio es una forma de hacer que el uso de RAM sea más eficiente, al menos hasta que se intercambian tantas páginas (o las incorrectas) que el sistema pasa mucho tiempo intercambiando nuevamente (“agitando”).
El intercambio implica un cambio de contexto, ya que la referencia a una página no presente evitará el proceso; en ese sentido, puede pensar en el intercambio como una especie de preferencia de memoria.
- ¿Cómo se endurecen los circuitos informáticos contra la radiación, como las sondas enviadas a Júpiter? ¿Qué impacto tiene la radiación en los sistemas sin blindaje?
- Si las empresas basadas en productos pueden obtener mejores empleados a través de GitHub y TopCoder, ¿por qué realizan reclutamiento en el campus en todo el mundo?
- ¿Hay algún dispositivo que se pueda insertar entre una computadora (CPU) y un monitor que digitalice la alimentación de video (por ejemplo, VGA) y almacene esas imágenes?
- ¿Cuáles son los tipos de proyectos en ingeniería informática en los que necesitará muchos conocimientos y experiencia para trabajar?
- ¿Cuál es el mejor podcast técnico para programadores?