1. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
NOMBRE: JOHNNY PILLA,JULIO CESAR AGUALSACA, EDISON TOAPANTA,
ANGEL MALIZA, OSCAR CAYAMBE
FECHA: 13/12/16
MATERIA: SISTEMAS OPERATIVOS
TEMA: CONCEPTO DE HILO Y LOS MODELOS DE HILOS EXISTENTES, ASÍ
COMO LOS PRINCIPALES ASPECTOS DE SU DISEÑO COMO THREADS.
ADEMÁS, EXPLICAR LA INSERCIÓN DE HILOS EN EL ENTORNO DE UN
PROCESO, ASÍ COMO LA IMPLEMENTACIÓN DE SEÑALES,
TEMPORIZADORES Y EXCEPCIONES
GRUPO: 3
2. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
INTRODUCCIÓN:
OBJETIVO GENERAL:
Conocer acerca de la funcionalidad de los procesos ligeros (Hilos) en su desarrollo en los
Sistemas Operativos.
OBJETIVOS ESPECIFICOS:
Determinar la estructura de los procesos ligeros (Hilos).
Establecer los aspectos fundamentales de su diseño.
Analizar su entorno e implementación en ellos.
El presente documento contiene especificaciones claras efectivas y concisas acerca de los procesos
ligeros también conocidos como hilos, distribuido en secciones valorizadas por su concepto,
característica, modeló, funcionabilidad, e implementación dentro de Sistemas Operativos. Dentro
del desarrollo del documento se orientó de manera unificada al método de investigación cualitativa
debido a que es fundamentada, orientada al descubrimiento, procesó y descripción. Además de
tener información valida, real y profunda no generalizable.
Se argumentó queloshilos son una ejecución concreta de un programa, con un camino determinado
y un valor de sus variables determinados. Para acotar la unidad mínima de expedición y de
asignación de recursos es el proceso. De igual forma la Señal forma una interrupción al proceso. La
excepción: Es un evento que ocurre durante la ejecuciónde un programa y que requierela ejecución
de un fragmento de código situado fuera del flujo normal de ejecución y los Temporizadores: Nos
permitan medir correctamente los tiempos de ejecución asociados a programas o segmentos de
código.
Para la conceptualización del tema se tuvo pequeñas dificultades entre las cuales resalta la con
función entre un proceso pesado y ligero, además que muy pocos autores los llaman procesos
ligeros, por ende, a la hora de recabar información existió más tiempo de lo previsto. Para poder
desarrollar y cumplir con las especificaciones del documento requerido, se asistió con información
adicional de internet concreta.
3. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
DESARROLLO:
Un procesoligero o thread, esun programa en ejecución(flujode ejecución)que comparte laimagen
de memoria y otras informaciones con otros procesos ligeros. Desde el punto de vista de la
programación un proceso ligero se define como una función cuya ejecución se puede lanzar en
paralelo con otras.
El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main. Cada
proceso ligero tiene información que le son propias y que no comparte con otros procesos ligeros.
MODELOS DE HILOS:
Hay tres patrones en los que caen generalmente los modelos de hilos; podemos emplear a más de
uno de estos patrones en diferentes áreas de nuestra aplicación, e incluso podemos anidarlos:
Jefe / trabajador: Un hilo tiene una tarea distinta de todos los demás: El hilo jefe genera o recopila
tareas que requieren ser cubiertas, las separa y se las entrega a los hilos trabajadores. Este modelo es
el más común para procesos que implementan servidores y para aplicaciones gráficas, en que hay una
porción del programa (el hilo jefe) esperando a que ocurran eventos externos.
Equipo de trabajo: Al iniciar la porción multihilosdelproceso, se crean muchos hilosidénticos, que
realizarán las mismas tareas sobre diferentes datos. Este modelo es muy frecuentemente utilizado
para cálculos matemáticos. Puede combinarse con un estilo jefe/trabajador para irle dando al
usuario una previsualización del resultado de su cálculo, dado que éste se irá ensamblando
progresivamente, pedazo por pedazo.
Su principal diferencia con el patrón jefe/trabajador consiste en que el trabajo a realizar por cada
uno de los hilos se plantea en un principio, esto es, el paso de división de trabajo no es un hilo más,
sino que prepara los datos para que éstos sean lanzados en paralelo. Estos datos no son resultado
de eventos independientes (como en el caso anterior), sino partes de un solo calculo.
Ilustración 1 Patrón de Hilo Jefe/Trabajador
4. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
Línea de ensamblado: Si una tarea larga puede dividirse en pasos sobre bloques de la información
total a procesar, cada hilo puede enfocarse a hacer sólo una tarea y pasarle los datos a otro hilo
conforme vaya terminando. Una de las principales ventajas de este modelo es que nos ayuda a
mantener rutinas simplesdecomprender, y permiteque elprocesamiento dedatos continúe incluso
si parte del programa está bloqueado esperando E/S (dispositivos /archivos).
PRINCIPALES ASPECTOS DE SU DISEÑO COMO THREADS:
La utilización de procesos ligeros ofrece las ventajas de división de trabajo que dan los procesos, pero con
una mayor sencillez, lo que se traduce en mejores prestaciones. En este sentido, es de destacar que los
procesos ligeros comparten memoria directamente, por lo que no hay que añadir ningún mecanismo
adicional para utilizarla, y que la creación y destrucción de procesos ligeros requiere mucho menos trabajo
que la de procesos.
Una de las aplicaciones típicas de los procesos ligeros es el diseño de procesos servidores paralelos:
Proceso ligero Distribuidor: Se plantea un proceso ligero distribuidor cuya función es la recepción de las
ordenes y su traspasoa un proceso ligero trabajador.Elesquema puede funcionarcreandounnuevoproceso
ligero trabajador por cada solicitud de servicios, proceso ligero que muere al finalizar su trabajo.
Proceso ligero Igual: Consiste en todos los cuales pueden aceptar una orden. Cuando llega una
solicitud, la recibe uno de los procesos ligeros que están leyendo del puerto. Este proceso ligero
Ilustración 2 Patrón de Hilo Equipos de Trabajo
Ilustración 3 Patrón de Hilo Línea de Ensamblado
Ilustración 4 Proceso Ligero Distribuidor
5. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
tratará la petición y, una vez finalizado el trabajo solicitado, volverá a la fase de leer una nueva
petición del puerto.
Proceso de Segmentación: También llamada pipe-line, cada trabajo se divide en una serie de fases,
encargándose de cada una de ellas un proceso ligero especializado. El esquema permite tratar al
mismo tiempo tantas solicitudes como fases de la segmentación, puesto que se puede tener una en
cada proceso ligero.
INSERCIÓN DE HILOS EN EL ENTORNO DE UN PROCESO
La memoria de trabajo del proceso ligero sigue siendo asignada por proceso, los thread (hilos)
dentro del proceso comparten toda la misma región de memoria, el mismo espacio de direcciones.
Cada hilo tiene su propio contexto (estado de ejecución), así que cada vez que se suspende un hilo
para permitir la ejecución de otro, su contexto es guardado y restablecido nuevamente solo cuando
es su turno de ejecución.
El proceso si bien ya no es la unidad de ejecución sigue siendo parte fundamental en el
funcionamiento del sistema ya que el proceso hace parte de la asignación de prioridad de ejecución,
es al que se le asigna memoria y de hecho es al que se le asignan los recursos, así como privilegios
y otros datos importantes. El hilo es solo quien se ejecuta (sin demeritar en absoluto algo tan
importante como esto). Adicionalmente se puede acotar para que haya una inserción en un proceso
debe pasar por los siguientes tres estados básicos: Ejecución, Bloqueado, Listo.
Ejecución: En este estado está el proceso está siendo ejecutado por el procesador, es decir, que está
en fase de procesamiento. En esta fase el estado del proceso reside en los registros del procesador.
Bloqueado: Un proceso bloqueado está esperando a que ocurra un evento y no puede seguir
ejecutando hasta que suceda el evento. Una situación típica de proceso bloqueado se produce
cuando el proceso solicita una operación de dispositivos/archivos. Hasta que no terminar esta
operación, el proceso queda bloqueado.
Ilustración 5 Proceso Ligero Igual
Ilustración 6 Proceso Pipe-Line
6. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
Listo: Un proceso está listo para ejecutar cuando puede entrar en fase de procesamiento. Dado que
puede haber varios procesos en este estado, una de las tareas del sistema operativo que toma esta
decisión se denomina planificador.
IMPLEMENTACIÓN DE SEÑALES, TEMPORIZADORES Y EXCEPCIONES
Las señales cumplen con el hilo que debe informar a otro que cierta condición está ya cumplida. Por
ejemplo, un hilo prepara una conexión en red mientras que otro calcula lo que tiene que enviar. No
podemos arriesgarnos a comenzar a enviar antes de que la conexión esté lista. Dado que las señales
se utilizan para indicarle al proceso muchas cosas diferentes, existen una variedad de ellas, que se
incluye tres categorías de señales: Excepciones Hardware, Comunicación y FIS asíncrona.
Cada vez que la rutina del sistema operativo que trata las interrupciones de reloj comprueba que ha
transcurrido un segundo, decrementa todos los temporizadores que no estén a 0 y comprueba si
han llegado a 0. Para aquellos procesos cuyo temporizador acaba de llegar a 0 el sistema operativo
notifica el proceso que el temporizador ha vencido. Por ejemplo, en POSIX se genera una señal
SIGALRN. En Win32 se ejecuta una función definida por el usuario y que asocia al temporizador.
El proceso activa el temporizador mediante un servicio en el que especifica el número de segundo
o milisegundo que quiere temporizar. Cuando vence la temporización, recibirá la correspondiente
señal o se ejecutará la función asociada al mismo.
Las excepciones son eventos que ocurren durante la ejecución de un programa y que requiere la
ejecución de un fragmento de código situado fuera del flujo normal de ejecución. Las excepcione
son generadas por el hardware o el software.
Cuando ocurre una excepción, tanto hardware como software, el control es transferido al sistema
operativo, que ejecuta la rutina de tratamiento de excepción correspondiente. Esta rutina crea un
registro que contiene información sobre la excepción generada. Si existe un manejador para la
excepción generada, el sistema operativo transfiere el control a dicho manejador, en caso contrario
aborta la ejecución del proceso.
Ilustración 7 Estados de Proceso
7. UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES
CONCLUSIÓN:
Los procesos ligeros son una unidad básica de utilización del CPU consistente en un juego de
registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares.
Una tarea (o proceso pesado) está formada ahora por una o más hebras. Además, un proceso ligero
consta de tres estados: ejecutando, listo o bloqueado.
Cada Proceso necesita una serie de recursos, y cada proceso es secuencial para ser atendido, ocupa
un espaciode memoria quecontiene el programa ejecutable,susdatos, su pila,conjunto de registros
asociados al proceso. Los beneficios clave de los hilos se derivan de las implicaciones del
rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en
terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un
mismo proceso a varios flujos de ejecución se mantiene una única copia en memoria del código, y
no varias.
La funcionabilidad de los hilos es variada, y un ejemplo de aplicación que podría hacer uso de los
hilos es un servidor de ficheros de una red de área local. Cada vez que llega una solicitud de una
operación sobre un fichero, se puede generar un nuevo hilo para su gestión. El servidor gestiona
multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar
servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de
un mismo proceso simultáneamente y en diferentes procesadores.