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