Fundamentos de Hilos en Sistemas Operativos: Conceptos y Modelos de Diseño
Clasificado en Informática
Escrito el en
español con un tamaño de 2,51 KB
Conceptos Fundamentales de Hilos
Los hilos son miniprocesos que se ejecutan de manera secuencial dentro de otro proceso, compartiendo el CPU y el mismo espacio de direcciones.
Elementos por Hilo
- Contador de programa.
- Pila.
- Conjunto de registros.
- Hilos hijos.
- Estado.
Elementos por Proceso
- Espacio de direcciones.
- Variables globales.
- Archivos abiertos.
- Procesos hijos.
- Cronómetros.
- Señales.
- Semáforos.
- Información contable.
Modelos de Uso de Hilos
Modelo Servidor-Trabajador
- Llega la solicitud.
- El servidor lee la solicitud.
- Verifica qué hilo está activo y le envía la solicitud.
- El servidor despierta el hilo y este verifica si se puede realizar el trabajo.
- Si no puede, envía un mensaje y se inicia el planificador para verificar si otro hilo puede realizar el trabajo.
Modelo de Equipo
- Todos los hilos son iguales y cada uno procesa su solicitud.
- No hay servidor.
- Existe una cola de trabajos pendientes en caso de que un hilo no pueda manejar algún tipo de trabajo.
- Los hilos deben verificar la cola de trabajos pendientes antes de buscar en el buzón del sistema.
Modelo de Embutamiento (Pipeline)
- El primer hilo genera ciertos datos y los transfiere al siguiente para procesarlos.
- Los datos fluyen de un hilo a otro y cada uno ejecuta una parte del proceso.
Aspectos del Diseño
Diseño Estático
- Se elige el número de hilos al escribir el programa o durante su compilación.
- Cada uno de ellos tiene asociada una pila fija.
- Se logra simplicidad, pero también inflexibilidad.
Diseño Dinámico
- Se permite la creación y destrucción de los hilos durante la ejecución.
- La llamada para la creación de hilos determina: el programa principal del hilo, un tamaño de pila y una prioridad de planificación, entre otros.
- La llamada generalmente regresa un identificador de hilo que se usará en las posteriores llamadas relacionadas.
- Un proceso se inicia con un solo hilo y puede crear el número necesario de hilos adicionales.
Exclusión Mutua
Es un mecanismo de sincronización que se utiliza para impedir que sea ejecutado más de un hilo de ejecución cuando el cierre está activo, permitiendo así la exclusión mutua.