Вы находитесь на странице: 1из 23

SISTEMAS OPERATIVOS II

Mtodos de distribucin de carga (hilos, tareas, procesos)

INTRODUCCION A LOS HILOS


ES POSIBLE DISPONER EN UN PROCESO DE MS DE UN FLUJO DE EJECUCIN. A CADA UNO DE ESTOS FLUJOS LE DENOMINAREMOS "THREAD" (HILO). LA INTRODUCCIN DE THREADS EN LA CODIFICACIN DE SERVIDORES APORTA VENTAJAS E INCONVENIENTES QUE SERN ESTUDIADOS EN PRIMER LUGAR. POR OTRA PARTE, EN UN SD SE DISPONE DE MS DE UN PROCESADOR.

HILOS
EN LA MAYORIA DE LOS SISTEMAS OPERATIVOS TRADICIONALES CADA PROCESO TIENE UN ESPACIO DE DIRECCIONES Y UN HILO DE CONTROL. DE HECHO, ESA ES CASI LA DEFINICION DE UN PROCESO. LOS HILOS SON UN CONCEPTO RELATIVAMENTE NUEVO DE LOS S.O

CONCEPTO POR HILO Y POR PROCESO


ELEMENTOS POR HILO
CONTADOR DEL PROGRAMA PILA CONJUNTO DE REGISTROS HILOS HIJOS ESTADOS.

ELEMENTOS POR PROCESO


ESPACIO DE DIRECCIONES. VARIABLES GLOBALES.

ARCHIVOS ABIERTOS .
PROCESOS HIJOS. SEALES.

SEMAFOROS.
INFORMACION CONTABLE.

HILOS Y PROCESOS
LOS HILOS NO PUEDEN EJECUTARSE ELLOS SOLOS; REQUIEREN LA SUPERVISIN DE UN PROCESO PADRE PARA CORRER. DENTRO DE CADA PROCESO HAY VARIOS HILOS EJECUTNDOSE. POR EJEMPLO, WORD PUEDE TENER UN HILO EN BACKGROUND CHEQUEANDO AUTOMTICAMENTE LA GRAMTICA DE LO QUE ESTOY ESCRIBIENDO, MIENTRAS OTRO HILO PUEDE ESTAR SALVANDO AUTOMTICAMENTE LOS CAMBIOS DEL DOCUMENTO EN EL QUE ESTOY TRABAJANDO.

ESTRUCTURA DE LOS HILOS


UN HILO (PROCESO LIGERO) ES UNA UNIDAD BSICA DE UTILIZACIN DE LA CPU, Y CONSISTE EN UN CONTADOR DE PROGRAMA, UN JUEGO DE REGISTROS Y UN ESPACIO DE PILA. LOS HILOS DENTRO DE UNA MISMA APLICACIN COMPARTEN:

LA SECCIN DE CDIGO.
LA SECCIN DE DATOS. LOS RECURSOS DEL SO (ARCHIVOS ABIERTOS Y SEALES).

ESTADOS DE UN HILO
LOS PRINCIPALES ESTADOS DE UN HILO SON: EJECUCIN, PREPARADO Y BLOQUEADO; Y HAY CUATRO OPERACIONES BSICAS RELACIONADAS CON EL CAMBIO DE ESTADO DE LOS HILOS: CREACIN: EN GENERAL, CUANDO SE CREA UN NUEVO PROCESO SE CREA TAMBIN UN HILO PARA ESE PROCESO. POSTERIORMENTE, ESE HILO PUEDE CREAR NUEVOS HILOS DNDOLES UN PUNTERO DE INSTRUCCIN Y ALGUNOS ARGUMENTOS. ESE HILO SE COLOCAR EN LA COLA DE PREPARADOS. BLOQUEO: CUANDO UN HILO DEBE ESPERAR POR UN SUCESO, SE LE BLOQUEA GUARDANDO SUS REGISTROS. AS EL PROCESADOR PASAR A EJECUTAR OTRO HILO PREPARADO.

DESBLOQUEO: CUANDO SE PRODUCE EL SUCESO POR EL QUE UN HILO SE BLOQUE PASA A LA COLA DE LISTOS. TERMINACIN: CUANDO UN HILO FINALIZA, SE LIBERAN SU CONTEXTO Y SUS PILAS. UN PUNTO IMPORTANTE ES LA POSIBILIDAD DE QUE EL BLOQUEO DE UN HILO LLEVE AL BLOQUEO DE TODO EL PROCESO. ES DECIR, QUE EL BLOQUEO DE UN HILO LLEVE AL BLOQUEO DE TODOS LOS HILOS QUE LO COMPONEN, AN CUANDO EL PROCESO EST PREPARADO.

La figura 4.4 muestra un programa que calcula dos valores y los suma. La figura 4.5 muestra el proceso tradicional UNIX asociado al programa con el contexto del proceso determinado por tres bloques distintos, los registros, la identidad del proceso y los recursos

public class SimpleHilo { public static void main(String[] args) { // AQU SE INICIA EL PROCESO DEL HILO //AGREGAR UN CONTADOR ES OPCIONAL int contador = 0; while (true){ System.out.println(EJECUTANDO); try { Thread.sleep(1000); //AQU SE ESTABLECEN LOS MILISEGUNDOS DE EJECUCION } catch (InterruptedException ex) { Logger.getLogger(SimpleHilo.class.getName()).log(Level.SEVERE, null, ex); } } } }

CDIGO DE UN HILO SIMPLE EN JAVA NETBEANS

EJEMPLO DE UN HILO EN NETBEANS CON INTERFAZ GRAFICA

RECURSOS COMPARTIDOS Y NO COMPARTIDOS


RECURSOS COMPARTIDOS ENTRE LOS HILOS: CDIGO (INSTRUCCIONES). VARIABLES GLOBALES. FICHEROS Y DISPOSITIVOS ABIERTOS. RECURSOS NO COMPARTIDOS ENTRE LOS HILOS: CONTADOR DEL PROGRAMA (CADA HILO PUEDE EJECUTAR UNA SECCIN DISTINTA DE CDIGO). REGISTROS DE CPU. PILA PARA LAS VARIABLES LOCALES DE LOS PROCEDIMIENTOS A LAS QUE SE INVOCA DESPUS DE CREAR UN HILO. ESTADO: DISTINTOS HILOS PUEDEN ESTAR EN EJECUCIN, LISTOS O BLOQUEADOS ESPERANDO UN EVENTO.

VENTAJAS: DE LOS HILOS SOBRE LOS PROCESOS.


SE TARDA MUCHO MENOS TIEMPO EN CREAR UN NUEVO HILO EN UN PROCESO EXISTENTE QUE EN CREAR UN NUEVO PROCESO. SE TARDA MUCHO MENOS TIEMPO EN TERMINAR UN HILO QUE UN PROCESO. SE TARDA MUCHO MENOS TIEMPO EN CONMUTAR ENTRE HILOS DE UN MISMO PROCESO QUE ENTRE PROCESOS. LOS HILOS HACEN MS RPIDA LA COMUNICACIN ENTRE PROCESOS, YA QUE AL COMPARTIR MEMORIA Y RECURSOS, SE PUEDEN COMUNICAR ENTRE S SIN INVOCAR EL NCLEO DEL SO.

QU ES LA PROGRAMACIN MULTIHILOS? UN PROGRAMA MULTIHILO CONTIENE DOS O MS PARTES QUE SE PUEDEN EJECUTAR DE MANERA CONCURRENTE O SIMULTNEA. A CADA UNA DE ESAS PARTES SE LES DENOMINA HILO Y CADA UNO DE ELLOS DEFINE UN CAMINO DE EJECUCIN INDEPENDIENTE. SE PUEDE VER A LA PROGRAMACIN MULTIHILO COMO UNA FORMA ESPECIALIZADA DE MULTITAREA.

MULTIHILOS

Cada hilo es lanzado independientemente, segn el nmero de hilos que se haya seleccionado. Cada hilo ejecuta un algoritmo gentico de la biblioteca y cada algoritmo gentico intercambia (en otro hilo) su individuo mejor, sin necesidad de parar la ejecucin del algoritmo y esperar a que el intercambio se acabe de realizar. Desventajas de un multihilo: Los mltiples hilos pueden interferir uno con el otro al compartir recursos de hardware.

LOS SISTEMAS OPERATIVOS GENERALMENTE IMPLEMENTAN HILOS DE DOS MANERAS:


MULTIHILO APROPIATIVO.

MULTIHILO COOPERATIVO..

MULTIHILO APROPIATIVO
PERMITE AL SISTEMA OPERATIVO DETERMINAR CUNDO DEBE HABER UN CAMBIO DE CONTEXTO. LA DESVENTAJA DE ESTO ES QUE EL SISTEMA PUEDE HACER UN CAMBIO DE CONTEXTO EN UN MOMENTO INADECUADO, CAUSANDO UN FENMENO CONOCIDO COMO INVERSIN DE PRIORIDADES Y OTROS PROBLEMAS.

MULTIHILO COOPERATIVO

DEPENDE DEL MISMO HILO ABANDONAR EL CONTROL CUANDO LLEGA A UN PUNTO DE DETENCIN, LO CUAL PUEDE TRAER PROBLEMAS CUANDO EL HILO ESPERA LA DISPONIBILIDAD DE UN RECURSO. EL SOPORTE DE HARDWARE PARA MULTIHILO DESDE HACE POCO SE ENCUENTRA DISPONIBLE. ESTA CARACTERSTICA FUE INTRODUCIDA POR INTEL EN EL PENTIUM 4, BAJO EL NOMBRE DE HYPER THREADING.

PROCESAMIENTO ASNCRONO
LOS ELEMENTOS ASNCRONOS DE UN PROGRAMA SE PUEDEN IMPLEMENTAR COMO HILOS. UN EJEMPLO ES COMO LOS SOFTWARES DE PROCESAMIENTO DE TEXTO GUARDAN ARCHIVOS TEMPORALES CUANDO SE EST TRABAJANDO EN DICHO PROGRAMA. SE CREA UN HILO QUE TIENE COMO FUNCIN GUARDAR UNA COPIA DE RESPALDO MIENTRAS SE CONTINA CON LA OPERACIN DE ESCRITURA POR EL USUARIO SIN INTERFERIR EN LA MISMA.

TAREAS E HILOS.
UNIDAD MNIMA DE ASIGNACIN: TAREA. UNIDAD MNIMA DE EXPEDICIN: HILO. DOS HILOS DE UNA MISMA TAREA (DENOMINADOS HILOS PARES) COMPARTEN EL SEGMENTO DE CDIGO, EL SEGMENTO DE DATOS Y UN ESPACIO DE PILA, ES DECIR, LOS RECURSOS ASIGNADOS A LA TAREA.
CUANDO UN HILO EST EN EJECUCIN, POSEE EL ACCESO A TODOS LOS RECURSOS QUE TIENE ASIGNADOS LA TAREA.

MULTITAREA BASADA EN PROCESOS


TAL VEZ STA SEA LA FORMA MS FAMILIAR DE MULTITAREA. PODEMOS DEFINIR A UN PROCESO COMO UN PROGRAMA EN EJECUCIN. PARTIENDO DE LO ANTERIOR, LA MULTITAREA BASADA EN PROCESOS ES LA CAPACIDAD DE UNA COMPUTADORA DE EJECUTAR MS DE UN PROGRAMA A LA VEZ. EN ESTE CASO, LA UNIDAD DE CDIGO MS PEQUEA ES EL PROGRAMA.

MULTITAREA BASADA EN HILOS


CON LA MULTITAREA BASADA EN HILOS, EL HILO ES LA UNIDAD DE CDIGO MS PEQUEA. UN PROGRAMA PUEDE REALIZAR DOS O MS TAREAS DE MANERA SIMULTNEA, COMO GUARDAR UN ARCHIVO MIENTRAS SEGUIMOS EDITNDOLO. LA MULTITAREA BASADA EN HILOS GENERA UNA SOBRECARGA MENOR QUE LA BASADA EN PROCESOS. LOS PROCESOS SON TAREAS QUE REQUIEREN UNA MAYOR CANTIDAD DE RECURSOS DEL CPU, ADEMS QUE LA COMUNICACIN ENTRE ELLOS SUELE SER LIMITADA. LA MULTITAREA BASADA EN HILOS PERMITE ESCRIBIR PROGRAMAS MUY EFICIENTES QUE HACEN UNA UTILIZACIN PTIMA DEL PROCESADOR, MINIMIZANDO EL TIEMPO LIBRE QUE STE TIENE.

Вам также может понравиться