sábado, 30 de junio de 2012

CREACIÓN Y TERMINACIÓN DE PROCESOS



Creación de procesos: los procesos se crean mediante una llamada al sistema de “crear proceso”, durante el curso de su ejecución se construye las estructuras de datos que son usadas para administrar los procesos y le asigna espacio de direcciones.


Los procesos pueden ser creados por:

  • El sistema operativo.
  • Por otro proceso (en este caso el proceso creador se denomina padre mientras que al proceso creado se le llama hijo).
  • Por las aplicaciones de usuario.
  • Por la entrada de un nuevo usuario al sistema.


Cada vez que el SO crea un proceso se procede de la siguiente manera:

  • Asignar un único identificador del proceso.
  • Asignar espacio para el proceso. Elementos de la imagen del proceso. Espacio de direcciones privado, de la pila.
  • Inicializar el Bloque de Control de Procesos.
  • Establecer los enlaces apropiados. Colocarlo en la lista de procesos listos o suspendidos.
  • Crear otras estructuras de control.



Bloque de Control de Procesos: Cada proceso se representa en el Sistema Operativo con un bloque de control de proceso (también llamado bloque de control de tarea).




Estado: actual del proceso.
Contador de programa: indica la dirección de la siguiente instrucción que se ejecutará de ese proceso.
Registros de CPU: acumuladores, registros, índice, punteros de pila y registros generales.
Información de planificación de CPU: prioridad del proceso, punteros a colas de planificación, etc.
Información de gestión de memoria: valor de los registros de base y límite, tabla de páginas o tabla de segmentos.
Información de contabilidad: tiempo de CPU, tiempo consumido, números de procesos, etc.
Información de estado de E/S: dispositivos de E/S asignados a este proceso, lista de archivos abiertos, etc.

Terminación de un proceso: Un proceso termina cuando ejecuta su última instrucción y pide al sistema operativo que lo elimine. En este momento, el proceso puede devolver un valor de estado a su proceso padre.

El sistema operativo libera la asignación de todos los recursos del proceso, incluyendo las memorias física y virtual, los archivos abiertos y los búferes de E\S.

Razones para la terminación de un proceso:

Normal: El proceso ejecuta llamada al servicio del SO que notifica su terminación normal.

Por tiempo excedido: Una tarea tiene asignada la CPU ejecuta el tiempo máximo y le es requisada la CPU y pasa a la cola para competir por la nueva asignación.

Violación de límites: Proceso trata de acceder a una posición de memoria que no le está permitida acceder.

No memoria disponible: El proceso necesita más memoria de la que el sistema puede proporcionar.

Error de protección: El proceso intenta utilizar un recurso o archivo que no le está permitido utilizar, o trata de utilizarlo de forma incorrecta.

 Error aritmético: Si el proceso intenta hacer un cálculo prohibido, como la división por cero, o trata de acceder a un número mayor del que el hardware acepta.

Tiempo máximo de espera de recurso: El proceso ha esperado más allá del tiempo máximo especificado para que se produzca cierto suceso.

Fallo de dispositivo de E/S: Se produce un error en una operación de E/S

Instrucción no valida: El proceso intenta ejecutar una instrucción inexistente ( a menudo como resultado de un salto para ejecutar datos en la zona de datos)

Intento de acceso a una instrucción privilegiada: El proceso intenta utilizar una instrucción reservada para el SO.

Finalización del padre: Cuando un proceso padre finaliza, el SO puede diseñarse para terminar automáticamente con todos sus descendientes.

Mal uso de los datos: Un elemento de dato, no está inicializado o es de un tipo equivocado.

Intervención del operador o del SO.- Por alguna razón el operador o el SO termina con un proceso (ej.: Interbloqueo).

Solicitud del padre.- Un proceso padre tiene normalmente autoridad para terminar con cualquiera de sus hijos.

8 comentarios: