Administracion de S.O
- Introduccion al proceso de administracion de S.O
- ¿Qué es un proceso?
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.
- Estados de los procesos
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.
- Implantación de los procesos
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.
Comunicación entre procesos
- Condiciones de competencia
Las condiciones de competencia se dan cuando dos o más
procesos intentan acceder a un mismo recurso.
- Secciones críticas
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.
- Variables cerradura
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.
- Alternancia estricta
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.
- Instrucción TSL
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
Dormir y despertar
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.
- Planificación de procesos
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.
- Expulsión
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.
- Objetivos de la planificación
Los objetivos de la planificación 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 número de tareas procesadas por
hora.
- Algoritmos de planificación
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.
- Planificación Round-Robin
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.
- Planificación por prioridad
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
- Colas múltiples
Las colas múltiples están basadas en una pila que sirve como
índice de una lista de procesos que se tienen que ejecutar.
Primero el trabajo más corto
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.
- Planificación garantizada
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.
- Procesos ligeros
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:
- Contador de programa
- Pila
- Registros.
- Estado del proceso ligero.
- Dentro de la información compartida tenemos:
- Variables globales.
- Archivos abiertos
- Señales
- Semáforos.
- Contabilidad.
Señales
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.
No hay comentarios:
Publicar un comentario