10 Hilos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 2

 Multiusuario.

Un  sistema  operativo multiusuario  es un  sistema que  puede dar servicio a


varios usuarios  de forma simultánea.
 Multiproceso. Puede ejecutar varios procesos de forma concurrente. Es necesario  tener un
sistema multiprocesador (con varios procesadores).
 Multitarea. Varios procesos se pueden estar ejecutando  aparentemente al mismo  tiempo sin
que el usuario lo perciba. La gran mayoría de sistemas operativos actuales son multitarea.
 Multihilo. En  ocasiones, un proceso puede tener varios hilos  de ejecución de tal manera que
un proceso pueda ejecutar varias tareas a la  vez.  El multihilo se  utiliza a veces por·
eficiencia, debido   a  que  el  crear muchos procesos  implica la asignación  de muchos
recursos mientras  que  muchos  hilos  pueden compartir los recursos y memoria de un
proceso.

Un hilo de ejecución, en los sistemas operativos, es similar a un proceso en que ambos


representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias.
Los hilos permiten dividir un programa en dos o más tareas que corren simultáneamente, por
medio de la multiprogramación. En realidad, este método permite incrementar el rendimiento de
un procesador de manera considerable. En todos los sistemas de hoy en día los hilos son
utilizados para simplificar la estructura de un programa que lleva a cabo diferentes funciones.
Todos los hilos de un proceso comparten los recursos del proceso. Residen en el mismo espacio
de direcciones y tienen acceso a los mismos datos. Cuando un hilo modifica un dato en la
memoria, los otros hilos utilizan el resultado cuando acceden al dato. Cada hilo tiene su propio
estado, su propio contador, su propia pila y su propia copia de los registros de la CPU. Los valores
comunes se guardan en el bloque de control de proceso (PCB), y los valores propios en el bloque
de control de hilo (TCB). Muchos lenguaje de programación (como Java), y otros entornos de
desarrollo soportan los llamados hilos o hebras (en inglés, threads). 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 más ágilmente a
la interacción con el usuario.

13.1.1. Diferencias entre hilos y procesos. Los hilos se distinguen de los tradicionales procesos en
que los procesos son generalmente independientes, llevan bastante información de estados, e
interactúan sólo a través de mecanismos de comunicación dados por el sistema. Por otra parte,
muchos hilos generalmente comparten otros recursos directamente. En los sistemas operativos
que proveen facilidades para los hilos, es más rápido cambiar de un hilo a otro dentro del mismo
proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten
datos y espacios de direcciones, mientras que los procesos al ser independientes no lo hacen. Al
cambiar de un proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se
conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un cambio
de modo (mode switch), en este caso pasar del estado de Runnig al estado de Waiting o
Bloqueado y colocar el nuevo proceso en Running. En los hilos como pertenecen a un mismo
proceso al realizar un cambio de hilo este overhead es casi despreciable. Sistemas operativos
como Windows NT, OS/2 y Linux (2.5 o superiores) han dicho tener hilos "baratos", y procesos
"costosos" mientras que en otros sistemas no hay una gran diferencia.

13.1.3. Ventajas de los hilos frente a los procesos. Si bien los hilos son creados a partir de la
creación de un proceso, podemos decir que un proceso es un hilo de ejecución, conocido como
monohilo. Pero las ventajas de los hilos se dan cuando hablamos de Multihilos, un procesos tiene
múltiples hilos de ejecución los cuales realizan actividades distintas, que pueden o no ser
cooperativas entre sí. Los beneficios de los hilos se derivan de las implicaciones de rendimiento y
se pueden resumir en los siguientes puntos: · Se tarda mucho menos tiempo en crear un hilo
nuevo en un proceso existente que en crear un proceso. Algunas investigaciones llevan al
resultado que esto es así en un factor de 10. · Se tarda mucho menos en terminar un hilo que un
proceso, ya que su cuando se elimina un proceso se debe eliminar el PCB del mismo, mientras que
un hilo se elimina su contexto y pila. Se tarda mucho menos tiempo en cambiar entre dos hilos de
un mismo proceso. Los hilos aumentan la eficiencia de la comunicación entre programas en
ejecución. En la mayoría de los sistemas en la comunicación entre procesos debe intervenir el
núcleo para ofrecer protección de los recursos y realizar la comunicación misma. En cambio, entre
hilos pueden comunicarse entre sí sin la invocación al núcleo. Por lo tanto, si hay una aplicación
que debe implementarse como un conjunto de unidades de ejecución relacionadas, es más
eficiente hacerlo con una colección de hilos que con una colección de procesos separados .

También podría gustarte