Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe Proyecto Bimestral SO
Informe Proyecto Bimestral SO
Resumen— Los programas multihilo tienen dos o más partes que 2.3 USO DE LOS HILOS
pueden ejecutarse de manera simultánea o concurrente. Cada
parte del programa se llama hilo y cada hilo sigue un camino Usualmente para poder utilizarlos tenemos que crear clases que
diferente. Este programa es una manera de visualizar el trabajo de
extienden a la clase Thread, y reescribir el metodo principal “run()”, el
cada uno de esos hilos. Hay dos tipos, a través de procesos y atreves
de hilos. Ambas son diferentes unos procesos es un programa que
cual es el que se va a ejecutar principalmente al iniciar un hilo, thread
se está ejecutando, la computadora ejecutara varios programas a o nuevo proceso en java. Un mensaje representa una acción a tomar
la vez, el programa es la unidad más pequeña que el sistema de por un determinado objeto.
cómputo puede manejar, el hilo es la unidad de código más pequeño
que se puede gestionar, es decir un programa es capaz de ejecutar Normalmente los hilos de un proceso (en este contexto el
dos o más tareas en simultáneo proceso es lo que se suele llamar así en el ámbito de sistemas
operativos) suelen tener acceso a todos los recursos disponibles
I. INTRODUCCIÓN al proceso, es decir, actúan sobre una memoria compartida.
De la misma manera que un Sistema Operativo puede ejecutar A. Como crear un hilo o un
varios procesos al mismo tiempo bien sea por concurrencia o
paralelismo, dentro de un proceso puede haber varios hilos de
ejecución. Por tanto, un hilo puede definirse como cada
secuencia de control dentro de un proceso que ejecuta sus
instrucciones de forma independiente.
Los procesos son entidades pesadas. La estructura del proceso
está en la parte del núcleo y, cada vez que el proceso quiere
acceder a ella, tiene que hacer algún tipo de llamada al sistema,
consumiendo tiempo extra de procesador. Por otra parte, los
cambios de contexto entre procesos son costosos en cuanto a
tiempo de computación se refiere. Por el contrario, la estructura
de los hilos reside en el espacio de usuario, con lo que un hilo es
una entidad ligera. Los hilos comparten la información del
proceso (código, datos, etc.). Si un hilo modifica una variable
del proceso, el resto de hilos verán esa modificación cuando
accedan a esa variable. Los cambios de contexto entre hilos
consumen poco tiempo de procesador, de ahí su éxito. Podemos B. Thread
hablar de dos niveles de hilos: aquellos que nosotros usaremos
para programar y que pueden crearse desde lenguajes de Un hilo o proceso comienza con una instancia de la clase como
programación como Java y aquellos otros hilos del propio SO tal (tanto hilo o proceso), si analizamos la estructura de dicha
que sirven para dar soporte a nuestros hilos de usuario y que son clase podremos encontrar bastantes métodos que nos ayudan a
los hilos del Sistema. controlar el comportamiento de los hilos, desde crear un hilo,
iniciarlo, pausar su ejecución, etc. Aquellos métodos que
II. MÉTODO siempre tenemos que tener presentes con respecto a los hilos
El desarrollo de la siguiente sección está centrado son:
principalmente en la creación y desarrollo del programa en -start()
cuestión ya usaremos una máquina virtual con Centos de Linux -yield()
y un programa en lenguaje java o c -sleep()
-run()
2.2 HILOS O “THREADS”
La acción sucede dentro del método run(), digamos que el III. PROGRAMA REALIZADO
código que se encuentra dentro de dicho método es el trabajo por Problema
hacer, por lo tanto, si queremos realizar diversas operaciones Un banco desea proveer un sistema simultaneo de cobro a
cada una simultánea pero de manera independiente, tendremos clientes online. Cada cliente puede tener una o varias deudas con
varias clases, cada una con su respectivo método run(). Dentro el banco. Si se desea procesar 10 clientes en paralelo mediante
del método run() puede haber llamados a otros métodos como la ejecución de hilos
en cualquier otro método común, pero la pila de ejecución del 1) Crear un programa en c para atender el requerimiento
nuevo proceso siempre comenzará a partir de la llamada al del banco
método run(). 2) Demostrar el procesamiento en paralelo con una salida
en pantalla
El proceso de creación de hilos en c tiene varias variantes:
La función que nos permite crear un nuevo hilo de ejecución Capturas de la ejecución del programa:
es pthread_create() que admite cuatro parámetros
-pthread_t * Para este se crearon tres clases las cuales se detallan a
-pthread_attr_t * continuación
-void *(*)(void *)
-void *
Podemos hacer que un hilo espere por otro. Para ello tenemos la
función pthread_join().
Podemos hacer que dos o más hilos
accedan sincronizadamente a un recurso común. Para ellto
tenemos las funciones pthread_mutex_lock() y similares
D. Manejo de hilos
. .
3
Cliente:
Ejecución del Programa
Aplicación:
4
V. REFERENCIAS