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#$.
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.
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.
Un proceso se ejecuta en modo privilegiado cuando se ejecuta el cdigo del sistema operativo.
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)
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
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
P2
E$i
Es pe r ap
or
em Ti
on oc
E,
Ein E,-
2lo.#eado
E$p#lsado al disco
En ra al sis ema
E$p#lsado al disco
"is o y s#spendido
Ein E,-
2lo.#eado y s#spendido
n !
Fona de in ercambio
Memoria
n 1"
n 11
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
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 -( 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
Hebra
2lo.#e de con rol de !ebra Pila del #s#ario Pila del nMcleo
n 16
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!
n 2"
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
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
Espacio de nMcleo
(c) Sistema
!brido
%roceso
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.
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
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
(2)
$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
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.
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
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
&ola de Traba)os
(3) &P'
&ola de Preparados
Ein
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
(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
n 36
n 37
"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*
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
Planificacin por prioridades Por #rnos :2ound42obin; &olas mMl iples &olas mMl iples con realimen acin.
n 3!
"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"
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
&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
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
"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
"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
"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
'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
&ola dedicada para cada procesador &ola 1lobal para odos los procesadores
n 4
Planificacin de procesos
W i1#al .#e en monoprocesadores pero eniendo en c#en a:
Planificacin de !ilos
W permi en e$plo ar el paralelismo real den ro de #na aplicacin
n 4!
&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
&#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
"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.
n 52
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
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
'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
n 57
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>
n 5
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!
$nterrumpible
)"S*+$N)E,,-#)$/0E
No interrumpible
)"S*+-N$N)E,,-#)$/0E
#arado
)"S*+S)1##E% )"S*+),"2E%
3ombie
E4$)+31M/$E
9n err#mpible
Tema 2: Procesos y Hebras
n 62
n 63
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
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
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!
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
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
n 74
&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
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.
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;
n 7!
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 "
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
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
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
-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
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