Anda di halaman 1dari 85

TEMA 2.

Procesos y Hebras
2.1 Generalidades sobre Procesos, Hilos y Planificacin. 2.2. Diseo e implemen acin de procesos e !ilos en "in#$. 2.% Planificacin de la &P' en "in#$.

Tema 2: Procesos y Hebras

n 1

(b)e i*os

&onocer y diferenciar los concep os de proceso y hebra &onocer los estados b+sicos de #n proceso,!ebra y las posibles ransiciones en re los es ados -aber en .#/ consis e #n cambio de contexto y los cos es .#e /s e iene para el sis ema opera i*o &on enido y # ilidad de las estructuras de datos .#e el -( # ili0a para la 1es in de los procesos,!ebras &onocer y comparar las dis in as implemen aciones de las !ebras &onocer la # ilidad de la planificacin de procesos y de los dis in os planificadores .#e p#eden e$is ir &omparar los dis in os al1ori mos de planificacin de &P' &onocer las operaciones b+sicas sobre procesos,!ebras .#e p#eden reali0ar los #s#arios
Tema 2: Procesos y Hebras
n 2

2iblio1raf3a

4- a567 8. - allin1s, -is emas (pera i*os. Aspec os 9n ernos y Principios de Diseo :6,e;, Pren ice Hall, 2556. 4&ar5<7 =. &arre ero e al., -is emas (pera i*os :2> Edicin;, McGra?@Hill, 255<. 4"o*157 A. "o*e, Linux Kernel Development (3/e), Addison@ 8esley Professional, 2515. 4Ma#5B7 8. Ma#erer, Professional "in#$ Cernel Arc!i ec #re, 8iley, 255B.

Tema 2: Procesos y Hebras

n 3

E)ec#cin del -(
Ncleo fuera de todo proceso:
Ejecuta el ncleo del sistema operativo fuera de cualquier proceso.

El cdigo del sistema operativo se ejecuta como una entidad separada que opera en modo privilegiado.

Ejecucin dentro de los procesos de usuario:


Software del sistema operativo en el contexto de un proceso de usuario.

Un proceso se ejecuta en modo privilegiado cuando se ejecuta el cdigo del sistema operativo.

Tema 2: Procesos y Hebras

n 4

Identificacin del proceso Informacin de estado del procesador Informacin de control del proceso Pila de usuario
Espacio privado de direcciones de usuario (programas, datos)

Pila del ncleo

Espacio de direcciones compartido

Figura 3.15. Imagen de un proceso: el sistema operativo se ejecuta dentro del proceso de usuario.
Tema 2: Procesos y Hebras
n 5

$a%las de memoria emoria !ispositivos "rc#ivos Procesos $a%las de E&' $a%las de arc#ivo

Imagen de proceso

Proceso 1

$a%la de procesos principal

Proceso 1 Proceso ( Proceso 3


Imagen de proceso

Proceso n

Proceso n

n 6 2: ycontrol Hebras Figura 3.1). Estructura Tema general de Procesos las tablas de del sistema operativo.

&ambio de con e$ o

&#ando #n proceso es a e)ec# +ndose, s# P&, p#n ero a pila, re1is ros, e c., es +n car1ados en la &P' :es decir, los re1is ros !ard?are con ienen los *alores ac #ales;. &#ando el -( de iene #n proceso e)ec# +ndose, sal*a los *alores ac #ales de es os re1is ros :contexto; en el P&2 de ese proceso. "a accin de conm# ar la &P' de #n proceso a o ro se denomina cambio de contexto. "os sis emas de iempo compar ido reali0an de 15 a 155 cambios de con e$ o por se1#ndo. Es e raba)o es sobrecar1a.
Tema 2: Procesos y Hebras
n 7

&ambio de con e$ o :y 99;


P1
Ac i*o

-is ema (pera i*o


A1o ado D de &P'

P2

G#ardar con e$ o de P1 en s# P&2 &ar1ar con e$ o de P2 desde s# P&2


Ac i*o

G#ardar con e$ o de P2 en s# P&2 A1o ado D


de &P'

&ar1ar con e$ o de P1 desde s# P&2


Ac i*o
Tema 2: Procesos y Hebras
n

Dia1rama de es ados modificado


E)ec#cin
la ic n if ad o
m s# id o

E$i
Es pe r ap

or

"is o Aec#perado del disco

em Ti

on oc

E,

Ein E,-

2lo.#eado

E$p#lsado al disco

En ra al sis ema

E$p#lsado al disco

Procesos por lo es en espera

"is o y s#spendido

Ein E,-

2lo.#eado y s#spendido

Tema 2: Procesos y Hebras

n !

Fona de in ercambio

Memoria

(peraciones sobre procesos


&reacin de procesos

GH#/ si1nifica crear #n procesoI


Asi1narle el espacio de direcciones .#e # ili0ar+ &rear las es r#c #ras de da os para s# adminis racin

G&#+ndo se creaI "os s#cesos com#nes son:


En sis emas ba c!: en resp#es a a la recepcin y admisin de #n raba)o En sis emas in erac i*os: c#ando el #s#ario se conec a, el -( crea #n proceso .#e e)ec# a el in /rpre e de rdenes El -( p#ede crear #n proceso para lle*ar a cabo #n ser*icio solici ado por #n proceso de #s#ario 'n proceso p#ede crear o ros procesos formando #n +rbol de procesos. Hablamos de relacin padre@!i)o :creador@creado;

Tema 2: Procesos y Hebras

n 1"

&reacin de procesos :y 99;


&#ando #n proceso crea a o ro, Gcmo ob iene s#s rec#rsos el proceso !i)oI "os ob iene direc amen e del -(: padre e !i)o no compar en rec#rsos. &ompar e odos los rec#rsos con el padre. &ompar e #n s#bcon)#n o de los rec#rsos del padre.

Tema 2: Procesos y Hebras

n 11

&reacin de procesos :y 999;

E)ec#cin: Padre e !i)o se e)ec# an conc#rren emen e. Padre espera al .#e el !i)o ermine. Espacio de direcciones: Hi)o es #n d#plicado del padre :'ni$, "in#$;. Hi)o iene #n pro1rama .#e lo car1a :JM-, 82C; E)emplo: En 'K9L "a llamada al sis ema fork :bif#rcar; crea #n n#e*o proceso. "a llamada exec desp#/s de fork reempla0a el espacio de direcciones con el pro1rama del n#e*o proceso.
Tema 2: Procesos y Hebras
n 12

&reacin de procesos :y 9J;


Por an o, G.#/ pasos, en 1eneral, deben reali0arse en #na operacin de creacinI
Kombrar al proceso: asi1narle #n P9D Mnico Asi1narle espacio :en MP y,o memoria sec#ndaria; &rear el P&2 e iniciali0arlo 9nser arlo en la Tabla de procesos y li1arlo a la cola de planificacin correspondien e De erminar s# prioridad inicial

Tema 2: Procesos y Hebras

n 13

Terminacin de procesos
GH#/ s#cesos de erminan la finali0acin de #n procesoI
&#ando #n proceso e)ec# a la Ml ima ins r#ccin, solici a al -( s# finali0acin :exit;
En*3o de da os del !i)o al padre Aec#rsos del proceso son liberados por el -(

El padre p#ede finali0ar la e)ec#cin de s#s !i)os :abort o kill;


El !i)o !a sobrepasado los rec#rsos asi1nados "a area asi1nada al !i)o ya no es necesaria El padre *a a finali0ar: el -( no permi e al !i)o con in#ar : erminacin en cascada;

El -( p#ede erminar la e)ec#cin de #n proceso por.#e se !ayan prod#cido errores o condiciones de fallo
Tema 2: Procesos y Hebras
n 14

Hebras
:threads, !ilos o procesos li1eros;

'na hebra :o proceso ligero; es la #nidad b+sica de # ili0acin de la &P'. &ons a de:
&on ador de pro1rama. &on)#n o de re1is ros. Espacio de pila. Es ado

'na !ebra compar e con s#s !ebras pares #na tarea .#e consis e en:

'n proceso pesado o radicional es i1#al a #na area con #na !ebra.
Tema 2: Procesos y Hebras
n 15

-eccin de cdi1o. -eccin de da os. Aec#rsos del -( :arc!i*os abier os, seales,..;.

Hebras :y 99;
Modelo de proceso mono!ebra
2lo.#e de con rol de proceso

Modelo de proceso m#l i!ebra


Hebra 2lo.#e de con rol de proceso
2lo.#e de con rol de !ebra Pila del #s#ario

Hebra
2lo.#e de con rol de !ebra Pila del #s#ario Pila del nMcleo

Pila del #s#ario Pila del nMcleo

Espacio de direcciones del #s#ario

Espacio de direcciones del #s#ario

Pila del nMcleo

Tema 2: Procesos y Hebras

n 16

Jen a)as de las !ebras


-e ob iene #n mayor rendimien o y #n me)or ser*icio debido a :
-e red#ce el iempo de cambio de con e$ o, el iempo de creacin y el iempo de erminacin. En #na area con mMl iples !ebras, mien ras #na !ebra es a blo.#eada y esperando, #na se1#nda !ebra de la misma area p#ede e)ec# arse :depende del ipo de !ebras;. "a com#nicacin en re !ebras de #na misma area se reali0a a ra*/s de la memoria compar ida :no necesi an # ili0ar los mecanismos del nMcleo;. "as aplicaciones .#e necesi an compar ir memoria se benefician de la !ebras.
Tema 2: Procesos y Hebras
n 17

E#ncionalidad de las !ebras


Al i1#al .#e los procesos la !ebras poseen #n es ado de e)ec#cin y p#eden sincroni0arse. Estados de las hebras: E)ec#cin, "is a o
Preparada y 2lo.#eada.

(peraciones b+sicas relacionadas con el cambio de estado en !ebras:


&reacin 2lo.#eo Desblo.#eo Terminacin

Sincronizacin entre hebras.


Tema 2: Procesos y Hebras
n 1

Tipos de !ebras
Tipos de !ebras: Ncleo (Kernel) , de usuario y en o!ues h"bridos #ebras de usuario
Todo el raba)o de 1es in de !ebras lo reali0a la aplicacin, el nMcleo no es conscien e de la e$is encia de !ebras. -e implemen an a ra*/s de #na biblio eca en el ni*el #s#ario. "a biblio eca con iene cdi1o para 1es ionar las !ebras: crear !ebras, in ercambiar da os en re !ebras, planificar la e)ec#cin de las !ebras y sal*ar y res a#rar el con e$ o de las !ebras. "a #nidad de planificacin para el nMcleo es el proceso
Tema 2: Procesos y Hebras
n 1!

Tipos de !ebras :y 99;


#ebras Kernel (Ncleo)
Toda la 1es in de !ebras lo reali0a el nMcleo. El -( proporciona #n con)#n o de llamadas al sis ema similares a las e$is en es para los procesos :Mac!, (-,2;. El nMcleo man iene la informacin de con e$ o del proceso como #n odo y de cada !ebra. "a #nidad de planificacin es la !ebra. "as propias f#nciones del nMcleo p#eden ser m#l i!ebras.

Tema 2: Procesos y Hebras

n 2"

Tipos de !ebras :y 999;

Jen a)as del #so de las !ebras ipo #s#ario fren e a las de ipo nMcleo:
-e e*i a la sobre car1a de cambios de modo, .#e s#cede cada *e0 .#e se pasa el con rol de #na !ebra a o ra en sis emas .#e # ili0an !ebras nMcleo. -e p#ede ener #na planificacin para las !ebras dis in a a la planificacin s#byacen e del -(. -e p#eden e)ec# ar en c#al.#ier -(. -# # ili0acin no s#pone cambio en el nMcleo.
Tema 2: Procesos y Hebras
n 21

Tipos de !ebras :y 9J;

Des*en a)as del #so de las !ebras ipo #s#ario fren e a las de ipo nMcleo.
&#ando #n proceso reali0a #na llamada al sis ema blo.#eadora no slo se blo.#ea la !ebra .#e reali0 la llamada, sino odas las !ebras del proceso. En #n en orno m#l iprocesador, #na aplicacin m# i!ebra no p#ede apro*ec!ar la *en a)as de dic!o en orno ya .#e el nMcleo asi1na #n procesador a #n proceso.
Tema 2: Procesos y Hebras
n 22

Tipos de !ebras : y J;
$n o!ues h"bridos
9mplemen an an o !ebras a ni*el %ernel como #s#ario :p. e). -olaris 2;. "a creacin de !ebras, y la mayor par e de la planificacin y sincroni0acin se reali0an en el espacio de #s#ario. "as dis in as !ebras de #na aplicacin se asocian con *arias !ebras del nMcleo :mismo o menor nMmero;, el pro1ramador p#ede a)#s ar la asociacin para ob ener #n me)or res#l ado. "as mMl iples !ebras de #na aplicacin se p#eden paraleli0ar y las llamadas al sis ema blo.#eadoras no necesi an blo.#ear odo el proceso.
Tema 2: Procesos y Hebras
n 23

Tipos de !ebras : y J9;


Espacio de #s#ario

2iblio eca de !ebras

Espacio de #s#ario Espacio de nMcleo

Espacio de #s#ario Espacio de nMcleo

2iblio eca de !ebras

Espacio de nMcleo

(a) Nivel de usuario puro

:b) Nivel de ncleo puro

(c) Sistema

!brido

#ebra a nivel de usuario

#ebra a nivel de n$cleo

%roceso

#ebras a nivel de usuario & a nivel de n$cleo 'Stalling(


Tema 2: Procesos y Hebras
n 24

Planificacin: P&2Ns y &olas de Es ados

El -( man iene #na coleccin de colas .#e represen an el es ado de odos los procesos en el sis ema. T3picamen e !ay #na cola por es ado. &ada P&2 es a encolado en #na cola de es ado acorde a s# es ado ac #al. &onforme #n proceso cambia de es ado, s# P&2 es re irado de #na cola y encolado en o ra.

Tema 2: Procesos y Hebras

n 25

&olas de es ados

&ola de traba'os @@ con)#n o de los raba)os pendien es de ser admi idos en el sis ema : raba)os por lo es .#e no es +n en memoria;. &ola de preparados @@ con)#n o de odos los procesos .#e residen en memoria principal, preparados y esperando para e)ec# arse. &ola(s) de blo!ueados @@ con)#n o de odos los procesos esperando por #n disposi i*o de E,par ic#lar o por #n s#ceso.
n 26

Tema 2: Procesos y Hebras

Tipos de planificadores
G G

Planificador O Par e del -( .#e con rola la # ili0acin de #n rec#rso. Tipos de planificadores de la &P': (lani icador a largo pla)o :planificador de raba)os;: selecciona los procesos .#e deben lle*arse a la cola de preparadosP :1; en fi1#ra si1#ien e. (lani icador a corto pla)o :planificador de la &P';: selecciona al proceso .#e debe e)ec# arse a con in#acin, y le asi1na la &P'P :2; en fi1#ra si1#ien e. (lani icador a medio pla)o*
Tema 2: Procesos y Hebras
n 27

Mi1racin en re colas
(1) Cola de Trabajos Cola de Preparados CP Programas interactivos

Fin

E/S suceso Cola(s) de bloqueados


Tema 2: Procesos y Hebras
n 2

(2)

&arac er3s icas de los planificadores


$l plani icador a corto pla)o : raba)a con la cola de preparados. se in*oca m#y frec#en emen e :milise1#ndos; por lo .#e debe ser r+pido.
G

$l plani icador a largo pla)o Permi e con rolar el grado de multiprogramaci+n. se in*oca poco frec#en emen e :se1#ndos o min# os;, por lo .#e p#ede ser m+s len o.
G

Tema 2: Procesos y Hebras

n 2!

&lasificacin de procesos

(rocesos limitados por $/, o procesos cortos @@ dedican m+s iempo a reali0ar E,- .#e comp# oP m#c!as r+fa1as de &P' cor as y lar1os per3odos de espera. (rocesos limitados por &(- o procesos largos @@ dedican m+s iempo en comp# acin .#e en reali0ar E,-P pocas r+fa1as de &P' pero lar1as.

Tema 2: Procesos y Hebras

n 3"

Me0cla de raba)os
Es impor an e .#e el planificador a lar1o pla0o seleccione #na b#ena me0cla de raba)os, ya .#e:

-i odos los raba)os es +n limi ados por E,-, la cola de preparados es ar+ casi siempre *ac3a y el planificador a cor o pla0o endr+ poco .#e !acer. -i odos los procesos es +n limi ados por &P', la cola de E,- es ar+ casi siempre *ac3a y el sis ema es ar+ de n#e*o dese.#ilibrado.
Tema 2: Procesos y Hebras
n 31

Planificador a medio pla0o

En al1#nos -(Ns, p. e). -( de iempo compar ido, a *eces es necesario sacar procesos de la memoria :red#cir el grado de multiprogramaci+n;, bien para me)orar la me0cla de procesos, bien por cambio en los re.#isi os de memoria, y l#e1o *ol*erlos a in rod#cir :in ercambio o s.apping;. El plani icador a medio pla)o se encar1a de de*ol*er los procesos a memoria. Transicin :%; en la si1#ien e fi1#ra.
Tema 2: Procesos y Hebras
n 32

Planificador a medio pla0o :y 99;


Procesos parcialmen e e)ec# ados e in ercambiados de disco

&ola de Traba)os

(3) &P'
&ola de Preparados

Ein

Pro1ramas in erac i*os

E,- s#ceso &ola:s; de blo.#eados


Tema 2: Procesos y Hebras
n 33

Despac!ador

El despac!ador :dispatcher; es el md#lo del -( .#e da el con rol de la &P' al proceso seleccionado por el planificador a cor o pla0oP es o in*ol#cra: &ambio de con e$ o :se reali0a en modo Qernel;. &onm# acin a modo #s#ario. -al o a la posicin de memoria adec#ada del pro1rama para s# rean#dacin. Latencia de despacho @@ iempo .#e emplea el despac!ador en de ener #n proceso y comen0ar a e)ec# ar o ro.
Tema 2: Procesos y Hebras
n 34

Ac i*acin del Despac!ador


El despac!ador p#ede ac #ar c#ando:
1. 'n proceso no .#iere se1#ir e)ec# +ndose :finali0a o e)ec# a #na operacin .#e lo blo.#ea; 2. 'n elemen o del -( de ermina .#e el proceso no p#ede se1#ir e)ec# +ndose :e). E,- o re iro de memoria principal; %. El proceso a1o a el .#an #m de iempo asi1nado R. 'n s#ceso cambia el es ado de #n proceso de blo.#eado a e)ec# able
Tema 2: Procesos y Hebras
n 35

Pol3 icas de planificacin: Monoprocesadores

(b)e i*os:
2#en rendimien o :prod#c i*idad; 2#en ser*icio

Para saber si #n proceso ob iene #n b#en ser*icio, definiremos #n con)#n o de medidas: dado #n proceso (, .#e necesi a #n iempo de ser*icio :r+fa1a; t
/iempo de respuesta (/)@@ /iempo de espera (0;@@
la cola de preparados: T @ iempo ransc#rrido desde .#e se remi e #na solici #d :en ra en la cola de preparados; !as a .#e se prod#ce la primera resp#es a :no se considera el iempo .#e arda en dar la salida; iempo .#e #n proceso !a es ado esperando en

(enali)aci+n (() @@ T , 1ndice de respuesta (2) @@


recibiendo ser*icio.

, T : fraccin de iempo .#e P es +

Tema 2: Procesos y Hebras

n 36

Pol3 icas de planificacin: Monoprocesadores :y 99;


( ras medidas in eresan es son:

/iempo del ncleo @@ iempo perdido por el -( omando


decisiones .#e afec an a la planificacin de procesos y !aciendo los cambios de con e$ o necesarios. En #n sis ema eficien e debe represen ar en re el 15S y el %5S del o al del iempo del procesador

/iempo de inactividad @@ iempo en el .#e la cola de e)ec# ables


es + *ac3a y no se reali0a nin1Mn raba)o prod#c i*o

/iempo de retorno 3 can idad de iempo necesario para e)ec# ar


#n proceso comple o

Tema 2: Procesos y Hebras

n 37

Pol3 icas de planificacin: Monoprocesadores :999;

"as pol3 icas de planificacin se compor an de dis in a manera dependiendo de la clase de procesos
Kin1#na pol3 ica de planificacin es comple amen e sa isfac oria, c#al.#ier me)ora en #na clase de procesos es a e$pensas de perder eficiencia en los procesos de o ra clase*

Podemos clasificarlas en: No apropiativas (no expulsivas): #na *e0 .#e se le

asi1na el procesador a #n proceso, no se le p#ede re irar !as a .#e /s e *ol#n ariamen e lo de)e :finalice o se blo.#ee; apropiarse del procesador c#ando lo decida
Tema 2: Procesos y Hebras
n 3

"propiativas (expulsivas): al con rario, el -( p#ede

Pol3 icas de planificacin de la &P' :y 9J;


E&EEl m+s cor o primero:


no apropia i*o apropia i*o

Planificacin por prioridades Por #rnos :2ound42obin; &olas mMl iples &olas mMl iples con realimen acin.

Tema 2: Procesos y Hebras

n 3!

E&E- :5irst &ome 5irst ,erved)


"os procesos son ser*idos se1Mn el orden de lle1ada a la cola de e)ec# ables. Es no apropiativo, cada proceso se e)ec# ar+ !as a .#e finalice o se blo.#ee. E+cil de implemen ar pero pobre en c#an o a pres aciones. Todos los procesos pierden la misma can idad de iempo esperando en la cola de e)ec# ables independien emen e de s#s necesidades. Procesos cor os m#y penali0ados. Procesos lar1os poco penali0ados.
Tema 2: Procesos y Hebras
n 4"

El m+s cor o primero :-=E;


Es no apropiativo* &#ando el procesador .#eda libre, selecciona el proceso .#e re.#iera #n iempo de ser*icio menor. -i e$is en dos o m+s procesos en i1#aldad de condiciones, se si1#e E&E-. Kecesi a conocer e$pl3ci amen e el iempo es imado de e)ec#cin : D ser*icio; G&moI. Dismin#ye el iempo de resp#es a para los procesos cor os y discrimina a los lar1os. Tiempo medio de espera ba)o.
Tema 2: Procesos y Hebras
n 41

El m+s cor o primero apropia i*o :-ATE;

&ada *e0 .#e en ra #n proceso a la cola de e)ec# ables se compr#eba si s# iempo de ser*icio es menor .#e el iempo de ser*icio .#e le .#eda al proceso .#e es + e)ec# +ndose. &asos:
Si es menor: se reali0a #n cambio de con e$ o y el proceso con menor iempo de ser*icio es el .#e se e)ec# a. No es menor: con inMa el proceso .#e es aba e)ec# +ndose.

El iempo de resp#es a es menor e$cep o para procesos m#y lar1os. -e ob iene la menor penali0acin en promedio :man iene la cola de e)ec# ables con la m3nima
Tema 2: Procesos y Hebras
n 42

Planificacin por prioridades


Asociamos a cada proceso #n nMmero de prioridad :en ero;. -e asi1na la &P' al proceso con mayor prioridad :en eros menores T mayor prioridad; U Apropia i*a U Ko apropia i*a #roblema: 9nanicin @@ los procesos de ba)a prioridad p#eden no e)ec# arse n#nca. Solucin: En*e)ecimien o @@ con el paso del iempo se incremen a la prioridad de los procesos.
Tema 2: Procesos y Hebras
n 43

Por T#rnos :Ao#nd@Aobin;


"a &P' se asi1na a los procesos en in er*alos de iempo :.#a #m;. Procedimien o:
-i el proceso finali0a o se blo.#ea an es de a1o ar el .#an #m, libera la &P'. -e oma el si1#ien e proceso de la cola de e)ec# ables :la cola es E9E(; y se le asi1na #n .#an #m comple o. -i el proceso no ermina d#ran e ese .#an #m, se in err#mpe y se coloca al final de la cola de e)ec# ables.

Es apropia i*o.
Nota6 $n los e'emplos s#pondremos .#e si #n proceso 7 lle1a a la cola de e)ec# ables al mismo iempo .#e o ro 8 a1o a s# .#an #m, la lle1ada de 7 a la cola de e)ec# ables oc#rre an es de .#e 8 se incorpore a ella.
Tema 2: Procesos y Hebras
n 44

Por T#rnos :y 999;


"os *alores 3picos del .#an #m es +n en re 1,V5s1 y 1s1. Penali0a a odos los procesos en la misma can idad, sin impor ar si son cor os o lar1os. "as r+fa1as m#y cor as es +n m+s penali0adas de lo deseable. G*alor del .#an #mI @ m#y 1rande :e$cede del D de ser*icio de odos los procesos; O se con*ier e en E&E@ m#y pe.#eo O el sis ema monopoli0a la &P' !aciendo cambios de con e$ o : D del nMcleo m#y al o;
Tema 2: Procesos y Hebras
n 45

&olas mMl iples

"a cola de preparados se di*ide en *arias colas y cada proceso es asi1nado permanen emen e a #na cola concre a P. e). in erac i*os y ba c! &ada cola p#ede ener s# propio al1ori mo de planificacin P. e). in erac i*os con AA y ba c! con E&EAe.#iere #na planificacin en re colas Planificacin con prioridades fi)as. P. e). primero ser*imos a los in erac i*os l#e1o a los ba c! Tiempo compar ido @@ cada cola ob iene cier o iempo de &P' .#e debe repar ir en re s#s procesos. P. e). B5S in erac i*os en AA y 25S a los ba c! con E&ETema 2: Procesos y Hebras
n 46

&olas mMl iples con realimen acin


'n proceso se p#ede mo*er en re *arias colas Ae.#iere definir los si1#ien es par+me ros:
KMmero de colas Al1ori mo de planificacin para cada cola M/ odo # ili0ado para de erminar c#ando rasladar a #n proceso a o ra cola M/ odo # ili0ado para de erminar en .#/ cola se in rod#cir+ #n proceso c#ando necesi e #n ser*icio Al1ori mo de planificacin en re colas

Mide en iempo de e)ec#cin el compor amien o real de los procesos Disciplina de planificacin m+s 1eneral :'ni$, "in#$ 8indo?s KT;
Tema 2: Procesos y Hebras
n 47

Planificacin en m#l iprocesadores


Tres aspec os in errelacionados:

Asi1nacin de procesos a procesadores


&ola dedicada para cada procesador &ola 1lobal para odos los procesadores

'so de m#l ipro1ramacin en cada procesador indi*id#al Ac i*acin del proceso

Tema 2: Procesos y Hebras

n 4

Planificacin en m#l iprocesadores :y 99;

Planificacin de procesos
W i1#al .#e en monoprocesadores pero eniendo en c#en a:

KMmero de &P's Asi1nacin,"iberacin proceso@procesador

Planificacin de !ilos
W permi en e$plo ar el paralelismo real den ro de #na aplicacin

Tema 2: Procesos y Hebras

n 4!

Planificacin de !ilos en m#l iprocesadores


1; &ompar icin de car1a

&ola 1lobal de !ilos preparados &#ando #n procesador es + ocioso, se selecciona #n !ilo de la cola :m/ odo m#y #sado; -e planifica #n con)#n o de !ilos afines :de #n mismo proceso; para e)ec# arse sobre #n con)#n o de procesadores al mismo iempo :relacin 1 a 1; X il para aplicaciones c#yo rendimien o se de1rada m#c!o c#ando al1#na par e no p#ede e)ec# arse :los !ilos necesi an sincroni0arse;
Tema 2: Procesos y Hebras
n 5"

2; Planificacin en pandilla

Planificacin de !ilos en m#l iprocesadores


%; Asi1nacin de procesador dedicado

&#ando se planifica #na aplicacin, se asi1na #n procesador a cada #no de s#s !ilos !as a .#e ermine la aplicacin Al1#nos procesadores p#eden es ar ociosos W Ko !ay m#l ipro1ramacin de procesadores "a aplicacin permi e .#e *ar3e din+micamen e el nMmero de !ilos de #n proceso El -( a)#s a la car1a para me)orar la # ili0acin de los procesadores
Tema 2: Procesos y Hebras
n 51

R; Planificacin din+mica

-is emas de iempo real


"a e$ac i #d del sis ema no depende slo del res#l ado l1ico de #n c+lc#lo sino ambi/n del ins an e en .#e se prod#0ca el res#l ado.

"as areas o procesos in en an con rolar o reaccionar an e s#cesos .#e se prod#cen en Y iempo realZ :e*en os; y .#e ienen l#1ar en el m#ndo e$ erior.

&arac er3s icas de las areas de iempo real:


Tarea de D real d#ro: debe c#mplir s# pla0o l3mi e Tarea de D real s#a*e: iene #n iempo l3mi e pero no es obli1a orio Peridicas: se sabe cada c#+n o iempo se iene .#e e)ec# ar Aperidicas: iene #n pla0o en el .#e debe comen0ar o acabar o res ricciones respec o a esos iempos pero son impredecibles

Tema 2: Procesos y Hebras

n 52

Planificacin de sis emas de D real

"os dis in os enfo.#es dependen de:

&#+ndo el sis ema reali0a #n an+lisis de *iabilidad de la planificacin

Es #dia si p#ede a ender a odos los e*en os peridicos dado el iempo necesario para e)ec# ar la area y el periodo

-i se reali0a es + ica o din+micamen e -i el res#l ado del an+lisis prod#ce #n plan de planificacin o no
n 53

Tema 2: Procesos y Hebras

Planificacin en sis emas de D real :y 99;

Enfo.#es es + icos diri1idos por abla

An+lisis es + ico .#e 1enera #na planificacin .#e de ermina c#+ndo empe0ar+ cada area An+lisis es + ico .#e no 1enera #na planificacin, slo se #sa para dar prioridad a las areas. 'sa planificacin por prioridades -e de ermina la *iabilidad en D de e)ec#cin :din+micamen e;: se acep a #na n#e*a area si es posible sa isfacer s#s res ricciones de D Ko se !ace an+lisis de *iabilidad. El sis ema in en a c#mplir odos los pla0os y abor a e)ec#ciones si s# pla0o !a finali0ado
Tema 2: Procesos y Hebras
n 54

Enfo.#es es + icos e$p#lsi*os diri1idos por prioridad

Enfo.#es din+micos basados en #n plan

Enfo.#es din+micos de menor esf#er0o :el m+s #sado;

Problema: 9n*ersin de Prioridad

-e da en #n es.#ema de planificacin de prioridad y c#ando:

'na area de mayor prioridad espera por #na area :proceso; de menor prioridad debido al blo.#eo de #n rec#rso de #so e$cl#si*o :no compar ible;
Herencia de prioridad: la area menos priori aria !ereda la prioridad de la area m+s priori aria Tec!o de prioridad: -e asocia #na prioridad a cada rec#rso de #so e$cl#si*o .#e es m+s al a .#e c#al.#ier prioridad .#e p#eda ener #na area, y esa prioridad se le asi1na a la area a la .#e se le da el rec#rso En ambos, la area menos priori aria *#el*e a ener el *alor de prioridad .#e en3a c#ando libere el rec#rso n 55
Tema 2: Procesos y Hebras

Enfo.#es para e*i arla:

Diseo e implemen acin de procesos e !ilos en "in#$


Kos basamos el Qernel 2.V de "in#$. Podemos descar1ar los f#en es de ???.Qernel.or1 El nMcleo iden ifica a los procesos : areas @ asQs; por s# #$% En "in#$, proceso es la en idad .#e se crea con la llamada al sis ema fork :e$cep o el proceso 5; y clone Procesos especiales .#e e$is en d#ran e la *ida del sis ema: @ #roceso &: creado Ya manoZ c#ando arranca el sis ema. &rea al proceso 1.

@ #roceso ' :$nit;: an ecesor de c#al.#ier proceso del sis ema


Tema 2: Procesos y Hebras
n 56

"in#$: es r#c #ra asQ

Tema 2: Procesos y Hebras

fi1#ra del bo*er[cesa i

n 57

"in#$: es r#c #ra asQ :y 99;

El Cernel almacena la lis a de procesos como #na lis a circ#lar doblemen e enla0ada: task list &ada elemen o es #n descrip or de proceso :P&2; definido en </include/linux/sched.h>

Tema 2: Procesos y Hebras

n 5

"in#$: es r#c #ra asQ :y 999;


struct task_struct { /// del kernel 2.6.24
/* -1 unrunnable ! runnable >! sto""ed */

volatile long state; /*...*/

/* #nfor$acion "ara "lanificacion */ int "rio static%"rio nor$al%"rio;

struct list%head run%list; const struct sched%class *sched%class; struct sched%entit& se; /*...*/ unsigned int "olic&; c"u$ask%t c"us%allo'ed; unsigned int ti$e%slice; /*...*/
Tema 2: Procesos y Hebras
n 5!

"in#$: es r#c #ra asQ :y 9J;


//* (e$oria asociada a la tarea */ struct $$%struct *$$ /*...*/ "id%t "id; /* )elaciones entre task%struct */ struct task%struct *"arent; /* "arent "rocess */ struct list%head children; /* list of $& children */ struct list%head sibling; /* linkage in $& "arent*s children list */ /* #nfor$acion "ara "lanificacion & se+ales */ unsigned int rt%"riorit&; sigset%t blocked real%blocked; *active%$$;

sigset%t saved%sig$ask; /* ,o be restored 'ith ,#-%)./,0).%/#1(2/3 */ struct sig"ending "ending; /*...*/ }


Tema 2: Procesos y Hebras
n 6"

Es ados de #n proceso en "in#$


"a *ariable s a e de asQ\s r#c especifica el es ado ac #al de #n proceso.
E(ecucin
)"S*+,-NN$N. -e corresponde con dos: e)ec# +ndose o preparado para e)ec# arse :en la cola de procesos preparados; El proceso es + blo.#eado y sale de es e es ado c#ando oc#rre el s#ceso por el c#al es + blo.#eado o por.#e le lle1#e #na seal El proceso es + blo.#eado y slo cambiar+ de es ado c#ando oc#rra el s#ceso .#e es + esperando :no acep a seales; El proceso !a sido de enido y slo p#ede rean#darse por la accin de o ro proceso :e)emplo, proceso parado mien ras es + siendo dep#rado; El proceso es + siendo raceado por o ro proceso El proceso ya no e$is e pero man iene la en rada de la abla de procesos !as a .#e el padre !a1a #n ?ai :E4$)+%E"%;
Tema 2: Procesos y Hebras
n 61

$nterrumpible
)"S*+$N)E,,-#)$/0E

No interrumpible
)"S*+-N$N)E,,-#)$/0E

#arado
)"S*+S)1##E% )"S*+),"2E%

3ombie
E4$)+31M/$E

Modelo de procesos,!ilos en "in#$


Parado -eal Es ado de e)ec#cin &reacin "is o Planificacin -#ceso -eal o s#ceso Ko@ 9n err#mpible E)ec# ando Terminacin Fombie -eal

9n err#mpible
Tema 2: Procesos y Hebras
n 62

Espacio de direcciones de #n proceso en "in#$

Tema 2: Procesos y Hebras

n 63

E" +rbol de procesos :y 99;


&ada task%struct iene #n p#n ero ...
a la asQ\s r#c de s# padre:
struct task%struct *"arent

a #na lis a de !i)os :llamada c!ildren;:


struct list_head children;

y a #na lis a de s#s !ermanos :llamada siblin1;:


struct list_head sibling

El Qernel dispone de procedimien os eficaces para las acciones #s#ales de manip#lacin de la lis a. :Para #na e$plicacin de allada de list%head *er 4Ma#5B 1.%.1%7;
Tema 2: Procesos y Hebras
n 64

El +rbol de procesos

-i el proceso P5 !ace #na llamada la sis ema forQ, 1enera el proceso P1, se dice .#e P5 es el proceso padre y P1 es el !i)o. -i el proceso P5 !ace *arios forQ 1eneral de *arios proceso !i)os P1,P2,P%, la relacin en re ellos es de !ermanos :siblin1; Todos los procesos son descendien es del proceso ini :c#yo P9D es 1;
n 65

Tema 2: Procesos y Hebras

$mplementacin de hilos en 0inux

Desde el p#n o de *is a del Qernel no !ay dis incin en re !ebra y proceso "in#$ implemen a el concep o de !ebra como #n proceso sin m+s, .#e simplemen e compar e rec#rsos con o ros procesos &ada !ebra iene s# propia task_struct "a llamada al sis ema clone crea #n n#e*o proceso o !ebra
4include <sched.h> int clone 5int 5*fn6 5void *6 void *arg6;
Tema 2: Procesos y Hebras
n 66

void *child%stack

int flags

"lamada clone

Tema 2: Procesos y Hebras

n 67

Hebras Qernel

A *eces es M il .#e el Qernel realice operaciones en se1#ndo plano, para lo c#al se crean !ebras Qernel. "as !ebras Qernel no ienen #n espacio de direcciones :s# p#n ero mm es K'""; -e e)ec# an Mnicamen e en el espacio del Qernel. -on planificadas y p#eden ser e$propiadas. -e crean por el Qernel al le*an ar el sis ema, median e #na llamada a clone56. Terminan c#ando reali0an #na operacin do%exit o c#ando o ra par e del Qernel pro*oca s# finali0acin.
Tema 2: Procesos y Hebras
n 6

&reacin de procesos
fork56 7 clone56 7 do%fork56 7 co"&%"rocess56

Ac #acin de co"&%"rocess:
'. &rea la es r#c #ra !read\info :pila Cernel; y la asQ\s r#c para el n#e*o proceso con los *alores de la area ac #al. 5. Para los elemen os de task%struct del !i)o .#e deban ener *alores dis in os a los del padre, se les dan los *alores iniciales correc os. 6. -e es ablece el es ado del !i)o a TA-C\'K9KTEAA'PT92"E mien ras se reali0an las res an es acciones.
Tema 2: Procesos y Hebras
n 6!

&reacin de procesos :y 99;


7. -e es ablecen *alores adec#ados para los fla1s de la task%struct del !i)o: fla1 PE\-'PEAPA9J T 5 :la area no #sa pri*ile1io de s#per#s#ario; fla1 PE\E(ACK(ELE& T1 :el proceso !a !ec!o forQ pero no e$ec; 8. -e llama a alloc%"id56 para asi1nar #n P9D a la n#e*a area. 9. -e1Mn c#+les sean los fla1s pasados a clone56, d#plica o compar e rec#rsos como arc!i*os abier os, informacin de sis emas de arc!i*os, mane)adores de seales, espacio de direccionamien o del proceso..... :. -e es ablece el es ado del !i)o a TA-C\A'KK9KG. ;. Einalmen e co"&%"rocess56 ermina de*ol*iendo #n p#n ero a la task%struct del !i)o.
Tema 2: Procesos y Hebras
n 7"

Terminacin de #n proceso

&#ando #n proceso ermina, el Qernel libera odos s#s rec#rsos y no ifica al padre s# erminacin. Kormalmen e #n proceso ermina c#ando ....... 1; reali0a la llamada al sistema exit()< De forma expl!cita= el pro1ramador incl#y esa llamada en el cdi1o del pro1rama, ( de forma impl!cita= el compilador incl#ye a# om+ icamen e #na llamada a exit56 c#ando $ain56 ermina. 2; recibe una se>al an e la .#e iene la accin es ablecida de erminar

El raba)o de liberacin lo !ace la f#ncin do_exit() definida en


<linux/kernel/exit.c>
Tema 2: Procesos y Hebras
n 71

Ac #acin de do%exit56
'. Ac i*a el fla1 PE\EL9T9KG de task%struct 5. Para cada rec#rso .#e es / # ili0ando el proceso, se decremen a el con ador correspondien e .#e indica el nD de procesos .#e lo es +n # ili0ando si *ale 5 W se reali0a la operacin de des r#ccin opor #na sobre el rec#rso, por e)emplo si f#era #na 0ona de memoria, se liberar3a. 6. El *alor .#e se pasa como ar1#men o a e$i :; se almacena en el campo e$i \code de asQ\s r#c :informacin de erminacin para el padre; 7. -e manda #na se>al al padre indicando la finali0acin de s# !i)o.
Tema 2: Procesos y Hebras
n 72

Ac #acin de do%exit56
8. Si an tiene hi(os, se pone como padre de /s os al proceso ini :P9DT1; :dependiendo de las carac er3s icas del 1r#po de procesos al .#e per ene0ca el proceso, podr3a ponerse como padre a o ro miembro de ese 1r#po de procesos; 9. -e es ablece el campo e$i \s a e de asQ\s r#c o EL9T\F(M29E :. -e llama a schedule56para .#e el planificador eli)a #n n#e*o proceso a e)ec# ar P#es o .#e es e es el Ml imo cdi1o .#e e)ec# a #n proceso, do\e$i n#nca re orna
Tema 2: Procesos y Hebras
n 73

Planificacin de la &P' en "in#$

Planificador mod#lar: clases de planificacin


1.Planificacin de iempo real 2.Planificacin ne# ra o limpia :&E-: &ompletely 5air ,cheduling; %.Planificacin de la area YidleZ :no !ay
raba)o .#e reali0ar;

Tema 2: Procesos y Hebras

n 74

Planificacin de la &P' en "in#$ :y 99;

&ada clase de planificacin iene #na prioridad -e #sa #n al1ori mo de planificacin en re las clases de planificacin por prioridades apropia i*o &ada clase de planificacin #sa #na o *arias pol3 icas para 1es ionar s#s procesos "a planificacin no opera Mnicamen e sobre el concep o de proceso, sino .#e mane)a concep os m+s amplios en el sen ido de mane)ar 1r#pos de procesos: En idad de planificacin. 'na en idad de planificacin se represen a median e #na ins ancia de la es r#c #ra sched%entit&
Tema 2: Procesos y Hebras
n 75

Pol3 ica de planificacin


unsigned int policy; ,, pol3 ica .#e se aplica al proceso Pol3 icas mane)adas por el planificador &E- ] fair%sched%class8
/9:.;%<0)(2=: se aplica a los procesos normales de iempo compar ido /9:.;%>2,9:: areas menos impor an es, menor prioridad. -on procesos ba c! con 1ran proporcin de #so de &P' para c+lc#los. /9:.;%#;=.: areas de es e ipo ienen #na prioridad m3nima para ser ele1idas para asi1nacin de &P'

Pol3 icas mane)adas por el planificador de iempo real ]


rt%sched%class8 /9:.;%)): #so de #na pol3 ica Ao#nd@Aobin :Por #rnos; /9:.;%-#-0: #so de #na pol3 ica E&ETema 2: Procesos y Hebras
n 76

Prioridades

-iempre se c#mple .#e el proceso .#e es + en e)ec#cin es el m+s priori ario. Aan1o de *alores de prioridad para s a ic\prio: ?&@ AAB Prioridades para procesos de tiempo real ?'&&@ '6AB Prioridades para los procesos normales o re1#lares.

Tema 2: Procesos y Hebras

n 77

El planificador peridico

-e implemen a en scheduler%tick, f#ncin llamada a# om+ icamen e por el Qernel con frec#encia HF :cons an e c#yos *alores es +n normalmen e en el ran1o 1555 y 155H0; Tareas principales:

ac #ali0ar es ad3s icas del Qernel ac i*ar el m/ odo de planificacin peridico de la clase de planificacin a .#e corresponde el proceso ac #al :task%tick;. &ada clase de planificacin iene implemen ada s# propia f#ncin task%tick :con abili0a en D de &P' cos#mido;

-i !ay .#e replanificar, el planificador de la clase concre a ac i*ar+ el fla1 ,#-%<..;%)./9:.; asociado al proceso en s# thread%info, y pro*ocar+ .#e se llame al planificador principal.
Tema 2: Procesos y Hebras
n 7

El planificador principal

-e implemen a en la f#ncin schedule, in*ocada en di*ersos p#n os del Qernel para omar decisiones sobre asi1nacin de la &P'. "a f#ncin schedule es in*ocada de forma e$pl3ci a c#ando #n proceso se blo.#ea o ermina. El Qernel c!e.#ea el fla1 ,#-%<..;%)./9:.; del proceso ac #al al *ol*er al espacio de #s#ario desde modo Qernel :ya sea al *ol*er de #na llamada al sis ema o en el re orno de #na in err#pcin o e$cepcin y si es + ac i*o se in*oca al sc!ed#le;

Tema 2: Procesos y Hebras

n 7!

Ac #acin del shedule

De ermina la ac #al run?ueue y es ablece el p#n ero "rev a la task%struct del proceso ac #al Ac #ali0a es ad3s icas y limpia el fla1 ,#-%<..;%)./9:.; -i el proceso ac #al es aba en #n es ado ,2/3%#<,.))@A,#>=. y !a recibido la seal .#e esperaba, se es ablece s# es ado a
,2/3%)@<<#<1

-e llama a "ick%next%task de la clase de planificacin a la .#e per ene0ca el proceso ac #al para .#e se seleccione el si1#ien e proceso a e)ec# ar, se es ablece next con el p#n ero a la task%struct de dic!o proceso seleccionado. -i !ay cambio en la asi1nacin de &P', se reali0a el cambio de con e$ o llamando a context%s'itch
Tema 2: Procesos y Hebras
n "

"a clase de planificacin &E

9dea 1eneral: repar ir el iempo de &P' de forma imparcial,

1aran i0ando .#e odos los procesos se e)ec# ar+n y, dependiendo del nMmero de procesos, asi1narles m+s o menos iempo de #so de &P'.

Man iene da os sobre los iempos cons#midos por los procesos. El Qernel calc#la #n peso para cada proceso. &#an o mayor sea el *alor de la prioridad es + ica de #n proceso, menor ser+ el peso .#e en1a. vruntime :*ir #al r#n ime; de #na en idad es el tiempo virtual .#e #n proceso !a cons#mido y se calc#la a par ir del iempo real .#e el proceso !a !ec!o #so de la &P', s# prioridad es + ica y s# peso.
Tema 2: Procesos y Hebras
n 1

"a clase de planificacin &E- :y 99;

El *alor *r#n ime del proceso ac #al se ac #ali0a:

peridicamen e :el planificador peridico a)#s a los *alores de iempo de &P' cons#mido; c#ando lle1a #n n#e*o proceso e)ec# able c#ando el proceso ac #al se blo.#ea

&#ando se decide .#/ proceso e)ec# ar a con in#acin, se eli1e el .#e en1a #n *alor menor de *r#n ime. Para reali0ar es o &E- # ili0a #n rb ree :red blacQ ree;:
es r#c #ra de da os .#e almacena nodos iden ificados por #na cla*e y .#e permi e #na eficien e bMs.#eda dada #na de erminado *alor de la cla*e.
Tema 2: Procesos y Hebras
n 2

"a clase de planificacin &E- :y 999;

&#ando #n proceso *a a en rar en es ado blo.#eado:

se aade a #na cola asociada con la f#en e del blo.#eo se es ablece el es ado del proceso a ,2/3%#<,.))@A,#>=. o a ,2/3%<0<#<,.))@A,#>=. se1Mn sea con*enien e es eliminado del rb ree de procesos e)ec# ables se llama a schedule para .#e se eli)a #n n#e*o proceso a e)ec# ar se cambia s# es ado a e)ec# able :,2/3%)@<<#<1; se elimina de la cola de blo.#eo en .#e es aba se aade al rb ree de procesos e)ec# ables
Tema 2: Procesos y Hebras
n 3

&#ando #n proceso *#el*e del es ado blo.#eado

"a clase de planificacin de iempo real

-e define la clase de planificacin rt%sched%class. "os procesos de iempo real son m+s priori arios .#e los normales, y mien ras e$is an procesos de iempo real e)ec# ables /s os ser+n ele1idos fren e a los normales. 'n proceso de iempo real .#eda de erminado por la prioridad .#e iene c#ando se crea, el Qernel no incremen a o dismin#ye s# prioridad en f#ncin de s# compor amien o. "as pol3 icas de planificacin de iempo real /9:.;%)) y /9:.;%-#-0 posibili an .#e el Qernel "in#$ p#eda ener #n compor amien o so t real4time :-is emas de iempo real no es ric o;. Al crear el proceso ambi/n se especifica la pol3 ica ba)o la c#al se *a a planificar. E$is e #na llamada al sis ema para cambiar la n 4 pol3 ica asi1nada. Tema 2: Procesos y Hebras

Par ic#laridades en -MP

Para reali0ar correc amen e la planificacin en #n en orno -MP :m#l iprocesador;, el Qernel deber+ ener en c#en a:

-e debe repar ir e.#ilibradamen e la car1a en re las dis in as &P's -e debe ener en c#en a la afinidad de #na area con #na de erminada &P' El Qernel debe ser capa0 de mi1rar procesos de #na &P' a o ra :p#ede ser #na operacin cos osa;

Peridicamen e #na par e del Qernel deber+ comprobar .#e se da #n e.#ilibrio en re las car1as de raba)o de las dis in as &P's y si de ec a .#e #na iene m+s procesos .#e o ra, ree.#ilibra pasando procesos de #na &P' a o ra.
Tema 2: Procesos y Hebras
n 5

Anda mungkin juga menyukai