Want to create interactive content? It’s easy in Genially!
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
- 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.
- 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.
- 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
- 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.
- 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.
- 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:
- Análisis estático:
- Simulación:
- Bibliotecas y marcos de trabajo:
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