Está en la página 1de 4

1

Ejecución de Múltiples Tareas Simultaneas con Hilos

Jefferson Criollo, Marlon Pachacama ,Andrea Cachipuendo


Escuela Politécnica Nacional.
Ingeniería en Sistemas y Computación.
Sistemas Operativos.
jefferson.criollo@epn.edu.ec, marlon.pachacama@epn.edu.ec,andrea.cachipuendo@epn.edu.ec

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”

Un hilo es una secuencia de instrucciones que está controlada por


un planificador que se comporta como un flujo de control
secuencial. El planificador gestiona el tiempo de ejecución del
procesador y asigna de alguna manera dicho tiempo a los
diferentes hilos actualmente presentes.
2

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 *

La función pthread_create() devuelve 0 si todo ha ido bien. Un  CajaOnline:


valor distinto de 0 si ha habido algún problema y no se ha creado
el thread

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

C. Como definir un nuevo hilo

Para definir e instanciar un nuevo hilo:

- Extendiendo (o heredando) a la clase.hilo

D. Manejo de hilos

. .
3

 Cliente:
 Ejecución del Programa

 Aplicación:
4

IV. CONCLUSIONES Y RECOMENDACIONES VI. AUTORES

 Un hilo es un proceso que se está ejecutando en un


momento determinado en nuestro sistema operativo,
como cualquier otra tarea, esto se realiza directamente
en el procesado.
 Una ventaja de los hilos radica en que es más fácil
para el planificador, intercambiar entre los
procesos hilos, ya que son más ligeros, que entre
otros procesos.
 El primer problema habitual en el uso de hilos,
está que, al ser dos tareas concurrentes, podría
darse una situación conocida como la exclusión
mutua (que consiste en que dos o más procesos
no se dejan terminar unos a otros, porque se
bloquean entre ellos).
 No todo se puede paralelizar y en muchas JEFFERSON DIEGO CRIOLLO TITUAÑA
ocasiones suele ser complicado encontrar la
manera de paralelizar procesos dentro de una ESTUDIANTE DE LA FACULTAD DE SISTEMAS EN LA CARRERA DE
aplicación sin que esta afecte al resultado de la INGENIERÍA EN COMPUTACIÓN
misma, por tanto, aunque el concepto sea fácil
de entender el aplicarlo a un caso práctico puede
ser complicado para que el resultado de la
aplicación no se vea afectado.

V. REFERENCIAS

 [1]"Multitarea e Hilos en Java con ejemplos (Thread &


Runnable) - Jarroba", Jarroba, 2019. [Online].
Available: https://jarroba.com/multitarea-e-hilos-en-
java-con-ejemplos-thread-runnable/. [Accessed: 09-
Dec- 2019].

 [2]J. Arvizu and V. perfil, "Unidad III. Procesos e


Hilos.", Arvizuoperativos2.blogspot.com, 2019. MARLON ISRAEL PACHACAMA GRANDA
[Online]. Available:
https://arvizuoperativos2.blogspot.com/p/unidad-iii- ESTUDIANTE DE LA FACULTAD DE SISTEMAS EN LA CARRERA DE
procesos-e-hilos.html. [Accessed: 09- Dec- 2019]. INGENIERÍA EN COMPUTACIÓN
 [3]Ocw.uc3m.es, 2019. [Online]. Available:
http://ocw.uc3m.es/ingenieria-informatica/sistemas-
operativos/material-de-clase-1/mt_t2_l5.pdf.
[Accessed: 09- Dec- 2019].

 [4]Mceron.cs.buap.mx, 2019. [Online]. Available:


http://mceron.cs.buap.mx/cap2_dis.pdf. [Accessed: 09-
Dec- 2019].

 [5]"Núcleos e hilos en un procesador: qué son y en qué


se diferencian", El Español, 2019. [Online]. Available:
https://www.elespanol.com/omicrono/tecnologia/20170
707/nucleos-hilos-procesador-
diferencian/229478224_0.html. [Accessed: 09- Dec-
 2019].

ANDREA IBETH CACHIPUENDO CATUCUAMBA

ESTUDIANTE DE LA FACULTAD DE SISTEMAS EN LA CARRERA DE


INGENIERÍA EN COMPUTACIÓN

También podría gustarte