Está en la página 1de 7

INSTITUTO TECNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE AJALPAN INGENIERIA EN SISTEMAS COMPUTACIONALES 7 SEMESTRE UNIDAD 2 Administracin de procesos y del procesador

2.1.- CONCEPTO DE PROCESO. Un proceso es el programa en ejecucin, que incluye los valores actuales del contador de programa. Conceptualmente cada uno de estos procesos tiene su propio CPU virtual. Un proceso en sistemas operativos consiste en las instrucciones de un programa, destinadas a ser ejecutadas por el microprocesador. 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. 2.2.- ESTADOS Y TRANSICIONES DE LOS PROCESOS. La prioridad del procesador es ejecutar las instrucciones de la 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. Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podra generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell. Cuando un proceso se bloquea, lo que hace porque le es imposible continuar lgicamente, casi siempre porque esta separando entradas que todava no estn disponibles, tambin puede ser que un programa que conceptualmente esta listo y en condiciones de ejecutarse sea detenido porque el sistema operativo ha

decidido asignar la CPU a otro proceso durante un tiempo. Estas dos condiciones son totalmente distintas, en el primer caso, la suspensin es inherente al problema (no es posible procesar la lnea de comandos del usuarios antes de que este la teclee). En el segundo caso, se trata de un tecnicismo del sistema (no hay suficiente: CPU para darle a cada proceso su propio procesador privado). 1.- Ejecutndose (usando realmente la CPU en este instante). 2.- Listo (se puede ejecutar, pero se suspendi temporalmente para dejar que otro proceso se ejecute). 3.- Bloqueo (no puede ejecutarse en tanto no ocurra algn evento externo). Puede haber cuanto transiciones entre estos tres estados, como se muestra. La transaccin 1 ocurre cuando un proceso descubre que no puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido MINIX, cuando un proceso lee de un conducto o de un archivo especial, (p.ej., una terminal) y no hay entradas disponibles, se bloquea automticamente. Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte del sistema operativo, sin que el proceso se entere siquiera de ellas. La transicin 2 ocurre cuando el planificador decide que el proceso en ejecucin ya se ejecuto durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU. La transaccin 3 ocurre cuando todos los dems procesos han disfrutado de una porcin justa y es hora de que el primer proceso reciba otra vez la CPU para ejecutarse. La transaccin 4 ocurre cuando acontece el suceso externo que un proceso estaba esperando (como la llegada de entrada). Sin ningn otro proceso se esta ejecutando en ese instante, se dispara de inmediato la transaccin 3 y el proceso comienza a ejecutarse. 2.3 PROCESOS LIGEROS (HILOS O HEBRAS) Los procesos se dividen independientemente uno en recursos y otro que hace referencia a la ejecucin. En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distincin ha conducido en los sistemas

operativos actuales a desarrollar la construccin conocida como thread, cuyas traducciones ms frecuentes son hilo, hebra y proceso ligero. Si se tiene esta divisin de caractersticas, la unidad de asignacin de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso. Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros. Es una unidad bsica de utilizacin de la CPU consistente en un juego de registros y un espacio de pila. Comparte el cdigo, los datos y los recursos con sus hebras pares. Una tarea (o proceso pesado) est formada ahora por una o ms hebras, una hebra slo puede pertenecer a una tarea no a mas. CARACTERISTICAS Se comparten recursos. La comparticin de la memoria permite a las hebras pares comunicarse sin usar ningn mecanismo de comunicacin inter-proceso del SO. No hay proteccin entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso. Estado de los procesos ligeros: Un proceso ligero puede estar ejecutando, listo o bloqueado. Paralelismo: Los procesos ligeros permiten paralelizar una aplicacin. 2.4 CONCURRENCIA Y SECUENCIABILIDAD. Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos. La concurrencia puede presentarse en tres contextos diferentes: Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.

Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos. Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador: El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para dar as una apariencia de ejecucin simultnea. Multiprocesador: Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden intercalar su ejecucin sino que tambin superponerla. Multicomputadora: Es una maquina de memoria distribuida, que est formada por una serie de computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los procesos sobre los diferentes procesadores. As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin existen sus contras: Inanicin e interrupcin de procesos Ocurrencia de bloqueos Que dos o ms procesos requieran el mismo recurso Tipos de procesos concurrentes. Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como: Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema. Procesos son cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. Elementos a gestionan las concurrencias. Tiempo de procesador: Es funcin de la planificacin.

Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual. Archivos: Dispositivos de E/S: 2.4.1 EXCLUSIN MUTUA DE SECCIONES CRTICAS. El mtodo ms sencillo de comunicacin entre los procesos de un programa concurrente es el uso comn de unas variables de datos. El problema de este sistema es que la accin de un proceso interfiere en las acciones de otro de una forma no adecuada. Para evitar este tipo de errores se pueden identificar aquellas regiones de los procesos que acceden a variables compartidas y dotarlas de la posibilidad de ejecucin como si fueran una nica instruccin. Se denomina seccin crtica a aquellas partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente o, que desde otro proceso se ven como si fueran una nica instruccin. Esto quiere decir que si un proceso entra a ejecutar una seccin crtica en la que accede a unas variables compartidas, entonces otro proceso no puede entrar a ejecutar una regin crtica en la que se modifique las variables compartidas con el anterior. Las secciones crticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones crticas de cada una. Para conseguir dicha exclusin se deben implementar protocolos software que impidan o bloqueen el acceso a una seccin crtica mientras est siendo utilizada por un proceso. Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusion) se usan en programacin concurrente para evitar que fragmentos de cdigo conocidos como secciones crticas accedan al mismo tiempo a recursos que no deben ser compartidos. La mayor parte de estos recursos son las seales, contadores, colas y otros datos que se emplean en la comunicacin entre el cdigo que se ejecuta cuando se da servicio a una interrupcin y el cdigo que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupcin puede ocurrir entre dos instrucciones cualesquiera del cdigo normal y esto puede provocar graves fallos. La tcnica que se emplea por lo comn para conseguir la exclusin mutua es inhabilitar las interrupciones durante el conjunto de instrucciones ms pequeo que impedir la corrupcin de la estructura compartida (la seccin crtica). Esto impide que el cdigo de la interrupcin se ejecute en mitad de la seccin crtica.

En un sistema multiprocesador de memoria compartida, se usa la operacin indivisible test-and-set sobre una bandera, para esperar hasta que el otro procesador la despeje. La operacin test-and-set realiza ambas operaciones sin liberar el bus de memoria a otro procesador. As, cuando el cdigo deja la seccin crtica, se despeja la bandera. Esto se conoce como espera activa. Algunos sistemas tienen instrucciones multioperacin indivisibles similares a las anteriormente descritas para manipular las listas enlazadas que se utilizan para las colas de eventos y otras estructuras de datos que los sistemas operativos usan comnmente. La mayora de los mtodos de exclusin mutua clsicos intentan reducir la latencia y espera activa mediante las colas y cambios de contexto. Algunos investigadores afirman que las pruebas indican que estos algoritmos especiales pierden ms tiempo del que ahorran. A pesar de todo lo dicho, muchas tcnicas de exclusin mutua tienen efectos colaterales. Por ejemplo, los semforos permiten interbloqueos (deadlocks) en los que un proceso obtiene un semforo, otro proceso obtiene el semforo y ambos se quedan a la espera de que el otro proceso libere el semforo. Otros efectos comunes incluyen la inanicin, en el cual un proceso esencial no se ejecuta durante el tiempo deseado, y la inversin de prioridades, en el que una tarea de prioridad elevada espera por otra tarea de menor prioridad, as como la latencia alta en la que la respuesta a las interrupciones no es inmediata. La mayor parte de la investigacin actual en este campo, pretende eliminar los efectos anteriormente descritos. Si bien no hay un esquema perfecto conocido, hay un interesante esquema no clsico de envo de mensajes entre fragmentos de cdigo que, aunque permite inversiones de prioridad y produce una mayor latencia, impide los interbloqueos.

Regin Crtica. Protocolo de sincronizacin. Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar simultneamente al mismo. Si un recurso tiene slo un punto de entrada, se lo denomina recurso crtico o recurso no compartible. Regin crtica de un proceso es la fase o etapa en la vida de ese proceso concurrente en la cual accede a un recurso crtico para modificarlo o alterarlo. El uso adecuado de la concurrencia entre procesos exige la capacidad de definir

secciones crticas y hacer cumplir la exclusin mutua. Cualquier servicio o capacidad que d soporte para la exclusin mutua debe cumplir con un protocolo de sincronizacin, que tiene los requisitos siguientes: 1. Debe cumplirse la exclusin mutua: slo un proceso de entre todos los que poseen secciones crticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado. 2. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin estorbar a los otros. Es decir que si se cuelga un proceso que est usando un recurso, los dems procesos que esperan deben poder acceder al recurso de todas formas (el S.O. mata al proceso que se colg y as libera al recurso). 3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no debe permitirse el interbloqueo y la inanicin. Todos los procesos deben poder acceder al recurso que solicitan, sino se van a morir sin usarlo y no es justo. 4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatacin. Es decir, si nadie est usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite. 5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su nmero (cantidad de procesadores). Nunca se puede saber a priori si a un proceso le falta mucho o poco para terminar. 6. Un proceso permanece en su seccin crtica slo por un tiempo finito. Esto sirve para evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado sin sentido.

También podría gustarte