Want to make creations as awesome as this one?

Transcript

Empezar

Yariel Alfonso Valdez TrianaAranza Estefanía García AlvaradoMarco Antonio Mauricio Martínez

Administraición de Procesos y del procesador

Un proceso en sí es una instancia de un programa; es la actividad de ejecutarlo, y cada uno tiene sus propios recursos asignados, un estado y un tiempo de procesamiento compartido en el procesador.

¿Qué son los procesos?

Diagrama sobre la ejecución de procesos del sistema operativo.

Dependiendo del entorno de ejecución, puede tener funciones más avanzadas como un recolector de basura, generación dinámica de código, soporte para reflexión y excepciones.

Existen distintos entornos de ejecución, estos pueden proveer al proceso con librerías dinámicas, memoria, acceso a APIs del sistema.

Entornos de Ejecución

Runtimes clasificados

Jerarquía de procesos

Fueron procesos que crearon otros procesos, también conocidos como subprocesos, pueden correr en paralelo al proceso prinicipal, y cada proceso puede tener N hijos, mientras que solo un padre.

procesos Padre

Son procesos creados por otros procesos, pueden ser de apoyo para tareas bloqueantes que puedan ralentizar al proceso principal, y dependiendo del sistema operativo, puede terminarse a sí mismo o solo puede ser terminado por el Sistema Operativo o el proceso padre.

Procesos Hijos

App
SO
Libs
Contenedor 1
App
SO
Libs
Contenedor 2
Anfitrión
Recursos
Libs
Apps
Kernel Compartido

Los contenedores son entornos dedicados a una a aplicación y contienen absolutamente todo para ejecutarla, desde el sistema operativo, hasta las librerías, dependencias y la aplicación en sí.

Procesos en Contenedores

Eventos que pueden crear procesos:

Creación de procesos

Formas de las salidas del programa

Terminación de procesos

El planificador selecciona otro proceso

El planificador selecciona este proceso

La entrada ya está disponible

El proceso se bloquea para recibir entrada

Bloqueado
Listo
En ejecución

Estados y transiciones

En sistemas operativos UNIX, algunos procesos pueden terminar normalmente, pero seguir apareciendo en la Tabla de Procesos, que gestiona los procesos en ejecución. Esto ocurre por la jerarquía de procesos, ya que el proceso padre es responsable de eliminar a sus procesos hijos de la tabla.

Procesos Zombie y Huérfanos

Procesos Zombie y Huérfanos

Los procesos Zombie han terminado, pero siguen en la tabla porque el proceso padre no los ha eliminado aún.

procesos zombie

Son procesos que no tienen padre ya que este acabó o fue detenido pero no terminó el proceso hijo.

Procesos huérfanos

Un hilo (thread) es la unidad básica de procesamiento que puede ser gestionada por un sistema operativoLos hilos permiten que un programa lleve a cabo múltiples tareas simultáneamente dentro del mismo proceso, mejorando así el rendimiento, especialmente en sistemas multiprocesador.

Hilos

Hilos y procesos

Un hilo es un flujo de ejecución dentro de un proceso. Todos los hilos de un mismo proceso comparten el mismo espacio de direcciones y recursos.

Hilos

Es una instancia de un programa en ejecución. Cada proceso tiene su propio espacio de memoria (aislado) y sus propios recursos.

Procesos

Monitores

Semáforos

Mutex

Permiten que los hilos se bloqueen automáticamente al entrar en una sección crítica y se desbloqueen cuando salen de ella..

Son variables utilizadas para gestionar el acceso de múltiples hilos a un recurso compartido. .

Permite que solo un hilo acceda a una sección crítica de código a la vez.

Sincronización de HIlos

Hilos a nivel de usuario y a nivel de Kernel

La concurrencia se refiere a la ejecución simultánea o en paralelo de múltiples tareas o procesos dentro de un sistema.

Concurrencia

Se refiere a la ejecución de tareas o instrucciones una tras otra, en un orden estricto. En la programación secuencial, cada tarea debe completarse antes de que comience la siguiente. Esto es común en sistemas simples o programas donde las tareas dependen unas de otras.

Secuencialidad

Niveles, objetivos y criterios de planificación

Es un conjunto de políticas y mecanismos que gobiernan el orden en que se ejecutan los procesos en un sistema. Su objetivo principal es optimizar el rendimiento y proporcionar un servicio justo y eficiente a todos los procesos.

Planificación en Sistemas Operativos

Bajo Nivel (Planificación de CPU o Despacho)

Nivel Intermedio

Alto Nivel (Planificación de trabajos)

Niveles de Planificación

Predecibilidad

Máximo número de usuarios interactivos

Máxima capacidad de ejecución

Justicia

Objetivos de la Planificación

+ info

+ info

+ info

+ info

Evitar la postergación indefinida

Seguridad de las prioridades

Equilibrio en el uso de recursos

Minimización de la sobrecarga

Objetivos de la Planificación

+ info

+ info

+ info

+ info

Equidad

La planificación debe distribuir los recursos de manera justa entre todos los procesos.

Se busca que los recursos se utilicen de la manera más eficiente posible, minimizando el tiempo de inactividad.

Eficacia

En sistemas interactivos, se espera que el sistema responda rápidamente a las solicitudes de los usuarios.

Tiempo de respuesta

Es el tiempo que un proceso tarda desde que es admitido hasta que finaliza, lo que incluye el tiempo de espera y ejecución.

Tiempo de regreso

Criterios de Planificación

Ábreme
Ábreme

Algoritmos de Planificación

Planificación Apropiativa

Planificación No Apropiativa

Técnicas de administración del planificador

Planificación por Prioridad al Tiempo Restante más Corto (SRTF)

Planificación por Prioridad al más Corto (SJF, Short Job First)

Primero en Llegar – Primero en Salir (FIFO)

Planificación a Plazo Fijo

Técnicas de administración del planificador

+ info

+ info

+ info

+ info

Planificación Round Robin (RR)

Planificación el Siguiente con Relación de Respuesta Máxima (HRT)

Planificación del Tiempo Restante más Corto Primero (SRT)

Planificación el Siguiente con Relación de Respuesta Máxima (HRN)

Técnicas de administración del planificador

+ info

+ info

+ info

+ info

Colas de Retroalimentación de Niveles Múltiples

Planificación de Dos Niveles

Tamaño del Cuanto o Quantum

Planeación Round Robin

Técnicas de administración del planificador

+ info

+ info

+ info

+ info

Técnicas de administración del planificador

+ info

Planificación por el Comportamiento

Gracias

Se les quiere

Ejemplo

Minimizar el número de cambios de contexto entre procesos en un servidor crítico.Servidor crítico: es un servidor que desempeña funciones esenciales para el funcionamiento de una organización o sistema.

Planificación de Nivel Intermedio

Actúa en situaciones de sobrecarga del sistema. En ciertos casos, resulta ventajoso retirar temporalmente procesos de la memoria principal, reduciendo el número de procesos activos para mejorar el rendimiento. Esto permite disminuir la competencia por el procesador, logrando que los trabajos se completen más rápidamente.

Ejemplo

En un sistema multitarea, la planificación de bajo nivel decide si un proceso que está editando un documento en un procesador de texto puede continuar ejecutándose o si debe ceder la CPU a un navegador que está cargando una página web.

Ejemplo

Decides ayudar primero a quien ha esperado más tiempo, aunque la tarea sea más larga.

Ejemplo

En una oficina, los empleados rotan entre varias tareas, pero pueden ajustar la prioridad de sus actividades según lo que sea más urgente.

Ejemplo

En un sistema de control industrial, la planificación debe garantizar que los sensores y actuadores se activen siempre en un orden previsible.

Ejemplo

En un servidor web, la planificación de alto nivel decide qué solicitudes de clientes se colocan en la cola para ser procesadas, basándose en criterios como la prioridad o la disponibilidad de recursos.

Ejemplo

En un sistema con varios usuarios simultáneos, cuando el sistema se satura, la planificación de nivel intermedio puede suspender procesos de menor prioridad para garantizar que los procesos más críticos se ejecuten sin demoras.

Ejemplo

En un sistema donde muchos procesos compiten por la CPU, un proceso que lleva demasiado tiempo en espera tendrá su prioridad incrementada hasta que finalmente sea atendido.

Ejemplo

En un sistema operativo multitarea, si un proceso de alta prioridad necesita ejecutarse, el sistema puede pausar el proceso actual y asignar la CPU al de mayor prioridad.

Ejemplo

Si tienes tareas de distinta duración, decides primero hacer la más rápida.

Ejemplo

En una partida de videojuegos por turnos, cada jugador tiene 10 minutos para actuar. Si no termina, le toca al siguiente.

Ejemplo

Un sistema de colas en una impresora donde se asegura que los trabajos de impresión se procesen por orden de llegada.

Ejemplo

En un sistema batch, los procesos se ejecutan hasta su finalización sin interrupciones.Sistema batch: es un tipo de sistema de procesamiento en el que las tareas o trabajos se agrupan en lotes y se ejecutan sin interacción del usuario.

Planificación de Alto Nivel

Se encarga de decidir qué trabajos se admiten al sistema, trasladando los procesos del disco a la memoria principal. Es crucial en sistemas donde los recursos son limitados, ya que selecciona qué trabajos pueden competir activamente por esos recursos.

Ejemplo

Entregar una tarea con fecha límite; si no la entregas a tiempo, ya no vale.

Ejemplo

Organizar tus tareas en listas de prioridades, y moverlas de una lista a otra según cuánto tiempo tarden en completarse.

Ejemplo

Un proceso de copia de seguridad de un sistema puede tener una prioridad alta durante las horas nocturnas cuando el uso de recursos es bajo.

Ejemplo

Si tienes una tarea de 1 hora y otra de 10 minutos, haces primero la de 10 minutos aunque ya hayas empezado la de 1 hora.

Ejemplo

Priorizar una tarea que lleva mucho tiempo en espera aunque sea más larga, para evitar que se quede atrás indefinidamente.

Ejemplo

Si estás viendo una película, pero llega un mensaje urgente, pausas la película para responder.

Ejemplo

Una fila en el supermercado: el primer cliente en la fila es el primero en ser atendido.

Ejemplo

Si compartes la computadora con varios usuarios, aseguras que cada persona obtenga el mismo tiempo de uso, ajustando según lo que ya hayan utilizado.

Ejemplo

En un sistema de tiempo compartido, como un servidor Unix, se prioriza la respuesta rápida a cada usuario.Servidor Unix: es una computadora que utiliza un sistema operativo basado en Unix, diseñado para manejar múltiples tareas y usuarios simultáneamente.

Ejemplo

En un servidor de bases de datos, se busca ejecutar tantas consultas como sea posible con el menor tiempo de cambio entre ellas.

Ejemplo

En un centro de datos, balancear el uso de CPU, memoria y discos para evitar cuellos de botella.Cuello de botella: componente que está frenando al resto del sistema.

Ejemplo

Si en una carrera cada competidor tiene 1 minuto para correr, pero si reduces el tiempo a 10 segundos, pasarás más tiempo cambiando de corredor que corriendo.

Planificación de Bajo Nivel

Se encarga de asignar la CPU a los procesos listos para ejecutarse. El despachador del sistema operativo selecciona el siguiente proceso que se ejecutará en la CPU, lo que ocurre muchas veces por segundo.

Ejemplo

Procesas primero los archivos que tienes en tu escritorio antes de abrir los que están guardados en una memoria externa.