Hilos

Description

Ingeniería Mind Map on Hilos, created by sheldon coper on 19/12/2019.
sheldon coper
Mind Map by sheldon coper, updated more than 1 year ago
sheldon coper
Created by sheldon coper about 5 years ago
75
0

Resource summary

Hilos
  1. Que es
    1. es una secuencia de tareas encadenadas muy pequeña que puede ser ejecutada por un sistema operativo.
    2. Multithreading
      1. es un modelo generalizado de programación y ejecución que permite que existan múltiples subprocesos dentro del contexto de un proceso. Estos subprocesos comparten los recursos del proceso, pero pueden ejecutarse de forma independiente.
      2. Estados de un Hilo
        1. Durante el ciclo de vida de un hilo, éste se puede encontrar en diferentes estados. La figura siguiente muestra estos estados y los métodos que provocan el paso de un estado a otro. Este diagrama no es una máquina de estados finita, pero es lo que más se aproxima al funcionamiento real de un hilo.
            1. Listo: el hilo puede ser elegido para su ejecución.
              1. Standby: el hilo ha sido elegido para ser el siguiente en ejecutarse en el procesador.
                1. Ejecución: el hilo está siendo ejecutado.
                  1. Espera: un hilo pasa a este estado cuando se bloquea por un suceso
                    1. (E/S): se realiza una espera voluntaria de sincronización o alguien suspende al hilo.
                      1. Transición: después de una espera el hilo pasa a este estado si está listo para ejecutar pero alguno de sus recursos no está disponible aún.
                        1. Terminado: un hilo llega a este estado cuando termina normalmente cuando su proceso padre ha terminado.
                      2. Hay dos grandes categorías en la implementación de hilos:
                        1. Hilos a nivel de usuario (ULT)
                          1. En una aplicación ULT pura, todo el trabajo de gestión de hilos lo realiza la aplicación, y el núcleo o kernel no es consciente de la existencia de hilos. Es posible programar una aplicación como multihilo mediante una biblioteca de hilos. La misma contiene el código para crear y destruir hilos, intercambiar mensajes y datos entre hilos, para planificar la ejecución de hilos y para salvar y restaurar el contexto de los hilos.
                            1. Ventajas de los ULT
                              1. El intercambio de los hilos no necesita los privilegios del modo kernel, porque todas las estructuras de datos están en el espacio de direcciones de usuario de un mismo proceso. Por lo tanto, el proceso no debe cambiar a modo kernel para gestionar hilos. Se evita la sobrecarga de cambio de modo y con esto el sobrecoste u overhead.
                                1. Se puede realizar una planificación específica. Dependiendo de que aplicación sea, se puede decidir por una u otra planificación según sus ventajas.
                                  1. Los ULT pueden ejecutar en cualquier sistema operativo. La biblioteca de hilos es un conjunto compartido.
                                  2. Desventajas de los ULT
                                    1. En la mayoría de los sistemas operativos las llamadas al sistema (System calls) son bloqueantes. Cuando un hilo realiza una llamada al sistema, se bloquea el mismo y también el resto de los hilos del proceso.
                                      1. En una estrategia ULT pura, una aplicación multihilo no puede aprovechar las ventajas de los multiprocesadores. El núcleo asigna un solo proceso a un solo procesador, ya que como el núcleo no interviene, ve al conjunto de hilos como un solo proceso.
                                    2. Hilos a nivel de núcleo (KLT)
                                      1. En una aplicación KLT pura, todo el trabajo de gestión de hilos lo realiza el kernel. En el área de la aplicación no hay código de gestión de hilos, únicamente un API (interfaz de programas de aplicación) para la gestión de hilos en el núcleo. Windows 2000, Linux y OS/2 utilizan este método. Linux utiliza un método muy particular en el que no hace diferencia entre procesos e hilos. Para Linux, si varios procesos creados con la llamada al sistema "clone" comparten el mismo espacio de direcciones virtuales, el sistema operativo los trata como hilos, y lógicamente son manejados por el kernel.
                                        1. Ventajas de los KLT
                                          1. El kernel puede planificar simultáneamente múltiples hilos del mismo proceso en múltiples procesadores.
                                            1. Si se bloquea un hilo, puede planificar otro del mismo proceso.
                                              1. Las propias funciones del kernel pueden ser multihilo.
                                              2. Desventajas de los KLT
                                                1. El paso de control de un hilo a otro precisa de un cambio de modo.
                                              3. Combinaciones ULT y KLT
                                                1. Algunas distribuciones de linux y derivados de UNIX ofrecen la combinación de ULT y KLT, como Solaris, Ubuntu y Fedora. La creación de hilos, así como la mayor parte de la planificación y sincronización de los hilos de una aplicación se realiza por completo en el espacio de usuario. Los múltiples ULT de una sola aplicación se asocian con varios KLT. El programador puede ajustar el número de KLT para cada aplicación y máquina para obtener el mejor resultado global. En un método combinado , los múltiples hilos de una aplicación se pueden ejecutar en paralelo en múltiples procesadores y las llamadas al sistema bloqueadoras no necesitan bloquear todo el proceso.
                                            Show full summary Hide full summary

                                            Similar

                                            INGENIERIA DE MATERIALES
                                            Ricardo Álvarez
                                            Elementos Básicos de Ingeniería Ambiental
                                            Evilus Rada
                                            Historia de la Ingeniería
                                            Camila González
                                            Introducción a la Ingeniería de Software
                                            David Pacheco Ji
                                            UNIDAD II DIBUJO PROYECTIVO
                                            anyimartinezrued
                                            GENERALIDADES DE LAS EDIFICACIONES
                                            yessi.marenco17
                                            MAPA MENTAL SOFTWARE APLICADOS EN INGENIERÍA CIVIL
                                            Ruben Dario Acosta P
                                            Estado de la ingenería mecánica y su perspectiva a futuro
                                            Roberto Martinez
                                            MAPA CONCEPTUAL SOBRE LA INICIATIVA CDIO
                                            Victor Antonio Rodriguez Castañeda
                                            Características de la Pitahaya y su potencial de uso en la industria alimentaria
                                            Héctor Infanzón
                                            las conicas en la vida cotidiana
                                            Arturo Rosales