You are on page 1of 13

Universidad Politcnica de Tecmac

Ingeniera en Software Quinto Cuatrimestre

Materia: Sistemas Operativos

Profesor: Jos David Chvez Cortes

Trabajo: Proyecto: Sistema Operativo Multihilos

Equipo No. 3: Castro Hernndez Armando Daniel Jurez Bautista Gustavo Eduardo Santiago Santiago Fernando

Grupo 1315IS

Fecha: 10/04/2013

ndice

Introduccin. 3 Abstract 3 Marco terico.. 5 Caractersticas 6 Definiciones. 7 Hilos y Multihilos. 8 Formas de Multihilos.. 9 Referencias. 10

Introduccin
En el presente trabajo, se hablara acerca de las caractersticas, ventajas y el porqu de la eleccin del Sistema Operativo Multihilos, que es el que nosotros estamos promocionando como solucin frente a otro tipo de S.O. Adems de lo anterior, tambin se plantearan los requisitos para su implementacin, as como las caractersticas que tendra en el aspecto de mantenimiento y de seguridad, que hoy en da, son el pilar de cualquier empresa que use equipo de cmputo como parte de sus recursos tecnolgicos. Y se abordara otros aspectos de este tipo de S.O, como lo son sus desventajas, que tipo de estructura usan de acuerdo a la clasificacin que se vio en clase y la forma en que interactan sus diversos componentes entre s, para dar el resultado que nosotros esperamos de este tipo de S.O. Sin ms, pasamos a lo que es el trabajo en general.

Abstract
In this present work, were talk about of Operative System type Multithreading, because this is what we chose as the basis for our OS. Also, were talk about of advantages and disadvantages of our OS, that like everything else, has, besides that we will see what their minimum requirements, maintenance and the most important: cost of development and implementation in some company or organization. Another point of this writing is to see the different views which have about this OS, since most consumers do not know this type of system usually rely on those who already know. This will be essential to take time to explain in front of a business owner or someone interested in, and what we will describe each of the SO and explain it in the simplest way there. To finish, is important say that this type of system has been in many parts of the OS better known, as this is general and the other brands are just.

Marco Terico
El Marco Teorico de nuestro Sistema Operativo abarca desde los inicios de los S.O, donde se ven las principales caractersticas de este y se ven las bases del desarrollo, tanto de Multitarea como de Multihilos, donde hay varios tipos de S.O, pero muy pocos desarrollan el contexto como tal. Como lo vemos en algunos documentos, desde el principio, los S.O se pensaron para que fueran lo ms giles posibles, sin que consumieran tantos recursos y que estos a su vez fueran amigables con el usuario y el equipo. Segn Tanebaum, los hilos permiten la combinacin del paralelismo con la ejecucin secuencial y permite el bloqueo de las llamadas, lo cual permite una mayor legibilidad de los datos, y una mayor eficacia a la hora de llevar acabo la administracin en los recursos del sistema. Adems de que es una de las maneras ms sencillas de economizar recursos y no entrar en ms gastos de equipo en el entorno empresarial y de desarrollo. Adems de que, como seala el mismo autor, es un de las maneras ms viables de tener un ncleo reservado a aplicaciones de mayor demanda.

Caractersticas
En sistemas operativos, un hilo de ejecucin o subproceso es una caracterstica que permite a una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente. Un hilo es bsicamente una tarea que puede ser ejecutada en paralelo con otra tarea Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin 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 a ese dato modificado inmediatamente. Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el estado de la CPU (incluyendo el valor de los registros). El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo. Cuando el proceso finaliza, todos sus hilos de ejecucin tambin han terminado. Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados.

Definiciones Es aquel Sistema Operativo que posee varios hilos de ejecucin. Un hilo de Ejecucin o subproceso es una caracterstica que permite a una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente. Es aquel sistema operativo multitarea donde abres el MSN, el iTunes y el navegador juntos. El sistema operativo se encarga de ejecutar estos programas usando el microprocesador pero cada programa ejecutndolo en diferentes ncleos del mismo para que puede efectuar su tarea sin inconvenientes.

Hilos y Multihilos Un hilo de ejecucin, en sistemas operativos, es una caracterstica que permite a una aplicacin realizar varias tareas concurrentemente. Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente. Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin 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. Sincronizacin de Hilos Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos. Cualquier modificacin 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. Una ventaja de la programacin Multihilos es que los programas operan con mayor velocidad en sistemas de computadores con mltiples CPUs (sistemas multiprocesador o a travs de grupo de mquinas) ya que los hilos del programa se prestan verdaderamente para la ejecucin concurrente. En tal caso el programador necesita ser cuidadoso para evitar condiciones de carrera (problema que sucede cuando diferentes hilos o procesos alteran datos que otros tambin estn usando), y otros comportamientos no intuitivos. Los hilos generalmente requieren reunirse para procesar los datos en el orden correcto. Es posible que los hilos requieran de operaciones atmicas para impedir que los datos comunes sean cambiados o ledos mientras estn siendo modificados, para lo que usualmente se utilizan los semforos. El descuido de esto puede generar interbloqueo.

Formas de Multihilos Los sistemas operativos generalmente implementan hilos de dos maneras: Multihilos 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. Multihilos 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 Multihilos desde hace poco se encuentra disponible. Esta caracterstica fue introducida por Intel en el Pentium 4, bajo el nombre de HyperThreading. Pero, tiempo ms tarde, la mayora de procesadores de distintas marcas adaptaron este sistema como estndar. A pesar de que es una de las tecnologas que ms ha innovado, aun no encuentra demasiada aceptacin en algunos mercados (sobre todo en el mercado de hardware), aunque ltimamente, esta resistencia ha cedido frente al mltiple uso que se da de la tecnologa Multihilos en el software.

Diagrama a Bloques
El diagrama a bloques de Ubuntu es de Linux ya que est basado en este sistema operativo. Ya que presentan las mismas caractersticas por ser de Linux.

Caractersticas a nivel de Ncleo


Kernel: Esta es la primera parte del diagrama, en si es el ncleo del sistema y este se encarga de darle orden a los procesos que se ejecutan, as como el de administrar los recursos con los que se cuentan, y su interaccin con las dems partes se debe a que el Kernel recibe las peticiones de todas las capas superiores. Mdulos de carga: Es el que se encarga de ejecutar los programas residentes dentro de la maquina (no aplicaciones, sino ms bien registros bsicos para que el equipo funcione, y es el que se comunica con el Kernel directamente para empezar a trabajar con el Hardware. Tiempo de ejecucin: Los tiempos de ejecucin son la siguiente parte del diagrama, ya que estos son los que asignan los tiempos que han de tardar los procesos que se envan a las dems capas. Soportan a las dems capas recibiendo sus peticiones y atenindolas lo ms pronto posible. API: La API es la interfaz de programacin que ofrece por default el SO. Se ubica solo por encima de los Tiempos de Ejecucin, ya que es un intrprete de comandos que le envan las capas superiores para ser procesadas. En s, ofrece las libreras necesarias para la ejecucin de las dems capas. Sistema de archivos: El Sistema de Archivos es el que se encarga de realizar la indexacin de lo que se encuentra en la computadora. Es el que busca, ordena y ejecuta los archivos que se encuentran en el ordenador, desde los mas bsicos para ejecutar ciertos procesos y tareas, hasta los mas complejos como multimedia. Da soporte a las dems capas del SO. Drivers: Son aquellos archivos que hacen funcionar los dispositivos perifricos de un ordenador. Su funcin radica en que se comunica con las dems capas para informarles acerca de lo que se est conectado y preparar a las dems capas para una interrupcin en sus labores.

10

Controlador de servicios: Es la capa que se encarga de administrar los servicios con los que cuenta el ordenador, desde los ms esenciales como los de video y audio, hasta los ms complejos como los de red, se inician en conjunto con los drivers. Shell: El Shell es la capa que permite comunicarse con el ordenador de una manera ms sencilla, pero aun as bsica. Son aplicaciones bsicas para poder administrar el sistema. Y es la ltima capa.

11

Conclusiones
Despus de analizar todos los requerimientos y funciones de este tipo de S.O, se ha podido deducir que es uno de los ms eficientes en cuanto a rendimiento en ejecucin e intercompatibilidad de software y hardware, adems de que hay mltiples ofertas de S.O de cdigo libre que se pueden implementar sin pagar cuotas, cosa que a las escuelas y empresas les viene de maravilla. Ya que esto aumenta las posibilidades de desarrollo posterior y adems de que permite hacer innovaciones si se quiere un mayor rendimiento sin estar violando patentes. Otra de las caractersticas que hay que resaltar de este tipo de S.O, es que son fiables, robustos y potentes, lo que los convierte en serios candidatos para desarrollar aplicaciones que resuelvan las necesidades de los distintos niveles que hay tanto en la industria como en el sector gubernamental y educativo. Para finalizar, cabe decir que a pesar de su reciente aparicin, es un estndar que se est siguiendo ya de facto por la industria informtica, dando avances cada vez mas significativos dentro de este campo haciendo que se reduzcan costes y aumentando la competencia, rentabilidad y eficacia de estos.

12

Referencias

http://www.slideshare.net/nickjons/programacion-multihilo http://www.thecoldsun.com/en/node/40 http://www.proz.com/kudoz/english_to_spanish/computers_general/37 10968-multithreading.html Silberschatz, Abraham, Fundamentos de Sistemas Operativos, Sptima Edicin, 2003, Editorial McGraw-Hill. Sommerville, Ian, ingeniera de Software, Sptima Edicin, 2005, Editorial Pearson Educacin.

13

You might also like