¿Cuál es la diferencia entre programación preventiva, cambio de contexto e intercambio en sistemas operativos?

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.

No hay ninguna correlación notable entre los 3 términos que ha solicitado.
Por lo tanto, solo explicaré esos 3 conceptos en mi respuesta.

Programación preventiva
Las tareas generalmente se asignan con prioridades. A veces es necesario ejecutar una determinada tarea que tiene una prioridad más alta antes de otra tarea aunque se esté ejecutando. Por lo tanto, la tarea en ejecución se interrumpe por un tiempo y se reanuda más tarde cuando la tarea prioritaria ha finalizado su ejecución. Esto se llama programación preventiva.
Ej .: round robin

En la programación no preventiva, una tarea en ejecución se ejecuta hasta su finalización. No puede ser interrumpido.
Por ejemplo: primero en entrar, primero en salir


Cambio de contexto
En cualquier caso, la CPU está ejecutando 1 proceso. Cada proceso es reconocido por varias piezas de información: texto (es decir, conjunto de instrucciones) + datos + contenido de registros de hardware + estructuras de datos del núcleo, etc.

Ahora, cuando una CPU necesita abandonar este proceso (por ejemplo, el proceso A) y comenzar a ejecutar otro nuevo proceso (por ejemplo, el proceso B), lo que debe hacer es actualizar toda la información anterior para el nuevo proceso B. Una vez que se realiza esta actualización, decimos: la CPU está ejecutando el proceso B.

Este procedimiento de actualización de un proceso a otro se llama – cambio de contexto.
Como puede adivinar por el nombre mismo, es un cambio de “contexto” para una CPU.

NOTA: El tiempo de cambio de contexto es un desperdicio puro, porque la CPU no está haciendo nada durante este período.


Intercambiando
A veces es necesario eliminar un proceso de la memoria principal (MM) y así reducir el grado de multiprogramación.

Dos razones importantes para hacer esto son: 1. Un nuevo proceso quiere comenzar su ejecución, pero actualmente el MM está “lleno”. Entonces, para crear espacio para este nuevo proceso, intercambiemos un proceso fuera de MM.
2. El número de procesos que se ejecutan en MM es muy alto, lo que resulta en una paliza.
(La paliza es un fenómeno en el que disminuye la eficiencia del sistema)

Más tarde, el proceso que se cambió se reintroduce en MM y su ejecución puede continuar.

A partir de la pregunta, creo, estás tomando una clase de SO a nivel universitario. Entonces, aquí va.

Programación preventiva:
Para entender de qué se trata, debe conocer el significado de preferencia. Preemption significa cesar las oportunidades antes de que alguien más pueda. En el contexto de la programación de procesos del sistema operativo, esto significa evitar que un proceso tome tiempo de ejecución de la CPU y tome ese tiempo usted mismo.
Más específicamente, es una técnica que permite al programador del sistema operativo detener un proceso temporalmente y asignar los recursos de la CPU a otro.
Hay otro tipo de programación no preventiva en la que el sistema operativo tiene que esperar a que termine un proceso antes de poder asignar los recursos de la CPU a otro proceso.

Cambio de contexto:
Un sistema operativo debe seguir cambiando entre varios procesos para mantener la propiedad “multiprocesamiento”. Sin embargo, antes de cambiar de un proceso a otro, es una buena idea guardar el estado y la información esencial sobre el proceso que está cambiando (llamado “contexto”) para poder volver a él más tarde cuando lo necesite. .
Esta técnica de guardar contexto y luego usarla para restaurar la operación del proceso se conoce como cambio de contexto.

Intercambio:
El intercambio es simplemente el proceso de mover datos desde la memoria principal (RAM) al disco duro o cualquier recurso de memoria alternativo, ya que no siempre se puede mantener todo en RAM (el tamaño es limitado).

Para comprender qué es la programación preventiva, debe comprender lo que no es. No es una programación cooperativa. En un sistema operativo multitarea, es posible dejar que más de un proceso se ejecute en una CPU simultáneamente. Para hacer esto claramente, los procesos deben tomar turnos en la CPU y ceder cuando el próximo proceso en línea tenga un turno. El proceso mediante el cual el sistema operativo determina quién obtiene la CPU en este momento es la programación. En la programación cooperativa, un proceso obtiene la CPU y puede ejecutarse todo el tiempo que desee. Cuando está listo para entregar la CPU, vuelve a la agrupación y el siguiente proceso en línea obtiene la CPU y así sucesivamente. En la programación preventiva, el sistema operativo puede decidir por sí mismo qué proceso obtiene la CPU y no depende de ninguna cooperación del proceso en ejecución. Puede “adelantarse” al proceso en ejecución y enviarlo de vuelta al grupo y asignar la CPU al siguiente proceso en línea.

El cambio de contexto es el mecanismo por el cual un sistema operativo puede ejecutar un proceso en ejecución, guardar su estado y ejecutar otro proceso. Lo hace guardando el “contexto” del proceso y restaurando el contexto del siguiente proceso en línea a la CPU. En otras palabras, está cambiando el contexto. El proceso eliminado de la ejecución puede cambiar su contexto a RAM o disco, pero en un sistema operativo compartido, normalmente será memoria para maximizar la velocidad de cambio de contexto.

El intercambio puede significar cosas ligeramente diferentes en diferentes contextos. Pero en todos los contextos generalmente significará tomar algo en la RAM y almacenarlo en un almacenamiento persistente. La razón es el tamaño limitado de RAM vs. disco.
La aplicación más común de intercambio probablemente sería la memoria virtual en un sistema operativo de memoria paginada. En este caso, el conjunto combinado de procesos en ejecución se puede asignar a un mapa de memoria cuyo tamaño es mayor que la memoria RAM real disponible. La forma en que funciona esta ilusión es almacenar solo un subconjunto de la memoria de proceso en la RAM física real. Cuando un proceso intenta acceder a un área de memoria que no está actualmente en la RAM, el sistema operativo encontrará una página de memoria RAM que no está actualmente en uso y la “intercambiará” con la página en el disco que ahora se necesita. En otras palabras, la página en RAM se guarda en el archivo de intercambio en el disco y la página requerida del archivo de intercambio se carga en la RAM.

Supongo que las respuestas estaban en el nivel básico. Lo que tiene en un sistema operativo normal es un sistema de interrupción multinivel (es decir, si el reactor se va a derretir, le gustaría tener tiempo suficiente para decir sus oraciones en lugar de la interrupción esperando que termine otro programa), también la mayoría de los sistemas operativos actuales Un esquema de prioridad que indica qué programa tiene mayor acceso a la CPU.

El cambio de contexto es exactamente lo que parece, el sistema operativo y la computadora cambian el entorno de un programa a otro: recuperando registros, memoria, etc. El programa que se está desconectando tiene su contexto guardado.

El intercambio es el intercambio de memoria que no se está utilizando en un caché de memoria y, si no se utiliza, se dirige a la unidad (con suerte, una unidad de estado sólido)

Los tres están bajo la programación del proceso.

El intercambio es un procedimiento para cambiar un proceso de la memoria principal a la memoria secundaria y volver a la memoria principal después de un tiempo para reanudar la ejecución.

El cambio de contexto es el proceso de restaurar el estado de un proceso para que pueda intercambiarse o apagarse en algún momento y reanudarse más tarde.

La programación preventiva permite que se ejecute un proceso de alta prioridad al interpretar los procesos que ya se están ejecutando mediante el intercambio o el cambio de contexto.

More Interesting

¿Puedo ser un buen ingeniero informático si amo las matemáticas, pero odio probar los teoremas?

¿Cuál es su mayor temor al trabajar como ingeniero en la industria VLSI?

¿Cuáles serían las ventajas de un procesador hipotético hecho con semiconductores de diamante?

¿Qué debo hacer durante el verano antes de la universidad si estoy estudiando ingeniería informática?

¿Cómo funciona el proceso de eliminación?

¿Cuáles son algunos proyectos nuevos e innovadores para un estudiante de ingeniería informática?

Siendo un INTJ inscrito en un programa de ingeniería, ¿debo ir a ingeniería eléctrica o informática?

¿La informática de 128 bits se convertirá alguna vez en la corriente principal?

¿Qué lenguajes de programación necesito aprender para ser un buen ingeniero en mecatrónica y para fabricar / desarrollar instrumentos médicos?

¿Cuáles son las similitudes y diferencias entre un organismo y una computadora?

¿Tengo una oportunidad en IIT y NIT con AIR 2200 en GATE ECE?

Soy un estudiante de pregrado en ingeniería informática en un país en desarrollo, con poca experiencia en investigación y un promedio de calificaciones de 3.4 ... ¿Qué es lo mejor que puede hacer el próximo año para garantizar un posgrado en una de las 10 mejores universidades?

¿Cómo puede alguien elegir su tema de tesis de maestría en ingeniería informática?

¿Cuál es la relación entre MySQL y Hadoop?

¿Hay alguna forma de obtener orientación para proyectos de aprendizaje automático para mi proyecto BE (ingeniería informática) en Pune?