Want to make interactive content? It’s easy in Genially!

Over 30 million people build interactive content in Genially.

Check out what others have designed:

Transcript

PROCESOS

Carreño Sanchez Luis AngelSanchez Hernandez Yurem 4IM6

Empezar

Sincronización y comunicación entre procesos.

Índice

Fundamentos de procesos y concurrencia.

Concepto de proceso.

Estados de actividad de un proceso. Primitivas de gestión de procesos.Jerarquías de procesos.

Sistemas concurrentes.

Propósitos y objetivos de la concurrencia. Cooperación y competenciaentre procesos. Especificación de la concurrencia.

Planificación de procesos.

El bloque de control del proceso. Colas de gestión de procesos. Nivelesde planificación. Hilos.

Objetivos de la planificación deprocesos.

Políticas de planificación.

FCFS.SJF. Métodos expulsivos (preemptive). Round-Robin. Métodosbasados en prioridades. Métodos multicolas.

Resumen

Los procesos en sistemas operativos son entidades fundamentales que representan la ejecución de un programa en una computadora.En resumen, los procesos son la unidad básica de ejecución en un sistema operativo, y su gestión eficiente es esencial para garantizar el funcionamiento adecuado de la computadora y la ejecución ordenada de programas.

Índice

Sincronización entre procesos.

Concepto y necesidad. Postergación indefinida e interbloqueo. Elproblema de la sección crítica. Soluciones algorítmicas y hardware.

Herramientas de programación concurrente.

Semáforos. Regiones críticas. Monitores. Problemas clásicos desincronización entre procesos.

Comunicación entre procesos.

Primitivas de comunicación. Mensajes. Taxonomía de los mecanismosde paso de mensajes.

Next

01

Fundamentos de procesos y concurrencia.

REGRESAR

  • Procesos
  • Creación de procesos
  • Planificación de procesos
  • Comunicación entre procesos
  • Sincronización y exclusión mutua
  • Concurrencia
  • Exclusión mutua
  • Terminación de procesos

Fundamentos de procesos y concurrencia.

Los fundamentos de procesos y concurrencia en sistemas operativos son esenciales para entender cómo se gestionan y ejecutan múltiples tareas de manera simultánea. Aquí tienes un resumen de los conceptos clave:

Next

02

Concepto de proceso.

REGRESAR

En el contexto de los sistemas operativos, un proceso es una instancia en ejecución de un programa de computadora. Un proceso incluye el código ejecutable del programa, junto con los recursos asociados, como memoria, archivos abiertos y otros datos necesarios para su ejecución. Es la unidad básica de ejecución en un sistema operativo y representa una tarea en curso que puede ser controlada y administrada por el sistema operativo.Cada proceso tiene su propio espacio de memoria virtual, lo que significa que se ejecuta en un entorno protegido y aislado de otros procesos. Esto proporciona independencia y seguridad, ya que un proceso no puede acceder directamente a la memoria de otros procesos sin permiso explícito.Los procesos pueden pasar por diferentes estados durante su ciclo de vida, como "listo" para ejecutarse, "en ejecución", "bloqueado" esperando algún evento (como entrada/salida), o "terminado" cuando ha completado su tarea.El sistema operativo es responsable de la creación, gestión y finalización de los procesos, asignando recursos de manera eficiente y coordinando su ejecución para garantizar un funcionamiento adecuado del sistema. Además, los sistemas operativos proporcionan mecanismos para la comunicación entre procesos y la sincronización de actividades para evitar problemas de concurrencia y garantizar la integridad de los datos.

Concepto de proceso

Next

03

Estados de actividad de un proceso. Primitivas de gestión de procesos.Jerarquías de procesos.

REGRESAR

Los estados de actividad de un proceso en un sistema operativo representan las diferentes etapas por las que puede pasar un proceso durante su ciclo de vida. Aquí tienes una descripción de los principales estados de actividad de un proceso:1. Listo (Ready)2. Ejecución (Running)3. Bloqueado (Blocked o Waiting)4. Terminado (Terminated) En cuanto a las primitivas de gestión de procesos, estas son las operaciones fundamentales proporcionadas por el sistema operativo para la creación, destrucción y control de procesos. Algunas de estas primitivas comunes incluyen:1. Creación de procesos2. Finalización de procesos3. Espera de proceso4. Sincronización de procesos En cuanto a las jerarquías de procesos, estas se refieren a la estructura de relación entre procesos dentro de un sistema. Una jerarquía común es la de un proceso padre y sus procesos hijos. Un proceso puede crear uno o más procesos secundarios, que a su vez pueden crear sus propios procesos secundarios, formando así una jerarquía de procesos. Esta estructura es comúnmente utilizada en sistemas operativos para organizar y administrar la ejecución de programas de manera eficiente.

Concepto Estados de actividad de un proceso. Primitivas de gestión de procesos.Jerarquías de procesos. proceso

Next

04

Sistemas concurrentes.

REGRESAR

Los sistemas concurrentes en el ámbito de los sistemas operativos se refieren a entornos informáticos donde múltiples tareas pueden ejecutarse simultáneamente.ConcurrenciaMultitareaProcesos y subprocesosComunicación y sincronizaciónExclusión mutuaGestión de concurrencia

Sistemas concurrentes.

Next

05

Propósitos y objetivos de la concurrencia. Cooperación y competenciaentre procesos. Especificación de la concurrencia.

REGRESAR

La concurrencia en sistemas operativos tiene varios propósitos y objetivos, que se pueden dividir en cooperación y competencia entre procesos. Aquí tienes una explicación de cada uno:Propósitos y objetivos de la concurrencia:1. Mejorar el rendimiento del sistema2. Aumentar la capacidad de respuesta3. Facilitar la modularidad y la escalabilidad4. Mejorar la utilización de recursosCooperación y competencia entre procesos:1. Cooperación entre procesos: - Los procesos pueden cooperar entre sí para lograr un objetivo común. - Esto puede implicar compartir datos, comunicarse entre sí y coordinar actividades para completar una tarea más grande. - Ejemplos incluyen la implementación de sistemas distribuidos, sistemas cliente-servidor y procesos de comunicación entre aplicaciones.2. Competencia entre procesos: - Los procesos pueden competir por recursos limitados, como la CPU o el acceso a archivos. - Esto puede dar lugar a situaciones en las que un proceso intenta obtener una ventaja sobre otro, lo que puede resultar en conflictos o problemas de concurrencia. - La exclusión mutua y los mecanismos de sincronización se utilizan para gestionar la competencia entre procesos y evitar problemas como condiciones de carrera y bloqueos.

Propósitos y objetivos de la concurrencia. Cooperación y competenciaentre procesos. Especificación de la concurrencia.

Next

06

Planificación de procesos.

REGRESAR

La planificación de procesos en sistemas operativos es el proceso mediante el cual el sistema operativo decide qué proceso se ejecutará a continuación y durante cuánto tiempo. Es una función crucial para la gestión eficiente de los recursos del sistema y para garantizar un buen rendimiento y equidad en la ejecución de programas. Aquí tienes una descripción de los aspectos clave de la planificación de procesos:Objetivos de la planificación:Maximizar la utilización de la CPU: El objetivo es mantener la CPU ocupada tanto como sea posible para evitar períodos de inactividad.Maximizar la capacidad de respuesta: Se busca garantizar que los procesos interactivos obtengan una rápida respuesta del sistema.Equidad: Todos los procesos deben recibir una justa asignación de recursos y tiempo de CPU.Eficiencia: La planificación debe realizarse de manera eficiente, sin desperdiciar recursos del sistema.Algoritmos de planificación:(Existen varios algoritmos de planificación diseñados para lograr diferentes objetivos.)Algunos algoritmos comunes incluyen:Planificación de prioridad: Asigna la CPU al proceso con la prioridad más alta.Planificación de tiempo compartido: Divide el tiempo de CPU en pequeños intervalos de tiempo (quantums) y alterna la ejecución entre procesos.Planificación de round-robin: Similar a la planificación de tiempo compartido, pero utiliza un enfoque de cola circular para seleccionar el próximo proceso a ejecutar.Planificación por lotería: Asigna probabilidades de ejecución a cada proceso y elige aleatoriamente un proceso para ejecutar en función de esas probabilidades.Contexto de cambio (context switching):Cuando se cambia de un proceso a otro, el sistema operativo debe guardar y restaurar el estado del proceso en la CPU, lo que se conoce como cambio de contexto.Los cambios de contexto pueden ser costosos en términos de rendimiento del sistema, por lo que la eficiencia de los algoritmos de planificación también depende de la minimización de estos cambios.Criterios de decisión:La planificación de procesos se basa en diferentes criterios, como la prioridad del proceso, su tiempo de ejecución restante, su historial de uso de CPU, entre otros.Estos criterios se utilizan para seleccionar el próximo proceso a ejecutar y pueden variar según el algoritmo de planificación utilizado.

Planificación de procesos.

Next

07

Estructuras y niveles de planificación.

REGRESAR

En los sistemas operativos, la planificación de procesos se organiza mediante diversas estructuras y niveles para gestionar eficientemente los recursos del sistema y cumplir con los objetivos de rendimiento y equidad. Aquí se describen las estructuras y niveles principales de planificación:1.Planificación a corto plazo:2.Planificación a medio plazo:3.Planificación a largo plazo:4.Colas de planificación:5.Planificación multinivel:6.Planificación global y local:Estas estructuras y niveles de planificación en sistemas operativos permiten gestionar los recursos del sistema de manera eficiente, asegurando que los procesos se ejecuten de manera equitativa y cumpliendo con los objetivos de rendimiento del sistema.

Estructuras y niveles de planificación.

Next

08

El bloque de control del proceso. Colas de gestión de procesos. Nivelesde planificación. Hilos.

Las colas de gestión de procesos son estructuras de datos utilizadas por el sistema operativo para organizar los procesos en diferentes estados o prioridades. Aquí hay algunos tipos comunes de colas de gestión de procesos:Cola de procesos listos: Contiene procesos que están listos para ejecutarse y esperan ser asignados a la CPU.Cola de procesos bloqueados: Almacena procesos que están temporalmente detenidos, por ejemplo, esperando la finalización de una operación de entrada/salida.Cola de procesos terminados: Contiene procesos que han completado su ejecución y están esperando que el sistema operativo libere sus recursos.Los niveles de planificación en un sistema operativo pueden ser varios, dependiendo de la complejidad del sistema y los requisitos de rendimiento. Algunos niveles comunes de planificación incluyen:Planificación a corto plazo: Decide qué proceso en la cola de procesos listos se ejecutará a continuación. Se centra en la asignación de la CPU y se realiza con frecuencia.Planificación a medio plazo: Decide qué procesos deben ser suspendidos o reanudados, controlando la carga del sistema y la multiprogramación.Planificación a largo plazo: Decide cuántos procesos pueden ser admitidos en el sistema, equilibrando la carga del sistema con la capacidad de procesamiento disponible.Los hilos (threads) son unidades de ejecución más pequeñas dentro de un proceso. Comparten el mismo espacio de memoria y otros recursos del proceso padre, pero tienen su propio contador de programa y pila de ejecución. Los hilos permiten una mayor concurrencia y paralelismo dentro de un proceso, lo que puede mejorar el rendimiento y la capacidad de respuesta de las aplicaciones. La planificación de hilos es responsabilidad del sistema operativo o de la biblioteca de hilos utilizada, y puede implicar diferentes algoritmos de planificación dependiendo de los objetivos y la implementación específica.

REGRESAR

El Bloque de Control de Proceso (BCP), también conocido como Bloque de Control de Tareas (TCB, por sus siglas en inglés Task Control Block), es una estructura de datos utilizada por el sistema operativo para mantener la información necesaria sobre cada proceso en ejecución. Aquí tienes una descripción de los elementos típicos que se encuentran en un BCP:Identificación del proceso: Un identificador único para el proceso, como un número de identificación de proceso (PID).Estado del proceso: Indica el estado actual del proceso, como listo, en ejecución, bloqueado, etc.Registros del procesador: Almacena los valores de los registros del procesador cuando el proceso fue suspendido para que pueda ser reanudado desde el mismo punto.Contador de programa (PC): Guarda la dirección de la próxima instrucción que debe ejecutar el proceso.Información de asignación de recursos: Incluye información sobre los recursos asignados al proceso, como memoria, archivos abiertos, permisos, etc.Datos de planificación: Contiene información utilizada por el planificador de procesos, como la prioridad del proceso, su tiempo de ejecución restante, etc.

El bloque de control del proceso. Colas de gestión de procesos. Nivelesde planificación. Hilos.

Next

09

Objetivos de la planificación deprocesos.

REGRESAR

Los objetivos de la planificación de procesos en sistemas operativos son múltiples y están diseñados para optimizar el rendimiento del sistema, garantizar una distribución equitativa de recursos y mejorar la experiencia del usuario. Aquí están los principales objetivos:Maximizar la utilización de la CPU: La planificación de procesos busca mantener la CPU ocupada tanto como sea posible para evitar períodos de inactividad. Esto se logra programando procesos para que se ejecuten cuando haya recursos disponibles y minimizando el tiempo de espera.Maximizar la capacidad de respuesta: Un objetivo clave es garantizar que los procesos interactivos obtengan una rápida respuesta del sistema. Esto implica priorizar la ejecución de procesos que interactúan directamente con el usuario, como las aplicaciones de interfaz gráfica de usuario (GUI) o las operaciones de entrada/salida.Equidad y justicia: La planificación de procesos busca garantizar que todos los procesos reciban una asignación justa de recursos y tiempo de CPU. Esto implica evitar situaciones en las que un proceso acapare los recursos de la CPU y bloquee la ejecución de otros procesos.Eficiencia en el uso de recursos: La planificación de procesos debe administrar eficientemente los recursos del sistema, incluida la CPU, la memoria y los dispositivos de entrada/salida. Esto implica evitar la sobreutilización o subutilización de recursos, así como minimizar los costos asociados con el cambio de contexto y la gestión de colas.Minimizar los tiempos de espera y latencia: La planificación de procesos busca reducir los tiempos de espera y la latencia, garantizando que los procesos se ejecuten de manera oportuna y sin demoras excesivas. Esto mejora la eficiencia del sistema y la experiencia del usuario.Optimizar los criterios de rendimiento específicos: Además de los objetivos generales mencionados anteriormente, la planificación de procesos puede optimizarse para cumplir con criterios de rendimiento específicos, como el tiempo de respuesta promedio, la utilización de la CPU, la latencia de entrada/salida, entre otros, dependiendo de las necesidades y prioridades del sistema operativo y sus aplicaciones.

Objetivos de la planificación deprocesos.

Next

10

Modelo de comportamiento de un proceso. Criterios de evaluación de las politicas

Modelo de comportamiento de un proceso:El modelo de comportamiento de un proceso incluye los siguientes aspectos:Estado del proceso: Un proceso puede estar en varios estados durante su ciclo de vida, como listo, ejecución, bloqueado o terminado. El modelo describe cómo un proceso transita entre estos estados y cómo interactúa con el sistema en cada estado.Interacciones del proceso con el sistema: Describe las acciones que puede realizar un proceso, como solicitar recursos del sistema, realizar operaciones de entrada/salida, comunicarse con otros procesos y responder a interrupciones del sistema.Requisitos de recursos: Un proceso puede tener diferentes requisitos de recursos, como memoria, tiempo de CPU, dispositivos de entrada/salida, etc. El modelo describe cómo un proceso utiliza y gestiona estos recursos durante su ejecución.Patrones de ejecución: Los procesos pueden tener diferentes patrones de ejecución, como ráfagas de CPU cortas o largas, períodos de inactividad intermitentes o uso intensivo de recursos. El modelo describe estos patrones y su impacto en el sistema.

REGRESAR

Criterios de evaluación de las políticas de planificación:Los criterios de evaluación se utilizan para medir y comparar las políticas de planificación de procesos. Algunos de los criterios comunes incluyen:Utilización de la CPU: Mide el grado en que la CPU se utiliza eficazmente. Una alta utilización de la CPU indica una buena planificación de procesos.Tiempo de respuesta promedio: Mide el tiempo promedio que tarda un proceso en obtener una respuesta del sistema. Una política de planificación que minimiza el tiempo de respuesta promedio se considera eficiente.Tiempo de espera promedio: Mide el tiempo promedio que un proceso pasa en la cola de espera antes de ser ejecutado. Una política de planificación que minimiza el tiempo de espera promedio puede mejorar la eficiencia del sistema.Equidad: Evalúa la justicia en la asignación de recursos y tiempo de CPU entre los procesos. Una política de planificación que garantiza una distribución equitativa de recursos se considera más equitativa.Latencia de entrada/salida: Mide el tiempo que tarda un proceso en completar una operación de entrada/salida. Una política de planificación que minimiza la latencia de entrada/salida puede mejorar el rendimiento del sistema.Overhead de planificación: Mide el costo asociado con el cambio de contexto y la gestión de colas. Una política de planificación con bajo overhead de planificación es más eficiente.

Modelo de comportamiento de un proceso. Criterios de evaluación de laspolíticas.

Next

11

Políticas de planificación.

Cada política de planificación tiene sus propias ventajas y desventajas, y la elección de la política adecuada depende de los requisitos específicos del sistema operativo y las aplicaciones que se ejecutan en él. La eficacia de una política de planificación se evalúa mediante criterios como la utilización de la CPU, el tiempo de respuesta promedio, la equidad en la asignación de recursos y otros factores relevantes.

1.Planificación de prioridad:2.Planificación de tiempo compartido:3.Planificación de round-robin:4.Planificación de lotería:5.Planificación basada en políticas de tiempo real:6.Planificación basada en colas multinivel:

Las políticas de planificación en sistemas operativos son conjuntos de reglas y algoritmos que determinan cómo se asigna el tiempo de la CPU a los procesos en ejecución. Estas políticas son esenciales para maximizar la eficiencia y la equidad en la gestión de recursos del sistema. Aquí tienes una descripción de algunas políticas de planificación comunes:

REGRESAR

Políticas de planificación.

Next

12

FCFS.SJF. Métodos expulsivos (preemptive). Round-Robin. Métodosbasados en prioridades. Métodos multicolas.

FCFS (First-Come, First-Served): También conocido como "First-In, First-Out" (FIFO), este es el algoritmo de planificación de CPU más simple. Los procesos se ejecutan en el orden en que llegan a la cola de listos. No se considera la duración de los procesos, lo que puede llevar a un fenómeno conocido como "inversión de prioridad" en situaciones donde procesos más cortos quedan atrapados detrás de procesos más largos.SJF (Shortest Job First): Este algoritmo elige el proceso más corto de la cola de listos y lo ejecuta primero. Puede ser no expulsivo (se ejecuta hasta la finalización) o expulsivo (se interrumpe si llega un proceso más corto). El SJF es óptimo en términos de tiempo de espera promedio, pero requiere conocimiento previo de la duración de cada proceso, lo que a menudo no es posible en sistemas prácticos.Métodos expulsivos (preemptive): Estos métodos permiten que un proceso en ejecución sea interrumpido o "expulsado" para dar paso a otro proceso con mayor prioridad o para cumplir con ciertas condiciones de planificación. Ejemplos incluyen el SJF preemptive (también conocido como Shortest Remaining Time First - SRTF) y el Round-Robin.Round-Robin: Es un algoritmo de planificación de CPU expulsivo que asigna un quantum de tiempo de CPU fijo a cada proceso en la cola de listos en un ciclo circular. Si un proceso no ha completado su ejecución cuando se agota su quantum de tiempo, se suspende y se coloca al final de la cola. El Round-Robin es útil para garantizar un trato justo para todos los procesos, pero puede llevar a un alto tiempo de respuesta para procesos interactivos.Métodos basados en prioridades: Estos métodos asignan prioridades a los procesos según ciertos criterios, como la importancia del proceso, el tiempo de espera, etc. Los procesos con mayor prioridad se ejecutan antes que los de menor prioridad. Pueden ser expulsivos o no expulsivos, dependiendo de si permiten o no la interrupción de un proceso en curso.Métodos multicolas: En este enfoque, se utilizan múltiples colas de prioridad, cada una con su propio algoritmo de planificación. Los procesos se colocan en la cola adecuada según su prioridad y se seleccionan para ejecutarse según el algoritmo de la cola correspondiente. Los procesos pueden moverse entre colas según ciertas políticas de promoción o degradación.

Los términos mencionados se refieren a diferentes algoritmos de planificación de CPU que se utilizan en sistemas operativos para administrar los procesos en un sistema informático. Aquí hay una descripción más detallada de cada uno, desde la perspectiva de los sistemas operativos:

REGRESAR

FCFS.SJF. Métodos expulsivos (preemptive). Round-Robin. Métodos basados en prioridades. Métodos multicolas.

Next

13

Sincronización y comunicación entre procesos.

Sincronización entre procesos:La sincronización entre procesos se refiere a la coordinación de la ejecución de múltiples procesos para evitar situaciones de carrera y garantizar que se realicen las operaciones de manera ordenada y predecible. Algunos mecanismos comunes de sincronización entre procesos incluyen:Semáforos: Un semáforo es un objeto que actúa como un contador y se utiliza para controlar el acceso a recursos compartidos entre procesos. Los semáforos pueden ser binarios (con valores 0 y 1) o contadores (con valores enteros). Los procesos pueden esperar (espera) o señalar (libera) un semáforo, lo que permite la sincronización de su ejecución.Mutex (Mutual Exclusion): Un mutex es un mecanismo de sincronización que permite que solo un proceso acceda a un recurso compartido a la vez. Cuando un proceso adquiere el mutex, ningún otro proceso puede acceder al recurso hasta que el proceso que lo posee lo libere.Monitores: Un monitor es una estructura de datos que encapsula variables y procedimientos relacionados con el acceso a recursos compartidos. Los monitores permiten la sincronización de procesos mediante la exclusión mutua y la espera condicional, lo que simplifica la implementación de la sincronización.Variables de condición: Las variables de condición son objetos que permiten a los procesos esperar hasta que se cumpla una cierta condición antes de continuar su ejecución. Se utilizan en conjunción con mutexes o monitores para proporcionar sincronización.Barreras: Una barrera es un punto de sincronización que bloquea la ejecución de los procesos hasta que todos los procesos lleguen a ese punto. Una vez que todos los procesos han alcanzado la barrera, se liberan y pueden continuar su ejecución.Comunicación entre procesos:La comunicación entre procesos implica el intercambio de datos, información o señales entre procesos en un sistema operativo. Algunos mecanismos comunes de comunicación entre procesos incluyen:Pipes (Tubos): Un pipe es un mecanismo de comunicación que permite la transferencia de datos entre dos procesos. Uno de los procesos escribe en el extremo del pipe, mientras que el otro proceso lee desde el otro extremo. Los pipes pueden ser unidireccionales (solo lectura o solo escritura) o bidireccionales.Colas de mensajes: Las colas de mensajes son estructuras de datos que permiten que los procesos envíen y reciban mensajes entre sí de forma asíncrona. Los mensajes se colocan en una cola por el proceso emisor y se retiran por el proceso receptor.Memoria compartida: La memoria compartida es un método de comunicación que permite que varios procesos accedan a la misma región de memoria compartida. Los procesos pueden leer y escribir datos en esta región compartida, lo que facilita la comunicación eficiente entre ellos.Señales y eventos: Las señales y los eventos son mecanismos que permiten a los procesos notificar eventos o condiciones específicas a otros procesos. Los procesos pueden registrar manejadores de señales o eventos para responder a estas notificaciones.Sockets: Los sockets son puntos finales de comunicación que permiten la comunicación entre procesos en diferentes nodos de una red. Se utilizan en comunicaciones de red tanto en sistemas operativos locales como distribuidos.

En los sistemas operativos, la sincronización y la comunicación entre procesos son conceptos fundamentales para garantizar un funcionamiento eficiente y ordenado del sistema. Aquí hay una descripción de estos conceptos:

REGRESAR

Sincronización y comunicación entre procesos.

Next

14

Sincronización entre procesos.

Variables de condición:Las variables de condición se utilizan junto con mutexes o monitores para permitir que los procesos esperen hasta que se cumpla una cierta condición antes de continuar su ejecución.Ayudan a evitar la espera activa (busy waiting) y permiten un uso más eficiente de los recursos del sistema.Barreras:Las barreras son puntos de sincronización que bloquean la ejecución de los procesos hasta que todos los procesos hayan alcanzado la barrera.Se utilizan para coordinar la ejecución de procesos en paralelo, por ejemplo, en algoritmos de procesamiento por lotes.Estas técnicas de sincronización son fundamentales para evitar condiciones de carrera, inanición y bloqueos en sistemas operativos multitarea y multiproceso. Al garantizar que los procesos cooperen y compartan recursos de manera segura, se mejora la eficiencia y la estabilidad del sistema en su conjunto.

Semáforos:Los semáforos son variables especiales que se utilizan para controlar el acceso a recursos compartidos por varios procesos.Pueden ser binarios (semáforos de conteo 0 y 1) o contar semáforos (pueden tener un valor entero).Los procesos pueden realizar operaciones P (espera) y V (señal) en semáforos para adquirir y liberar recursos, respectivamente.Mutex (Mutual Exclusion): Los mutexes son objetos que se utilizan para asegurar la exclusión mutua, lo que significa que solo un proceso puede acceder a un recurso compartido a la vez.Un proceso adquiere un mutex antes de acceder al recurso compartido y lo libera cuando ha terminado de usar el recurso.Monitores:Los monitores son estructuras de datos que encapsulan variables y procedimientos relacionados con un recurso compartido.Proporcionan mecanismos para la exclusión mutua y la sincronización condicional, lo que simplifica la implementación de la sincronización entre procesos.

En sistemas operativos, la sincronización entre procesos es esencial para garantizar que los procesos compartan recursos de manera segura y coordinada. Aquí hay algunas técnicas comunes de sincronización entre procesos:

REGRESAR

Sincronización y comunicación entre procesos.

Next

15

Concepto y necesidad. Postergación indefinida e interbloqueo. Elproblema de la sección crítica. Soluciones algorítmicas y hardware.

El Problema de la Sección Crítica:La sección crítica es una parte del código en la que un proceso accede a recursos compartidos y donde pueden ocurrir condiciones de carrera si múltiples procesos intentan acceder a estos recursos simultáneamente. El problema radica en garantizar que solo un proceso pueda ejecutar la sección crítica a la vez para evitar inconsistencias en los datos.Soluciones Algorítmicas y de Hardware:Algorítmicas:Semáforos: Permite a los procesos esperar o señalizar para adquirir y liberar recursos compartidos de forma segura.Mutex (Mutual Exclusion): Garantiza la exclusión mutua, permitiendo que solo un proceso acceda a un recurso compartido a la vez.Monitores: Abstracción de alto nivel que combina mutexes, variables de condición y datos compartidos para facilitar la sincronización.Barreras: Puntos de sincronización donde los procesos esperan hasta que todos han alcanzado la barrera antes de continuar.Hardware:Instrucciones Atómicas: Instrucciones de hardware que garantizan la ejecución atómica de operaciones, como incrementar un contador.Instrucciones de Bloqueo: Instrucciones especiales que permiten a un proceso bloquear temporalmente el acceso a un recurso para garantizar la exclusión mutua.Estas soluciones algorítmicas y de hardware abordan diferentes aspectos de la sincronización y ayudan a prevenir problemas como la postergación indefinida, el interbloqueo y los problemas de la sección crítica en sistemas operativos. Su elección depende de los requisitos y características específicas del sistema en cuestión.

Concepto y Necesidad:La sincronización entre procesos es fundamental en sistemas operativos multitarea y multiproceso donde varios procesos compiten por recursos compartidos. La sincronización garantiza que los procesos se ejecuten de manera ordenada y coordinada, evitando problemas como condiciones de carrera, inanición, bloqueo y corrupción de datos.Postergación Indefinida e Interbloqueo:Postergación Indefinida: Ocurre cuando un proceso espera indefinidamente para adquirir un recurso que está siendo retenido por otro proceso. Esto puede ocurrir si no se gestionan adecuadamente los recursos compartidos.Interbloqueo (Deadlock): Es una situación en la que dos o más procesos están esperando indefinidamente por recursos que se están reteniendo entre sí, lo que resulta en una parálisis mutua. Ningún proceso puede avanzar porque está esperando un recurso que está siendo retenido por otro proceso en el ciclo de espera.

REGRESAR

Concepto y necesidad. Postergación indefinida e interbloqueo. El problema de la sección crítica. Soluciones algorítmicas y hardware.

Next

16

Herramientas de programación concurrente.

Monitores:Los monitores son estructuras de datos que encapsulan variables compartidas y procedimientos relacionados, permitiendo la sincronización y el acceso seguro a recursos compartidos.Proporcionan una abstracción de más alto nivel que semáforos y mutexes, simplificando la programación concurrente.Ejemplos incluyen los monitores en Java y los monitores de POSIX en sistemas UNIX.Barreras:Las barreras son puntos de sincronización que bloquean la ejecución de hilos hasta que todos los hilos han alcanzado la barrera.Se utilizan para coordinar la ejecución simultánea de múltiples hilos en pasos específicos de un algoritmo o proceso.Ejemplos incluyen la clase java.util.concurrent.CyclicBarrier en Java.Librerías y Frameworks de Programación Concurrente:Existen librerías y frameworks que proporcionan abstracciones de alto nivel para la programación concurrente, facilitando el desarrollo de aplicaciones concurrentes y paralelas.Ejemplos incluyen la Java Concurrency API, asyncio en Python, y librerías de actores como Akka en Scala.Instrumentación para Depuración y Análisis:Herramientas de depuración y análisis especializadas son cruciales para identificar y solucionar problemas en programas concurrentes.Incluyen herramientas de seguimiento de hilos, análisis de bloqueos y herramientas de visualización de ejecución concurrente.Estas herramientas son esenciales para desarrollar software concurrente que pueda aprovechar eficientemente los recursos y realizar tareas simultáneamente en sistemas operativos multitarea y multiproceso. La elección de la herramienta adecuada depende de los requisitos específicos del proyecto y las características del sistema operativo objetivo.

Las herramientas de programación concurrente son fundamentales para desarrollar software que pueda aprovechar eficientemente los recursos y ejecutar tareas simultáneamente. Aquí hay algunas herramientas comunes utilizadas en sistemas operativos para la programación concurrente:API de Hilos (Threads):Las API de hilos permiten a los programadores crear y controlar múltiples hilos de ejecución dentro de un proceso.Permiten que múltiples tareas se ejecuten de manera concurrente en un solo proceso.Ejemplos incluyen POSIX Threads (pthread) en sistemas UNIX y la biblioteca de hilos estándar de C++11 en C++.Semáforos y Mutexes:Los semáforos y mutexes son mecanismos de sincronización que evitan que múltiples hilos accedan simultáneamente a recursos compartidos.Los semáforos controlan el acceso a recursos mediante señales y bloqueos, mientras que los mutexes garantizan la exclusión mutua.Se utilizan para prevenir condiciones de carrera y garantizar la consistencia de los datos compartidos entre hilos.

REGRESAR

Herramientas de programación concurrente.

Next

17

Semáforos. Regiones críticas. Monitores. Problemas clásicos desincronización entre procesos.

Monitores:Los monitores son una abstracción de alto nivel que encapsula variables de estado y procedimientos relacionados en una estructura de datos.Los monitores proporcionan un mecanismo de sincronización más seguro y fácil de usar que los semáforos o las regiones críticas.Los monitores garantizan la exclusión mutua y la sincronización condicional.Problemas Clásicos de Sincronización entre Procesos:Problema del Productor-Consumidor:Consiste en dos tipos de procesos: productores, que producen datos, y consumidores, que consumen esos datos.Los productores deben esperar si el búfer está lleno y los consumidores deben esperar si el búfer está vacío.Problema del Lector-Escritor:Consiste en procesos lectores que pueden leer datos compartidos y procesos escritores que pueden escribir en los datos compartidos.Se deben permitir múltiples lectores simultáneos, pero solo un escritor a la vez (exclusión mutua entre escritores).Problema del Filósofo Hambriento:Consiste en un conjunto de filósofos que pasan su tiempo pensando y comiendo.Cada filósofo necesita dos tenedores para comer, pero solo hay un tenedor entre cada par de filósofos adyacentes.Si todos los filósofos toman el tenedor izquierdo al mismo tiempo, se produce un interbloqueo (deadlock).Problema del Barbero Dormilón:Consiste en un barbero que corta el pelo y varios clientes que esperan ser atendidos.Si no hay clientes, el barbero se duerme. Si llega un cliente, debe despertar al barbero.El barbero debe esperar si no hay clientes.Estos problemas ilustran desafíos comunes en la programación concurrente y la necesidad de herramientas de sincronización como semáforos, regiones críticas y monitores para resolverlos de manera efectiva y segura.

Los semáforos, las regiones críticas y los monitores son herramientas de programación concurrente utilizadas en sistemas operativos para sincronizar el acceso a recursos compartidos entre múltiples procesos o hilos. Aquí hay una explicación de cada uno y algunos problemas clásicos de sincronización entre procesos:Semáforos:Los semáforos son una herramienta de sincronización que consiste en un entero no negativo y dos operaciones atómicas: wait (también conocido como P o down) y signal (también conocido como V o up).Los semáforos se utilizan para controlar el acceso a recursos compartidos.Un semáforo puede ser binario (0 o 1) o contar (puede tener un valor entero).Los problemas de sincronización se pueden resolver utilizando semáforos.Regiones Críticas:Una región crítica es una sección de código donde un proceso accede a recursos compartidos que pueden ser corrompidos si otros procesos acceden a ellos simultáneamente.Para evitar condiciones de carrera, solo se permite que un proceso acceda a la región crítica a la vez.

REGRESAR

Semáforos. Regiones críticas. Monitores. Problemas clásicos de sincronización entre procesos

Next

18

Comunicación entre procesos.

Sockets:Los sockets son puntos finales de comunicación que permiten la comunicación entre procesos en diferentes nodos de una red.Se utilizan para la comunicación en redes tanto en sistemas operativos locales como distribuidos.Señales y Eventos:Las señales y los eventos son mecanismos que permiten a los procesos notificar eventos o condiciones específicas a otros procesos.Los procesos pueden registrar manejadores de señales o eventos para responder a estas notificaciones.Fifos (Tubos con nombre):Los Fifos (tubos con nombre) son tubos que están conectados a un archivo en el sistema de archivos y permiten la comunicación entre procesos no relacionados.Son similares a los pipes anónimos, pero tienen un nombre en el sistema de archivos que puede ser accedido por múltiples procesos.Estos mecanismos de comunicación entre procesos son esenciales para facilitar la cooperación y la coordinación entre procesos en sistemas operativos multitarea y multiproceso. La elección del mecanismo adecuado depende de los requisitos específicos de comunicación y del entorno de ejecución del sistema operativo.

La comunicación entre procesos es un aspecto crucial en los sistemas operativos que permite que los procesos intercambien información, compartan recursos y coordinen sus actividades. Hay varios mecanismos utilizados para la comunicación entre procesos, algunos de los cuales incluyen:Pipes (Tubos):Los pipes son un mecanismo simple y eficiente para la comunicación entre procesos. Se utilizan para transmitir datos de un proceso a otro de manera unidireccional.Hay dos tipos de pipes: los pipes anónimos, que se utilizan para la comunicación entre procesos relacionados, y los pipes con nombre, que permiten la comunicación entre procesos no relacionados que comparten un sistema de archivos común.Colas de Mensajes:Las colas de mensajes son estructuras de datos que permiten que los procesos envíen y reciban mensajes entre sí de manera asíncrona.Cada cola de mensajes tiene un identificador único y puede ser utilizada por múltiples procesos para comunicarse entre sí.Memoria Compartida:La memoria compartida es un mecanismo de comunicación que permite que múltiples procesos accedan a una región de memoria compartida.Los procesos pueden leer y escribir en esta región compartida, lo que facilita la comunicación rápida y eficiente entre ellos.

REGRESAR

Comunicación entre procesos.

Next

19

Primitivas de comunicación. Mensajes. Taxonomía de los mecanismosde paso de mensajes.

Taxonomía de Mecanismos de Paso de Mensajes:Los mecanismos de paso de mensajes se pueden clasificar en varias categorías:Comunicación Directa:En la comunicación directa, los procesos se comunican entre sí directamente sin la intervención de un intermediario.Los procesos deben conocer la identidad del proceso al que desean enviar un mensaje.Ejemplos de mecanismos de comunicación directa incluyen pipes (tubos), sockets y llamadas de procedimientos remotos (RPC, por sus siglas en inglés).Comunicación Indirecta:En la comunicación indirecta, los procesos se comunican a través de un intermediario, como un objeto de comunicación o un sistema de paso de mensajes del sistema operativo.Los procesos no necesitan conocer la identidad específica del proceso destino, sino que interactúan con un recurso compartido que gestiona la comunicación.Ejemplos de mecanismos de comunicación indirecta incluyen colas de mensajes, semáforos, memoria compartida y monitores.Comunicación Síncrona:En la comunicación síncrona, el emisor y el receptor deben estar sincronizados en el tiempo.El emisor envía el mensaje y espera hasta que el receptor lo recibe y responde antes de continuar.Ejemplos de mecanismos de comunicación síncrona incluyen pipes (tubos) y llamadas de procedimientos remotos síncronas.Comunicación Asíncrona:En la comunicación asíncrona, el emisor envía el mensaje y continúa su ejecución sin esperar una respuesta inmediata del receptor.El receptor puede recibir el mensaje en cualquier momento y responder en un momento posterior.Ejemplos de mecanismos de comunicación asíncrona incluyen colas de mensajes y sockets.Estas categorías proporcionan una estructura útil para comprender los diferentes enfoques utilizados en los sistemas operativos para facilitar la comunicación entre procesos a través de mensajes. La elección del mecanismo adecuado depende de los requisitos específicos de la aplicación y del entorno de ejecución del sistema operativo.

En sistemas operativos, las primitivas de comunicación permiten que los procesos intercambien información entre sí. Una forma común de implementar la comunicación entre procesos es a través de mensajes. Aquí hay una taxonomía de los mecanismos de paso de mensajes:Primitivas de Comunicación:Mensajes:Los mensajes son bloques de datos estructurados que contienen información que los procesos desean compartir entre sí.Los mensajes pueden contener datos simples como enteros o cadenas de caracteres, así como estructuras de datos más complejas como registros o arreglos.La comunicación a través de mensajes puede ser síncrona o asíncrona, dependiendo de si los procesos esperan o no a que se entregue el mensaje.

REGRESAR

Primitivas de comunicación. Mensajes. Taxonomía de los mecanismosde paso de mensajes.

Planificación de lotería:Cada proceso recibe un número de lotería y la CPU se asigna aleatoriamente a un proceso según su número de lotería.Cuanto mayor sea el número de lotería de un proceso, mayor será su probabilidad de ser seleccionado para ejecución.Planificación basada en políticas de tiempo real:Diseñada para sistemas donde el cumplimiento de los plazos es crítico.Los procesos se clasifican en función de sus restricciones temporales y se les asigna prioridad en consecuencia para garantizar que los plazos se cumplan.Planificación basada en colas multinivel:Organiza los procesos en varias colas de prioridad.Los procesos con mayor prioridad se ejecutan primero, pero si no hay procesos en la cola de mayor prioridad, se busca en la siguiente cola de prioridad inferior.

Planificación de prioridad:Cada proceso se asigna una prioridad y la CPU se asigna al proceso con la prioridad más alta en cada momento.Puede ser estática (prioridades fijas asignadas por el sistema) o dinámica (prioridades que cambian en función de diversos factores, como el tiempo de ejecución del proceso).Planificación de tiempo compartido:Divide el tiempo de CPU en pequeños intervalos de tiempo llamados "quantums".Cada proceso recibe una parte de tiempo de CPU y, cuando se agota su quantum, se cambia a otro proceso.Se basa en el principio de que todos los procesos tienen derecho a una parte justa de los recursos de la CPU.Planificación de round-robin:Es una variante de la planificación de tiempo compartido donde los procesos se colocan en una cola circular.Cada proceso se ejecuta por un quantum de tiempo y luego se mueve al final de la cola, permitiendo que los procesos compartan la CPU de manera equitativa.

Sincronización y exclusión mutua:Se refiere a garantizar que los procesos accedan a recursos compartidos de manera segura y sincronizada.Evita condiciones de carrera y otros problemas de concurrencia.Concurrencia:Implica la ejecución simultánea de múltiples procesos.Requiere la gestión adecuada de la concurrencia para evitar problemas como la inanición, la inseguridad y los bloqueos.Exclusión mutua:Se asegura de que solo un proceso pueda acceder a un recurso compartido en un momento dado.Evita la corrupción de datos y otros problemas.Terminación de procesos:Los procesos pueden terminar voluntaria o involuntariamente.El sistema operativo limpia los recursos asociados con un proceso terminado.

Procesos:Son instancias en ejecución de un programa.Incluyen código ejecutable, datos, contexto de ejecución y recursos asociados.Pueden tener diferentes estados, como ejecución, listo, bloqueado o terminado.Creación de procesos:Los procesos pueden ser creados por el sistema operativo o por otros procesos.Un proceso padre puede crear procesos secundarios o "hijos".Planificación de procesos:Es el proceso de decidir qué proceso se ejecuta a continuación y durante cuánto tiempo.Utiliza algoritmos de planificación como prioridad, tiempo compartido o round-robin.Comunicación entre procesos:Los procesos pueden comunicarse mediante mecanismos como tuberías, señales, memoria compartida o mensajes.Facilita la cooperación y coordinación entre procesos.

Cada política de planificación tiene sus propias ventajas y desventajas, y la elección de la política adecuada depende de los requisitos específicos del sistema operativo y las aplicaciones que se ejecutan en él. La eficacia de una política de planificación se evalúa mediante criterios como la utilización de la CPU, el tiempo de respuesta promedio, la equidad en la asignación de recursos y otros factores relevantes.

Planificación de lotería:Cada proceso recibe un número de lotería y la CPU se asigna aleatoriamente a un proceso según su número de lotería.Cuanto mayor sea el número de lotería de un proceso, mayor será su probabilidad de ser seleccionado para ejecución.Planificación basada en políticas de tiempo real:Diseñada para sistemas donde el cumplimiento de los plazos es crítico.Los procesos se clasifican en función de sus restricciones temporales y se les asigna prioridad en consecuencia para garantizar que los plazos se cumplan.Planificación basada en colas multinivel:Organiza los procesos en varias colas de prioridad.Los procesos con mayor prioridad se ejecutan primero, pero si no hay procesos en la cola de mayor prioridad, se busca en la siguiente cola de prioridad inferior.

Planificación de prioridad:Cada proceso se asigna una prioridad y la CPU se asigna al proceso con la prioridad más alta en cada momento.Puede ser estática (prioridades fijas asignadas por el sistema) o dinámica (prioridades que cambian en función de diversos factores, como el tiempo de ejecución del proceso).Planificación de tiempo compartido:Divide el tiempo de CPU en pequeños intervalos de tiempo llamados "quantums".Cada proceso recibe una parte de tiempo de CPU y, cuando se agota su quantum, se cambia a otro proceso.Se basa en el principio de que todos los procesos tienen derecho a una parte justa de los recursos de la CPU.Planificación de round-robin:Es una variante de la planificación de tiempo compartido donde los procesos se colocan en una cola circular.Cada proceso se ejecuta por un quantum de tiempo y luego se mueve al final de la cola, permitiendo que los procesos compartan la CPU de manera equitativa.

Planificación a corto plazo: También conocida como planificación de CPU. Se encarga de seleccionar qué proceso de la cola de procesos listos será ejecutado a continuación. Su objetivo principal es optimizar la utilización de la CPU y minimizar el tiempo de respuesta. Esta planificación se realiza con frecuencia y puede cambiar rápidamente según las condiciones del sistema. Planificación a medio plazo: Interviene entre la planificación a corto y largo plazo. Se encarga de decidir qué procesos deben ser suspendidos (colocados en la memoria secundaria) o reanudados (colocados en la memoria principal). Ayuda a controlar la multiprogramación y garantizar que haya suficientes procesos en memoria para mantener ocupada la CPU. Planificación a largo plazo: También conocida como planificación de admisión o de carga. Se encarga de decidir cuántos procesos pueden ser admitidos en el sistema. Su objetivo es garantizar un equilibrio entre la carga del sistema y la capacidad de procesamiento disponible. Esta planificación no se realiza con tanta frecuencia como la planificación a corto plazo. Colas de planificación: En cada nivel de planificación, los procesos se organizan en diferentes colas según ciertos criterios, como la prioridad, el tiempo de llegada, etc. Por ejemplo, en la planificación a corto plazo, puede haber colas de prioridad, colas de retroalimentación (utilizadas en algoritmos de planificación de round-robin), entre otras. Planificación multinivel: Consiste en utilizar múltiples colas de planificación y niveles de planificación para gestionar procesos de manera más eficiente. Los procesos se mueven entre las colas y los niveles de acuerdo con su estado y sus requisitos de ejecución. Planificación global y local: La planificación global considera todos los procesos del sistema operativo para tomar decisiones de planificación. La planificación local, por otro lado, se enfoca en un subconjunto de procesos, como los procesos de un solo usuario o los procesos asociados con una aplicación específica.

Planificación de lotería:Cada proceso recibe un número de lotería y la CPU se asigna aleatoriamente a un proceso según su número de lotería.Cuanto mayor sea el número de lotería de un proceso, mayor será su probabilidad de ser seleccionado para ejecución.Planificación basada en políticas de tiempo real:Diseñada para sistemas donde el cumplimiento de los plazos es crítico.Los procesos se clasifican en función de sus restricciones temporales y se les asigna prioridad en consecuencia para garantizar que los plazos se cumplan.Planificación basada en colas multinivel:Organiza los procesos en varias colas de prioridad.Los procesos con mayor prioridad se ejecutan primero, pero si no hay procesos en la cola de mayor prioridad, se busca en la siguiente cola de prioridad inferior.

Planificación de prioridad:Cada proceso se asigna una prioridad y la CPU se asigna al proceso con la prioridad más alta en cada momento.Puede ser estática (prioridades fijas asignadas por el sistema) o dinámica (prioridades que cambian en función de diversos factores, como el tiempo de ejecución del proceso).Planificación de tiempo compartido:Divide el tiempo de CPU en pequeños intervalos de tiempo llamados "quantums".Cada proceso recibe una parte de tiempo de CPU y, cuando se agota su quantum, se cambia a otro proceso.Se basa en el principio de que todos los procesos tienen derecho a una parte justa de los recursos de la CPU.Planificación de round-robin:Es una variante de la planificación de tiempo compartido donde los procesos se colocan en una cola circular.Cada proceso se ejecuta por un quantum de tiempo y luego se mueve al final de la cola, permitiendo que los procesos compartan la CPU de manera equitativa.

Los sistemas concurrentes en el ámbito de los sistemas operativos se refieren a entornos informáticos donde múltiples tareas pueden ejecutarse simultáneamente. Concurrencia: La concurrencia se refiere a la capacidad de un sistema para ejecutar múltiples tareas en un período de tiempo solapado.Permite que diferentes partes del sistema operativo o de las aplicaciones se ejecuten de manera independiente y en paralelo.Multitarea:La multitarea es una forma de concurrencia donde múltiples tareas se ejecutan aparentemente al mismo tiempo. El sistema operativo administra la asignación de recursos de manera que varios procesos puedan ejecutarse de manera eficiente y compartir los recursos del sistema, como la CPU y la memoria.Procesos y subprocesos:Los sistemas concurrentes manejan múltiples procesos y subprocesos que pueden ejecutarse en paralelo. Los procesos son instancias en ejecución de programas, mientras que los subprocesos son unidades de ejecución más pequeñas dentro de un proceso.Comunicación y sincronización:Los sistemas concurrentes requieren mecanismos para que los procesos y subprocesos se comuniquen y se sincronicen entre sí.Los mecanismos de comunicación incluyen tuberías, colas de mensajes, memoria compartida, etc. La sincronización se utiliza para evitar problemas como las condiciones de carrera y garantizar el acceso seguro a los recursos compartidos.Exclusión mutua:La exclusión mutua es un concepto central en la programación concurrente que asegura que solo un proceso o hilo pueda acceder a un recurso compartido a la vez.Se implementa mediante técnicas como semáforos, mutexes (mutual exclusion), y monitores.Gestión de concurrencia:El sistema operativo es responsable de administrar la concurrencia, lo que implica la planificación de procesos, la asignación de recursos y la prevención de problemas de concurrencia.

Planificación de lotería:Cada proceso recibe un número de lotería y la CPU se asigna aleatoriamente a un proceso según su número de lotería.Cuanto mayor sea el número de lotería de un proceso, mayor será su probabilidad de ser seleccionado para ejecución.Planificación basada en políticas de tiempo real:Diseñada para sistemas donde el cumplimiento de los plazos es crítico.Los procesos se clasifican en función de sus restricciones temporales y se les asigna prioridad en consecuencia para garantizar que los plazos se cumplan.Planificación basada en colas multinivel:Organiza los procesos en varias colas de prioridad.Los procesos con mayor prioridad se ejecutan primero, pero si no hay procesos en la cola de mayor prioridad, se busca en la siguiente cola de prioridad inferior.

Planificación de prioridad:Cada proceso se asigna una prioridad y la CPU se asigna al proceso con la prioridad más alta en cada momento.Puede ser estática (prioridades fijas asignadas por el sistema) o dinámica (prioridades que cambian en función de diversos factores, como el tiempo de ejecución del proceso).Planificación de tiempo compartido:Divide el tiempo de CPU en pequeños intervalos de tiempo llamados "quantums".Cada proceso recibe una parte de tiempo de CPU y, cuando se agota su quantum, se cambia a otro proceso.Se basa en el principio de que todos los procesos tienen derecho a una parte justa de los recursos de la CPU.Planificación de round-robin:Es una variante de la planificación de tiempo compartido donde los procesos se colocan en una cola circular.Cada proceso se ejecuta por un quantum de tiempo y luego se mueve al final de la cola, permitiendo que los procesos compartan la CPU de manera equitativa.

Planificación de lotería:Cada proceso recibe un número de lotería y la CPU se asigna aleatoriamente a un proceso según su número de lotería.Cuanto mayor sea el número de lotería de un proceso, mayor será su probabilidad de ser seleccionado para ejecución.Planificación basada en políticas de tiempo real:Diseñada para sistemas donde el cumplimiento de los plazos es crítico.Los procesos se clasifican en función de sus restricciones temporales y se les asigna prioridad en consecuencia para garantizar que los plazos se cumplan.Planificación basada en colas multinivel:Organiza los procesos en varias colas de prioridad.Los procesos con mayor prioridad se ejecutan primero, pero si no hay procesos en la cola de mayor prioridad, se busca en la siguiente cola de prioridad inferior.

Planificación de prioridad:Cada proceso se asigna una prioridad y la CPU se asigna al proceso con la prioridad más alta en cada momento.Puede ser estática (prioridades fijas asignadas por el sistema) o dinámica (prioridades que cambian en función de diversos factores, como el tiempo de ejecución del proceso).Planificación de tiempo compartido:Divide el tiempo de CPU en pequeños intervalos de tiempo llamados "quantums".Cada proceso recibe una parte de tiempo de CPU y, cuando se agota su quantum, se cambia a otro proceso.Se basa en el principio de que todos los procesos tienen derecho a una parte justa de los recursos de la CPU.Planificación de round-robin:Es una variante de la planificación de tiempo compartido donde los procesos se colocan en una cola circular.Cada proceso se ejecuta por un quantum de tiempo y luego se mueve al final de la cola, permitiendo que los procesos compartan la CPU de manera equitativa.