ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

SISTEMAS OPERATIVOS

macd08Tesis27 de Septiembre de 2013

601 Palabras (3 Páginas)414 Visitas

Página 1 de 3

CENTRO DE ENSEÑANZA TÉCNICA Y SUPERIOR

ESCUELA DE INGENIERIA

MATERIA: SISTEMAS OPERATIVOS.

INVESTIGACIÓN:

• IMPLEMENTACIÓN DE HILOS.

• CONSIDERACIONES DE CONVERSIÓN DE CÓDIGO DE HILADO.SIMPLE Y MULTIHILADO.

PRESENTA:

MARTIN ALFONSO CAMACHO DELGADO 7777

ENSENADA, B.C 27 DE SEPTIEMBRE DE 2013

1. Implementación de hilos.

a. En el espacio de usuario.

Colocar el paquete de hilos dentro del espacio de usuario, de esta manera el kernel no sabe nada acerca del paquete de hilos, sino que para él sólo administra procesos ordinarios de un solo hilo. Este modo se usa para sistemas operativos que aceptan solo un hilo.

Cada proceso necesita su tabla de hilos que lleva la cuenta de las propiedades de cada hilo, las cuales se guardan cuando un hilo pasa del estado de ejecución a listo o bloqueado. Al momento de que un hilo se puede bloquear manda llamar un proceso en tiempo de ejecución para que compruebe si debe bloquearse o no, si es así, le guarda las propiedades del hilo en la tabla de hilos y ejecuta el que sigue. Usar el thread_yield (ceder el control a otro hilo mientras este bloqueado) es más eficiente en la planificación que estar mandando llamar el trap del kernel.

Permiten que cada proceso tengo su propio algoritmo de planificación personalizado.

El código colocado alrededor de la llamada al sistema que se encarga de la comprobación se conoce como envoltura.

Desventajas:

Con las llamadas al sistema de bloqueo, es difícil ver cómo se puede lograr este objetivo sin problemas.

Dentro de un solo proceso no hay interrupciones de reloj.

Los programadores desean hilos precisamente en aplicaciones donde éstos se bloquean con frecuencia, esto es más eficiente utilizando el kernel.

b. En el kernel.

Ahora vamos a considerar el caso en que el kernel sabe acerca de los hilos y los administra. No se necesita un sistema en tiempo de ejecución para ninguna de las dos acciones. Además, no hay tabla de hilos en cada proceso. El kernel tiene una tabla de hilos que lleva la cuenta de todos los hilos en el sistema. Cuando un hilo desea crear un nuevo hilo o destruir uno existente, realiza una llamada al kernel, la cual se encarga de la creación o destrucción mediante una actualización en la tabla de hilos del kernel.

La tabla de hilos del kernel contiene los registros, el estado y demás información de cada hilo.

El kernel también mantiene la tabla de procesos tradicional para llevar la cuenta de los procesos.

Todas las llamadas que podrían bloquear un hilo se implementan como llamadas al sistema, a un costo considerablemente mayor que una llamada a un procedimiento del sistema en tiempo de ejecución.

Cuando un hilo se bloquea, el kernel, según lo que decida, puede ejecutar otro hilo del mismo proceso o un hilo de un proceso distinto. Con los hilos de nivel usuario, el sistema en tiempo de ejecución ejecuta hilos de su propio proceso hasta que el kernel le quita la CPU.

Debido al costo considerablemente mayor de crear y destruir hilos en el kernel, algunos sistemas optan por un método ambientalmente correcto, reciclando sus hilos. Cuando se destruye un hilo, se marca como no ejecutable pero las estructuras de datos de su kernel no se ven afectadas de ninguna otra forma. Los hilos de kernel no requieren de nuevas llamadas al sistema sin bloqueo. Además, si un hilo en un proceso produce un fallo de página, el kernel puede comprobar con facilidad si el proceso tiene otros hilos que puedan ejecutarse y de ser así, ejecuta uno de ellos mientras espera

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com