DESCRIPCIÓN Y CONTROL DE PROCESOS
Proceso
Un
proceso es un programa en ejecución la ejecución de un proceso debe proceder de
manera secuencial.
Estados de los procesos
A
medida que un proceso s ejecuta cambia de estado.
El
estado de un proceso esta definido en parte por la actividad actual del proceso, el cual puede encontrarse en los
siguientes estados.
1.-
Nuevo: el proceso se esta creando
2.-
En ejecución: se están ejecutando instrucciones
3.-
Listo: Proceso que esta preparado para ejecutarse en cuanto se pueda
4.-
Bloqueado: Proceso que no se puede ejecutar hasta que se produzca cierto suceso
como la terminación de e/s.
5.-
Terminado: Proceso que ha sido excluido
por el sistema del grupo e procesos ejecutables, bien porque se detuvo o fue
abandonado.
Control de Procesos
Los
requisitos que debe satisfacer un sistema operativo están expresados haciendo
referencia a los procesos.
·
El S.O. debe asignar los recursos a los procesos conforme a
una política específica, por ejemplo en ciertas funciones o aplicaciones que
son de mayor prioridad.
·
El S.O. dará soporte a la comunicación entre procesos por
parte del usuario, labores que pueden ayudar en la estructuración de las
aplicaciones.
Modos de ejecución
Se
asocian con el sistema operativo y los programas del usuario, la mayoría de los
procesadores soportan al menos dos modos de ejecución. Se usan dos modos porque
es necesario proteger al sistema y a las tablas importantes del mismo como los
bloques de control de procesos de las injerencias de los programas
·
Modo sistema (o modo
privilegiado)
El cual tiene ciertas instrucciones que solo se ejecutan de
esta forma
·
Modo Usuario
Los programas de usuario se ejecutan normalmente de este modo
Hilos
Es una pequeña unidad
de procesamiento que rescata a un proceso antes ejecutado, guarda la llamada a
dicho proceso para ser ejecutado más rápidamente en caso de ser requerido,
característica que permite a una aplicación realizar varias tareas a
la vez (concurrentemente).
Los hilos comparten una
serie de recursos tales como el espacio de memoria, los archivos abiertos,
situación de autenticación, etc.
Un hilo es básicamente una
tarea que puede ser ejecutada en paralelo con otra tarea.
Principios generales de la Concurrencia
Comprende multiples cuestiones en cuanto al diseño de un sistema operativo, como son la comunicación entre procesos,
compartición y competencia por los recursos, sincronización de la ejecución de
varios procesos y asignación del tiempo de procesador a los procesos. Dichas
cuestiones no solo surgen en entornos de multiprocesadores, sino en sistemas
multiprogramados con un solo procesador; los procesos se intercalan en el
tiempo aparentando una ejecución simultánea lo que produce beneficios en la
eficiencia del procesamiento y en la estructuración de los programas a lo cual
le podemos llamar concurrencia.
Los problemas surgen a
consecuencia de la velocidad de ejecución de los procesos que no pueden
predecirse y depende de las actividades de otros procesos.
Es la propiedad de
los sistemas que permiten que múltiples procesos sean ejecutados al mismo
tiempo, y que potencialmente puedan interactuar entre si
La concurrencia
puede presentarse en tres contextos diferentes:
• Múltiples
aplicaciones: multiprogramación.
• Aplicaciones
estructuradas: algunas aplicaciones pueden implementarse como un conjunto de
procesos concurrentes.
• Estructura
del sistema operativo
Exclusión Mutua
consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
Sección critica.
Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una mas variables compartidas. Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones:
- Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en nungún momento dos procesos dentro de sus respectivas secciones criticas.
- No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
- Ningún proceso que esté fuera de sus sección critica debe interrumpir a otros para el acceso a la sección critica.
- Cuanto mas de un proceso desee entrar en su sección critica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.
- Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:
- Software
- Hardware
- Aportadas por el S.O
Sincronización
· Entre
subrutinas de la misma tarea
En este caso una
subrutina llamada asicrónicamente (como respuesta a una señal) deberá coordinar
el acceso con el resto del programa. (Por ejemplo, el acceso a una variable
global. Ejemplos: práctico.).
· Entre
tareas del mismo proceso
Las tareas del mismo
proceso son ejecutadas en un orden no definido por el SO y pueden ser
interrumpidas en cualquier momento.
· Entre
procesos diferentes
Diferentes procesos
cooperativos deberán sincronizarse para acceder a recursos, como por ejemplo,
un archivo de configuración R/W.
Cuando no es necesario
sincronizar:
Cuando no hay recursos
compartidos.
Cuando sabemos el orden
en el cual nuestro código se ejecutará.
Cuando el acceso al
recurso compartido es en sí atómico.
Semáforos
Ayudan a solucionar problemas de procesos
concurrentes, se diseño un S.O. como un conjunto de procesos secuenciales,
eficiente y fiable para dar soporte a la cooperación. Los procesos de usuario
podrían utilizar estos mecanismos si el procesador y el S.O. los hacían
disponible.
Múltiples procesos pueden cooperar por
medio de simples señales, de manera que se pueda obligar a un proceso a detener
en una posición determinada hasta que reciba una señal específica. Para la
señalización se usan variables especiales llamadas semáforos "S", los
procesos ejecutan las primitivas wait
para un proceso suspendido y signal
para un para ejecutar .
Monitores
del Sistema Operativo
Los monitores son estructuras de un
lenguaje de programación que ofrecen una funcionalidad equivalente a las de los
semáforos pero son más fáciles de controlar.
es un modulo de software
que consta de uno o más procedimientos, una secuencia de inicio y uno datos
locales. Sus características son las siguientes:
- Solo los procedimientos del monitor acceden a variables de datos
locales.
- Un proceso entra en el monitor invocando a uno de sus procedimientos.
- En el monitor solo un proceso puede ser ejecutado en un momento dado;
cualquier otro proceso quedara suspendido esperando la disponibilidad del
monitor.
El monitor proporciona
variables de condición que son accesibles solo desde dentro del monitor.
Hay dos funciones para operar
variables de condición:
- cwait (c): suspende la ejecución del proceso que llama bajo la
condición "c". El monitor está ahora disponible para otro
proceso.
- csignal (c): retorna la ejecución de un proceso suspendido después de un cwait, bajo la misma condición. Si hay varios procesos elige uno de ellos.
Pasos de mensajes de
los Sistemas Operativos
El paso de mensajes es un método que permite
que se realice ambas funciones. Este método tiene la ventaja de que es de fácil
implementación en sistemas distribuidos y también es sistemas de
multiprocesador y monoprocesador de memoria compartida.La funcionalidad real del paso de mensajes, generalmente, se da por medio de un par de primitivas:
·
send(destino, mensaje)
·
receive(origen, mensaje)
Este es el conjunto mínimo de operaciones
necesarias para que los procesos puedan dedicarse al paso de mensajes.
Interbloqueo
Es el bloqueo permanente de un conjunto de procesos
que compiten por los recursos del sistema o bien se comunican unos con otros. A
diferencia de otros problemas de la gestión concurrente de procesos, no existe
una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades
contradictorias de recursos por parte de dos o más procesos.
Condiciones
para producir interbloqueo
En la política del sistema operativo, deben darse tres
condiciones para que pueda producirse un interbloqueo:
1- Condición de exclusión
mutua: Cada recurso esta asignado a un único proceso o esta disponible.
2- Condición de posesión
y espera: Los procesos que tienen, en un momento dado, recursos asignados con
anterioridad, pueden solicitar nuevos recursos.
3- Condición de no apropiación:
Los recursos otorgados con anterioridad no pueden ser forzados a dejar
un proceso. El proceso que los posee debe liberarlos en forma
explicita.