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

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

¡Estoy listo, Esteban!

PRESENTACIÓN

ProcesoS

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

Empezar

Mi kali Linux no se instala Esteban :c

Fundamentos de procesos y concurrencia.

Multitarea

Procesos

Concurrencia

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.

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.

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.

NEXT

Estados de actividad de un proceso

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.

NEXT

Estados de actividad de un proceso

Primitivas de gestión de procesos

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.

NEXT

Estados de actividad de un proceso

Jerarquías de procesos

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.

NEXT

Sistemas concurrentes

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.

CMD

CMD

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 y competencia entre procesos

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).

NEXT

Especificación de la concurrencia

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.

NEXT

Planificación de procesos

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).

NEXT

Estructuras y niveles de planificación

Estructuras de planificación

Niveles 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.

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

Bloque de control del proceso

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.

NEXT

Colas de gestión de procesos

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.

NEXT

Niveles de planificación

Hilos

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.

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.

NEXT

Objetivos de la planificación de procesos

  • 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.

NEXT

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

Criterios de evaluación de las políticas

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.

NEXT

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.

Ejemplos de políticas de planificación

NEXT

FCFS

Descripción

Ventajas

Desventajas

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

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

Simple

Fácil de implementar

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

NEXT

SJF

Descripción

Ventajas

Desventajas

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

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

Puede mejorar el rendimiento general del sistema.

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

NEXT

Métodos expulsivos

Descripción

Ventajas

Desventajas

Puede aumentar la complejidad del sistema operativo.

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.

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

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

NEXT

Round Robin

Descripción

Ventajas

Desventajas

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

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

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

Es simple y fácil de implementar.

No toma en cuenta la importancia de los procesos.

NEXT

Métodos basados en prioridades

Descripción

Ventajas

Desventajas

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

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

Permite a los usuarios controlar la importancia de sus procesos.

Puede ser injusta para los procesos con baja prioridad.

NEXT

Métodos multicolas

Descripción

Ventajas

Desventajas

Puede ser complejo de implementar.

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

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

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

NEXT

Sincronización y comunicación entre procesos.

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.

NEXT

Sincronización entre procesos

Métodos de sincronización

  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.

NEXT

Sincronización entre procesos

Necesidad

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í.

NEXT

Postergación indefinida e interbloqueo

Postergación indefinida

Interbloqueo

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.

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.

NEXT

El problema de la sección crítica

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.

NEXT

Soluciones algorítmicas y hardware

Soluciones algorítmicas

  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.

NEXT

Soluciones algorítmicas y hardware

Soluciones hardware

  • 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.

NEXT

Herramientas de programación concurrente.

Definicion

Ejemplos

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

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

NEXT

Problemas clásicos de sincronización

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.

NEXT

Comunicación entre procesos.

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.

Mensajes

Taxonomía de los mecanismos de paso de mensajes

Primitivas de comunicación.

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

Modo de comunicación

  • Comunicación sincrónica
  • Comunicación asincrónica

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

Recibir: Recibe un mensaje de un proceso fuente.

Tipo de acoplamiento

  • Acoplamiento estrecho
  • Acoplamiento débil

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

Ubicación de los procesos

  • Comunicación entre procesos en el mismo sistema
  • Comunicación entre procesos en diferentes sistemas

NEXT

GRACIAS