Está en la página 1de 37

SISTEMAS OPERATIVOS

PROCESOS
Lic. Jos Mauricio Flores Avils 11 FEB 2013

Procesos
Todas las computadoras modernas ofrecen varias cosas

al mismo tiempo; quienes estn acostumbrados a trabajar con ellas tal vez no estn completamente conscientes de este hecho, por ejemplo: Consideremos un servidor Web,
Mientras se espera el cumplimiento de una peticin,

muchas ms pueden llegar. Si hay varios discos presentes, algunas o todas las dems peticiones podran dirigirse a otros discos mucho antes de que se cumpla la primera peticin.
Es evidente que se necesita cierta forma de modelar y

controlar esta concurrencia.

Ahora consideremos una PC de usuario. Cuando se

arranca el sistema se inician muchos procesos en forma secreta, lo que a menudo el usuario desconoce.
Por ejemplo: correo electrnico entrante, el antivirus,

comprobar peridicamente la disponibilidad de nuevas definiciones de virus;


Tambin: algunos procesos de usuario explcitos para:

imprimir archivos y quemar un CD, y todo esto mientras el usuario navega por la Web.

Toda esta actividad se tiene que administrar, y en este

caso un sistema de multiprogramacin con soporte para mltiples procesos es muy til.
La CPU conmuta de un proceso a otro con rapidez,

ejecutando cada uno durante dcimas o centsimas de milisegundos.


Es difcil para las personas llevar la cuenta de varias

actividades en paralelo; por lo tanto, los diseadores de sistemas operativos han evolucionado con el paso de los aos a un modelo conceptual (procesos secuenciales) que facilita el trabajo con el paralelismo.

Modelo del proceso


En este modelo, todo el software ejecutable en la

computadora, que algunas veces incluye al sistema operativo, se organiza en varios procesos secuenciales.
Un proceso no es ms que una instancia de

un programa en ejecucin, incluyendo los valores actuales del contador de programa, los registros y las variables.

En concepto, cada proceso tiene su propia CPU virtual;

en la realidad, la CPU real conmuta de un proceso a otro, pero para entender el sistema es mucho ms fcil pensar

en una coleccin de procesos que se ejecutan en


(pseudo) paralelo, en vez de tratar de llevar la cuenta de cmo la CPU conmuta de programa en programa. Esta conmutacin rpida de un proceso a otro se conoce como multiprogramacin

Consideraciones
Debido a que los nuevos chips son multincleo, con dos,

cuatro o ms CPUs. As, cuando decimos que una CPU puede ejecutar slo un proceso a la vez, si hay dos ncleos (o CPUs) cada uno de ellos puede ejecutar slo un proceso a la vez.
Dado que la CPU conmuta rpidamente entre un proceso

y otro, la velocidad a la que un proceso ejecuta sus clculos no es uniforme y tal vez ni siquiera sea reproducible si se ejecutan los mismos procesos de nuevo.
La diferencia entre un proceso y un programa es sutil

pero crucial.

CREACIN DE UN PROCESO

Creacin de procesos
Los sistemas operativos necesitan cierta manera de crear

procesos.
En sistemas muy simples o sistemas diseados para

ejecutar slo una aplicacin, es posible tener presentes todos los procesos que se vayan a requerir cuando el sistema inicie. No obstante, en los sistemas de propsito general se necesita cierta forma de crear y terminar procesos segn sea necesario durante la operacin.

Eventos que provocan la creacin de procesos


1. El arranque del sistema. 2. La ejecucin, desde un proceso, de una llamada al

sistema para creacin de procesos.


3. Una peticin de usuario para crear un proceso.

4. El inicio de un trabajo por lotes.

Generalmente, cuando se arranca un sistema operativo

se crean varios procesos. Algunos de ellos son procesos en primer plano; es decir, procesos que interactan con los usuarios
En segundo plano, que no estn asociados con usuarios

especficos sino con una funcin especfica. Por ejemplo, se puede disear un proceso en segundo plano para aceptar el correo electrnico entrante.
Se puede disear otro proceso en segundo plano para

aceptar peticiones entrantes para las pginas Web hospedadas en ese equipo, que despierte cuando llegue una peticin para darle servicio.

Los procesos que permanecen en segundo plano para

manejar ciertas actividades como correo electrnico, pginas Web, noticias, impresiones, etctera, se conocen como demonios (daemons). Los sistemas grandes tienen comnmente docenas de ellos.
En UNIX podemos utilizar el programa ps para listar los

procesos en ejecucin. En Windows podemos usar el administrador de tareas.

TERMINACIN DE PROCESOS

Terminacin de procesos
Una vez que se crea un proceso, empieza a ejecutarse y

realiza el trabajo al que est destinado. Sin embargo, nada dura para siempre, ni siquiera los procesos. Tarde o temprano el nuevo proceso terminar, por lo general debido a una de las siguientes condiciones:
1. Salida normal (voluntaria). 2. Salida por error (voluntaria). 3. Error fatal (involuntaria). 4. Eliminado por otro proceso (involuntaria).

Salida normal
La mayora de los procesos terminan debido a que han

concluido su trabajo. Cuando un compilador ha compilado el programa que recibe, ejecuta una llamada al sistema para indicar al sistema operativo que ha terminado. Esta llamada es exit en UNIX y Exitprocess en Windows.
Los programas orientados a pantalla tambin admiten la

terminacin voluntaria. Los procesadores de palabras, navegadores de Internet y programas similares siempre tienen un icono o elemento de men en el que el usuario puede hacer clic para indicar al proceso que elimine todos los archivos temporales que tenga abiertos y despus termine.

Salida por error


si un usuario escribe el comando errneo para compilar

un programa y no existe dicho archivo, el compilador simplemente termina.


Los procesos interactivos orientados a pantalla por lo

general no terminan cuando reciben parmetros incorrectos. En vez de ello, aparece un cuadro de dilogo y se le pide al usuario que intente de nuevo.

Error fatal
Este puede ser producido por el proceso, a menudo

debido a un error en el programa.


Algunos ejemplos incluyen el ejecutar una instruccin

ilegal, hacer referencia a una parte de memoria no existente o la divisin entre cero. En algunos sistemas (como UNIX), un proceso puede indicar al sistema operativo que desea manejar ciertos errores por s mismo, en cuyo caso el proceso recibe una seal (se interrumpe) en vez de terminar.

Eliminado por otros procesos


La cuarta razn por la que un proceso podra terminar es

que ejecute una llamada al sistema que indique al sistema operativo que elimine otros procesos.
En UNIX esta llamada es kill. La funcin correspondiente

en Win32 es TerminateProcess. En ambos casos, el proceso eliminador debe tener la autorizacin necesaria para realizar la eliminacin.
En algunos sistemas, cuando un proceso termina (ya sea

en forma voluntaria o forzosa) todos los procesos que cre se eliminan de inmediato tambin. Sin embargo, ni Windows ni UNIX trabajan de esta forma.

JERARQUAS DE PROCESOS

En algunos sistemas, cuando un proceso crea otro, el

proceso padre y el proceso hijo continan asociados en ciertas formas.


El proceso hijo puede crear por s mismo ms procesos,

formando una jerarqua de procesos. Un proceso slo tiene un padre (pero cero, uno, dos o ms hijos).

En UNIX, un proceso y todos sus hijos, junto con sus

posteriores descendientes, forman un grupo de procesos.


Cuando un usuario enva una seal del teclado, sta se

enva a todos los miembros del grupo de procesos actualmente asociado con el teclado
De manera individual, cada proceso puede atrapar la

seal, ignorarla o tomar la accin predeterminada que es ser eliminado por la seal.

Jerarqua de procesos

ESTADOS DE UN PROCESO

Estados de un proceso
El principal trabajo del procesador es ejecutar las

instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo.
En un entorno de multiprogramacin, el procesador

intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso.

Modelo de dos estados

El modelo de estados ms simple es el de dos estados. En este

modelo, un proceso puede estar ejecutndose o no.


Cuando se crea un nuevo proceso, se pone en estado de No

ejecucin. En algn momento el proceso que se est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para ejecutar para ponerlo en estado Ejecucin.

Modelo de 5 estados.
El modelo anterior de dos estados funcionara bien con

una cola FIFO y planificacin por turno rotatorio para los procesos que no estn en ejecucin, si los procesos estuvieran siempre listos para ejecutar.
En la realidad, los procesos utilizan datos para operar con

ellos, y puede suceder que no se encuentren listos, o que se deba esperar algn suceso antes de continuar, como una operacin de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir.

Modelo de 5 estados

Ejecucin: el proceso est actualmente en ejecucin. Listo: el proceso est listo para ser ejecutado, slo est

esperando que el planificador as lo disponga.


Bloqueado: el proceso no puede ejecutar hasta que no

se produzca cierto suceso, como una operacin de Entrada/Salida.


Nuevo: El proceso recin fue creado y todava no fue

admitido por el sistema operativo. En general los procesos que se encuentran en este estado todava no fueron cargados en la memoria principal.
Terminado: El proceso fue expulsado del grupo de

procesos ejecutables, ya sea porque termin o por algn fallo, como un error de proteccin, aritmtico, etc.

Procesos suspendidos
Una

de las razones para implementar el estado Bloqueado era poder hacer que los procesos se puedan mantener esperando algn suceso, por ejemplo una Entrada/Salida.

Sin embargo, al ser mucho ms lentas estas operaciones,

puede suceder en nuestro modelo de cinco estados todos los procesos en memoria estn esperando en el estado Bloqueado y que no haya ms memoria disponible para nuevos procesos. Podra conseguirse ms memoria, aunque es probable que esto slo permita procesos ms grandes y no necesariamente nuevos procesos. Adems hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismo estado con el tiempo

Procesos suspendidos

El intercambio se lleva a cabo moviendo una parte de un

proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente.

Procesos en espera
Dos

o ms procesos pueden cooperar mediante seales de forma que uno obliga a detenerse a los otros hasta que reciban una seal para continuar.
Se

usa una variable llamada semforo para intercambiar seales. Si un proceso esta esperando una seal, se suspende (WAIT) hasta que la seal se enve (SIGNAL). Se mantiene una cola de procesos en ESPERA en el semforo. La forma de elegir los procesos de la cola en ESPERA es mediante una poltica FIFO.

IMPLEMENTACIN DE LOS PROCESOS

Implementacin de procesos
Para implementar el modelo de procesos, el sistema

operativo mantiene una tabla llamada tabla de procesos, con slo una entrada por cada proceso (llamadas bloques de control de procesos).
Esta entrada contiene informacin importante acerca del

estado del proceso, incluyendo su contador de programa, apuntador de pila, asignacin de memoria, estado de sus archivos abiertos, informacin de contabilidad y planificacin, y todo lo dems que debe guardarse acerca del proceso cuando ste cambia del estado en ejucicn a listo o bloqueado de igual manera que se pueda reiniciar posteriormente como si nunca se hubiera detenido.

La capa mas baja de un sistema operativo estructurado

por procesos se encarga de la interrupciones y la planificacin. Encima de esa capa estn los procesos secuenciales.

Tabla de procesos

GRACIAS

También podría gustarte