Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen
Sistemas Operativos
Profesor:
Carlos Andrés Mendez Rodríguez
Elaborado por:
Katherine Fabiola Pereira Jiménez
4.1
Una hebra es una unidad básica de utilización de la CPU, comprende: ID de hebra, contador,
programa, conjunto de registros, pila.
Comparte con otras hebras que pertenecen al mismo proceso la sección de código, sección de
datos, otros recursos del sistema operativo.
• 4.1.1 Motivación
Una función es que el servidor funcione como un solo proceso de aceptación de solicitudes.
Cuando el servidor recibe una solicitud, crea otro proceso para dar servicio a dicha solicitud.
Si un nuevo proceso va a realizar las mismas tareas que los procesos existentes, algo que nos
podemos preguntar es ¿por qué realizar todo el trabajo adiciona? Lo más eficiente es utilizar
un proceso que contenga múltiples hebras, lo que este método hace es dividir en múltiples
hebras el proceso servidor web.
Las hebras juegan un papel importante en los sistemas que son de llamada a procedimientos
remotos, RCP permiten la comunicación entre procesos proporcionando un mecanismo de
comunicación similar a las llamadas a funciones – procedimientos, los servidores RCP son
multihebra, cabe destacar que muchos kernel son multihebra, hay hebras operando en kernel y
cada hebra realiza una tarea en especifico.
4.1.2 Ventajas
El soporte para hebras puede proporcionarse en el nivel de usuario (para las hebras de
usuario) o por parte del kernel (para las hebras del kernel). El soporte para las hebras de
usuario se proporciona por encima del kernel y las hebras se gestionan sin soporte del mismo
y el sistema operativo soporta/gestiona las hebras del kernel.
Este modelo asigna multiples hebras de nivel de usuario a una hebra del kernel.
Multiplexa muchas hebras de usuario sobre un número menor e igual de hebras del kernel, el
número de hebras del kernel puede ser especifico de una determinada aplicación o de una
determinada máquina, mientras que el modelo muchos-a-muchos permite al desarrollador
crear tantas hebras de usuario como desee.
Se debe de tener cuidado de no crear tantas hebras dentro de una aplicación. El modelo-
muchos-a-muchos no sufre estos inconvenientes, las de kernel pueden ejecutarse en paralelo
en un multiprocesador y también cuando una hebra realiza una llamada bloqueante al sistema
el kernel puede planificar otra hebra para su ejecución.
- POXIS Pthreads.
- Win 32.
- Java.
4.4.2 Cancelación.
La cancelación de una hebra es la acción de terminar una hebra antes de que se haya
completado.
Ejemplo:
Dos tipos de cancelación en las hebras:
- Cancelación asíncrona
- Cancelación diferida
Dificultad de cancelación:
Una señal se usa para notificarle a un proceso que se ha producido un determinado suceso.
El tratamiento de señales en programas que tienen una sola hebra resulta sencillo, las señales
siempre se suministran en un proceso y suministrar las señales en los programas multihebra es
más complicado, ya que un proceso puede tener varias hebras.
¿A quien debemos de suministrarle la señal?
Ventajas:
- Dar servicio a una solicitud con una hebra existente normalmente es más rápido que
esperar a crear una hebra.
- Un conjunto de hebras limita el número de hebras existentes en cualquier instante
dado. Esto es importante en aquellos sistemas que no pueden soportar un gran número
de hebras concurrentes.
Hebras que pertenecen a un mismo proceso, comparten los datos del proceso, llamaremos a
dichos datos, datos específicos de hebra.
Windows
Linux utiliza el termino tarea en lugar de proceso o hebra, para hacer referencia a un flujo
de control dentro de un programa, la creación de tareas se realiza a través de la llamada al
sistema clone() y permite que una tarea hijo comparta el espacio de memoria de la tarea
padre. Implementaciones de esta API están disponibles en sistemas operativos tales como
FreeBSD, NetBSD, OpenBSD, GNU/Linux, Mac OS y Solaris.