You are on page 1of 30

PROCESOS VS HILOS

PROCESOS
Ciclo de vida de un proceso, prcticamente un
estndar en todos los SSOO.
En algn momento un proceso es creado.
Una vez creado pasa al estado listo.
El planificador de procesos
Cuando el planificador decide darle tiempo de
CPU a un proceso, este pasa al estado de
Ejecucin.
PROCESOS
El proceso tambin puede pasar del estado
Ejecucin al estado Listo, esta decisin la toma el
planificador del SSOO.
Ahora tambin el proceso puede pasar
voluntariamente.
El proceso pasa al estado bloqueado cuando ha
de esperar que ocurra algn evento, una vez que
ocurra el evento por el que se esta esperando el
proceso pasa al estado Listo.
PROCESOS
El planificador sigue alguna poltica de
planificacin para asignar la CPU a los distintos
procesos, una forma justa y extendida es a travs
de la asignacin de Rodajas de tiempo
El acto de cambiar un proceso de estados se le
denomina cambio de contexto.
ESTADOS DE UN PROCESO

DISPOSICIN EN MEMORIA DE UN
PROCESO
La memoria suele estar dividida en dos partes:
Un espacio de usuario donde se encuentra la informacin
relativa a los procesos de usuario.
Un espacio del nucleo donde reside el cdigo y las
estructuras de datos propios del SSOO.
Cuando trabajamos en un SSOO multitarea la
informacin relativa a un proceso suele estar
dividida entre lo dos espacios.
ESPACIO DE USUARIO
Se encuentra informacin propia del proceso tal
como cdigo de proceso, contador de programa,
variables, pila y puntero de pila, sin embargo el
SSOO necesita tener informacin del estado de los
procesos para poder realizar apropiadamente los
cambios de contexto. Esta informacin se conoce
con el nombre de PCB o Bloque de Control de
Proceso, y se ubica en el espacio del ncleo.
MAPA DE MEMORIA DE UN PROCESO
PARA UN SSOO MULTITAREA

Cuando tenemos mas de un proceso se representa como
en la figura.
En el espacio del ncleo estar el planificador de
procesos que ser el encargado de decidir los cambios
de contexto.
Los cambios de contexto son costosos desde el punto de
vista del tiempo de ejecucin pues consumen un tiempo
considerable.

PROCESOS EN UN SSOO MULTITAREA
PROCESOS EN PASCAL-FC
Es un lenguaje creado para fines didcticos.
Esta basado en un subconjunto del Pascal.
El Pascal-FC no trae algunas caractersticas que
proporciona el Pascal, por ejemplo:
No hay ficheros, punteros, registros variantes, no se usa la
palabra reservada with, no existe el tipo set ni el tipo
rango, el tipo string se usa con la sentencia writeln.
PROCESOS EN PASCAL-FC
Algunas cosas aadidas en el Pascal-FC son:
El bucle repeat forever que define un bucle infinito.
La sentencia null. Se utiliza por claridad para indicar que
no se ejecuta nada.
La funcion random cuyo uso es i:=random(n)
ESTRUCTURA DE UN PROGRAMA EN P-FC
Program IDENTIFICADOR
declaraciones globales
begin
sentencias
end.
Las declaraciones globales pueden ser: constantes,
tipos, variables, procedimientos, funciones, tipos de
procesos, procesos, recursos, monitores.
Y las sentencias pueden ser: secuenciales y
concurrentes.
A continuacin veamos un ejemplo como se crean
y lanzan (ejecutan) los procesos en Pascal -FC
ESTRUCTURA DE UN PROGRAMA EN P-FC
Definicin de
dos procesos
Programa
principal que
lanza los procesos
dentro del
cobegin/coend
Un posible resultado sera: 1112121222112.
Indefindamente.
Pascal-FC permite la creacin de tipos de procesos
y luego crear y lanzar procesos pertenecientes a
esos tipos.
El ejemplo anterior quedara de la siguiente
manera:
ESTRUCTURA DE UN PROGRAMA EN P-FC
Definicin del tipo
proceso
Programa
principal
ESTADOS DE UN PROCESO EN P-FC
El estado bloqueado que tenamos al inicio
se convierte en tres estados esperando,
suspendido y termestado.
Un proceso pasa al estado esperando
cuando ejecuta la instruccin
sleep(segundos), esta instruccin deja
dormido al proceso durante el intervalo de
tiempo especificado. Al despertar pasar al
estado listo, los estados suspendido y
termestado tienen que ver con el uso de
espera selectiva en los mecanismos de paso
de mensajes.

ESTADOS DE UN PROCESO EN P-FC
GESTIN DE PROCESOS EN P-FC
El compilador genera el cdigo con todas las
facilidades de mantenimiento y planificacin de
procesos (RTSS Run Time Support System) junto con
el cdigo generado por el programa usuario es
lanzado para ejecutar un solo programa que ser
una tarea del SSOO.
Programa de usuario RTSS
Programa final
SSOO
GESTIN DE PROCESOS EN P-FC
PLANIFICACIN DE PROCESOS EN P-FC
Existen dos polticas para la planificacin:
Ejecutar un proceso hasta que termine, entonces entonces
elegir otro hasta que termine y asi
Compartir el tiempo del procesador dando rodajas de
tiempo.
La primer opcin es injusta, pero evita muchos
cambios de contexto y la segunda es mas justa y
adecuada para sistemas multiusuario.
Por ejemplo:
Si usamos la
planificacin justa, la
posible salida sera:
CCCACCAABBBAABB
CAABBCABCCABABC
AABBCCAABCCACBB.
Pero si usamos la
planificacin injusta:
AAAAABBBBBCCCCC
AAAAABBBBBCCCCC
PLANIFICACIN DE PROCESOS EN P-FC
EJECUCIN DE UN PROGRAMA EN P-FC
Pascal-FC consiste en 2 programas, un
compilador(pfccomp) y un interprete:
Se utiliza de la siguiente forma:
Pfccomp <FicheroFuente> <FicheroListado> <FicheroObjeto>
FicheroFuente: contiene el codigo en Pascal-FC.
FicheroListado: contiene un listado especial del
programa junto a la informacin adicional como el
cdigo intermedio generado. Cuando se producen
errores de compilacin estos pueden ser visto en este
fichero.
FicheroObjeto: contiene el resultado de la
compilacin y servir de entrada al interprete.
Por ejemplo:
Pfccomp ejemplo.pfc permite compilar el fichero
ejemplo.pfc
EJECUCIN DE UN PROGRAMA EN P-FC
Para el interprete existen dos modalidades: una
justa (pint) y otra injusta (ufpint).
Ambos se utilizan de la misma forma:
Pint <FicheroObjeto><FicheroProblemas>
Ufpint <FicheroObjeto><FicheroProblemas>
FicheroProblemas se genera si existen problemas en
la ejecucion del programa tales como
interbloqueo.
EJECUCIN DE UN PROGRAMA EN P-FC
Para realizar las fases de compilacin e
interpretacin en un paso, se realiza de la siguiente
manera:
Pfc <FicheroFuente> para un interprete justo.
Pfc [-uf]<FicheroFuente> para un interprete injusto.
EJECUCIN DE UN PROGRAMA EN P-FC
HILOS
De la misma manera que un SSOO puede ejecutar
varios procesos al mismo tiempo ya sea por
concurrencia o paralelismo, dentro de un proceso
puede haber varios hilos de ejecucin.
Un hilo es como cada secuencia de control dentro
de un proceso que ejecuta sus instrucciones de
forma independiente
CONCURRENCIA A DOS NIVELES
HILOS
Los procesos son entidades pesadas, la estructura
del proceso esta en la parte del ncleo y cada vez
que el proceso quiere acceder a ella, tiene que
hacer algn tipo de llamada al sistema
(consumiendo mas tiempo al procesador). Los
cambios de contexto son costosos en cuanto a
tiempo de ejecucin.
HILOS
Por el contrario la estructura de hilos reside en el
espacio de usuario por lo que un hilo es una
entidad ligera, los hilos comparten informacin del
proceso, si un hilo modifica una variable el resto de
hilos vern la modificacin cuando accedan a esa
variable, los cambios de contexto entre los hilos
consumen poco tiempo de procesador, por eso
son un xito.

You might also like