Diferencia entre revisiones de «Gestió de processos»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
(Página creada con «Un dels mòduls més importants d'un sistema operatiu és la d'administrar els processos i tasques del sistema de còmput. En aquesta secció es revisaran dos temes que com...»)
 
Línea 102: Línea 102:
Els algoritmes de la capa baixa per assignar el torn d'execució es descriuen a
Els algoritmes de la capa baixa per assignar el torn d'execució es descriuen a
continuació:
continuació:
* Per prioritat: Els processos de major prioritat s'executen primer. Si hi ha diversos processos amb la mateixa prioritat, poden executar aquests d'acord al seu ordre d'arribada o per 'round robin' (per torn en cua circular). L'avantatge  d'aquest algorisme és que és flexible quant a permetre que certs processos s'executin primer i, fins i tot, per més temps. El seu desavantatge és que pot provocar ajornament indefinit en els processos de baixa prioritat. Per exemple, suposi que hi ha processos de prioritat 20 i processos de prioritat 10. Si durant tot el dia acaben processos de prioritat 20 al mateix ritme que entren altres amb aquesta prioritat, l'efecte és que els de prioritat 10 està esperant per sempre. També fa que el sistema sigui impredictible per als processos de baixa prioritat.
* Per prioritat: Els processos de major prioritat s'executen primer. Si hi ha diversos processos amb la mateixa prioritat, poden executar aquests d'acord al seu ordre d'arribada o per 'round robin' (per torn en cua circular). L'avantatge  d'aquest algorisme és que és flexible quant a permetre que certs processos s'executin primer i, fins i tot, per més temps. El seu desavantatge és que pot provocar ajornament indefinit en els processos de baixa prioritat. Per exemple, suposi que hi ha processos de prioritat 20 i processos de prioritat 10. Si durant tot el dia acaben processos de prioritat 20 al mateix ritme que entren altres amb aquesta prioritat, l'efecte és que els de prioritat 10 està esperant per sempre. També fa que el sistema sigui impredictible per als processos de baixa prioritat.  
* El treball més curt primer: És difícil de dur a terme perquè es requereix saber o tenir una estimació de quant temps necessita el procés per
* El treball més curt primer: És difícil de dur a terme perquè es requereix saber o tenir una estimació de quant temps necessita el procés per acabar. Però si se sap, s'executen primer aquells treballs que necessiten menys temps i d'aquesta manera s'obté el millor temps de resposta mitjana per a tots els processos.
acabar. Però si se sap, s'executen primer aquells treballs que necessiten menys temps i d'aquesta manera s'obté el millor temps de resposta
mitjana per a tots els processos.
* El primer a arribar, primer a executar: És molt simple, els processos reben el seu torn acord arriben. L'avantatge d'aquest algorisme és que és just i no provoca ajornament indefinit. El desavantatge és que no aprofita cap característica dels processos i pot no servir per a un procés de temps real. Per exemple, el temps mitjà de resposta pot ser molt dolent comparat amb l'aconseguit pel del treball més curt primer.
* El primer a arribar, primer a executar: És molt simple, els processos reben el seu torn acord arriben. L'avantatge d'aquest algorisme és que és just i no provoca ajornament indefinit. El desavantatge és que no aprofita cap característica dels processos i pot no servir per a un procés de temps real. Per exemple, el temps mitjà de resposta pot ser molt dolent comparat amb l'aconseguit pel del treball més curt primer.
* Round Robin: També anomenada per torn, consisteix a donar a cada procés un interval de temps d'execució, i cada vegada que es venç aquest interval es còpia el context del procés a un lloc segur i se li dóna el seu torn a un altre procés. Els processos estan ordenats en una cua circular. Per exemple, si hi ha tres processos, l'A, B i C, el planificador donaria els seus torns als processos en l'ordre A, B, C, A, B, C. ... L'avantatge d'aquest algorisme és seu simplicitat, és just i no provoca ajornament indefinit.
* Round Robin: També anomenada per torn, consisteix a donar a cada procés un interval de temps d'execució, i cada vegada que es venç aquest interval es còpia el context del procés a un lloc segur i se li dóna el seu torn a un altre procés. Els processos estan ordenats en una cua circular. Per exemple, si hi ha tres processos, l'A, B i C, el planificador donaria els seus torns als processos en l'ordre A, B, C, A, B, C. ... L'avantatge d'aquest algorisme és seu simplicitat, és just i no provoca ajornament indefinit.

Revisión del 11:49 22 oct 2012

Un dels mòduls més importants d'un sistema operatiu és la d'administrar els processos i tasques del sistema de còmput. En aquesta secció es revisaran dos temes que componen o concerneixen a aquest mòdul: la planificació del processador i els problemes de concurrència.

Planificació del processador

La planificació del processador es refereix a la manera o tècniques que es fan servir per decidir quant temps d'execució i quan se li assignen a cada procés del sistema en un sistema multitasca. Òbviament, si el sistema és Monotarea no hi ha molt decidir, però en la resta dels sistemes és crucial per al bon funcionament del sistema.

Un procés es defineix com un programa en execució. Un programa pot necessitar de diversos processos per dur a terme la seva funció, però per contra, un procés tan només fa referència a un sol programa. Pensem en Word. Si enviem a imprimir alguna cosa mentre el programa s'actualitza ia més l'enviament l'ordre de guardar el document actual, Word necessitarà tres processos per dur a terme les tasques encomanades:

  • El primer enviarà el document a la cua d'impressió.
  • El segon manté una comunicació amb el dispositiu de xarxa pe mantenir la seva transferència.
  • El tercer necessita accedir al disc dur per guardar la informació en memòria no volàtil.

És el planificador el que ordena i planifica els processos perquè realitzin de forma el més eficient possible.

Nivells de planificació

En els sistemes de planificació generalment s'identifiquen tres nivells:

  • El nivell alt decideix que treballs (conjunt de processos) són candidats a convertir-se en processos competint pels recursos del sistema.
  • El nivell intermedi decideix que processos es suspenen o reprenen per aconseguir certes metes de rendiment
  • El nivell baix és el que decideix que procés, dels quals ja estan llestos (i que en algun moment pas pels altres dos planificadors) és a qui li toca ara estar executant-se en la unitat central de processament.

Anem a revisar principalment els planificadors de baix nivell perquè són els que finalment trien al procés en execució.

En un determinat instant el processador només està fent idealment una sola tasca. La tasca en execució té a la seva disposició tots els recursos del sistema. Per evitar que un procés obtingui durant massa temps tots els recursos deixant tot esperant la resta de processos, el planificador estableix un temps màxim de durada en el qual se li assigna l'ús del processador. Un cop finalitzat el temps el planificador col·loca el procés a la cua quedant en espera mentre se li assigna altra vegada el processador. Aquest espai de temps s'anomena quantum.

La durada del quantum presenta en si mateix un seriós problema. Perquè el procés canviï d'estat, cal emmagatzemar les variables amb què aquesta operant i la seva propi estat en memòria per a la posterior represa. Si la mida del quantum és molt petit, les tasques de guardat, càrrega d'estats i variables consumiria un temps en què el processador podria estar realitzant altres processos.

Per contra, si el quantum és molt gran, la cua de processos podria arribar dimensions considerables i determinats processos amb una prioritat alta es veurien perjudicats. L'elecció de la mida del quantum representa una decisió important en la planificació del processador.

Els estats en què es pot trobar un procés depenen del sistema operatiu que s'estigui manejant. Hi ha planificadors que manegen fins a 13 estats diferents de procés, la qual cosa complica molt la gestió dels mateixos. Per simplificar l'aprenentatge de la planificació dels processos analitzarem els tres estats més importants d'un procés, no en va la resta es desprenen de algun d'ells.

  • En execució. Compta amb tots els recursos que necessita per realitzar la seva tasca i la fa mentre a planificador no l'interrompi o perdi els recursos que necessita.
  • Bloquejat (en espera). El procés ha perdut algun dels recursos que li són necessaris per fer la seva tasca. Romandrà així fins que aconsegueixi de nou el recurs perdut.
  • Preparat. Es troba llest per a la seva execució però no té permís del planificador. Aquest procés compta amb els recursos disponibles.

El planificador ha de canviar d'estat als processos en funció dels seus característiques, del quantum o de si té o no els recursos necessaris per a la seva execució. Es poden donar les següents transicions:

1. El procés es troba llest per a la seva execució i li toca el torn per passar al processador. En aquest moment el procés compta amb tots els recursos que necessita.

2. Quan un procés es troba en execució però perd algun dels seus recursos i no pot continuar. En aquest moment el planificador l'introduïu a estat bloquejat.

3. Quan un procés en estat bloquejat (li falta algun recurs) ha obtingut tot el que necessita per seguir amb la seva execució. El planificador l'introduïu a estat A punt.

4. Quan un procés es troba en execució i no perd cap dels seus recursos, però ha acabat el temps assignat pel planificador per utilitzar el processador. Passa l'estat A punt.


Objectius de la planificació

Una estratègia de planificació ha de buscar que els processos obtinguin els seus torns de execució apropiadament, conjuntament amb un bon rendiment i minimització de la sobrecàrrega del planificador mateix. En general, es busquen cinc objectius principals:

  • Justícia o Imparcialitat: Tots els processos són tractats de la mateixa manera, i en algun moment obtenen el seu torn d'execució o intervals de temps d'execució fins a la seva terminació reeixida.
  • Maximitzar la Producció: El sistema ha de finalitzar el major nombre de processos en per unitat de temps.
  • Minimitzar el Temps de Resposta: Cada usuari o procés ha d'observar que el sistema els respon consistentment als seus requeriments.
  • Evitar l'ajornament indefinit: Els processos han d'acabar en un termini finit de temps.
  • El sistema ha de ser predictible: Davant càrregues de treball lleugeres el sistema ha respondre ràpid i amb càrregues pesades ha d'anar degradant gradualment. Un altre punt de vista d'això és que si s'executa el mateix procés en càrregues similars de tot el sistema, la resposta en tots els casos ha de ser similar.

Assignació del torn d'execució

Els algoritmes de la capa baixa per assignar el torn d'execució es descriuen a continuació:

  • Per prioritat: Els processos de major prioritat s'executen primer. Si hi ha diversos processos amb la mateixa prioritat, poden executar aquests d'acord al seu ordre d'arribada o per 'round robin' (per torn en cua circular). L'avantatge d'aquest algorisme és que és flexible quant a permetre que certs processos s'executin primer i, fins i tot, per més temps. El seu desavantatge és que pot provocar ajornament indefinit en els processos de baixa prioritat. Per exemple, suposi que hi ha processos de prioritat 20 i processos de prioritat 10. Si durant tot el dia acaben processos de prioritat 20 al mateix ritme que entren altres amb aquesta prioritat, l'efecte és que els de prioritat 10 està esperant per sempre. També fa que el sistema sigui impredictible per als processos de baixa prioritat.
  • El treball més curt primer: És difícil de dur a terme perquè es requereix saber o tenir una estimació de quant temps necessita el procés per acabar. Però si se sap, s'executen primer aquells treballs que necessiten menys temps i d'aquesta manera s'obté el millor temps de resposta mitjana per a tots els processos.
  • El primer a arribar, primer a executar: És molt simple, els processos reben el seu torn acord arriben. L'avantatge d'aquest algorisme és que és just i no provoca ajornament indefinit. El desavantatge és que no aprofita cap característica dels processos i pot no servir per a un procés de temps real. Per exemple, el temps mitjà de resposta pot ser molt dolent comparat amb l'aconseguit pel del treball més curt primer.
  • Round Robin: També anomenada per torn, consisteix a donar a cada procés un interval de temps d'execució, i cada vegada que es venç aquest interval es còpia el context del procés a un lloc segur i se li dóna el seu torn a un altre procés. Els processos estan ordenats en una cua circular. Per exemple, si hi ha tres processos, l'A, B i C, el planificador donaria els seus torns als processos en l'ordre A, B, C, A, B, C. ... L'avantatge d'aquest algorisme és seu simplicitat, és just i no provoca ajornament indefinit.
  • El temps restant més curt: És semblant al del treball més curt primer, però aquí s'està calculant en tot moment quant temps li resta per acabar a tots els processos, incloent els nous, i aquell que li quedi menys temps per acabar és escollit per executar. L'avantatge és que és molt útil per a sistemes de temps compartit perquè s'acosta molt al millor temps de resposta, a més de respondre dinàmicament a la longevitat dels processos, la seva desavantatge és que provoca més sobrecàrrega perquè el algorisme és més complex.
  • Per política: Una forma d'assignar el torn d'execució és per política, en la qual s'estableix algun reglament específic que el planificador ha de obeir. Per exemple, una política podria ser que tots els processos rebin el mateix temps d'ús de CPU en qualsevol moment. Això vol dir, per exemple, que si hi ha 2 processos i han rebut 20 unitats de temps cada un i en aquest moment entra un tercer procés, el planificador li donarà immediatament el torn d'execució per 20 unitats de temps. Quant tots els processos estan 'parells' en ús de CPU, se'ls aplica 'round robin'.
  • Multicoles: Es poden implementar varies coles amb una política distinta cadascuna. Desprès es fa una política comú per a seleccionar a quina cola li toca.

Problemes de Concurrència

En els sistemes de temps compartit (aquells amb diversos usuaris, processos, tasques, treballs que reparteixen l'ús de CPU entre aquests) es presenten molts problemes pel fet que els processos competeixen pels recursos del sistema. Imagini que un procés està escrivint en la unitat de cinta i se li acaba el seu torn d'execució i immediatament després el procés escollit per executar comença a escriure sobre la mateixa cinta. El resultat és una cinta el contingut és un desastre de dades barrejats. Així com la cinta, hi ha una multitud de recursos l'accés ha de ser controlat per evitar els problemes de la concurrència.

Els principals problemes de concurrència es donen en els casos següents:

  • Condicions de competència: ocorre quan dos o més processos accedeixen a un recurs compartit sense control, de manera que el resultat combinat d'aquest accés depèn de l'ordre d'arribada. Suposem, per exemple, que un procés necessita utilitzar la cua d'impressió. La cua d'impressió posseeix dos valors: el primer indica la posició que ocupa l'últim arxiu a imprimir i el segon el primer registre que es troba buit per contenir l'arxiu a imprimir. Un Procés A envia el document doc1.doc i l'emmagatzema en la posició Buit. El pas següent seria augmentar el valor de buit perquè apunti a un altre sector de memòria. En aquest precís moment el planificador bloqueja el procés (perquè se li ha acabat el Quantum, per exemple) i la posició buit queda apuntant a l'últim arxiu col · locat a la cua de impressió. Un altre Procés B vol també enviar un document a imprimir i per això llegeix el valor de buit. Col · loca el seu arxiu a imprimir sobreescrivint el col·locat pel Procés A. L'arxiu doc1.doc mai s'imprimirà.
  • Ajornament Indefinit o Mort per Inanició: Consisteix en el fet que un o diversos processos mai rebin el suficient temps d'execució per acabar la seva tasca. Per exemple, que un procés ocupi un recurs i el marqui com 'ocupat' i que acabi sense marcar-lo com 'desocupat'. Si algun altre procés demana aquest recurs, ho veurà 'ocupat' i esperarà indefinidament a què es 'desocupi'.
  • Condició d'espera Circular: Això passa quan dos o més processos formen una cadena d'espera que els involucra a tots. Per exemple, suposeu que el procés A té assignat el recurs 'cinta' i el procés B té assignat el recurs 'disc'. En aquest moment al procés A se li ocorre demanar el recurs 'Disc' i al procés B el recurs 'cinta'. Es forma una espera circular entre aquests dos processos que es pot evitar traient a la força un recurs a qualsevol dels dos processos.

Els sistemes operatius tenen diverses tècniques que permeten minimitzar aquests problemes. Algunes d'aquestes tècniques que poden usar-se són:

  • Assignar recursos amb vista lineal: Això vol dir que tots els recursos estan etiquetats amb un valor diferent i els processos només poden fer peticions de recursos 'cap endavant'. És a dir, que si un procés té el recurs amb etiqueta '5 'no pot demanar recursos la etiqueta sigui inferior a '5'. Amb això s'evita la condició d'ocupar i esperar un recurs.
  • Reservar tots els recursos abans d'iniciar el procés: Aquest mecanisme consisteix que el procés demani tots els recursos que necessitarà d'una vegada i el sistema se'ls facilita en la seva totalitat, de cap altra manera llança el seu execució.
  • Algorisme del banquer: Aquest algorisme utilitza una taula de recursos per saber

quants recursos té de tot tipus. També requereix que els processos informin del màxim de recursos per a ser utilitzades de cada tipus. Quan un procés demana un recurs, l'algorisme verifica si assignant aquest recurs encara li queda altres del mateix tipus perquè algun dels processos en el sistema encara se li pugui donar fins al seu màxim. Si la resposta és afirmativa, el sistema es diu que està en 'estat segur' i s'atorga el recurs. Si la resposta és negativa, es diu que el sistema està en estat insegur i es fa esperar a aquest procés.

Tots aquests mètodes passen per conèixer per endavant la quantitat de recursos que un procés va a necessitar durant la seva execució. Això només passa en molt poques ocasions, de manera que l'ús d'aquestes tècniques es fa de manera poc eficient. Encara que sembli un contrasentit, de vegades la millor manera d'actuar contra una situació de les esmentades anteriorment és no fer res. Aquesta és una de les tècniques que utilitza el sistema operatiu Unix, lliure de tot dubte d'eficiència.