PROCESOS

 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:
    Cuando existen procesos que necesitan un uso intensivo de las facilidades de entrada y salida, y que por ello permanezcan suspendidos, puede ser que éstos procesos se quiten temporalmente de memoria principal y se guarden en memoria secundaria, hasta que su condición de espera haya concluido (a esta actividad se le conoce como ]””swapping”), para darle oportunidad a otros procesos que quieran ser admitidos. El despachador de mediano plazo se encarga del manejo de procesos que temporalmente se han enviado a memoria secundaria.
  • De largo plazo:
    El despachador de largo plazo, cuando existe, trabaja con la cola de los trabajos en lotes y selecciona el siguiente trabajo de lotes a ejecutarse. Su objetivo principal es proporcionar una mezcla balanceada de trabajos al despachador de corto plazo. Este tipo de despachador es invocado cada vez que un proceso termina y abandona el sistema. Su utilización es relativamente poco frecuente.
  • De corto plazo 
    El despachador de corto plazo asigna el CPU entre los procesos listos en memoria principal. Su objetivo principal es maximizar la eficiencia del sistema de acuerdo con ciertos criterios.

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