sábado, 9 de junio de 2012

CARACTERÍSTICAS DE LOS PROCESOS (Sistemas Operativos)

Proceso
Uno de los conceptos más importantes que gira en torno a un sistema operativo es el de proceso. Un proceso es un programa en ejecución junto con el entorno asociado (registros, variables, etc.). El corazón de un sistema operativo es el núcleo, un programa de control que reacciona ante cualquier interrupción de eventos externos y que da servicio a los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicio por parte de los mismos.

No todos los equipos de cómputo procesan el mismo tipo de trabajos, y un algoritmo de planificación que en un sistema funciona excelente puede dar un rendimiento pésimo en otro cuyos procesos tienen características diferentes.

1. Cantidad de entrada/salida.
2. Cantidad de uso de CPU.
3. Procesos de lote o interactivos.
4. Procesos en tiempo real.
5. Longevidad de los procesos.

El modelo de procesos posee las siguientes características:

• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia cpu virtual.
• Si la cpu alterna entre los procesos, la velocidad a la que ejecuta un proceso no será uniforme, por lo que es necesario aclarar lo siguiente:
o Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo.
o Que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la cpu o las velocidades relativas de procesos distintos.
• Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.
• Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación” , el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto

Estados de Procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.
Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y una “Lista de Bloqueados” para los “bloqueados”.

La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los eventos que están esperando.

Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la última parte de la “Lista de Listos”.
La asignación de la cpu al primer proceso de la “Lista de Listos” se denomina “Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada “Despachador”.

El “Bloqueo” es la única transición de estado iniciada por el propio proceso del usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.

La manifestación de un proceso en un Sistema Operativo es un “Bloque de Control de Proceso” (PCB) con información que incluye:

• Estado actual del proceso.
• Identificación única del proceso.
• Prioridad del proceso.
• Apuntadores para localizar la memoria del proceso.
• Apuntadores para asignar recursos.
• Área para preservar registros.

Cuando el Sistema Operativo cambia la atención de la cpu entre los procesos, utiliza las áreas de preservación del PCB para mantener la información que necesita para reiniciar el proceso cuando consiga de nuevo la cpu.
Los sistemas que administran los procesos deben poder crear, destruir, suspender, reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.

La “creación” de un proceso significa:
• Dar nombre al proceso.
• Insertar un proceso en la lista del sistema de procesos conocidos.
• Determinar la prioridad inicial del proceso.
• Crear el bloque de control del proceso.
• Asignar los recursos iniciales del proceso.

Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso creador se denomina “proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica de procesos”.

La “destrucción” de un proceso implica:
• Borrarlo del sistema.
• Devolver sus recursos al sistema.
• Purgarlo de todas las listas o tablas del sistema.
• Borrar su bloque de control de procesos.

Un proceso “suspendido” no puede proseguir hasta que otro proceso lo reanude.
Reanudar (reactivar) un proceso implica reiniciarlo en el punto donde fue suspendido.

La “destrucción” de un proceso puede o no significar la destrucción de los procesos hijos, según el Sistema Operativo.
Generalmente se denomina “Tabla de Procesos” al conjunto de información de control sobre los distintos procesos.

Fuentes:
1. Wikibooks. Sistemas Operativos por la forma de servicio. Tomado el 09 de junio de 2012 de: http://es.wikibooks.org/wiki/Sistemas_operativos/Por_la_forma_de_servicio#Caracter.C3.ADsticas_a_considerar_de_los_procesos.

2. http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm