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

Get started free

Procesos

guerrerogarciadelacadena

Created on March 23, 2024

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Procesos

Guerrero Garcia de la Cadena Maria Fernanda Mendez Nabor Edgar Berrios Zancatl Emanuel Servando

Índice

1. Fundamentos de procesos y concurrencia.

2. Concepto de proceso.

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

4. Sistemas concurrentes.

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

6. Planificación de procesos.

7. Estructuras y niveles de planificación.

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

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

18 . Comunicación entre procesos.

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

16. . Herramientas de programación concurrente.

Índice

9. Objetivos de la planificación de procesos.

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

11. Políticas de planificación.

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

13. Sincronización y comunicación entre procesos.

14. Sincronización entre procesos.

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

Fundamentos de procesos y concurrencia

El término "concurrencia" significa que un sistema tiene la capacidad de realizar varios procesos a la vez. En un entorno de programación concurrente, se puede realizar más de una tarea y, además, se pueden realizar de forma independiente una de otra, pero al mismo tiempo y podrían compartir recursos como CPU, memoria o dispositivos de E/S.

concurrencia

Procesos

Fundamentos de:.

Los sistemas operativos modernos están equipados con funciones para ejecutar más de un proceso simultáneamente. Por ejemplo, en un sistema multiprocesador o multinúcleo, pueden haber varios procesos ejecutándose al mismo tiempo. Los procesos se pueden crear, suspender, reanudar y finalizar según sea necesario para mantener bajo control el uso de los recursos y completar acciones específicas en consecuencia.

CONCEPTO DE PROCESO

CONCEPTO DE PROCESO

Un proceso es una instancia de un programa en ejecución. Cada proceso tiene su propio espacio de memoria, que incluye el código ejecutable, los datos y la pila de ejecución.

En sistemas operativos, los procesos pueden organizarse en jerarquías, lo que significa que un proceso puede crear nuevos procesos, conocidos como procesos hijos. Estos procesos hijos pueden a su vez crear más procesos hijos, formando así una jerarquía. Esta estructura jerárquica puede ser útil para la gestión de recursos y la delegación de tareas. .

Jerarquia de Procesos.

Estados de actividad de un proceso.

Listo: Esperando ejecución. el proceso está listo para ejecutarse, pero está esperando su turno para ser atendido por el planificador del sistema operativo.Ejecución: Activo y usando la CPU. Bloqueado: Esperando algún evento, un proceso está temporalmente detenido debido a la espera de algún evento externo Suspendido: Temporalmente detenido. Terminado: Ha finalizado su ejecución.

Sistemas concurrentes

Funcionamiento

SISTEMAS CONCURRENTES

diferentes procesos o equipos se intercambian y acceden a un mismo recurso durante periodos de tiempo separados

Es un sistema informático en el que la concurrencia desempeña un papel importante. Ejemplos: sistemas operativos sistemas de gestión de bases de datos (DBMS) sistemas de tiempo real sistemas distribuidos

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

Propositos y objetivos de la concurrencia

Rendimiento mejorado: el paralelismo permite ejecutar múltiples tareas simultáneamente, lo que puede aumentar la eficiencia y el rendimiento del sistema al hacer un uso óptimo de los recursos disponibles, como la CPU y los dispositivos de E/S. Mejora de la capacidad de respuesta: al ejecutar múltiples actividades simultáneamente, la concurrencia puede mejorar la capacidad de respuesta de un sistema al usuario al evitar que las operaciones en segundo plano bloqueen la interacción del usuario.

Los procesos también pueden competir entre sí por recursos limitados, como la CPU, la memoria o los dispositivos de E/S. Esta competencia puede dar lugar a situaciones en las que los procesos compiten por la prioridad de acceso a los recursos y deben gestionarse adecuadamente para evitar condiciones de carrera y garantizar la equidad en el acceso a los recursos.

COMPETENCIA

cooperación

Cooperación y competencia entre procesos:

Los procesos pueden cooperar entre sí compartiendo recursos y comunicándose entre ellos para lograr un objetivo común. Esta cooperación puede implicar el intercambio de datos, el uso de señales o eventos para sincronizar acciones, o la coordinación de tareas para lograr una tarea conjunta.

Gestión de recursos: Especificar cómo se asignarán y compartirán los recursos entre los procesos concurrentes, incluida la gestión de la concurrencia de acceso a recursos compartidos para evitar conflictos y condiciones de carrera.

Diseño de políticas de planificación: Definir reglas y algoritmos para la planificación de la ejecución de procesos concurrentes, como la asignación de prioridades, la gestión de colas y la programación de la CPU.

Especificación de la concurrencia

Modelado de interacciones: Describir cómo interactúan los procesos entre sí, incluida la comunicación, la sincronización y la cooperación.

Algoritmos de planificación: Existen varios algoritmos de planificación de procesos, cada uno con sus propias características y objetivos.

Colas de planificación: Los procesos listos para ser ejecutados se colocan en colas de planificación según su prioridad, estado y otros criterios.

Planificación de procesos.

El planificador es un componente del sistema operativo que decide qué proceso se ejecutará a continuación en l a CPU. Puede haber varios niveles de planificación, como la planificación a corto plazo

Planificación a medio plazo (Medium-term scheduling): Este nivel de planificación se encarga de gestionar los procesos en la memoria secundaria, moviendo procesos entre la memoria principal y la memoria secundaria según sea necesario.

Planificación a corto plazo (Short-term scheduling): La planificación a corto plazo, también conocida como planificación de CPU, decide qué proceso se ejecutará a continuación en la CPU.

Planificación a largo plazo (Long-term scheduling): Este nivel de planificación decide qué procesos se admitirán en el sistema y cuáles se sacarán de la memoria principal para liberar espacio.

Bloques de control de procesos (PCB): Cada proceso en el sistema tiene asociado un PCB que contiene información importante sobre el proceso, como su identificador, estado, prioridad, estado de la CPU, registros de CPU, información de memoria, etc. Los PCBs son utilizados por el planificador para tomar decisiones de planificación.

Niveles de planificación:

Estructuras de planificación:

Colas de planificación: Las colas de planificación son estructuras de datos que contienen los procesos listos para ser ejecutados. Pueden haber varias colas, cada una con diferentes prioridades, políticas o características de planificación. Los procesos se colocan en estas colas según su estado y otros criterios de planificación.

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

Colas de Gestión de Procesos:

Las colas de gestión de procesos son estructuras de datos utilizadas para organizar los procesos según su estado y otros criterios de planificación. Estas colas son manejadas por el sistema operativo y pueden incluir diferentes colas para procesos listos, procesos bloqueados, procesos en ejecución, etc

El Bloque de Control del Proceso (PCB) es una estructura de datos esencial utilizada por el sistema operativo para gestionar y controlar los procesos. Contiene información detallada sobre un proceso específico en ejecución.

Bloque de control de proceso

hilos

Un hilo es una unidad básic a de ejecución dentro de un proceso. Múltiples hilos pueden existir dentro de un solo proceso y comparten recursos como la memoria y los archivos abiertos.

objetivos de la planificación de procesos.

se centran en la optimización del uso de los recursos del sistema, así como en la mejora del rendimiento y la experiencia del usuario

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

El modelo de comportamiento de un proceso describe cómo se comporta un proceso en el sistema operativo y cómo interactúa con los recursos del sistema. Este modelo incluye varios aspectos, como el estado del proceso, sus acciones y su interacción con otros procesos y recursos.

Las políticas de planificación son conjuntos de reglas y algoritmos utilizados por el sistema operativo para seleccionar qué proceso se ejecutará a continuación en la CPU y cómo se asignarán los recursos del sistema a los procesos en ejecución.

Politicas de Planificacion

Prioridad:

En esta política, los procesos se ejecutan según su prioridad asignada. Puede ser preemtivo o no preemtivo. En el primero, un proceso con mayor prioridad puede interrumpir la ejecución de un proceso con menor prioridad.

Multinivel:

Esta política organiza los procesos en múltiples colas, cada una con su propio algoritmo de planificación. Los procesos se promueven o degradan entre las colas según ciertos criterios, como el tiempo de CPU utilizado o la prioridad.

Feedback:

los procesos pueden moverse entre las colas en función de su comportamiento de uso de CPU. Los procesos que utilizan la CPU durante mucho tiempo pueden ser degradados a colas de menor prioridad para permitir que otros procesos se ejecuten.

En esta política, cada proceso recibe una pequeña porción de tiempo de CPU, llamada quantum, y se ejecuta de manera rotativa.

Round Robin

Cuando el procesador queda disponible se le asigna al proceso que tenga el menor CPU-burst. Si dos procesos tiene el mismo CPU-burst se desempata de alguna forma

Shortest Job First (SJF):

Una vez que el procesador le es asignado a un proceso este lo mantiene hasta que termina o se bloquea (por ejemplo al generar un pedido de E/S)..

FCFS SJF Round robin

First-Come, First-Served (FCFS):

La sincronización entre procesos se refiere a la coordinación de actividades entre procesos para evitar condiciones de carrera, incoherencia de datos y otros problemas relacionados con la concurrencia.

Comunicación entre procesos

Sincronizacion y comunicacion entre procesos

Sincronizacion entre procesos

La comunicación entre procesos se refiere al intercambio de datos, información o señales entre procesos para coordinar sus actividades o compartir información

Sincronizacion entre procesos

Mutex (Mutual Exclusion): Un mecanismo de sincronización que garantiza que solo un proceso pueda acceder a un recurso compartido a la vez. Los mutex se utilizan para evitar condiciones de carrera y garantizar la consistencia de datos. Monitores: Abstracciones de alto nivel que encapsulan datos y procedimientos relacionados con el acceso a esos datos. Los monitores proporcionan sincronización automática mediante el uso de condiciones de espera y señales. Barrera (Barrier): Un punto de sincronización donde los procesos se detienen y esperan a que todos los demás procesos alcancen ese punto antes de continuar.

Postergación indefinida e interbloqueo:

Postergación Indefinida (Deadlock): Es una situación en la que dos o más procesos están esperando indefinidamente por recursos que están siendo utilizados por otros procesos. Como resultado, ninguno de los procesos puede continuar ejecutándose y el sistema queda bloqueado.

Interbloqueo (Deadlock): Es una situación similar a la postergación indefinida, pero implica un conjunto de procesos que están bloqueados mutuamente, cada uno de los cuales espera recursos que son poseídos por otros procesos en el conjunto. Ningún proceso puede continuar su ejecución, y el sistema queda en un estado de interbloqueo.

herramientas de programacion concurrente

Threads y Multithreading: Los hilos (threads) son secuencias de ejecución independientes dentro de un proceso. Los lenguajes de programación modernos, como Java, C++, Python y otros, proporcionan soporte para la creación y gestión de hilos, permitiendo que las aplicaciones realicen múltiples tareas de manera concurrente. Primitivas de sincronización: Incluyen mecanismos como semáforos, mutex, monitores, variables de condición, entre otros. Estas primitivas permiten a los desarrolladores controlar el acceso concurrente a recursos compartidos y coordinar la ejecución de procesos o hilos de manera segura y ordenada. Bibliotecas de concurrencia: Existen bibliotecas específicas diseñadas para simplificar la programación concurrente y proporcionar abstracciones de alto nivel. Algunas de estas bibliotecas son: Java Concurrency API: Proporciona estructuras de datos concurrentes, ejecutores, semáforos, barreras, entre otros. Boost.Thread (C++): Ofrece funcionalidades para la creación y gestión de hilos, así como primitivas de sincronización. Pthreads (C): Es una API de hilos de bajo nivel para sistemas basados en POSIX (Unix/Linux). Concurrency TS (C++): Parte de la especificación técnica del C++11, proporciona soporte para programación concurrente a nivel de lenguaje.

Monitores: Los monitores son una abstracción de alto nivel utilizada para facilitar la sincronización entre procesos y el acceso a recursos compartidos. Consisten en un conjunto de variables de datos y procedimientos que operan sobre esos datos.

Regiones críticas: Las regiones críticas son secciones de código donde un proceso accede a un recurso compartido y donde debe asegurarse que no haya interferencia con otros procesos que puedan estar accediendo al mismo recurso..

Semáforos: Los semáforos son una herramienta de sincronización utilizada para controlar el acceso a recursos compartidos en entornos concurrentes.

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

Problema del barbero dormilón: En este problema, hay un barbero que duerme en su silla cuando no hay clientes en la barbería

Problema de los filósofos comensales: Este problema ilustr a la necesidad de sincronización en situaciones donde varios procesos compiten por recursos compartidos y pueden terminar en un estado de interbloqueo.

Problema de los lectores-escritores: Se refiere a la sincronización entre procesos que leen y escriben en un recurso compartido. El problema consiste en permitir que múltiples lectores accedan al recurso al mismo tiempo, pero evitando que un escritor acceda al recurso mientras hay lectores activos o viceversa.

Problema del productor-consumidor: Implica dos tipos de procesos: productores, que generan datos, y consumidores, que consumen esos datos. El problema consiste en asegurar que los productores no produzcan datos en exceso (llenando un buffer, por ejemplo) y que los consumidores no consuman datos inexistentes (de un buffer vacío).

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

comunicacion entre procesos

Pipes: Un mecanismo de comunicación unidireccional que conecta la salida de un proceso con la entrada de otro proceso. Colas de mensajes: Estructuras de datos que permiten a los procesos enviar y recibir mensajes entre sí de manera asíncrona. Memoria compartida: Una región de memoria compartida entre procesos que les permite intercambiar datos de manera eficiente. Sockets: Puntos finales de comunicación en una red que permiten la comunicación entre procesos en diferentes sistemas a través de TCP/IP u otros protocolos de red.

Taxonomía de los mecanismos de paso de mensajes: Síncrono vs Asíncrono: Síncrono: El emisor espera a que el receptor confirme la recepción del mensaje antes de continuar su ejecución. Asíncrono: El emisor envía el mensaje y continúa su ejecución sin esperar una confirmación del receptor.

Primitivas de comunicación:.

Enviar: Un proceso envía un mensaje a otro proceso. Este mensaje puede contener datos, señales o información sobre eventos. Recibir: Un proceso espera y recibe un mensaje enviado por otro proceso

Mensajes:

Los mensajes son unidades de datos que se envían entre procesos para intercambiar información. Pueden contener cualquier tipo de datos, desde simples valores numéricos hasta estructuras de datos complejas​

¿Sabías que...

La ventana permite añadir contenido más amplio. Puedes enriquecer tu genially incorporando PDFs, vídeos, texto… El contenido de la ventana aparecerá al hacer clic en el elemento interactivo.

Con esta función...

Puedes añadir un contenido adicional que emocione al cerebro de tu audiencia: vídeos, imágenes, enlaces, interactividad... ¡Lo que tú quieras!

¿Sabías que...

El 90% de la información que asimilamos nos llega a través de la vista? Los recursos visuales son de gran ayuda para reforzar tu mensaje: imágenes, ilustraciones, gifs, vídeos… No solo porque permanecen en la memoria, sino también porque son más atractivos y más fáciles de comprender.