¿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 informacion 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 elprocesador 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.
Las soluciones con espera
ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a
su región critica verifica
si esta permitida la entrada. Si no, el proceso se queda esperando hasta
obtener el permiso.
El metodo 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 elconsumidorr 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 metodos decomunicacion /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 planificacion es el
proceso por el cual el sistema operativo selecciona que proceso ejecutar. La seleccion del proceso
se basa en alguno de los algoritmosde
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:
- 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.
Los algoritmos de planificación son los que definen
que politica 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 sontratados 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.
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 eltrabajo 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:
- 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.
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.
Fuente:www.monografias.com/.../administ-procesos/administ-procesos.shtml
No hay comentarios:
Publicar un comentario