28

Procesos Introduccion a los sistemas operativos

Embed Size (px)

Citation preview

Conocer y entender la forma en que funcionan losprocesos como parte fundamental de los SistemasOperativos

Todas las computadorasmodernas pueden hacer variascosas al mismo tiempo. Mientrasejecuta un programa deusuario, una computadoratambién puede estar leyendo deun disco y enviando texto a unapantalla o impresora.

Si bien, estrictamentehablando, enun instante dado la CPU estáejecutando sólo un programa, enel curso de un segundo puedetrabajar con variosprogramas, dando a losusuarios la ilusión deparalelismo.

En este modelo, todo elsoftware ejecutable de lacomputadora, lo que amenudo incluye alsistema operativo, estáorganizado en unaserie de procesos

Un proceso no es más queun programa en ejecución, eincluye los valores actualesdel contador de programa,los registros y las variables.Conceptualmente, cada unode estos procesos tiene supropia CPU virtual. Desdeluego, en la realidad laverdadera CPU conmuta deun proceso a otro. Estarápida conmutación sedenomina multiprogramación

En la Fig. vemos unacomputadoramultiprogramando dosprogramas en la memoria.

Vemos cuatro procesos, cadauno con su propio flujo decontrol (esto es, supropio contador deprograma), ejecutándose conindependencia de los otros.

vemos que si el intervalo detiempo es suficientementelargo, todos los procesosavanzan, pero en un instantedado sólo un proceso se estáejecutando realmente.

Con la CPU conmutandoentre los procesos, la rapidezcon que un proceso realizasus cálculos no esuniforme, Por tanto, losprocesos no debenprogramarse basándose ensupuestos acerca de lostiempos.

La diferencia es sutil, pero crucial.Ejemplo

Consideremos un computólogo coninclinaciones gastronómicas que estápreparando un pastel de cumpleaños parasu hija. Él cuenta con una receta para pastelde cumpleaños y una cocinabien abastecida de las entradasnecesarias: harina, huevos, azúcar,extracto de vainilla, etc. En estaanalogía, la receta es el programa (es decir,un algoritmo expresado en alguna flotaciónapropiada), elcomputólogo es el procesador (CPU) y losingredientes del pastel son los datos deentrada. El proceso esla actividad de nuestro pasteleroconsistente en leer la receta, obtener losingredientes y hornear el pastel.

Ejemplo

Imaginemos ahora que el hijo delcomputólogo llega corriendo yllorando, diciendo que le picó unaabeja. El computólogo registra elpunto en que estaba en la receta(guarda el estado del procesoactual), saca un libro de primerosauxilios, y comienza a seguir lasinstrucciones que contiene. Aquívemos cómo el procesador seconmuta de un proceso(hornear) a un proceso de másalta prioridad (administrarcuidados médicos), cada uno conun programa diferente (receta vs.libro de primeros auxilios). Unavez que se ha atendido la picadurade abeja, el computólogo regresaa su pastel, continuando en elpunto donde había interrumpido.

Los sistemas operativos que manejanel concepto de proceso deben contarcon algún mecanismo paracrear todos los procesos necesarios.En los sistemas muy sencillos, o enlos diseñados para ejecutar sólouna aplicación (p. ej., controlar undispositivo en tiempo real), es posibleque, cuan do el sistema se inicia,todos los procesos que puedannecesitarse estén presentes. Sinembargo, en la mayor parte de lossistemas se necesita algúnmecanismo para crear y destruirprocesos según sea necesario durantela operación.

En MINIX, los procesos se creancon la llamada al sistema FORK(bifurcar), que crea una copiaidéntica delproceso invocador. El procesohijo también puede ejecutarFORK, así que es posible tener unárbol deprocesos. En otros sistemasoperativos existen llamadas alsistema para crear unproceso, cargar su memoria yponerlo a ejecutar. Sea cual sea lanaturaleza exacta de la llamada alsistema, los procesosnecesitan poder crear otrosprocesos. Observe que cadaproceso tiene un padre, perocero, uno, dos o máshijos.

El proceso que crea a otro es elpadre del creado.

El proceso creado es el hijo delproceso creador.

Es sólo necesario un padre paracrear un hijo.

Cada hijo tiene un solo padre y unpadre puede tener varios hijos.

Edopena 12Sistemas Operativos

A

B C D

E F G

HI

Edopena 13Sistemas Operativos

Aunque cada proceso es unaentidad independiente, con supropio contador de programay estado interno, los procesosa menudo necesitaninteractuar con otrosprocesos. Un proceso podríagenerar ciertas salidas queotro proceso utiliza comoentradas.

cat capítulol capítulo2 capítulo3 grepárbol

el primer proceso, que ejecuta cat,concatena y envía a la salida tresarchivos. El segundo proceso, queejecuta grep, selecciona todas laslíneas que contienen la palabra“árbol”. Dependiendo de lasvelocidades relativas de los dosprocesos (que a su vez dependen dela complejidad relativa de losprogramas y de cuánto tiempo deCPU ha ocupado cada uno), puedesuceder que grep esté listo paraejecutarse, pero no haya entradasesperando ser procesadas por él. Ental caso, grep deberá bloquearsehasta que haya entradasdisponibles.

Cuando un proceso se bloquea,lo hace porque le es imposiblecontinuar lógicamente, casisiempre porque está esperandoentradas que todavía no estándisponibles. También puede serque un programa queconceptualmente está listo y encondiciones de ejecutarse seadetenido porque el sistemaoperativo ha decidido asignar laCPU a otro proceso durante untiempo.

Vemos un diagrama deestados que muestra los tresestados en los que unproceso puede estar:

1. Ejecutándose (usandorealmente la CPU en eseinstante).

2. Listo (se puede ejecutar,pero se suspendiótemporalmente para dejarque otro pro ceso seejecute).

3. Bloqueado (no puedeejecutarse en tanto noocurra algún eventoexterno).

Lógicamente, los dos primeros estados son similares. Enambos casos el proceso está dispuesto a ejecutarse, sólo que enel segundo temporalmente no hay una CPU a su disposición. Eltercer estado es diferente de los primeros dos en cuanto a que elproceso no puede ejecutarse, incluso si la CPU no tiene nada másque hacer.

Puede haber cuatrotransiciones entreestos tres estados.

La transición 1 ocurrecuando un procesodescubre que nopuede continuar. Enalgunos sistemas el

proceso debe ejecutar

una llamada alsistema, BLOCK, parapasar al estadobloqueado.

Las transiciones 2 y 3 soncausadas por el planificador deprocesos, una parte del sistemaoperativo, sin que el proceso seentere siquiera de ellas. Latransición 2 ocurre cuando elplanificador decide que elproceso en ejecución ya se ejecutódurante suficiente tiempo y eshora de dejar que otros procesostengan algo de tiempo de CPU. Latransición 3 ocurre cuando todoslos demás procesos handisfrutado de unaporción justa y es hora de que elprimer proceso reciba otra vez laCPU para ejecutarse.

La transición 4 ocurre cuandoacontece el suceso externoque un proceso estabaesperando (como la llegada deentradas). Si ningún otroproceso se está ejecutando enese instante, se dispara deinmediato la transición 3, y elproceso comienza aejecutarse. En casocontrario, el proceso tal veztenga que esperar en el estadolisto durante cierto tiempohasta que la CPU estédisponible.

Cuando ocurre unainterrupción de disco, elsistema toma la decisiónde dejar de ejecutar elproceso en curso yejecutar el proceso dedisco, que estababloqueado esperandodicha interrupción.

Así, en lugar de pensar en interrupciones, podemos pensaren procesos de usuario, procesos de disco, procesos determinal, etc.,que se bloquean cuando están esperando que algo suceda.Cuando se ha leído el bloque de disco o se ha tecleado elcarácter, el proceso que lo estaba esperando sedesbloquea y es elegible para ejecutarse otravez.

Aquí, el nivel más bajo del sistema operativo es elplanificador, con diversos procesos arriba de él. Todo elmanejo de interrupciones y los detalles del inicio y ladetención de procesos están ocultos en el planificador

Para implementar el modelode procesos, el sistemaoperativo mantiene unatabla (un arreglo de

estructuras) llamadatabla de procesos, con unaentrada por cada proceso.

Esta entrada contiene informaciónacerca del estado del proceso, sucontador de programa, el apuntadorde pila, el reparto de memoria, lasituación de sus archivos abiertos, suinformación de contabilidad yplanificación y todos los demásaspectos de un proceso que se debenguardar cuando éste se conmuta delestado ejecutándose al estado listo, afin de poder reiniciarlo después comosi nunca se hubiera detenido.

En MINIX laadministración deprocesos, de memoriay de archivos corren acargo de módulosindividuales dentrodel sistema, por loque la tabla deprocesos se divide enparticiones y cadamódulo mantiene loscampos que necesita.En la Fig. 2-4 semuestran algunos delos campos másimportantes.

Cada clase de dispositivode E/S (p. ej., discosflexibles, discos duros,

cronómetros,terminales) tiene asociadauna posición cerca de labase de la memoria llamadavector de interrupción quecontiene la dirección delprocedimiento de serviciode interrupciones.