Monografias | Administración de procesos - Sistemas operativosAdministración de procesos - Sistemas operativosResumen: Procesos. Implantación de los procesos. Comunicación entre procesos. Instrucción TSL. Planificación de procesos. Colas múltiples. Procesos ligeros. Señales. El siguiente documento describe las características que presentan los sistemas operativos para la administración de procesos en los sistemas mono y multiprocesadores. Se comienza con una introducción sobre la funcionalidad de un proceso para luego entrar en los detalles de implementación típicos de los sistemas operativos. Aún no termine la totalidad del documento pero lo quiero publicar en Internet para obtener feedback por parte de los lectores interesados en el mismo. El siguiente documento describe las características que presentan los
sistemas operativos para la administración de procesos en los sistemas mono y
multiprocesadores. Se comienza con una introducción sobre la funcionalidad de
un proceso para luego entrar en los detalles de implementación típicos de los
sistemas operativos. Aún no termine la totalidad del documento pero lo quiero
publicar en Internet para obtener feedback por parte de los lectores interesados
en el mismo. Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de
ejecución, por el momento dejemos esta última definición como un concepto,
luego se verá en más detalle el concepto de hilo. Una vez definido que es un
proceso nos podríamos preguntar cuál es la diferencia entre un programa y un
proceso, y básicamente la diferencia es que un proceso es una actividad de
cierto tipo que contiene un programa, entradas salidas y estados. Los procesos pueden ser cooperantes o independientes, en el primer caso se
entiende que los procesos interactúan entre sí y pertenecen a una misma
aplicación. En el caso de procesos independientes en general se debe a que no
interactúan y un proceso no requiere información de otros o bien porque son
procesos que pertenecen a distintos usuarios. Un proceso puede estar en cualquiera de los siguientes tres estados: Listo,
En ejecución y Bloqueado. Los procesos en el estado listo son los que pueden pasar a
estado de ejecución si el planificador los selecciona. Los procesos en el
estado ejecución son los que se están ejecutando en el procesador en ese
momento dado. Los procesos que se encuentran en estado bloqueado están
esperando la respuesta de algún otro proceso para poder continuar con su
ejecución. Por ejemplo operación de E/S. La implementación del modelo de procesos se logra debido a que el sistema
operativo almacena en una tabla denominada tabla de control de procesos
información relativa a cada proceso que se esta ejecutando en el procesador.
Cada línea de esta tabla representa a un proceso. La información que se almacena es la siguiente: 1) Identificación del proceso. 2) Identificación del proceso padre. 3) Información sobre el usuario y grupo. 4) Estado del procesador. 5) Información de control de proceso 5.1) Información del planificador. 5.2) Segmentos de memoria asignados. 5.3) Recursos asignados. Las condiciones de competencia se dan cuando dos o más procesos intentan
acceder a un mismo recurso. Para solucionar las condiciones de competencia se implementó un modelo para
prohibir que dos procesos accedan al mismo recurso. El modelo en cuestión se
denomina exclusión mutua. Exclusión mutua con espera
ocupada Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un
proceso intenta ingresar a su región crítica, verifica si esta permitida la
entrada. Si no, el proceso se queda esperando hasta obtener el permiso. Desactivación de interrupciones El método más simple para evitar las condiciones de competencia es hacer
que cada proceso desactive todas sus interrupciones antes de entrar a su sección
crítica y las active una vez que salio de la misma. Este modelo como se puede
observar, éste modelo tiene una gran problema y es que si se produce una falla
mientras que el proceso esta en la región crítica no se puede salir de la
misma y el sistema operativo no recuperaría el control. En éste caso se genera una variable la cual puede tener dos valores o bien 0
(no hay ningún proceso en su sección crítica) o bien 1 (indicando que la
sección crítica está ocupada) entonces cada proceso antes de ingresar a la
sección crítica 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 región crítica. El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica
cuando otro proceso se esta ejecutando. El problema de ésta solución es que
cuando un proceso no esta en la sección crítica 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. Esta solución requiere ayuda del hardware y es debido a que en general las
computadoras diseñadas para tener más de un procesador tienen una instrucción
TEST AND SET LOCK El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo
de procesador. El problema del productor y el consumidor El problema del productor y el consumidor describe el echo de que cuando hay
dos o más procesos interactuando a través de un buffer común habiendo
procesos que ponen información 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 métodos de comunicación/sincronización
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. La planificación es el proceso por el cual el sistema operativo selecciona
que proceso ejecutar. La selección del proceso se basa en alguno de los
algoritmos de planificación que se describen más abajo. Es la característica por el cual el sistema operativo puede o no expulsar
del estado de ejecución a un proceso dado. En este sentido entonces tenemos la
planificación apropiativa en la cual el sistema operativo puede cortar en
cualquier momento la ejecución de un proceso y la planificación no apropiativa
en la cual una vez que el proceso esta en ejecución el sistema operativo no
puede sacarlo de ese estado. Los objetivos de la planificación de proceso son: Los algoritmos de planificación son los que definen que política se va a
seguir para que un proceso pase al estado de ejecución. En este tipo de planificación cada proceso tiene asignado un quantum de
tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución 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. En la planificación round-robin todos los procesos son tratados con la misma
prioridad. Para el caso de este tipo de planificación a cada proceso se le
asigna una prioridad y los mismos son ejecutados Las colas múltiples están basadas en una pila que sirve como índice de una
lista de procesos que se tienen que ejecutar. Este tipo de algoritmo de planificación se usa para trabajos en batch o de
procesamiento or lotes en los cuales se puede saber cual es el tiempo de duración
de la ejecución de cada proceso y entonces se puede seleccionar primero el
trabajo más corto. El problema que se presenta con éste algoritmo es que los
grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño
se "cuela" sobre uno de mayor tamaño y como resultado final se podría
dar el caso que el proceso grande nunca obtenga procesamiento. En este modelo de planificación se tiene en cuenta la cantidad de usuarios
en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n
la cantidad total de usuarios) de esa forma el planificador tiene que llevar
cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están
utilizando el procesador para cumplir con la ecuación previa. Los procesos ligeros son programas en ejecución son básicamente procesos
pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los
primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso
todos los procesos hijos comparten la información del hilo principal pero además
puede cada hilo tener su información privada. Dentro de la información propia tenemos: Las señales son el mecanismo de comunicación que se establece entre los
procesos. Para comparar se puede decir que las señales son a los procesos lo
que las interrupciones son al procesador. Cuando un proceso recibe una señal
detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta
en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto
que había bifurcado anteriormente. Las señales se pueden originar en un proceso o bien en el sistema operativo.
Las señales se pueden enviar entre procesos, solo los que tengan el mismo uid,
o bien el sistema operativo puede enviarle una señal a un proceso, por ejemplo
excepciones de ejecución. Perses Crio Licenciatura de sistemas Publicación enviada por Perses Crio Contactar mailto:perses_1@yahoo.com Código ISPN de la Publicación EpZVuyylEESPwJCkge Publicado Friday 30 de January de 2004 Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal. | |||||||||