sistemas-operativos
DESCRIPTION
sistemas-operativosUNIDAD 1TRANSCRIPT
Que es un hilo
Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo
Diferencia entre hilo y proceso:
Los hilos, a diferencia de los procesos, no son independientes entre sí.
El término multi hilo hace referencia a la capacidad de un SO para mantener varios hilos de ejecución dentro del mismo proceso
Ejecución concurrente y paralela:
Concurrente solo ejecuta una tarea a la vez y hasta que termina inicia otra y paralela puede ejecutar varias tareas al mismo tiempo
Modelo de Dos-Niveles
Similar a M:M, excepto que permite que un hilo de usuario sea asociado a un hilo del núcleo
Los hilos Java (Java threads)
Son administrados por la Máquina Virtual de Java o Java Virtual Machine (JVM)
Ciclo de vida de un hilo java
New, runnable, waiting, time waiting, terminated, blocked.
PTHREAD_CREATE_JOINABLE.- un thread podrá esperar su terminación y obtener su valor de retorno. Por defecto todos los threads son creados con este valor
PTHREAD_CREATE_DETACHED.- el thread terminará sin verificar si algún thread espera aque concluya
La función pthread_join().- Suspende la ejecución de un thread hasta que el thread objetivo haya concluido su ejecución.
Cancelación asíncrona
Termina al thread objetivo de manera inmediata
Cancelación diferida
Se verifica en puntos de cancelación específicos si el thread objetivo debe ser cancelado
Un manejador de señales (signal handler) o rutina de tratamiento de señales es utilizado para procesar señales
1. La señal es generada por un evento en particular
2. La señal es enviada a un proceso
3. La señal es tratada o manejada (handled)
clone() permite que una tarea hijo comparta el espacio de direcciones de una tarea padre (proceso)
unidad_04
Planificador de la CPU
Selecciona un proceso entre todos los que estén en memoria y que estén listos para ser ejecutado, y le asigna la CPU
Las decisiones de planificación (instantes de planificación) se llevan a cabo cuando un proceso:
1. Cambia el proceso se crea
2. Cambia de estado de ejecución a listo (ready)
3. Cambia de estado de ejecución a espera
4. Concluye su ejecución
El despachador (dispatcher) es un módulo que proporciona el control de la CPU a los procesos seleccionados por el planificador a corto plazo
Latencia de despacho (dispatch latency) – tiempo que tarda el despachador para detener un proceso e iniciar la ejecución de otro
Criterios de Planificación
Utilización de la CPU – mantener a la CPU tan ocupada como sea posible
Tasa de procesamiento (throughput) – # de procesos que concluyen su ejecución por unidad de tiempo
Tiempo de ejecución (turnaround time) – cantidad de tiempo para ejecutar un proceso en particular
Tiempo de espera – cantidad de tiempo que un proceso ha permanecido en la cola de espera
Tiempo de respuesta – cantidad de tiempo en el que el proceso tarda en responder, no el tiempo que tarda en enviar a la salida toda la información de respuesta
Colas Multinivel
Se divide la cola de tareas listas en varias colas distintas:
De primer plano (foreground) – interactivas
De segundo plano (background) – procesamiento por lotes
Cada cola tiene su propio algoritmo de planificación
Primer plano – RR
Segundo plano – FCFS
Además, debe definirse una planificación entre las colas
Planificación por prioridades fijas; (i.e., las colas del primer plano tienen una prioridad absoluta mayor que las del segundo plano). Posibilidad de muerte por inanición.
Time slice – cada cola obtiene una cierta cantidad de tiempo de CPU que puede ser planificado entre sus procesos; i.e., 80% para primer plano en RR y 20% para segundo plano en FCFS
Colas Multinivel Realimentadas
Un proceso puede moverse de una cola a otra; el envejecimiento puede evitarse de esta manera
Multiprocesamiento asimétrico – tan solo un procesador accede a las estructuras de datos del sistema, reduciendo la necesidad de compartir datos
Multiprocesamiento simétrico (SMP) – cada uno de los procesadores se auto-planifica, todos los procesos pueden estar un una cola común de procesos listos, o cada procesador puede tener su propia cola de procesos listos
Afinidad al procesador – los procesos tiene afinidad a los procesadores en los que se están ejecutando
Afinidad suave
Afinidad dura
Evaluación de los algoritmos
Modelo determinista – toma una particular y predeterminada carga de trabajo y define el desempeño de cada algoritmo para esa carga
Modelo de colas
Implementación