Hilos Windows, estructura de un proceso en Windows
Implementa mapeo uno a uno
Cada hilo contiene
Ø Una id
Ø Conjunto de registros
Ø Pilas de usuarios y kernel separadas
Ø ESTADO DE HILOS EN WINDOWS
Ejecutables: hilo en posibilidad de ejecutarse: listo, Stanby, Ejecutando
No ejecutable: Transición, Esperando, Finalizado
Ø ESTADOS DE HILOS DE PROCESOS EN LINUX
Comparten el mismo
Ø ESTADO DE HILOS EN SOLARIS
Ejecutables: Planificables x el procesador
No ejecutables: No planificables x el procesador
HILOS DE JAVA PUDEN SER CREADOR POR:
Ø Extensión de la clase de hilos
Ø Implementando una interface que los corra
PLANIFICACIÓN DE LA CPU
Conceptos Básicos
Se encarga como es q se utiliza el procesador, sistemas multiprogramados varios procesos a la vez. Tratar de repartir tiempos, algoritmos de planificación es buena opción para desarrollar este tipo de actividades.
Ø La máxima utilización de la CPU se obtiene con multiprogramación
Ø El ciclo de ráfagas de CPU-E/S- El proceso de ejecución consiste en un
Ø Distribución de ráfagas de CPU
Planificador de CPU
Ø Selecciona de los procesos en memoria aquellos que estén listos para ejecutar, y le entrega la CPU a uno de ellos
Ø Las decisiones de planificación de CPU tiene lugar cuando un proceso:
1. Conmuta de un estado de corrida a un estado de espera
2. Conmuta de un estado de corrida a un estado de listo
3. Conmuta de esperando a listo
4. Termina
Ø La planificación en 1 y 4 no es expropiativa, en los otros es expropiativa (escoge para ejecutar el de mejores condiciones (que el tiempo de ejecución sea menor que el tiempo de atención))
Despachador
Ø Le da control de la CPU al proceso seleccionado por el planificador de corto plazo, esto incluye
1. Conmutación de contexto
2. Conmutación al modo usuario
3. Saltar a la ubicación adecuada en el programa del usuario para reiniciar el programa
Latencia de despacho
Tiempo en que se demora el despachador para parar un proceso e iniciar otro.
Criterios de planificación
Ø Utilización de CPU-Mantener la CPU tan ocupada como sea posible
Ø Rendimiento: numero de procesos que culminan su ejecución por unidad de tiempo
Ø Tiempo de entrega/estancia/retorno
Ø Tiempo de esprea
Ø Tiempo de respuesta
Ø Predicibilidad: Determinístico, bajo las mismas condiciones debe realizar lo mismo y hacer lo mismo
Ningún proceso se muere por inanición, todo proceso debe progresar.
Ø Máxima utilización de CPU
Ø Máximo rendimiento
Ø Minimizar el tiempo de entrega
Ø Minimizar el tiempo de espera
Ø Minimizar el tiempo de respuesta
Ø Justicia
Ø Máximo num de usuarios intereactivos
Ø Máxima capacidad de ejecución
Ø Predicibilidad
Ø Minimización de sobrecarga
Algoritmos de planificación
Reglas por medio de las cuales el sistema determina quién debe ser el primero en iniciar
Ø FCFS/PEPS: Los procesos cortos sufren si llegan después de los procesos largos, a veces justa, predecible.
Ø SJF/SPN: el tiempo restante compensa a todos
Ø Round-Robin, asignación cíclica/turno. Equilibra FCFS/SRTN, usa cola circular con FCFS/ prioridades con slice/quantum para cada proceso
Ø Por prioridad, siempre se elige el de mayor prioridad, compensada por prioridad envejecimiento (la compensación por envejecimiento, mejora la prioridad de los procesos para no dejar de atenderlos)
Ø HRN: Escoge el proceso con tasa de respuesta más alto, es costosa Prioridad=(w+s)/s
Ø MLQ, Colas multinivel: Combina procesos del sistema (por prioridad), interactivos(RR), lotes (FCFS/SRTN)
Ø MLQ con retroalimentación: Los procesos se pueden reubicar en diferentes colas de acuerdo al comportamiento. Los procesos limitados por procesos se envían a la cola de menor prioridad, los interactivos se ubican con mayor prioridad
Ø FSS (fair shale schedule), porción justa o reparto equitativo, los grupo de porción justa obtiene prioridades de acuerdo con su proximidad al logro de sus metas en la utilización de recursos. Los grupos que van mal tienen mayor prioridad.