Want to make creations as awesome as this one?

Transcript

PROCESOS

PRESENTACIÓN REALIZADA POR:-CASQUERA RUIZ SARED -CONTRERAS CRUZ JOSEPH

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

Comunicación entre procesos.

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

Herramientas de programación concurrente.

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

Í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 competencia entre procesos. Especificación de la concurrencia.

Planificación de procesos.

Estructuras y niveles de planificación.

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

Objetivos de la planificación de procesos.

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

Políticas de planificación.

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

Sincronización y comunicación entre procesos.

Sincronización entre procesos.

Fundamentos de procesos y concurrencia.

Los procesos son esenciales en las operaciones de una PC, actuando como la puerta de entrada al funcionamiento interno. Cuando solicitamos acciones, los procesos ejecutan el trabajo, permitiendo al microprocesador seguir las instrucciones del sistema operativo. Los procesos son creados y destruidos por el sistema operativo, que también gestiona la comunicación entre ellos a solicitud de otros procesos. La bifurcación (fork) es el mecanismo mediante el cual un proceso crea otro, siendo estos independientes y sin compartir memoria. Cada proceso tiene su propio contador de programa, registros y variables. Aunque se ejecute el mismo programa dos veces, el sistema operativo utiliza la misma región de memoria de código si no cambia. Los procesos se rigen por páginas, con cada proceso teniendo su propia tabla de paginación, optimizando el manejo de fallos de página.

Concepto de proceso.

Un proceso es esencialmente un programa en ejecución, definido formalmente como "Una unidad de actividad caracterizada por una secuencia de instrucciones, un estado actual y un conjunto de recursos del sistema asociados". Consiste en las instrucciones del programa destinadas a ejecutarse, su estado de ejecución, la memoria asignada y otra información relevante para la planificación del sistema operativo. En sistemas operativos multihilo, un proceso puede constar de uno o más hilos, compartiendo memoria y recursos. Los eventos principales que provocan la creación de procesos incluyen el arranque del sistema, llamadas al sistema, solicitudes de usuario y trabajos por lotes.

+INFO

Contextualiza tu tema con un subtítulo

La jerarquía de procesos comprende cinco niveles: macroproceso, proceso, subproceso, actividades y tareas. Los procesos de dirección proporcionan directrices clave para la organización, mientras que los procesos misionales cumplen con la razón de ser de la organización, creando valor para el cliente. Los procesos de soporte ofrecen elementos de apoyo necesarios para el funcionamiento de los procesos estratégicos y operativos. Esta jerarquía es esencial para la gestión y dirección efectivas de una organización.

Las primitivas de gestión de procesos son responsabilidades del sistema operativo que incluyen la creación, destrucción, pausa, reanudación y comunicación entre procesos. Estas primitivas son similares en diferentes sistemas operativos, aunque sus detalles pueden variar. Se asemejan a la organización de tareas en una oficina, donde se establecen prioridades y se asignan recursos en función de ellas. Existe un acuerdo tácito entre los diseñadores de sistemas operativos sobre un conjunto mínimo de funciones necesarias para la gestión de procesos en entornos multitarea.

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

El procesador ejecuta las instrucciones de programas en memoria principal mediante la creación de procesos por el sistema operativo. En la multiprogramación, el procesador alterna la ejecución de varios programas, mientras el sistema operativo gestiona la asignación de recursos y el intercalado de procesos. Se emplea un modelo de estados que inicialmente consta de dos estados: Ejecución y No ejecución. Posteriormente, este modelo se expande a cuatro estados para gestionar situaciones donde los procesos pueden estar bloqueados o en espera. Los estados de Listo y Bloqueado tienen colas de espera, donde los procesos son gestionados por el sistema operativo para su ejecución o espera según la disponibilidad de recursos.

Sistemas concurrentes.

La concurrencia en computación permite que múltiples procesos se ejecuten simultáneamente y potencialmente interactúen entre sí. Los procesos concurrentes pueden ser realmente simultáneos si se ejecutan en diferentes procesadores, mientras que la concurrencia simulada ocurre cuando hay un solo procesador alternando entre procesos a intervalos muy cortos, dando la ilusión de ejecución simultánea. La interacción entre procesos concurrentes puede resultar en una complejidad considerable, lo que ha llevado al desarrollo de lenguajes de programación y conceptos para gestionar la concurrencia de manera más efectiva.

La concurrencia de procesos implica la coincidencia en el acceso a recursos compartidos, lo que requiere coordinación en su ejecución. En sistemas multiprogramados con un solo procesador, los procesos se intercalan en el tiempo, aparentando ejecución simultánea y beneficiando la eficiencia del procesamiento y la estructuración de programas. Sin embargo, esto puede generar dificultades, como compartir recursos globales y gestionar la asignación óptima de recursos por parte del sistema operativo. Estos problemas persisten en sistemas multiprocesador. Las interacciones entre procesos pueden ser de competencia o cooperación. El sistema operativo ofrece mecanismos de arbitraje como la sincronización para coordinar la ejecución de procesos y evitar situaciones no deseadas, así como la mensajería para la comunicación entre procesos y la coordinación mediante intercambio de mensajes.

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

Planificación de procesos.

Cuando un sistema informático tiene más de un procesador, surgen nuevas consideraciones en el diseño de la planificación de tareas. Se distinguen tres tipos de sistemas multiprocesador: débilmente acoplado o distribuido, funcionalmente especializado y fuertemente acoplado. En los sistemas tradicionales, los procesos se asignan a los procesadores mediante una cola única o múltiples colas con esquemas de prioridad. La planificación de procesos se refiere a la determinación del orden en que se asigna el procesador a los procesos, con políticas para controlar el uso del tiempo del procesador. Se identifican tres tipos de planificación: a largo plazo, que decide qué procesos iniciar; a mediano plazo, que gestiona los procesos bloqueados; y a corto plazo, que asigna el procesador a los procesos listos para ejecución.

Estructuras y niveles de planificación.

La planificación del procesador es crucial para el buen funcionamiento del sistema, determinando cuánto tiempo y cuándo se asigna a cada proceso. Esta tarea se lleva a cabo mediante algoritmos de planificación, donde un pequeño programa llamado "dispatcher" asigna la CPU a un proceso ejecutable siguiendo un algoritmo específico. Los eventos que pueden desencadenar la intervención del "dispatcher" incluyen la finalización de un proceso, bloqueo del proceso en ejecución, agotamiento de su tiempo de CPU o transición a un estado listo. Cuanto menos se invoque al "dispatcher", más tiempo se dedica a los procesos de usuario. El "scheduling" se define como el conjunto de políticas y mecanismos que determinan cuándo se introducen nuevos procesos en el sistema y el orden de ejecución de los procesos. Este concepto se divide en tres niveles: planificador de CPU o a corto plazo, planificador a medio plazo y planificador a largo plazo.

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

El Bloque de Control del Proceso (BCP) es un registro especial utilizado por el sistema operativo para almacenar toda la información relevante de un proceso en ejecución. Cada vez que se crea un proceso, se genera un BCP correspondiente que actúa como descripción en tiempo de ejecución durante toda la vida del proceso. Cuando el proceso finaliza, su BCP se borra y puede ser reutilizado para otros procesos.El BCP contiene información como el identificador del proceso, su estado, el contador de programa, los valores de los registros de la CPU, el espacio de direcciones de memoria, la prioridad, los recursos asignados, estadísticas del proceso, datos del propietario, permisos y señales pendientes de ser servidas. Esta estructura de datos varía según el sistema operativo y puede ser diseñada para adaptarse a las necesidades específicas de administración de recursos del sistema.La planificación del procesador se refiere a cómo se selecciona qué proceso ejecutar, y esto se basa en algoritmos de planificación. El dispatcher, un programa especial, asigna la CPU a un proceso ejecutable según el algoritmo establecido. Los eventos que pueden desencadenar la intervención del dispatcher incluyen la finalización de un proceso, bloqueo del proceso en ejecución, agotamiento de su tiempo de CPU o transición a un estado listo.Además, se discuten las colas de gestión de procesos, como la cola de trabajos más cortos, que selecciona primero los procesos más cortos para su ejecución, y los hilos de ejecución, que son unidades de procesamiento más pequeñas que pueden ser planificadas por el sistema operativo. Los hilos comparten recursos y se distinguen de los procesos en que son más rápidos de cambiar entre sí debido a que comparten datos y espacios de direcciones.

Objetivos de la planificación de procesos.

Los objetivos de planificación de procesos incluyen:-Justicia: Busca evitar que los procesos sean beneficiados o perjudicados en su ejecución.-Máxima capacidad de ejecución: Se enfoca en reducir los cambios de contexto para maximizar la eficiencia y terminar los procesos rápidamente.-Máxima capacidad de usuarios interactivos: Prioriza brindar servicio a todos los usuarios conectados de manera equitativa.-Minimizar la sobrecarga: Se busca reducir al mínimo el tiempo dedicado a la administración del sistema.-Equilibrio en el uso de recursos: Intenta distribuir equitativamente los recursos del sistema entre los procesos.-Garantizar el cumplimiento de las prioridades: Prioriza la ejecución de procesos de tiempo real sobre los procesos interactivos para asegurar que se cumplan las prioridades establecidas.Estos objetivos pueden entrar en conflicto entre sí, por lo que en la planificación de procesos se debe encontrar un equilibrio entre ellos, sacrificando unos para mejorar otros según las necesidades del sistema.

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

Los objetivos de planificación de procesos incluyen:-Justicia: Busca evitar que los procesos sean beneficiados o perjudicados en su ejecución.-Máxima capacidad de ejecución: Se enfoca en reducir los cambios de contexto para maximizar la eficiencia y terminar los procesos rápidamente.-Máxima capacidad de usuarios interactivos: Prioriza brindar servicio a todos los usuarios conectados de manera equitativa.-Minimizar la sobrecarga: Se busca reducir al mínimo el tiempo dedicado a la administración del sistema.-Equilibrio en el uso de recursos: Intenta distribuir equitativamente los recursos del sistema entre los procesos.-Garantizar el cumplimiento de las prioridades: Prioriza la ejecución de procesos de tiempo real sobre los procesos interactivos para asegurar que se cumplan las prioridades establecidas.Estos objetivos pueden entrar en conflicto entre sí, por lo que en la planificación de procesos se debe encontrar un equilibrio entre ellos, sacrificando unos para mejorar otros según las necesidades del sistema.

Políticas de planificación.

Los algoritmos de planificación de procesos no están limitados a un plazo específico de planificación, pudiendo aplicarse tanto a corto como a largo plazo, e incluso distribuirse en varios tipos de planificación. Para describir una política de planificación, se deben considerar varios aspectos:- Criterios de selección de procesos: Se elige un proceso en estado preparado según criterios como prioridades, tiempo en la cola de preparados o tasa de CPU asignada.- Momento de ejecución de la planificación: Puede realizarse cuando un proceso termina o se bloquea (políticas no expulsoras) o forzar al proceso en ejecución a abandonar la CPU para planificar otro proceso (políticas expulsoras).- Existencia de múltiples políticas de planificación y cómo se combinan: Se definen políticas específicas para diferentes tipos de procesos, además de una política global que se aplica al conjunto de tipos de procesos (planificación multinivel).- Asignación de procesos a procesadores en sistemas multiprocesador.

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

Cada proceso tiene una prioridad; entra en CPU aquel con mayor prioridad. En la política puede ser expulsiva o no Prioridades definidas de forma interna (por el S.O.) o externa (por los usuarios) El SJF es un caso (prioridad=duración estimada) Riesgo de inanición de los procesos con menos prioridad. Solución: envejecimiento. Aumentar progresivamente la prioridad a los procesos en espera.

Sincronización y comunicación entre procesos.

En un sistema, los procesos concurrentes pueden clasificarse como independientes o cooperantes. Los procesos independientes no requieren la ayuda de otros procesos, mientras que los cooperantes están diseñados para trabajar juntos y requieren comunicación e interacción. Estos procesos pueden interactuar de dos maneras:1. Interacciones debido al uso compartido o competencia por recursos, como el acceso a disco o a registros de una base de datos. Aquí, el sistema operativo debe gestionar los accesos para evitar conflictos.2. Interacciones donde los procesos se comunican y sincronizan para lograr un objetivo común, como en la construcción de un compilador con dos procesos: el compilador y el ensamblador. Esto requiere mecanismos y servicios del sistema operativo para facilitar la comunicación y sincronización entre procesos.Estos dos tipos de interacciones obligan al sistema operativo a incluir mecanismo y servicios que permitan la comunicación y la sincronización entre procesos.

Sincronización entre procesos.

Para lograr la comunicacion, los procesos deben sincronizarse, de no ser asi pueden ocurrir problemas no deseados. La sincronizacion es la transmision y recepcion de senales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos.Es la coordinacion y cooperacion de un conjunto de procesos para asegurar la comparacion de recursos de computo. La sincronizacion entre procesos es necesaria para prevenir y/o corregir errores de sincronizacion debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronizacion entre procesos tambien permite intercambiar senales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especificas de precedencia impuestas por el problema que se resuelve.Sin una sincronizacion adecuada entre procesos, la actualizacion de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia dificiles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan.

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

En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos. Interbloqueo Se dice que dos o más procesos están bloqueados, cuando están suspendidos en espera de un evento que sólo puede ser activado por uno de los procesos bloqueados, y por lo tanto dicho evento nunca sucederá Postergación indefinida o Inanición (Starving) Se dice que uno o más procesos están en postergación indefinida cuando la política de planificación del sistema permite que un proceso quede en espera de un evento por un tiempo indefinido. Esto puede suceder, por ejemplo, cuando la asignación de recursos se realiza por prioridad. De este modo un proceso de baja prioridad estará suspendido mientras existan otros procesos de mayor prioridad.

Herramientas de programación concurrente.

Cuando se considera la programación concurrente, es crucial seguir una metodología de diseño de sistemas concurrentes. Una metodología común implica los siguientes pasos:1. Partición o Descomposición: Divide el problema en tareas más pequeñas que forman unidades de concurrencia, teniendo en cuenta la interacción entre ellas y buscando eliminar redundancias en el procesamiento y almacenamiento.2. Coordinación: Incorpora mecanismos para la comunicación y sincronización entre tareas, ya sea mediante el paso de mensajes o la memoria compartida. Se busca equilibrar el número de comunicaciones entre tareas, limitar la comunicación a un pequeño número de vecinos y permitir operaciones de comunicación simultáneas.3. Aglomeración o Asignación: Agrupa las tareas en procesos para optimizar el rendimiento, reducir costos y garantizar flexibilidad y escalabilidad en el sistema.4. Proyección: Asigna los procesos a los procesadores disponibles para minimizar los costos de comunicación y maximizar el uso de los procesadores, buscando un buen equilibrio en el sistema.

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

Un semáforo es una construcción de programación que actúa como una señal o un contador para controlar el acceso a un recurso compartido. Un semáforo puede tener un valor entero positivo, que indica cuántas unidades del recurso están disponibles, o un valor binario, que indica si el recurso está libre u ocupado

Comunicación entre procesos.

CLa comunicación entre procesos (IPC) es una función esencial de los sistemas operativos, que permite a los procesos compartir información y sincronizarse. Puede lograrse mediante el intercambio de datos en memoria compartida o a través de mecanismos de IPC, como el paso de mensajes. Se siguen protocolos de comunicación establecidos, como IP, TCP y HTTP, especialmente en entornos de red.Los métodos de IPC incluyen paso de mensajes, sincronización, memoria compartida y llamadas de procedimientos remotos (RPC). La elección del método depende del ancho de banda, la latencia y el tipo de datos que se están comunicando. La comunicación puede ser síncrona o asíncrona, persistente o momentánea, directa o indirecta, simétrica o asimétrica, con uso de buffers explícitos o automáticos, y puede implicar envío de mensajes por copia o por referencia, con mensajes de tamaño fijo o variable.

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

 Se emplean en sistemas que no comparten reloj o memoria y por tanto no es posible la comunicación entre procesos mediante variables compartidas.  La forma natural de comunicación es hacer que los procesos intercambien mensajes entre ellos con las primitivas básicas de envio(send) y recepción(receive).  Permite la portabilidad de las soluciones para diferentes arquitecturas. Se entiende como la forma en que el emisor indica a quien va dirigido el mensaje Comunicación directa: se caracteriza porque el emisor identifica explícitamente al receptor del mensaje en la operación de envío. El receptor identifica el emisor del mensaje. Sintaxis Send(A, mensaje) Receive(B, mensaje) Comunicación Indirecta: no se identifican explícitamente a los procesos emisor y receptor. La comunicación se realiza por medio de un buzón Sintaxis Send(Buzon, mensaje) Receive(Buzon, mensaje)

Escribe un titular genial

Una presentación genial…

  • Es clara y estructurada
  • Cuenta historias jerárquicamente.
  • Hace 'match' con tu audiencia.
  • Adecúa las fuentes y el color al tema.
  • Incluye imágenes y entretiene.
  • Representa datos con gráficos.
  • Utiliza líneas de tiempo.
  • Es animada e interactiva.
  • Emociona al cerebro, a través de elementos multimedia.
  • NO se excede con los bullet points 🙃​.