Sunteți pe pagina 1din 11

PROCESOS

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, informacin) con el proceso que los ha creado. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

ESTADOS DE UN PROCESO
El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos 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. De esta explicacin se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan su turno para ejecutar.

Modelo de cinco 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. Se divide entonces al estado No ejecucin en dos estados: Listo y Bloqueado. Se agregan adems un estado Nuevo y otro Terminado.

Los cinco estados de este diagrama son los siguientes:


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. Los nuevos estados Nuevo y Terminado son tiles para la gestin de procesos. En este modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sita en la cola de listos. A falta de un esquema de prioridades sta puede ser una cola FIFO. Los procesos suspendidos son mantenidos en una cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cul es el proceso que ms conviene ejecutar a continuacin.

PLANIFICACION DE PROCESOS
La planificacin es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La seleccin del proceso se basa en alguno de los algoritmos de planificacin que se describen ms abajo.

Objetivos de la planificacin
Los objetivos de la planificacin de proceso son: Equidad, todos los procesos deben poder ejecutarse. Eficacia, mantener ocupada la CPU un 100% del tiempo. Tiempo de respuesta, minimizar el tiempo de respuesta al usuario. Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados. Rendimiento, maximizar el nmero de tareas procesadas por hora.

Algoritmos de planificacin
Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase al estado de ejecucin. Planificacin Round-Robin En este tipo de planificacin cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecucin en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento. Planificacin por prioridad En la planificacin round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificacin a cada proceso se le asigna una prioridad y los mismos son ejecutados.

OPERACIONES SOBRE PROCESOS


Los procesos en el sistema pueden ejecutarse concurrentemente y deben ser creados y borrados dinmicamente. As el sistema de operacin debe crear un mecanismo para la creacin y terminacin de procesos.

Creacin de procesos.
Cuando un nuevo proceso se agrega a los que actualmente estn siendo administrados, el sistema de operacin construye las estructuras de datos que son usadas para administrar los procesos (PCB) y le asigna espacio de direcciones. Estas acciones constituyen la creacin de un nuevo proceso. Hay 4 eventos comunes que conducen a la creacin de procesos: 1.- En un ambiente batch, un proceso es creado en respuesta al sometimiento a ejecucin de un trabajo (job). El sistema de operacin tomar el prximo trabajo a ser ejecutado y crear el respectivo proceso. 2.- En un ambiente interactivo, un proceso es creado cuando un nuevo usuario entra al sistema (log on), se crea un proceso shell que espera las rdenes del usuario. La creacin de este proceso es responsabilidad del sistema de operacin. 3.-El sistema de operacin puede crear un proceso para que realice una funcin en respuesta a una peticin de un programa usuario, sin que el usuario tenga que esperar. Por ejemplo, si un usuario requiere que se imprima un archivo, el SO puede crear un proceso que maneje esta impresin, mientras que el proceso que realiz la peticin puede continuar independientemente del tiempo requerido para completar la tarea de impresin.

4.- Creacin de procesos hijos por parte de procesos usuarios ya existentes: para propsitos de modularidad o para explotar paralelismo, un programa usuario puede crear un conjunto de procesos hijos. El proceso que crea se llama proceso padre. Cuando un proceso crea un hijo hay dos posibilidades en trminos de ejecucin: El proceso padre continua ejecutndose concurrentemente con sus hijos o El proceso padre espera a que alguno o todos los hijos terminen. Tambin hay dos posibilidades en trminos de espacio de direcciones del nuevo proceso. El proceso hijo es un duplicado del proceso padre (Unix). El proceso hijo tiene su propio programa cargado (DEC VMS). As mismo, referente a los recursos, en algunos sistemas los recursos del padre son compartidos con sus hijos y en otros sistemas, como UNIX, el sistema le otorga recursos nuevos e independientes a los procesos hijos. La creacin de procesos hijos en UNIX, se realiza a travs de la llamada al sistema fork(). En el proceso de creacin de procesos se genera una jerarqua de procesos padres e hijos.

Terminacin de procesos.
Implica la liberacin de los recursos que este proceso estaba usando. Un proceso puede terminar por las siguientes razones: En forma normal: exit(), Halt(): llamadas al sistema que desasigna los recursos del proceso. Excede el tiempo lmite o Memoria no disponible: el proceso requiere ms memoria de la que el sistema puede proveerle. Violacin de lmites: el proceso trata de accesar una direccin de memoria que no se le permite acceso. Error de proteccin: el proceso trata de usar un recurso o un archivo que no le es permitido acceder, o trata de usarlo en forma incorrecta (por ejemplo, escribir en un archivo read-only).

Terminacin del padre: cuando un proceso termina, el SO puede terminar automticamente todos sus procesos hijos. Algunos sistemas realizan terminacin en cascada; esto es, si un proceso termina todos sus hijos son automticamente terminados. Requerimiento del padre: un proceso padre tiene la autoridad para terminar cualquiera de sus procesos hijos.

COMUNICACIN INTERPROCESOS
Condiciones de competencia
Las condiciones de competencia se dan cuando dos o ms procesos intentan acceder a un mismo recurso. Secciones crticas Para solucionar las condiciones de competencia se implement un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestin se denomina exclusin mutua. Exclusin mutua con espera ocupada: Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a su regin crtica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando hasta obtener el permiso. Desactivacin de interrupciones: El mtodo ms simple para evitar las condiciones de competencia es hacer que cada proceso desactive todas sus interrupciones antes de entrar a su seccin crtica y las active una vez que sali de la misma. Este modelo como se puede observar, tiene un gran problema y es que si se produce una falla mientras que el proceso esta en la regin crtica no se puede salir de la misma y el sistema operativo no recuperara el control. Variables cerradura: En ste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningn proceso en su seccin crtica) o bien 1 (indicando que la seccin crtica est ocupada) entonces cada proceso antes de ingresar a la seccin crtica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0. El problema aqu se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta en 0 e ingresan a la regin crtica.

Alternancia estricta: El algoritmo de alternancia estricta no bloquea el ingreso a la regin crtica cuando otro proceso se esta ejecutando. El problema de sta solucin es que cuando un proceso no esta en la seccin crtica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo. Instruccin TSL: Esta solucin requiere ayuda del hardware y es debido a que en general las computadoras diseadas para tener ms de un procesador tienen una instruccin TEST AND SET LOCK Dormir y despertar El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador. El problema del productor y el consumidor describe el hecho de que cuando hay dos o ms procesos interactuando a travs de un buffer comn habiendo procesos que ponen informacin o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron mtodos de comunicacin/sincronizacin entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor "duerma" si el buffer est lleno y una vez que exista espacio el proceso "consumidor" despierte al productor para que siga generando o viceversa.

HILOS

Un hilo de ejecucin, en sistemas operativos, es una caracterstica que permite a una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente. Un hilo es bsicamente una tarea que puede ser ejecutada en paralelo con otra tarea. Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente. Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el estado de la CPU (incluyendo el valor de los registros). El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo. Cuando el proceso finaliza, todos sus hilos de ejecucin tambin han terminado. Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados. Algunos lenguajes de programacin tienen caractersticas de diseo expresamente creadas para permitir a los programadores lidiar con hilos de ejecucin (como Java o Delphi). Otros (la mayora) desconocen la existencia de hilos de ejecucin y stos deben ser creados mediante llamadas de biblioteca especiales que dependen del sistema operativo en el que estos lenguajes estn siendo utilizados (como es el caso del C y del C++). Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos, botones, ventanas), mientras otro hilo hace una larga operacin internamente. De esta manera el programa responde de manera ms gil a la interaccin con el usuario. Tambin pueden ser utilizados por una aplicacin servidora para dar servicio a mltiples clientes. Un hilo tendr lo siguiente:

Estado. Contexto del procesador. Punto en el que estamos ejecutando, la instruccin concretamente en la que nos hallamos. Es til a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instruccin que ejecutamos, y as podemos conocer por donde tenemos que continuar la ejecucin del hilo. Pila de ejecucin donde se ir metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas). Espacio de almacenamiento esttico donde almacenar las variables. Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea. Ventajas del uso de hilos. Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso. Se tarda menos tiempo en terminar un hilo que en terminar un proceso. Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos (porque los recursos no cambian, por ejemplo) Es mas sencillo la comunicacin (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos. Cuando se cambia de un proceso a otro, tiene que intervenir el ncleo del sistema operativo para que haya proteccin. Cuando se cambia de un hilo a otro, puesto que la asignacin de recursos es la misma, no hace falta que intervenga el sistema operativo

BIBLIOGRAFIA
http://www.buenastareas.com/ensayos/Procesos-De-Un-Sistema-Operativos/249278.html

S-ar putea să vă placă și