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

Get started free

PRESENTACIÓN GATETES

Pimentel Ruvalcaba Axel

Created on March 20, 2024

Sistemas Operativos 4IM4 una increible y maravillosa presentacion sobre procesos.

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

By Lopéz zamora bruno rené & pimentel ruvalcaba axel

QUIERO UNA ESTUFA, UNA TELE Y UNA LAVADORA Y UNA BOCINA Y UNA SWITCH Y UN REFRI Y

Empezar

¡Estoy listo, Esteban!

ProcesoS

PRESENTACIÓN

La multitarea es la capacidad de un sistema operativo para ejecutar dos o más procesos al mismo tiempo. Esto se logra mediante la intercalación de las ejecuciones de los diferentes procesos.

La concurrencia se refiere a la capacidad de ejecutar dos o más tareas al mismo tiempo. Esto puede ocurrir en un solo procesador o en varios procesadores. La concurrencia se puede lograr mediante la multitarea o la multiprocesamiento.

NEXT

Multitarea

Concurrencia

Un proceso es una unidad de ejecución independiente dentro de un sistema operativo. Es un programa en ejecución que posee su propio espacio de memoria, recursos y contexto de ejecución.

Procesos

Mi kali Linux no se instala Esteban :c

Fundamentos de procesos y concurrencia.

NEXT

Un proceso puede encontrarse en diferentes estados de actividad durante su ciclo de vida. Los estados más comunes son:-Nuevo: El proceso se ha creado pero aún no se ha ejecutado. -Listo: El proceso está listo para ejecutarse pero está esperando que se le asigne un procesador. -En ejecución: El proceso se está ejecutando en un procesador. -En espera: El proceso está esperando que ocurra un evento, como la finalización de una operación de E/S. -Terminado: El proceso ha finalizado su ejecución.

Estados de actividad de un proceso

Primitivas de gestión de procesos

NEXT

Las primitivas de gestión de procesos son las operaciones que el sistema operativo proporciona para crear, eliminar, suspender, reanudar y controlar los procesos. Algunas de las primitivas más comunes son: fork(): Crea un nuevo proceso a partir de un proceso existente. exec(): Carga y ejecuta un nuevo programa en un proceso existente. wait(): Espera a que un proceso hijo termine su ejecución. kill(): Envía una señal a un proceso para que termine su ejecución.

Estados de actividad de un proceso

Jerarquías de procesos

NEXT

Las jerarquías de procesos son estructuras que se utilizan para organizar los procesos en un sistema operativo. La jerarquía más común es la de árbol, donde cada proceso tiene un padre y puede tener varios hijos. Las jerarquías de procesos ofrecen varias ventajas, como: Organización: Permiten organizar los procesos de forma lógica y jerárquica. Control: Permiten controlar el acceso a los recursos por parte de los procesos. Comunicación: Permiten la comunicación entre los procesos de forma jerárquica.

Estados de actividad de un proceso

NEXT

CMD

CMD

Un sistema concurrente permite que varias tareas se ejecuten simultáneamente. Esto mejora el rendimiento general al aprovechar mejor los recursos del sistema. Ejemplos clásicos incluyen sistemas operativos, aplicaciones web y juegos. Pero la concurrencia también tiene sus retos. Hay que asegurar que los procesos accedan a recursos compartidos de forma coordinada para evitar errores. Existen distintos enfoques como hilos, procesos y mensajes para programar sistemas concurrentes.

Sistemas concurrentes

NEXT

Concurrencia

Propósitos: Mejora del rendimiento Mayor eficiencia Mayor capacidad de respuesta Objetivos: Aprovechar al máximo los recursos del sistema Mejorar la capacidad de respuesta del sistema Simplificar la programación: La concurrencia puede simplificar la programación de tareas complejas al permitir que se descompongan en tareas más pequeñas que se ejecutan en paralelo.

NEXT

Cooperación:Los procesos comparten recursos y datos para lograr un objetivo común. Se utiliza para implementar funcionalidades como la comunicación entre procesos, el trabajo en equipo y la sincronización. Competencia: Los procesos compiten por recursos limitados, como el tiempo de CPU o la memoria. Puede generar problemas como la inanición (un proceso nunca puede obtener los recursos que necesita) o la degradación del rendimiento (el rendimiento general del sistema se reduce debido a la competencia).

Cooperación y competencia entre procesos

Existen diferentes maneras de especificar la concurrencia en un programa, como: Lenguajes de programación concurrentes: Estos lenguajes proporcionan características específicas para la programación concurrente, como la creación de hilos, la sincronización y la comunicación entre procesos. Bibliotecas de concurrencia: Estas bibliotecas proporcionan funciones para la programación concurrente, como la creación de hilos, la sincronización y la comunicación entre procesos. Modelos de concurrencia: Estos modelos proporcionan una forma de pensar sobre la concurrencia y de estructurar los programas concurrentes.

Especificación de la concurrencia

NEXT

NEXT

La planificación de procesos es como un maestro en un salón lleno de alumnos haciendo tareas. El maestro (sistema operativo) decide quién va a usar el pizarrón (CPU) después para aprovechar mejor el tiempo y que todos avancen. Hay tres tipos de planificación: A largo plazo: decide quién entra y quién sale del salón (admite o elimina procesos). A corto plazo: decide quién va al pizarrón después (selecciona siguiente proceso para la CPU). A mediano plazo: decide quién se sienta en una silla (mueve procesos entre memoria principal y secundaria).

Planificación de procesos

Niveles de planificación

Planificación a largo plazo: Decide qué procesos se admiten en el sistema operativo y cuándo se eliminan. Planificación a corto plazo: Decide qué proceso se ejecutará a continuación en la CPU. Planificación a mediano plazo: Decide qué procesos se deben mover a la memoria principal y cuáles a la memoria secundaria.

Estructuras de planificación

Cola de listos: Contiene los procesos que están listos para ejecutarse en la CPU. Cola de espera: Contiene los procesos que están esperando un evento, como la entrada/salida o la finalización de otro proceso. Cola de terminados: Contiene los procesos que han finalizado su ejecución.

NEXT

Estructuras y niveles de planificación

NEXT

Es una estructura de datos que contiene toda la información que el sistema operativo necesita para gestionar un proceso. Esta información incluye:Identificador del proceso: Un número único que identifica al proceso. Estado del proceso: Indica si el proceso está en ejecución, listo, esperando o terminado. Contador de programa: La dirección de memoria de la siguiente instrucción que se ejecutará. Registros del procesador: Los valores actuales de los registros del procesador. Espacio de direcciones: La memoria virtual que utiliza el proceso. Información de E/S: Los dispositivos de E/S que utiliza el proceso.

Bloque de control del proceso

NEXT

El sistema operativo utiliza colas para organizar los procesos en diferentes estados. Las colas más comunes son: Cola de listos: Contiene los procesos que están listos para ejecutarse en la CPU. Cola de espera: Contiene los procesos que están esperando un evento, como la entrada/salida o la finalización de otro proceso. Cola de terminados: Contiene los procesos que han finalizado su ejecución.

Colas de gestión de procesos

El sistema operativo utiliza diferentes niveles de planificación para decidir qué proceso se Un hilo es una unidad de ejecución dentro de un proceso. Un proceso puede tener uno o más hilos. Los hilos comparten el mismo espacio de direcciones y los mismos recursos del proceso, pero tienen sus propios registros y pila. Los hilos se pueden utilizar para mejorar el rendimiento y la eficiencia de los programas.

Hilos

Niveles de planificación

NEXT

El sistema operativo utiliza diferentes niveles de planificación para decidir qué proceso se ejecutará a continuación en la CPU. Los niveles más comunes son: Planificación a largo plazo: Decide qué procesos se admiten en el sistema operativo y cuándo se eliminan. Planificación a corto plazo: Decide qué proceso se ejecutará a continuación en la CPU. Planificación a mediano plazo: Decide qué procesos se deben mover a la memoria principal y cuáles a la memoria secundaria.

NEXT

  • Maximizar el rendimiento: Asegurar que la CPU esté lo más ocupada posible para completar las tareas en el menor tiempo posible.
  • Minimizar el tiempo de respuesta: Reducir el tiempo que los usuarios tienen que esperar para que sus solicitudes sean atendidas.
  • Mejorar la equidad: Asegurar que todos los procesos tengan la oportunidad de ejecutarse y que no haya procesos que acaparen la CPU.
  • Aumentar la eficiencia: Reducir el tiempo que la CPU está inactiva o realizando tareas de baja prioridad.
  • Mejorar la estabilidad: Asegurar que el sistema operativo no se bloquee o se congele debido a un mal funcionamiento de la planificación de procesos.

Objetivos de la planificación de procesos

Modelo de comportamiento de un proceso

Un modelo de comportamiento de un proceso es una representación abstracta de cómo se ejecuta un proceso en el sistema operativo. Este modelo define los diferentes estados por los que puede pasar un proceso, así como las transiciones entre esos estados. Los estados más comunes en un modelo de comportamiento de un proceso son: Nuevo: El proceso se ha creado pero aún no se ha ejecutado. Listo: El proceso está listo para ejecutarse en la CPU. En ejecución: El proceso se está ejecutando en la CPU. Esperando: El proceso está esperando un evento, como la entrada/salida o la finalización de otro proceso. Terminado: El proceso ha finalizado su ejecución.

NEXT

NEXT

Las políticas de planificación de procesos son las reglas que utiliza el sistema operativo para decidir qué proceso se ejecutará a continuación en la CPU. Existen diferentes criterios para evaluar la eficacia de estas políticas:

  • Rendimiento: La cantidad de trabajo que el sistema operativo puede realizar en una unidad de tiempo.
  • Tiempo de respuesta: El tiempo que tarda el sistema operativo en responder a una solicitud del usuario.
  • Equidad: Todos los procesos deben tener la oportunidad de ejecutarse.
  • Eficiencia: El uso de los recursos del sistema debe ser lo más eficiente posible.
  • Estabilidad: El sistema operativo no debe bloquearse o congelarse debido a un mal funcionamiento de la política de planificación de procesos.

Criterios de evaluación de las políticas

Ejemplos de políticas de planificación

Políticas de planificación.

Las políticas de planificación son las reglas que utiliza el sistema operativo para decidir qué proceso se ejecutará a continuación en la CPU. Existen diferentes tipos de políticas de planificación, cada una con sus propias ventajas y desventajas. FCFS: Es una política simple y fácil de implementar, pero puede ser injusta para los procesos que han estado esperando durante mucho tiempo. SJF: Puede mejorar el rendimiento general del sistema, pero puede ser difícil de implementar si los tiempos de ejecución de los procesos no se conocen de antemano.

NEXT

No toma en cuenta la importancia o el tiempo de ejecución de los procesos.

Desventajas

Puede ser injusta para los procesos que han estado esperando durante mucho tiempo.

Fácil de implementar

Ventajas

Simple

Descripción

El proceso que lleva más tiempo esperando en la cola de listos se ejecuta a continuación.

FCFS

NEXT

Favorece a los procesos cortos, lo que puede ser injusto para los procesos largos.

Desventajas

Puede ser difícil de implementar si los tiempos de ejecución de los procesos no se conocen de antemano.

Ventajas

Puede mejorar el rendimiento general del sistema.

Descripción

El proceso con el tiempo de ejecución más corto se ejecuta a continuación.

SJF

NEXT

Puede ser injusta para los procesos que ya han estado ejecutándose durante un tiempo.

Desventajas

Puede aumentar la complejidad del sistema operativo.

Ventajas

Permite a los procesos más importantes obtener un servicio rápido.

Descripción

Un proceso que está en ejecución puede ser expulsado de la CPU si otro proceso con mayor prioridad llega a la cola de listos.

Métodos expulsivos

NEXT

No toma en cuenta la importancia de los procesos.

Desventajas

Puede ser ineficiente si los procesos tienen tiempos de ejecución muy diferentes.

Es simple y fácil de implementar.

Ventajas

Proporciona un tiempo de respuesta rápido a todos los usuarios.

Descripción

Los procesos se ejecutan en turnos, donde cada proceso recibe un período de tiempo fijo en la CPU.

Round Robin

NEXT

Puede ser injusta para los procesos con baja prioridad.

Desventajas

Puede ser difícil de administrar si hay muchos procesos con diferentes prioridades.

Ventajas

Permite a los usuarios controlar la importancia de sus procesos.

Descripción

Los procesos se ejecutan en función de su prioridad, donde los procesos con mayor prioridad tienen preferencia.

Métodos basados en prioridades

NEXT

Puede ser difícil elegir la política de planificación adecuada para cada cola.

Desventajas

Puede ser complejo de implementar.

Ventajas

Permite al sistema operativo dar diferentes niveles de servicio a diferentes tipos de procesos.

Descripción

El sistema operativo mantiene varias colas de listos, cada una con una política de planificación diferente.

Métodos multicolas

NEXT

Sincronización y comunicación entre procesos.

NEXT

La sincronización es el proceso de coordinar las actividades de diferentes procesos para garantizar que se ejecuten en un orden correcto y coherente. Esto es necesario para evitar problemas como el acceso simultáneo a recursos compartidos, lo que puede provocar corrupción de datos o resultados inesperados. La comunicación entre procesos es el proceso de intercambio de información entre diferentes procesos. Esto es necesario para que los procesos puedan cooperar entre sí y realizar tareas complejas.

Métodos de sincronización

NEXT

  1. Semáforos: Un semáforo es una variable de valor entero que se utiliza para controlar el acceso a un recurso compartido. Un proceso puede adquirir un semáforo si su valor es mayor que cero; si el valor es cero, el proceso se bloquea hasta que otro proceso libere el semáforo.
  2. Monitores: Un monitor es un módulo de software que proporciona un conjunto de procedimientos para acceder a un recurso compartido. Los procesos solo pueden acceder al recurso a través de estos procedimientos, lo que garantiza que el acceso sea ordenado y coherente.
  3. Barreras: Una barrera es un punto de sincronización que permite a un grupo de procesos esperar hasta que todos los demás procesos del grupo hayan llegado a la barrera.

Sincronización entre procesos

Necesidad

NEXT

La sincronización entre procesos es necesaria por las siguientes razones:

  • Evitar el acceso simultáneo a recursos compartidos: Cuando dos o más procesos acceden a un recurso compartido al mismo tiempo, pueden producirse errores. La sincronización garantiza que solo un proceso pueda acceder a un recurso compartido en un momento dado.
  • Garantizar la coherencia de los datos: La sincronización puede ayudar a garantizar que los datos compartidos por diferentes procesos sean coherentes. Esto es importante para evitar errores y garantizar que los resultados sean correctos.
  • Implementar la comunicación entre procesos: La sincronización es necesaria para implementar la comunicación entre procesos. Los procesos pueden usar mecanismos de sincronización para enviar y recibir mensajes entre sí.

Sincronización entre procesos

Interbloqueo

El interbloqueo es un tipo específico de postergación indefinida en el que dos o más procesos se bloquean entre sí. Esto puede ocurrir cuando un proceso está esperando un recurso que está en posesión de otro proceso, y viceversa.

Postergación indefinida

La postergación indefinida, también conocida como deadlock, es una situación en la que dos o más procesos se esperan mutuamente para continuar. Esto puede ocurrir cuando un proceso tiene un recurso que otro proceso necesita, y viceversa.

Postergación indefinida e interbloqueo

NEXT

El problema de la sección crítica

NEXT

El problema de la sección crítica es un problema de sincronización que ocurre cuando dos o más procesos necesitan acceder a una sección de código o a un recurso compartido al mismo tiempo. Si no se sincronizan los accesos, puede producirse un acceso simultáneo, lo que puede provocar corrupción de datos o resultados inesperados. Solución: El problema de la sección crítica se puede solucionar mediante el uso de mecanismos de sincronización como semáforos, monitores y barreras. Estos mecanismos garantizan que solo un proceso pueda acceder a la sección crítica en un momento dado.

Soluciones algorítmicas

NEXT

  1. Semáforos: Un semáforo es una variable de valor entero que se utiliza para controlar el acceso a un recurso compartido. Un proceso puede adquirir un semáforo si su valor es mayor que cero; si el valor es cero, el proceso se bloquea hasta que otro proceso libere el semáforo.
  2. Monitores: Un monitor es un módulo de software que proporciona un conjunto de procedimientos para acceder a un recurso compartido. Los procesos solo pueden acceder al recurso a través de estos procedimientos, lo que garantiza que el acceso sea ordenado y coherente.
  3. Barreras: Una barrera es un punto de sincronización que permite a un grupo de procesos esperar hasta que todos los demás procesos del grupo hayan llegado a la barrera.

Soluciones algorítmicas y hardware

Soluciones hardware

NEXT

  • Interrupciones: Las interrupciones se pueden utilizar para notificar al sistema operativo cuando un proceso necesita acceder a un recurso compartido. El sistema operativo puede entonces suspender el proceso actual y ejecutar un manejador de interrupciones que se encargará de acceder al recurso.
  • Bloqueos: Los bloqueos son mecanismos de hardware que permiten a un proceso obtener acceso exclusivo a un recurso compartido. Cuando un proceso adquiere un bloqueo, ningún otro proceso puede acceder al recurso hasta que el primer proceso lo libere.

Soluciones algorítmicas y hardware

Ejemplos

  • Depuradores:
Valgrind Helgrind
  • Análisis estático:
Coverity FindBugs
  • Simulación:
JSim ConcurSim
  • Bibliotecas y marcos de trabajo:
OpenMP MPI

Definicion

Las herramientas de programación concurrente son recursos que facilitan a los programadores escribir código concurrente de manera más sencilla y eficiente. Estas herramientas pueden ayudar de las siguientes maneras:

  • Detectar y corregir errores de sincronización
  • Mejorar el rendimiento
  • Simplificar el desarrollo

Herramientas de programación concurrente.

NEXT

Problemas clásicos de sincronización

NEXT

Productor-Consumidor: Implica sincronizar un productor que produce datos y los coloca en un búfer, con un consumidor que consume datos del mismo búfer. El desafío radica en asegurar que el búfer no se desborde ni se vacíe, coordinando las operaciones del productor y el consumidor. Filósofos Hambrientos: En este problema, cinco filósofos están sentados alrededor de una mesa con cinco platos de espaguetis. Cada filósofo necesita dos tenedores para comer, pero solo hay un tenedor entre cada plato. El objetivo es sincronizar a los filósofos para que puedan comer sin que ninguno muera de hambre, gestionando el uso compartido de los tenedores. Lectores y Escritores: Se trata de permitir que múltiples lectores accedan simultáneamente a un recurso compartido, mientras que un escritor tiene acceso exclusivo para modificarlo. El desafío es sincronizar a los lectores y escritores para que los lectores no sean bloqueados por los escritores y viceversa, evitando condiciones de carrera y asegurando la consistencia de los datos.pretium orci, vitae curabitur ornare eget commodo accumsan hendrerit suscipit penatibus, feugiat odio integer ut.

La comunicación entre procesos (IPC) es el proceso de intercambio de información entre diferentes procesos. Esto es necesario para que los procesos puedan cooperar entre sí y realizar tareas complejas. Métodos de IPC:

  • Memoria compartida: Los procesos pueden compartir datos almacenándolos en una región de memoria que es accesible para todos ellos.
  • Mensajes: Los procesos pueden enviarse mensajes entre sí para intercambiar información.
  • Tuberías: Las tuberías son canales de comunicación unidireccionales que permiten a los procesos enviar y recibir datos.

NEXT

Comunicación entre procesos.

  • Comunicación entre procesos en el mismo sistema
  • Comunicación entre procesos en diferentes sistemas
  • Acoplamiento estrecho
  • Acoplamiento débil
  • Comunicación sincrónica
  • Comunicación asincrónica

Ubicación de los procesos

Tipo de acoplamiento

Taxonomía de los mecanismos de paso de mensajes

Modo de comunicación

Mensajes

Un mensaje es una unidad de información que se intercambia entre procesos. Puede contener datos, instrucciones o solicitudes de servicio

Solicitud/Respuesta: Un proceso solicita un servicio a otro proceso y espera una respuesta.

Recibir: Recibe un mensaje de un proceso fuente.

Primitivas de comunicación.

Enviar: Envía un mensaje a un proceso destino.

Comunicación entre procesos.

NEXT

GRACIAS