
Parece que ambos implican intercambiar procesos dentro y fuera.
En la paginación, intercambias una página de un proceso existente y la reemplazas con otra página del disco (memoria virtual, creo), pero para el cambio de contexto, también intercambias un proceso guardándolo primero en una PCB y luego restaurando otro. PCB en la memoria.
¿Cuáles son las diferencias entre los dos? Aquí está mi conjetura/comprensión actual:
El cambio de contexto se refiere a todo el proceso, por lo que posiblemente todas las páginas se intercambien de una sola vez.
Por lo tanto, el bloque de control de proceso o PCB contendrá las páginas (si no, ¿cómo se relacionan los dos?).
Respuesta1
Creo que hay más diferencias que puntos en común.
El cambio de contexto básicamente se refiere a cualquier contexto de CPU que el código del programa necesite para ejecutarse. Eso incluye cosas como valores de los registros de la CPU, indicadores, puntero de instrucción y puntero de pila, nivel de prioridad, configuración de memoria virtual (tablas de páginas), etc.
No es necesario incluir el realmemoriadel proceso, y generalmente no lo hace, ya que cambiar la memoria completa de un proceso sería lento. Siempre que el sistema pueda almacenar múltiples programas en la memoria al mismo tiempo, y que los programas tengan una forma de saber qué parte de la memoria es suya usar, no hay necesidad de intercambiar toda la memoria de un proceso al cambiar a otro. .
(Según Wikipedia, solíanIntercambiarprocesos completos en la década de 1960).
La paginación es el proceso de mover bloques ("páginas") de memoria entre la memoria principal y algún almacenamiento secundario, generalmente de una manera invisible para el proceso en ejecución.
En un sistema moderno, el cambio de contexto entre procesos incluirá la recarga de tablas de páginas, pero no es necesario que implique paginación en absoluto, ya que normalmente todo cabe en la memoria. Por otro lado, la paginación puede ocurrir incluso dentro de un solo proceso, si se usa suficiente memoria para requerir el intercambio.
Entonces, en realidad, el cambio de contexto y la paginación son bastante ortogonales, ambos son simplemente conceptos de sistema operativo de memoria virtual multitarea.
Respuesta2
El cambio de contexto no está relacionado con la paginación, es lo que le permite ejecutar dos programas diferentes al mismo tiempo. El contexto es qué código de espacio de usuario o espacio de kernel se está ejecutando y el cambio se mueve del espacio de usuario al espacio de kernel o viceversa.
La paginación solo ocurre cuando tiene espacio de intercambio para colocar las páginas de memoria que desea intercambiar en ese espacio para usar la página de memoria para otra cosa. Si no hay espacio de intercambio, entonces no hay paginación; sin embargo, habrá cambio de contexto.
Cuando el contexto se cambia del espacio de usuario al código del espacio del kernel (y luego posiblemente a algún otro código del espacio de usuario de una aplicación diferente), no se realiza necesariamente ninguna paginación. Es decir. la memoria de procesos original no se intercambia automáticamente. Por lo tanto, seguirá usando memoria mientras se ejecuta el segundo proceso.