Un hilo de ejecución, en sistemas operativos, es una
característica que permite a una aplicación realizar varias tareas
concurrentemente. Los distintos hilos de ejecución comparten una serie de
recursos tales como el espacio de memoria, los archivos abiertos, situación de
autenticación, etc. Esta técnica permite simplificar el diseño de una
aplicación que debe llevar a cabo distintas funciones simultáneamente.
Los hilos de ejecución que comparten los mismos
recursos, sumados a estos recursos, son en conjunto conocidos como un proceso.
El hecho de que los hilos de ejecución de un mismo proceso compartan los
recursos hace que cualquiera de estos hilos pueda modificar éstos.
Cuando un hilo modifica un dato en la memoria, los
otros hilos acceden e ese dato modificado
inmediatamente.
Un ejemplo de la utilización de hilos es tener un hilo
atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo
hace una larga operación internamente. De esta manera el programa responde de
manera más ágil a la interacción con el usuario. También pueden ser utilizados
por una aplicación servidora para dar servicio a múltiples clientes.
Hilos y Multihilos
Sincronización de hilos
Todos los hilos comparten el mismo espacio de
direcciones y otros recursos como pueden ser archivos abiertos. Cualquier
modificación de un recurso desde un hilo afecta al entorno del resto de los
hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de
los distintos hilos para que no interfieran unos con otros o corrompan
estructuras de datos.
Formas de multihilos
Los sistemas operativos generalmente implementan
hilos de dos maneras:
Multihilo apropiativo: permite al sistema operativo
determinar cuándo 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 fenómeno conocido como inversión de prioridades y otros problemas.
Multihilo cooperativo: depende del mismo hilo
abandonar el control cuando llega a un punto de detención, lo cual puede traer
problemas cuando el hilo espera la disponibilidad de un recurso.
Procesamiento asíncrono
Los elementos asíncronos 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 función guardar una copia de respaldo mientras
se continúa con la operación de escritura por el usuario sin interferir en la
misma.
Aceleración de la ejecución
Se pueden ejecutar, por ejemplo, un lote mientras otro
hilo lee el lote siguiente de un dispositivo.
Implementaciones
Hay dos grandes categorías en la implementación de
hilos:
Hilos a nivel de usuario
Hilos a nivel de Kernel
MODELOS DE PROCESADORES
8086
y 8088 (de 1978 a 1982)
*Son los primeros procesadores
utilizados en PC.
Carecían de instrucciones de
coma flotante, pero para implementar estas se podían complementar con el
coprocesador matemático 8087, que era el más utilizado, aunque no el único.
i386SX
– Procesador de
32bits, pero externamente se comunicaba a 16bits, lo que hacía que fuera a la
mitad de la velocidad de un 80386 normal.
i386SX Now - Versión del 80386SX, compatible pin a pin con los procesadores 80286, desarrollado por Intel para poder actualizar los 80286 sin necesidad de cambiar de placa base.
i386SX Now - Versión del 80386SX, compatible pin a pin con los procesadores 80286, desarrollado por Intel para poder actualizar los 80286 sin necesidad de cambiar de placa base.
Pentium (de 1993 a 1997)
Los primeros Pentium tenían
una frecuencia de entre 60Mhz, 66Mhz, 75Mhz y 133Mhz, y a pesar de las mejoras
en su estructura, entre las que destaca su arquitectura escalable, no llegaban
a superar a los i486 de Intel que en ese momento había en el mercado, y mucho
menos a los Cyrix y Am486 DX4.
Pentium
Pro (de 1995 hasta 1998)
El Pentium PRO no fue diseñado como sustituto de ningún procesador,
sino como un procesador para ordenadores de altas prestaciones destinados a
estaciones de trabajo y servidores.
MODELO DE ESTACION
DE TRABAJO
El sistema consta de estaciones de trabajo (PC)
dispersas conectadas entre sí mediante una red de área local (LAN).
Pueden contar o no con disco rígido en cada una de
ellas.
Los usuarios tienen:
Una cantidad fija de poder de cómputo exclusiva.
Un alto grado de autonomía para asignar los recursos
de su estación de trabajo.
Uso de los discos en las estaciones de trabajo:
Sin disco:
Bajo costo, fácil mantenimiento del hardware y del
software, simetría y flexibilidad.
Gran uso de la red, los servidores de archivos se
pueden convertir en cuellos de botella.
Disco para paginación y archivos de tipo borrador:
Reduce la carga de la red respecto del caso anterior.
Alto costo debido al gran número de discos necesarios.
Disco para paginación, archivos de tipo borrador y
archivos binarios (ejecutables):
Reduce aún más la carga sobre la red.
Alto costo y complejidad adicional para actualizar los
binarios.
Disco para paginación, borrador, binarios y
ocultamiento de archivos:
Reduce aún más la carga de red y de los servidores de
archivos.
Alto costo.
Problemas de consistencia del caché.
Sistema local de archivos completo:
Escasa carga en la red.
Elimina la necesidad de los servidores de archivos.
Pérdida de transparencia.
MODELOS DE PLIAS DE PROCESADORES
Se dispone de un conjunto de cpu que se pueden asignar
dinámicamente a los usuarios según la demanda.
Los usuarios no disponen de estaciones de trabajo sino
de terminales gráficas de alto rendimiento.
El principal argumento para la centralización del
poder de cómputo como una pila de procesadores proviene de la teoría de colas:
Llamamos “l” a la tasa de entradas totales de
solicitudes por segundo de todos los usuarios combinados.
Llamamos “m” a la tasa de procesamiento de solicitudes
por parte del servidor.
Para una operación estable debe darse que “m > l”:
HIBRIDO
Se puede establecer una
mediación al proporcionar cada usuario una estación de trabajo personal y
además tener una pila de procesadores. Aunque esta solución es mas cara que
cualquiera de los modelos puros, combina las ventajas de ambos.
El trabajo interactivo se
puede llevar acabo en las estaciones de trabajo con una respuesta garantizada.
Sin embargo las estaciones iniciativas no se utilizan, lo cual hace mas
sencillo el diseño del sistema. Solo se dejan sin utilizar. En vez de esto,
todos los procesos no interactivos se ejecutan en la pila de procesadores, asi
como todo el computo pesado en general. Este modelo proporciona una respuesta
interactiva mas rápida, un uso eficiente de los recursos y un diseño sencillo.
No hay comentarios:
Publicar un comentario