domingo, 18 de abril de 2010

Dieciseisava clase

LA CPU CAMBIA DE PROCESO A PROCESO

Ø Cuando la cps cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso

Ø La conmutación de contexto es trabajo extra, el sistema no realiza trabajos útil mientras conmuta, depende en gran medida el apoyo del hardware

Ø Cuando un proceso está ejecutándose su estado reside en los registros del computador

Ø Cuando un proceso no se está ejecutando, su estado reside en el BCP.

Planificadores

Ø El planificador de corto plazo o planificador de CPU selecciona qye proceso debe ser ejecutado enseguida y se le asigna la CPU. Bajo nivel, scheduler/despachador es solicitado muy frecuentemente (milisegundos (debe ser rápido))

Ø Planificador de mediano plazo: intermedio

Ø Planificador de largo plazo o planificador de trabajos: selecciona que proceso debe ser traido a la cola de listos, es solicitado con poca frecuencia (seg, minutos (puede ser lento))

Ø EL planificador de largo plazo controla el grado de multiprogramación

Ø Los procesos pueden ser descritos como:

· Procesos limitados por E/S-consumen más tiempo realizando operaciones de E/S que cálculos, causan muchas ráfagas cortas a la CPU

· Procesos limitados por CPU consumen mas tiempo

Colas de largo plazo: admisión proceso

Colas de mediano plazo: colas de listos, suspendidos o bloqueados

Colas de corto plazo:

Creacion de procesos

Ø Los procesos padren crean procesos hijos, los cuales, a su vez crean otros procesos, conformando un árbol de procesos.

Ø Recursos compartidos:

· Los procesos padres e hijos comparten los recursos

· Los hijos comparten un subconjunto de los recursos del padre

· EL padre y el hijo no comparten recursos

Ø Ejecución

· El padre y el hijo se ejecutan concurrentemente

· El padre espera a que termine el hijo

Ø Espacio de direcciones

Jerarquía de procesos

Ø Grupos de proceso dependientes de cada Shell

Ø Familia de procesos

· Proceso hijo

· Proceso padre

· Proceso hermano

· Proceso abuelo

Ø Vida de un proceso

· Crea

· Ejecuta

· Muere o termina

Ø Ejecución del proceso

· Batch o por lotes: Procesos que se disparan y no necesitan interacción (segundo plano). Ejemplo: el spooler y el transcriptor del spool

· Interactivo: proceso utiliza un dispositivo de E/S para dialogar con el utilizador (primer plano)

Ø Grupo de procesos

Procesos cooperativos

Los proceso independientes no pueden afectar o se afectados por la ejecución de otros procesos.

Ø Los procesos cooperativos pueden afectar o se afectados por la ejecución de otros procesos

Ø El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen información que es consumido por los procesos consumidores

· Buffer ilimitado o no acotado, no establece un límite práctico para el tamaño del buffer.

· El buffer limitado o acotado, asume que hay un tamaño fijo de buffer

HILOS

Ø Beneficios

Ø Hilaos de usuario y de núcleo

Ø Modelos multihilos

Ø Hilos Solaris 2

Ø Hilos Java

Ms-dos usa un solo hilo por proceso

Unix V soporta múltiples procesos por usuarios pero solo soporta un hilo por proceso

Windows NT, 2000, XP, Mach

Un hilo (o proceso ligero/liviano) es una unidad básica de utilización de la CPU, consiste de:

Ø Contador del programa

Ø Conjunto de registros

Ø Espacio de pila

Un hilo comparte con sus hilos pares su:

Ø Sección de código

Ø Sección de datos

Ø Los recursos del sistema operativo

Colectivamente conocido como una tarea.

Un proceso tradicional o pesado es igual a una tarea con un solo hilo

Mutlihilos

Ø Capacidad de un SO para soportar múltiples trayectorias concurrentes de ejecución dentro de un mismo proceso

Ø Algunos sistemas UNIX utilizan múltiples procesos de usuario pero con un solo hilo

Ø El ambiente de ejecución Java utiliza con múltiples hilos

Ø Múltiples procesos y múltiples hilos se encuentran en Windows, Solaris, y la mayoría de las versiones modernas de UNIX

Caracterísiticas multihilos:

Ø Dentro de un proceso hay subproceso y se comparten los recursos

Ventajas:

Ø Trabajar en un ambiente pseudoparalelo

Ø En una tarea multihilo, mientras un hilo servidor está bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo

· La cooperación de múltiples hilos en el mismo trabajo le proporciona un alto rendimiento y mejora la eficiencia.

· Las aplicaciones que requieren compartir un buffer común (por ejemplo, productor-consumidor) se benefician de la utilización

Ø Los hilos proporcionan un mecanismo que permiten a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo

Ø El núcleo puede apoyar los hilos como en Mach y OS/2

Ø Los hilos a nivel de usuario; soportados arriba por el kernel, a través de una seria de llamadas de biblioteca en el nivel del usuario (como en el proyecto CMU de Andrew)

Ø Un enfoque híbrido implementa tanto los hilos a nivel de usuario como hilos apoyados por el kernel (como Solaris 2)

Hilos: procesos

Descripción

Ejemplo

1:1

Cada hilo es un único proceso con su propio espacio de direcciones y sus recursos

Implementaciones tradicionales de UNIX

M:1

Un proceso define un espacio de direcciones y la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar multiples hilos

Windows NT, Solaris, OS/2, OS/390, MACH

1:M

Un hilo puede mirgrar desde un ambiente de proceso a toro. Esto permite que un hilo se puede mover fácilmente entre sistemas distintos

Ra (Clouds), Esmerald

M:M

Combina los atributos de M:1 y 1:M

TRIX

No hay comentarios:

Publicar un comentario