sistemas operativos informe

9
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

Upload: j2918

Post on 15-Apr-2017

146 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Sistemas operativos informe

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDES

NOMBRE: JOHNNY PILLA,JULIO CESAR AGUALSACA, EDISON TOAPANTA, ANGEL MALIZA, OSCAR CAYAMBEFECHA: 13/12/16MATERIA: SISTEMAS OPERATIVOSTEMA:  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 EXCEPCIONESGRUPO: 3

INTRODUCCIÓN:

Page 2: Sistemas operativos informe

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDESOBJETIVO 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ó que los hilos 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ón de un programa y que requiere la 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.

DESARROLLO:

Page 3: Sistemas operativos informe

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDESUn proceso ligero o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen 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 multihilos del proceso, se crean muchos hilos idé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

Page 4: Sistemas operativos informe

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 simples de comprender, y permite que el procesamiento de datos 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 traspaso a un proceso ligero trabajador. El esquema puede funcionar creando un nuevo proceso 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

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

Page 5: Sistemas operativos informe

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDESpuerto. Este proceso ligero 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

Page 6: Sistemas operativos informe

UNIVERSIDAD REGIONAL AUTONOMA DE LOS ANDES UNIANDESListo: 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

Page 7: Sistemas operativos informe

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 espacio de memoria que contiene el programa ejecutable, sus datos, 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.