ESTADOS Y TRANSICIONES DE LOS PROCESOS

Ver el tema anterior Ver el tema siguiente Ir abajo

ESTADOS Y TRANSICIONES DE LOS PROCESOS

Mensaje  EZEQUIEL TORRES LEON el Jue Mar 06, 2014 5:36 pm

2.2 ESTADOS Y TRANCISIONES DE LOS PROCESOS

El principal concepto en cualquier sistema operativo es el de proceso.
Un proceso es un programa en ejecución, incluyendo el valor del program  counter, los registros y las variables.
Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es  visto como un CPU virtual. El recurso procesador es alternado entre los diferentes procesos que existan en el sistema, dando la idea de que ejecutan en paralelo (multiprogramación).

El estado de un proceso es definido por la actividad corriente en que se encuentra. Los estados de un proceso son:
Nuevo (new): Cuando el proceso es creado.
Ejecutando (running): El proceso tiene asignado un procesador y está  ejecutando sus instrucciones.
Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido de E/S o una señal).
Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso  procesador.
Finalizado (terminated): El proceso finalizó su ejecución.

TRANSICIONES ENTRE ESTADOS

Nuevo ⇒ Listo
– Al crearse un proceso pasa inmediatamente al estado listo.

Listo ⇒ Ejecutando
– En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar.

Ejecutando ⇒ Listo
– Ante una interrupción que se genere, el proceso puede perder el recurso  procesador y pasar al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a ejecutar.

Ejecutando ⇒ Bloqueado
– A medida que el proceso ejecuta instrucciones realiza pedidos en distintos  componentes (ej. Genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, además, si está en un sistema multiprogramado, el proceso  es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador.

Bloqueado ⇒ Listo
– Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos.

Ejecutando ⇒ Terminado
– Cuando el proceso ejecuta su última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

Todo proceso se describe mediante su estado, nombre, recursos  asignados, información contable, etc.
Para ello se utiliza una estructura de datos que será el operando de las  operaciones sobre procesos, recursos y del planificador (scheduler).

Los campos de esta estructura son:

 Estado CPU: El contenido de esta estructura estará indefinido toda vez que el  proceso está en estado ejecutando (puesto que estará almacenado en la CPU  indicada por procesador). Registro de flags.
 Procesador: [1..#CPU]: Contendrá el número de CPU que está ejecutando al  proceso (si está en estado ejecutando), sino su valor es indefinido.
 Memoria: Describe el espacio virtual y/o real de direccionamiento según la  arquitectura del sistema. Contendrá las reglas de protección de memoria así como cual es compartida, etc.
 Estado del proceso: ejecutando, listo, bloqueado, etc.

– Recursos: Recursos de software (archivos, semáforos, etc.) y hardware (dispositivos, etc.).
– Planificación: Tipo de planificador.
– Prioridad: Podrá incluir una prioridad externa de largo aliento, o en su defecto  una prioridad interna dinámica de alcance reducido.
– Contabilización: Información contable como ser cantidad de E/S, fallos de páginas (page faults), consumo de procesador, memoria utilizada, etc.
– Ancestro: Indica quién creó este proceso.
– Descendientes: Lista de punteros a PCBs de los hijos de este proceso

CREACION DE UN PROCESO

Los procesos de un sistema son creados a partir de otro proceso. Al creador se le denomina padre y al nuevo proceso hijo. Esto genera una jerarquía de procesos en el sistema.
En el diseño del sistema operativo se debe decidir, en el momento de creación de un nuevo proceso, cuales recursos compartirán el proceso padre e hijo. Las opciones son que compartan todo, algo o nada.
También se debe determinar que sucede con los hijos cuando muere el padre. Pueden morir también o cambiar de padre.
Una vez creado el nuevo proceso tendrán un hilo (program counter) de ejecución propia. El sistema genera un nuevo PCB para el proceso creado.

INTEGRANTES DEL EQUIPO:
EZEQUIEL TORRES LEON
RAMON VILLA MOJICA
ULISES DIAZ ACUÑA
CESAR ADAN RIVERA AGUIRRE
ADRIAN PEREZ BERNABE
JOHOBANY HERNANDEZ MERCADO

EZEQUIEL TORRES LEON

Mensajes : 9
Fecha de inscripción : 16/02/2014

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.