sistemas-operativos

5
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

Upload: mario-alejandro-fuentes

Post on 09-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

sistemas-operativosUNIDAD 1

TRANSCRIPT

Page 1: sistemas-operativos

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.

Page 2: sistemas-operativos

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

Page 3: sistemas-operativos

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

Page 4: sistemas-operativos

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