You are on page 1of 66

Tema 2: Procesos y hebras

TEMA 2. Procesos

Concepto de proceso

Qu entendemos por proceso?

Estados de un proceso

Bloque de Control de Proceso (PCB)

Cambio de contexto

Planificacin de procesos

Tipos de planificadores

espac!ador

Pol"ticas de planificacin de la CP#

$peraciones sobre procesos

%ebras (T!reads)
Tema 2: Procesos y hebras
TEMA 2. Objetivos
&' Conocer ( diferenciar los conceptos de proceso y hebra'
)' Conocer los estados b*sicos de un proceso+!ebra, causas ( efectos
que produce la transicin entre dic!os estados'
-' Conocer el concepto de cambio de contexto ( sus costes'
.' Contenido ( utilidad de las estructuras de datos que el /$ utili0a
para la 1estin de los procesos+!ebras'
2' Conocer el concepto de planificacin, ( los distintos planificadores
de CP#, as" como al1unos de los al1oritmos de planificacin de
CP#'
3' Comparar los distintos al1oritmos de planificacin de CP#'
4' Conocer ( compara las distintas implementaciones de las !ebras
5' Conocer las operaciones b*sicas sobre procesos+!ebras que pueden
reali0ar los usuarios
Tema 2: Procesos y hebras
&' Concepto de proceso
Qu entendemos por proceso?

#n proceso es una instancia de un pro1rama en e6ecucin7


8
Pueden existir 9arios procesos e6ecutando un mismo
pro1rama, pero cada uno es un proceso distinto, con su
propia representacin'

#n proceso consta al menos de7

el cdi1o del pro1rama'

los datos del pro1rama'

una pila de e6ecucin'

el PC indicando la prxima instruccin'

un con6unto de re1istros de propsito 1eneral con los


9alores actuales'

un con6unto de recursos del /$ (memoria, arc!i9os


abiertos, etc')
Tema 2: Procesos y hebras
&' Concepto de proceso
Qu entendemos por proceso? (::)

Para la planificacin de la CP# lo importante son los


procesos, no los pro1ramas'

;a idea b*sica es que un proceso se puede 9er como7


8
unidad de e6ecucin7 cada proceso se e6ecuta
independientemente ( tiene su propio flu6o de control'
8
unidad de planificacin'
Tema 2: Procesos y hebras
&' Concepto de proceso
Estados de un proceso

Cada proceso tiene un estado de ejecucin que


indica lo que esta !aciendo actualmente, p' e6'
8
uevo < El proceso se est* creando'
8
Ejecut!ndose = e6ecutando instrucciones en la CP#'
8
Preparado o ejecutable = en espera de la CP#'
8
"lo#ueado = esperando por un suceso'
8
Terminado $ El proceso termin su e6ecucin'

urante su 9ida en el sistema, un proceso 9a


pasando de un estado a otro'
Tema 2: Procesos y hebras
&' Concepto de proceso
Estados ( transiciones
ia1rama de estados
Interrupcin/fin de su tiempo
Espera por
E/S o suceso
Fin de E/S
o suceso
Admitido
Planificacin
El proceso termin
>inali0ado
E6ecut*ndose
Bloqueado
Preparado
?ue9o
Tema 2: Procesos y hebras
&' Concepto de proceso
Bloque de Control de Proceso

P%" &"lo#ue de %ontrol de Proceso'


8
estructura de datos que representa al proceso, es decir,
que contiene la informacin asociada con cada proceso'
8
estructura de datos donde el /$ mantiene toda la
informacin sobre el estado de e6ecucin del proceso, p'
e6' PC ( re1istros, cuando ste no se esta e6ecutando'''

Tabla de procesos( matri0 o lista enla0ada de


PCB@s (una entrada por cada proceso que exista
actualmente en el sistema)
Tema 2: Procesos y hebras
&' Concepto de proceso Contenido
del PCB

:dentificador del proceso en el sistema'

Estado actual del proceso'

Aalores de los re1istros de la CP#'

:nformacin de planificacin'

:nformacin para la 1estin de memoria'

:nformacin del estado de las E+/'

:nformacin de contabilidad o estad"stica'

/uceso por el cual el proceso est* bloqueado'


Tema 2: Procesos y hebras
&' Concepto de proceso
Cambio de contexto

Cuando un proceso esta e6ecut*ndose, su PC,


puntero a pila, re1istros, etc', est*n car1ados en la
CP# (es decir, los re1istros !ardBare contienen los
9alores actuales)'

Cuando el /$ detiene un proceso e6ecut*ndose,


sal9a los 9alores actuales de estos re1istros
(contexto) en el PCB de ese proceso'

;a accin de conmutar la CP# de un proceso a


otro se denomina cambio de contexto' ;os
sistemas de tiempo compartido reali0an de &CC a
&CCC cambios de contexto por se1undo' Este
traba6o es sobrecar1a'
Tema 2: Procesos y hebras
&' Concepto de proceso
Cambio de contexto
P&
/istema $perati9o P)
D1otado tE de CP#
Fuardar contexto de P& en su PCB
Fuardar contexto de P) en su PCB
Car1ar contexto de P) desde su PCB
Car1ar contexto de P& desde su PCB
D1otado tE
de CP#
Dcti9o
Dcti9o
Dcti9o
Tema 2: Procesos y hebras
&' Concepto de proceso
PCB@s ( Colas de Estados

El /$ mantiene una coleccin de colas que


representan el estado de todos los procesos en el
sistema'

T"picamente !a( una cola por estado'

Cada PCB esta encolado en una cola de estado


acorde a su estado actual'

Conforme un proceso cambia de estado, su PCB es


retirado de una cola ( encolado en otra'
Tema 2: Procesos y hebras
&' Concepto de proceso
Colas de estados

%ola de trabajos == con6unto de los traba6os pendientes de


ser admitidos en el sistema (traba6os por lotes que no est*n
en memoria)'

%ola de preparados == con6unto de todos los procesos que


residen en memoria principal, preparados ( esperando para
e6ecutarse'

%ola&s' de blo#ueados == con6unto de todos los procesos


esperando por un dispositi9o de E+/ particular o por un
suceso'
Tema 2: Procesos y hebras
&' Concepto de proceso Gi1racin
entre colas
Cola de
Traba6os
Cola de
Preparados
Cola(s) de bloqueados
E+/
suceso
>in
(&)
())
Pro1ramas
interacti9os
CP#
Tema 2: Procesos y hebras
)' Planificacin de procesos
Tipos de planificadores

Planificador Parte del /$ que controla la utili0acin de


un recurso'

Tipos de planificadores de la CP#7


8
Planificador a lar)o pla*o (planificador de traba6os)
selecciona los procesos que deben lle9arse a la cola de
preparadosH (&) en fi1ura anterior'
8
Planificador a corto pla*o (planificador de la CP#)
selecciona al proceso que debe e6ecutarse a
continuacin, ( le asi1na la CP#H ()) en fi1ura anterior'
8
Planificador a medio plazo.
Tema 2: Procesos y hebras
)' Planificacin de procesos
Caracter"sticas de los planificadores

El planificador a corto
plazo 7
8
traba6a con la cola de
preparados'
8
se in9oca mu(
frecuentemente
(milise1undos) por lo
que debe ser r*pido'

El planificador a largo
plazo
8
Permite controlar el
grado de
multiprogramacin'
8
se in9oca poco
frecuentemente
(se1undos o minutos),
por lo que puede ser
m*s lento'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Clasificacin de procesos

Procesos limitados por E/S o procesos cortos ==


dedican m*s tiempo a reali0ar E+/ que computoH
muc!as r*fa1as de CP# cortas ( lar1os per"odos
de espera'

Procesos limitados por CPU o procesos largos ==


dedican m*s tiempo en computacin que en
reali0ar E+/H pocas r*fa1as de CP# pero lar1as'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Ge0cla de traba6os
Es importante que el planificador a lar1o pla0o seleccione una
buena me0cla de traba6os, (a que7

/i todos los traba6os est*n limitados por E+/, la cola de


preparados estar* casi siempre 9ac"a ( el planificador a corto
pla0o tendr* poco que !acer'

/i todos los procesos est*n limitados por CP#, la cola de E+/


estar* casi siempre 9ac"a ( el sistema estar* de nue9o
desequilibrado'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Planificador a medio pla0o
En al1unos /$@s, p' e6' /$ de tiempo compartido, a
9eces es necesario sacar procesos de la memoria
(reducir el grado de multiprogramacin), bien para
me6orar la me0cla de procesos, bien por cambio en
los requisitos de memoria, ( lue1o 9ol9erlos a
introducir (intercambio)' El planificador a medio
plazo se encar1a de de9ol9er los procesos a
memoria' Transicin (-) en la si1uiente fi1ura'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Planificador a medio pla0o

CP#
Cola de
Traba6os
Cola de Preparados
Cola(s) de bloqueados
E+/
suceso
>in
Pro1ramas
interacti9os
(-)
Procesos parcialmente e6ecutados e
intercambiados a disco
Tema 2: Procesos y hebras
)' Planificacin de procesos'
Planificador a corto pla0o'

;as decisiones de planificacin a corto pla0o pueden tener lu1ar


7
&' #n proceso finali0a (e6ecut*ndose a finali0ado)'
)' #n proceso se bloquea (e6ecut*ndose a bloqueado)'
-' #n proceso pasa de e6ecut*ndose a e6ecutable por e67 cuando un proceso
a1ota el quantum de tiempo asi1nado'
.' #n suceso cambia el estado de un proceso bloqueado a e6ecutable'
2' /e crea un proceso'

o apropiativas &sin despla*amiento'7 una 9e0 que se le asi1na el


procesador a un proceso, no se le puede retirar !asta que ste
9oluntariamente lo de6e (finalice o se bloquee) (&)())

Apropiativas &con despla*amiento'7 al contrario, el /$ puede


apropiarse del procesador cuando lo decida'(&)())(-)(.)(2)
Tema 2: Procesos y hebras
)' Planificacin de procesos
espac!ador

El despac!ador (dispatcher) es el mdulo del /$ que


da el control de la CP# al proceso seleccionado por el
planificador a corto pla0oH esto in9olucra7
8
Cambio de contexto (se reali0a en modo Iernel)'
8
Conmutacin a modo usuario'
8
salto a la posicin de memoria adecuada del
pro1rama para su reanudacin'

Latencia de despacho == tiempo que emplea el


despac!ador en detener un proceso ( comen0ar a
e6ecutar otro'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Criterios de planificacin

Para saber si un proceso obtiene un buen ser9icio,


definiremos un con6unto de medidas7 dado un proceso P, que
necesita un tiempo de ser9icio (r*fa1a) t

Tiempo de respuesta &T'++ tiempo transcurrido desde que se


remite una solicitud (entra en la cola de preparados) !asta que se produce
la primera respuesta (no se considera el tiempo que tarda en dar la salida)

Tiempo de espera &M'++ tiempo que un proceso !a estado


esperando en la cola de preparados7 T=t

Penali*acin &P' == T+t

,ndice de respuesta &-' == t+T 7 fraccin de tiempo que P est*


recibiendo ser9icio'
Tema 2: Procesos y hebras
)' Planificacin de procesos
Criterios de planificacin ( ::)

Gtricas de planificacin
8
G*xima utili0acin'
8
G*xima producti9idad'
8
G"nimo tiempo de retorno'
8
G"nimo tiempo de respuesta'
8
G"nimo tiempo de espera'

;as pol"ticas de planificacin se comportan de distinta manera


dependiendo de la clase de procesos
8
?in1una pol"tica de planificacin es completamente
satisfactoria, cualquier me6ora en una clase de procesos es a
expensas de perder eficiencia en los procesos de otra clase .
Tema 2: Procesos y hebras
)' Planificacin de procesos Criterios
de planificacin ( ( :::)

$tras medidas interesantes son7

Tiempo del n.cleo== tiempo perdido por el /$


tomando decisiones que afectan a la planificacin de
procesos ( !aciendo los cambios de contexto necesarios'
En un sistema eficiente debe representar entre el &CJ ( el
-CJ del total del tiempo del procesador

Tiempo de inactividad== tiempo en el que la cola de


e6ecutables est* 9ac"a ( no se reali0a nin1Kn traba6o
producti9o
Tema 2: Procesos y hebras
)' Planificacin de procesos Pol"ticas
de planificacin de la CP#

>C>/

El m*s corto primero7


8
no apropiati9o
8
apropiati9o

Planificacin por prioridades

Por turnos

Colas mKltiples

Colas mKltiples con realimentacin'


Tema 2: Procesos y hebras
>C>/ (>irst Come >irst /er9ed)

;os procesos son ser9idos se1Kn el orden de lle1ada


a la cola de e6ecutables'

Es no apropiativo/ cada proceso se e6ecutar* !asta


que finalice o se bloquee'

>*cil de implementar pero pobre en cuanto a


prestaciones'

Todos los procesos pierden la misma cantidad de


tiempo esperando en la cola de e6ecutables
independientemente de sus necesidades'

Procesos cortos mu( penali0ados'

Procesos lar1os poco penali0ados'


Tema 2: Procesos y hebras
>C>/ (>irst Come >irst /er9ed)
Procesos T lleada !"faa T#t respuesta$ %#t espera$
A & '( '()&*'( &
+ ' , '-)'*'. '/
0 2 , 2')2*'1 '2
ia1rama de ocupacin de la CP#
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C
Tema 2: Procesos y hebras
>C>/ (( ::)
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
Procesos T lleada !"faa T#t respuesta$ %#t espera$
A 2 '( 2')2 * '1 /
+ ' , 2)' * ( 2
0 & , ,)& * , &
ia1rama de ocupacin de la CP#
D
B
C
Tema 2: Procesos y hebras
El m*s corto primero (/L>)

Es no apropiatio.

Cuando el procesador queda libre, selecciona el


proceso que requiera un tiempo de ser9icio menor'

/i existen dos o m*s procesos en i1ualdad de


condiciones, se si1ue >C>/'

?ecesita conocer expl"citamente el tiempo estimado


de e6ecucin (tE ser9icio) Cmo?'

isminu(e el tiempo de respuesta para los procesos


cortos ( discrimina a los lar1os'

Tiempo medio de espera ba6o'


Tema 2: Procesos y hebras
El m*s corto primero (::)
Procesos T lleada !"faa real !"faa estimada
A & , ,
+ ' ( (
0 , 2 2
3 2 ( (
ia1rama de ocupacin de la CP#
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C

Tema 2: Procesos y hebras


El m*s corto primero (( :::)
Procesos T lleada !"faa real !"faa estimada
A & , ,
+ ' ( 2
0 , 2 (
3 2 ( (
ia1rama de ocupacin de la CP#
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C

Tema 2: Procesos y hebras


El m*s corto primero
apropiati9o (/MT>)

Cada 9e0 que entra un proceso a la cola de e6ecutables


se comprueba si su tiempo de ser9icio es menor que el
tiempo de ser9icio que le queda al proceso que est*
e6ecut*ndose' Casos7
8
0i es menor7 se reali0a un cambio de contexto ( el
proceso con menor tiempo de ser9icio es el que se
e6ecuta'
8
o es menor7 continKa el proceso que estaba
e6ecut*ndose'

El tiempo de respuesta es menor excepto para


procesos mu( lar1os'

/e obtiene la menor penali0acin en promedio


(mantiene la cola de e6ecutables con la m"nima
ocupacin posible)'
Tema 2: Procesos y hebras
El m*s corto primero
apropiati9o (( ::)
Procesos T lleada !"faa real !"faa estimado
A & 2 2
+ ' 2 2
0 2 . .
3 , , ,
ia1rama de ocupacin de la CP#
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C

Tema 2: Procesos y hebras


Cmo podemos conocer la duracin de
la si1uiente r*fa1a de CP#?

/lo podemos estimar su duracin'

Podemos estimar el 9alor de la si1uiente r*fa1a


bas*ndonos en las r*fa1as pre9ias de CP# (
utili0ando una media exponencial, por e6emplo,
para la nN& r*fa1a7

T
n
O duracin actual de la n=sima r*fa1a


n
O 9alor estimado de la n=sima r*fa1a

C P &

efinimos7
nN&
O P Q T
n
N (&=P)
n


C
O 9alor inicial (constante o promedio 1lobal del sistema)
Tema 2: Procesos y hebras
E6emplos

P O C

nN&
O
n
;a !istoria reciente no influ(e'

P O &

nN&
O T
n
/lo cuenta la r*fa1a actual'

/i desarrollamos la formula7

nN&
O P Q T
n
N (&=P) Q P Q T
n=&
N
(&=P)
)
Q P Q T
n=)
N ''' N (&=P)
q
Q P Q T
n=q
/i P O &+) cada trmino sucesi9o tiene menos
efecto'
Tema 2: Procesos y hebras
Planificacin por prioridades

Dsociamos a cada proceso un nKmero de prioridad


(entero)'

/e asi1na la CP# al proceso con ma(or priori=dad


(enteros menores O ma(or prioridad)
8
Dpropiati9a
8
?o apropiati9a

Problema7 :nanicin == los procesos de ba6a


prioridad pueden no e6ecutarse nunca'

0olucin7 En9e6ecimiento == con el paso del


tiempo se incrementa la prioridad de los procesos'
Tema 2: Procesos y hebras
Planificacin por prioridades (( ::)
Procesos T lleada !"faa Prioridad
A ' '& ,
+ , ' '
0 & 2 ,
3 & ' 2
E 2 ( 2
ia1rama de ocupacin de la CP#
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C

E
?o apropiati9o
Dpropiati9o
Tema 2: Procesos y hebras
Por Turnos (Mound=Mobin)

;a CP# se asi1na a los procesos en inter9alos de tiempo


(quatum)'

#n proceso pierde la CP#7


8
/i el proceso finali0a o se bloquea antes de a1otar el quantum,
libera la CP#' /e toma el si1uiente proceso de la cola de
e6ecutables (la cola es >:>$) ( se le asi1na un quantum completo'
8
/i el proceso no termina durante ese quantum, se interrumpe ( se
coloca al final de la cola de e6ecutables'

Es apropiati9o'

En los ejemplos supondremos que si un proceso ! lle1a a la


cola de e6ecutables al mismo tiempo que otro " a1ota su
quantum, la lle1ada de ! a la cola de e6ecutables ocurre
antes de que " se incorpore a ella'
Tema 2: Procesos y hebras
Por Turnos (::)
Estado de la cola de e4ecutables
t*& A5 t*, +05 t*. 0+

t*1 +35 t*', 3+5 t*'. +3
t*'- 3
Procesos T lleada !"faa
A & ,
+ ' 1
0 , 2
3 1 (
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2,
D
B
C

q O .
>inali0a D
>inali0a C >inali0a B >inali0a
Tema 2: Procesos y hebras
Por Turnos (( :::)

;os 9alores t"picos del quantum est*n entre &C ( &CC


ms1'

Penali0a a todos los procesos en la misma cantidad, sin


importar si son cortos o lar1os'

;as r*fa1as mu( cortas est*n m*s penali0adas de lo


deseable'

9alor del quantum?


= mu( 1rande (excede del tE de ser9icio de todos los
procesos) se con9ierte en >C>/
= mu( pequeRo el sistema monopoli0a la CP#
!aciendo cambios de contexto (tE del nKcleo mu( alto)
Tema 2: Procesos y hebras
Colas mKltiples

;a cola de preparados se di9ide en 9arias colas (


cada proceso es asi1nado permanentemente a una
cola concreta P' e6' interacti9os ( batc!

Cada cola puede tener su propio al1oritmo de


planificacin P' e6' interacti9os con MM ( batc! con
>C>/

Mequiere una planificacin entre colas


8
Planificacin con prioridades fi6as' P' e6' primero
ser9imos a los interacti9os lue1o a los batc!
8
Tiempo compartido == cada cola obtiene cierto
tiempo de CP# que debe repartir entre sus
procesos' P' e6' 5CJ interacti9os en MM ( )CJ a los
batc! con >C>/
Tema 2: Procesos y hebras
>in de C
Colas mKltiples (::)
P T6leada !"faa +lo7ueo !"faa 0ola
A & 2 '& ' '
+ / ' ( 2 '
0 , / ) ) 2
3 2 2 ) ) ,
E ' 1 ) ) ,
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2, 2/ 2(
D
B
C

E
El al1oritmo de cada cola es
-- con #12/ 2 y 3 mls1'
respecti9amente
El al1oritmo entre colas es
prioridades no apropiativo
t * & ' 2 ( 2 - '& ', '/ '( '2 '1 22
0ola ' A A + +A A+ +
0ola 2 0 0 0
0ola , E E3 3E 3E 3E 3E E3 E3 E3 E3 3E E
>in de D
>in de B
>in de
>in de E
Tema 2: Procesos y hebras
>in de B
Colas mKltiples (( :::)
t * & ' 2 , / ( . - '& '' '2 ', '2 '1 22 2,
0ola ' A A + + + A
0ola 2 0 0 0 0
0ola , E E3 3E 3E 3E 3E 3E E3 E3 E3 E3 3E E3 3E E
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2, 2/ 2(
D
B
C

E
El al1oritmo de cada cola es
-- con #12/ 2 y 3 mls1'
respecti9amente
El al1oritmo entre colas es
prioridades es apropiativo
P T6leada !"faa +lo7ueo !"faa 0ola
A & 2 '& ' '
+ / ' ( 2 '
0 , / ) ) 2
3 2 2 ) ) ,
E ' 1 ) ) ,
>in de D
>in de C
>in de
>in de E
Tema 2: Procesos y hebras
Colas mKltiples con realimentacin

#n proceso se puede mo9er entre 9arias colas

Mequiere definir los si1uientes par*metros7


8
?Kmero de colas
8
Dl1oritmo de planificacin para cada cola
8
Gtodo utili0ado para determinar cuando trasladar a un
proceso a otra cola
8
Gtodo utili0ado para determinar en qu cola se
introducir* un proceso cuando necesite un ser9icio
8
Dl1oritmo de planificacin entre colas

Gide en tiempo de e6ecucin el comportamiento


real de los procesos

isciplina de planificacin m*s 1eneral (#nix,


PindoBs ?T)
Tema 2: Procesos y hebras
E6emplo de colas mKltiples con
realimentacin

Tres colas 1estionadas mediante -ound -obin7


8
Cola & con quantum O ) milise1undos
8
Cola ) con quantum O . milise1undos
8
Cola - con quantum O 5 milise1undos

Dl1oritmo entre colas7 prioridades no apropiativo, cola


& ma(or prioridad, cola - menor prioridad'

;os procesos entran inicialmente en la cola &

Cuando un proceso se bloquea, al re1resar a la cola de


e6ecutables si1ue en la misma cola si no !a( traspaso

#n proceso se traspasa a una cola de menor prioridad


cuando a1ota dos quantum de tiempo se1uidos, o bien,
a1ota uno ( se bloquea en el si1uiente
Tema 2: Procesos y hebras
E6emplo de colas mKltiples con
realimentacin (( ::)
P T6leada TSer8icio total !"faa +lo7ueo
A & / ' ,
+ 2 2 , /
0 , 2, ) )
& ' 2 , / ( 2 . - 1 '& '' '2 ', '/ '( '2 '. '- '1 2& 2' 22 2, 2/ 2(
D
B
C
t * & ' 2 / 2 . - '& '' '( '2 '1 2,
0ola ' A + 0A+ A+0 +0 0 A A
0ola 2 0 0 +0 +0 0
0ola , 0
&4'
&4' ;os procesos
tienen un
comportamiento
c5clico
>in de D
>in de C
>in de B
Tema 2: Procesos y hebras
-' $peraciones sobre procesos
Creacin de procesos

Qu si1nifica crear un proceso?


9
Asinarle el espacio de direcciones 7ue utili:ar"
9
0rear las estructuras de datos para su administracin

Cu*ndo se crea? ;os sucesos comunes son7


9
En sistemas batch: en respuesta a la recepcin y
admisin de un traba4o
9
En sistemas interacti8os: cuando el usuario se conecta; el
S< crea un proceso 7ue e4ecuta el int=rprete de rdenes
9
El S< puede crear un proceso para lle8ar a cabo un
ser8icio solicitado por un proceso de usuario
9
>n proceso puede crear otros procesos formando un
"rbol de procesos? @ablamos de relacin padre)hi4o
#creador)creado$
Tema 2: Procesos y hebras
-' $peraciones sobre procesos
Creacin de procesos (::)

Cuando un proceso crea a otro, cmo obtiene sus


recursos el proceso !i6o?
8
;os obtiene directamente del /$7 padre e !i6o
no comparten recursos'
8
Comparte todos los recursos con el padre'
8
Comparte un subcon6unto de los recursos del
padre'
Tema 2: Procesos y hebras
-' $peraciones sobre procesos
Creacin de procesos (:::)

E6ecucin7
8
Padre e !i6o se e6ecutan concurrentemente'
8
Padre espera al que el !i6o termine'

Espacio de direcciones7
8
%i6o es un duplicado del padre (#nix)'
8
%i6o tiene un pro1rama que lo car1a (AG/)

E6emplo7 En #?:S
8
;a llamada al sistema fork (bifurcar) crea un nue9o
proceso'
8
;a llamada exec despus de fork reempla0a el
espacio de direcciones con el pro1rama del nue9o
proceso'
Tema 2: Procesos y hebras
-' $peraciones sobre procesos
Creacin de procesos (( :A)

Por tanto, qu pasos, en 1eneral, deben reali0arse


en una operacin de creacin?
8
?ombrar al proceso7 asi1narle un P: Knico
8
Dsi1narle espacio (en GP (+o memoria secundaria)
8
Crear el PCB e iniciali0arlo
8
:nsertarlo en la Tabla de procesos ( li1arlo a la cola
de planificacin correspondiente
8
eterminar su prioridad inicial
Tema 2: Procesos y hebras
-' $peraciones sobre procesos
Terminacin de procesos

Qu sucesos determinan la finali0acin de un


proceso?
9
0uando un proceso e4ecuta la Altima instruccin; solicita
al S< su finali:acin #eBit$
C
En8Do de datos del hi4o al padre
C
!ecursos del proceso son liberados por el S<
9
El padre puede finali:ar la e4ecucin de sus hi4os #abort o
Eill$
C
El hi4o ha sobrepasado los recursos asinados
C
6a tarea asinada al hi4o ya no es necesaria
C El padre 8a a finali:ar: el S< no permite al hi4o
continuar #terminacin en cascada$
9
El S< puede terminar la e4ecucin de un proceso por7ue
se hayan producido errores o condiciones de fallo
Tema 2: Procesos y hebras
.'%ebras (!ilos)

6n proceso(
8
6nidad de propiedad de los recursos( el proceso
inclu(e memoria ( seccin de cdi1o, seccin de datos)
( otros recursos como7 arc!i9os abiertos, seRales,'''
8
6nidad de expedicin7 si1ue un camino de e6ecucin
que puede ser intercalada con la de otros procesos'
(Contador de pro1rama, con6unto de re1istros, espacio
de pila, estado)

Estas dos caracter"sticas puede ser tratadas de manera


independiente por el /$, apareciendo el concepto de
hebra
Tema 2: Procesos y hebras
.'%ebras (::)

#na hebra (o proceso ligero) es la unidad b*sica de utili0acin


de la CP# (unidad de expedicin)' Consta de7
8
Contador de pro1rama'
8
Con6unto de re1istros'
8
Espacio de pila'
8
Estado

6na tarea es la unidad de propiedad de los recursos'


8
/eccin de cdi1o'
8
/eccin de datos'
8
Mecursos del /$ (arc!i9os abiertos, seRales,'')'
#na !ebra comparte con sus !ebras pares una tarea'

#n proceso pesado o tradicional es i1ual a una tarea con una


!ebra'
Tema 2: Procesos y hebras
.'%ebras (:::)
#n proceso, un !ilo #n proceso, mKltiples !ilos
GKltiples procesos,
un !ilo por proceso
GKltiples procesos,
mKltiples !ilos por proceso
>lu6o de
instrucciones
Procesos e !ilos (/tallin1)
Tema 2: Procesos y hebras
.'%ebras (:A)

6na 7ebra posee(


8
#n estado de e6ecucin (E6ecucin, ;isto, etc')'
8
El contexto del procesador se sal9a cuando no est*
e6ecutando'
8
#na pila de e6ecucin'
8
Dlmacenamiento est*tico para las 9ariables locales'
8
Dcceso a la memoria ( a los recursos del proceso,
compartidos con todos los !ilos del mismo'
Tema 2: Procesos y hebras
.'%ebras (( A)

Godelo de proceso
mono!ilo

Godelo de proceso multi!ilo
Espacio de
direcciones
del usuario
Pila del
usuario
Pila del
nKcleo
Bloque de
control de
proceso
Espacio de
direcciones
del usuario
Pila del
usuario
Pila del
nKcleo
Bloque de
control de
!ilo
Pila del
usuario
Pila del
nKcleo
Bloque de
control de
!ilo
%ilo %ilo
Bloque de
control de
proceso
Tema 2: Procesos y hebras
.'%ebras
Aenta6as de las !ebras

/e obtiene un ma(or rendimiento ( un me6or ser9icio


debido a 7
8
/e reduce el tiempo de cambio de contexto, el tiempo de creacin
( el tiempo de terminacin'
8
En una tarea con mKltiples !ebras, mientras una !ebra ser9idora
esta bloqueada ( esperando, una se1unda !ebra de la misma tarea
puede e6ecutarse (depende del tipo de !ebras)
8
;a comunicacin entre !ebras de una misma tarea se reali0a a
tra9s de la memoria compartida (no necesitan utili0ar los
mecanismos del nKcleo)'
8
;as aplicaciones que necesitan compartir memoria se benefician
de la !ebras'
Tema 2: Procesos y hebras
.'%ebras
>uncionalidad de las !ebras'
Dl i1ual que los procesos la !ebras poseen un estado de
e6ecucin ( pueden sincroni0arse'

Estados de las hebras7 E6ecucin, ;ista ( Bloqueada'

$peraciones b*sicas relacionadas con el cambio de estado


en !ebras7
8
Creacin
8
Bloqueo
8
esbloqueo
8
Terminacin

0incroni*acin entre hebras'


Tema 2: Procesos y hebras
.'%ebras
E6emplo7 estados de una !ebra (:)'
Tiempo
Proceso &
;lamada
a MPC
;lamada
a MPC
/er9idor
&a' -P% utili*ando un solo hilo
Bloqueado, esperando respuesta del ser9idor

E6ecutando
;lamadas a Procedimiento Memoto (MPC) utili0ando !ilos'
/er9idor
Tema 2: Procesos y hebras
.'%ebras
E6emplo7 estados de una !ebra (( ::)'
/er9idor ;lamada
a MPC
;lamada
a MPC
%ilo D (proceso &)
%ilo B (proceso &)
&b' -P% utili*ando un hilo por servidor &en un monoprocesador'
Bloqueado, esperando respuesta de una MPC
Bloqueado, esperando al procesador que est* siendo usado por el !ilo B
E6ecutando
;lamadas a Procedimiento Memoto (MPC) utili0ando !ilos'
/er9idor
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras
Tipos de !ebras7 #ernel, usuario $ enfo%ues h&'ridos

7ebras usuario
8
Todo el traba6o de 1estin de !ebras lo reali0a la
aplicacin, el nKcleo no es consciente de la existencia
de !ebras'
8
/e implementan a tra9s de una biblioteca en el ni9el
usuario' ;a biblioteca contiene cdi1o para 1estionar
las !ebras7
C crear hebras; intercambiar datos entre hebras; planificar la e4ecucin
de las hebras y sal8ar y restaurar el conteBto de las hebras?
8
;a unidad de planificacin para el nKcleo es el proceso
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras (::)

7ebras 8ernel &.cleo'


8
Toda la 1estin de !ebras lo reali0a el nKcleo'
8
El /$ proporciona un con6unto de llamadas al sistema
similares a las existentes para los procesos (Gac!,
$/+))'
8
El nKcleo mantiene la informacin de contexto del
proceso como un todo ( de cada !ebra'
8
;a unidad de planificacin es la !ebra'
8
;as propias funciones del nKcleo pueden ser
multi!ebras'
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras (:::)

Aenta6as del uso de las !ebras tipo usuario frente


a las de tipo nKcleo7
8
/e e9ita la sobrecar1a de cambios de modo, que sucede
cada 9e0 que se pasa el control de una !ebra a otra en
sistemas que utili0an !ebras nKcleo'
8
/e puede tener una planificacin para las !ebras
distinta a la planificacin sub(acente del /$'
8
/e pueden e6ecutar en cualquier /$' /u utili0acin no
supone cambio en el nKcleo'
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras (:A)

es9enta6as del uso de las !ebras tipo usuario


frente a las de tipo nKcleo'
8
Cuando un proceso reali0a una llamada al sistema
bloqueadora no slo se bloquea la !ebra que reali0 la
llamada, sino todas las !ebras de la tarea'
8
En un entorno multiprocesador, una aplicacin
multi!ebra no puede apro9ec!ar la 9enta6as de dic!o
entorno (a que el nKcleo asi1na un procesador a un
proceso'
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras (A)

Enfo#ues h5bridos
8
:mplementan tanto !ebras a ni9el Iernel como usuario (p' e6'
/olaris ))'
8
;a creacin de !ebras, ( la ma(or parte de la planificacin (
sincroni0acin se reali0an en el espacio de usuario'
8
;as distintas !ebras de una aplicacin se asocian con 9arias
!ebras del nKcleo (mismo o menor nKmero), el pro1ramador
puede a6ustar la asociacin para obtener un me6or resultado'
8
;as mKltiples !ebras de una aplicacin se pueden paraleli0ar
( las llamadas al sistema bloqueadoras no necesitan bloquear
todo el proceso'
Tema 2: Procesos y hebras
.'%ebras
Tipos de !ebras ( ( A:)
Biblioteca
de !ilos
Biblioteca
de !ilos
Espacio
de usuario
Espacio
de usuario
Espacio
de
usuario
Espacio
de nKcleo
Espacio
de nKcleo
Espacio
de nKcleo
&a' ivel de usuario puro
(b' ivel de n.cleo puro
&c' %ombinado
%ilo a ni9el de usuario %ilo a ni9el de nKcleo Proceso
%ilos a ni9el de usuario ( a ni9el de nKcleo'

You might also like