Procesos
Un proceso es todo programa que esta siendo
ejecutado en determinado momento en un computador.
Un proceso se crea en el momento en el que el
programa es leído desde el almacenamiento secundario
y pasa a la memoria, con el fin de que pueda ser
ejecutado por el procesador.
Este término fue utilizado por primera vez en los años
sesenta, muchas veces utilizado como sinónimo de
tarea.
- Programa en ejecución.
- El “espíritu animado” de un procedimiento.
- El “centro de control” de un procedimiento en ejecución.
- Entidad atendida por un procesador.
- Secuencia codificada en trance de ejecución.
- Conjunto de microinstrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
- Es un programa en ejecución que necesita recursos para realizar su tarea: tiempo de cpu, memoria, archivos y dispositivos de e/s.
- Consiste en el conjunto de instrucciones de programa destinadas a ser ejecutadas por el microprocesador.
Un programa como tal es una entidad inanimada,
cuando el procesador le “infunde vida” se convierte
en una entidad activa que se denomina PROCESO.
Un proceso está conformado por: CÓDIGO y DATOS.
Es función del sistema operativo:
- Planificación de procesos: decide qué proceso emplea el procesador en cada instante de tiempo.
- Mecanismos de comunicación entre procesos: permiten comunicar a dos procesos del sistema operativo.
- Mecanismos de sincronización: permiten coordinar a procesos que realizan accesos concurrentes a un cierto recurso.
Estado de un Proceso
A medida que se ejecuta un proceso, cambia su
estado. El estado de un proceso se define en
parte por la actividad actual de dicho proceso.
Cada proceso puede estar en alguno de los
siguientes estados:
- 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.
- Nuevo: El proceso se está creando.
Creación de Procesos
Un proceso puede crear varios procesos nuevos,
a través de una llamada al sistema para la
creación de procesos, durante el curso de la
ejecución. El proceso creador se denomina
proceso padre, en tanto que los nuevos son sus
hijos. Cada uno de estos nuevos procesos a su
vez pueden crear otros, formando así un árbol
de procesos.
Cuando un proceso se crea como nuevo existen
dos posibilidades en términos de ejecución:
- El padre continúa ejecutándose de manera concurrente con sus hijos.
- El padre espera hasta que alguno de sus hijos haya terminado.
Terminación de un Proceso
Un proceso concluye cuando termina de
ejecutar su sentencia final, y le pide al sistema
operativo que lo borre usando la llamada exit.
En dicho punto el proceso puede regresar datos
de salida a su padre. Todos los recursos del
proceso incluyendo memoria y buffers, son
liberados por el sistema operativo.
Existen circunstancias adicionales en las que
ocurre terminación. Un proceso puede
ocasionar la terminación de otro, mediante la
llamada apropiada al sistema del evento abort.
Esta llamada solo se permite de procesos padre
a hijos.
Un padre puede terminar la ejecución de uno
de sus hijos por varias razones:
- El hijo ha excedido el uso de alguno de los recursos que tiene asignados.
- Ya no se requiere la tarea asignada al hijo.
- El padre está saliendo y el sistema no permite que un hijo continúe si su padre termina.
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 almacenada es:
- Identificación del proceso.
- Identificación del proceso padre.
- Información sobre el usuario y grupo.
- Estado del procesador.
- Información de control de proceso.
- Información del planificador.
- Segmentos de memoria asignados.
- Recursos asignados.
El despachador de Procesos
Despacho: Conjunto de políticas y mecanismos
construidos en el sistema operativo que gobiernan el
orden en el cual se realiza la carga de trabajo del
sistema. El despacho es una de las funciones que realiza el
núcleo del sistema operativo.
Despachador. Módulo del sistema operativo que
selecciona el siguiente trabajo a ser admitido en el
sistema y el siguiente proceso a ejecutarse.
Es el componente del Núcleo que transfiere el control
del procesador al proceso seleccionado por el
planificador.
El Dispatcher es uno de los módulos del Administrador
de procesos (decide a qué procesador asignar el
proceso que tiene que ser ejecutado) .
OBJETIVO PRINCIPAL DEL DESPACHADOR
Optimizar la eficiencia del sistema, de acuerdo con
criterios considerados importantes para el ambiente del
sistema operativo.
FUNCIONES
- El despachador examina la prioridad de los procesos.
- Controla los recursos de una computadora y los asigna entre los usuarios.
- Permite a los usuarios correr sus programas.
- Controla los dispositivos de periféricos conectados a la máquina.
- Cambio de contexto.
- Cambio a modo usuario.
Tipos de despachadores
- De mediano plazo:
- De largo plazo:
- De corto plazo
Concurrencia de Procesos
Dos o más procesos decimos que son concurrentes,
paralelos, o que se ejecutan concurrentemente, cuando
son procesados almismo tiempo, es decir, que para
ejecutar uno de ellos, no hace falta que se haya
ejecutado otro.
Tipos de Procesos Concurrentes
- Independientes: Son aquellos procesos que se ejecutan sin la ayuda o cooperación de otros procesos, estos no presentan problemas de coordinación, pues por definición no hay interacción entre ellos. Un ejemplo de estos son los procesos asociados a con dos usuarios distintos en un sistema clásico de multiprogramación.
- Dependientes: Estos trabajan de forma conjunta en alguna actividad, por lo que deben ser capaces de comunicarse e interactuar entre ellos, para ello se crean se crean mecanismos de comunicación y coordinación entre ellos.
Sección Critica
Se denomina sección crítica, en programación
concurrente, a la porción de código de un programa de
computador en la cual se accede a un recurso
compartido (estructura de datos o dispositivo) que no
debe ser accedido por más de un hilo en ejecución.
La sección crítica por lo general termina en un tiempo
determinado y el hilo, proceso o tarea sólo tendrá que
esperar un período determinado de tiempo para entrar.
Se necesita un mecanismo de sincronización en la
entrada y salida de la sección crítica para asegurar la
utilización exclusiva del recurso.
Abrazo Mortal
Un conjunto de procesos está en un abrazo mortal
cuando todos los procesos en ese conjunto están
esperando un evento que sólo puede ser causado por
otro proceso en el conjunto. Los eventos a los cuales nos estamos refiriendo son
concernientes con la asignación y liberación de
recursos principalmente. Sin embargo, otro tipo de
eventos pueden llevar a la existencia de abrazos
mortales.
En sistemas operativos, el bloqueo mutuo (también
conocido como interbloqueo, traba mortal, deadlock,
abrazo mortal) es el bloqueo permanente de un
conjunto de procesos o hilos de ejecución en un
sistema concurrente que compiten por recursos del
sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de
procesos, no existe una solución general para los
interbloqueos. Todos los interbloqueos surgen de necesidades que no
pueden ser satisfechas, por parte de dos o más
procesos.
Todos los interbloqueos surgen de necesidades que no
pueden ser satisfechas, por parte de dos o más
procesos.
En la vida real, un ejemplo puede ser el de dos niños
que intentan jugar al arco y flecha, uno toma el arco, el
otro la flecha. Ninguno puede jugar hasta que alguno
libere lo que tomó.
Comentarios
Publicar un comentario