jueves, 17 de diciembre de 2015

Unidad 2 Administracion de Procesos y del procesador

Investigacion



Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

*      Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
*      Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
*      Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Otra información que permite al sistema operativo su planificación.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, está organizado en una serie del proceso secuenciales, o simplemente procesos.
La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuándo debe de trabajar en un proceso para atender a uno distinto.

Jerarquías de procesos

Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. En los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación.
En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos.

En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso.




Estados de procesos

El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:

 Estos elementos se organizan en tres grupos: estado del procesador, imagen de memoria y tablas del sistema operativo.
El estado del procesador está formado por el contenido de todos sus registros, que se enumeran seguidamente:
  • Registros generales. De existir registros específicos de coma flotante también se incluyen aquí.
  • Contador de programa.
Información del proceso
  • Puntero de pila.
  • Registro o registros de estado.
  • Registros especiales. Como puede ser el RIED (registro identificador de espacio de direccionamiento).
El estado del procesador de un proceso reside en los registros del procesador, cuando el proceso está en ejecución, o en el bloque de control de proceso (BCP), cuando el proceso no está en ejecución.
Cuando el proceso está ejecutando, el estado del procesador varía de acuerdo al flujo de instrucciones maquina ejecutado. En este caso, la copia del estado del procesador que reside en el BCP no está actualizada. Téngase en cuenta que los registros de la maquina se utilizan para no tener que acceder a la información de memoria, dado que es mucho más lenta. Por tanto, no tiene sentido plantear que, en cada modificación de un registro, se actualice su valor en el BCP, puesto que está en memoria.
 Sin embargo, cuando se detiene la ejecución de un proceso, como consecuencia de la ejecución de una interrupción, es muy importante que el sistema operativo actualice la copia del estado del procesador en su BCP. En términos concretos, la rutina del sistema operativo que trata las Interrupciones lo primero que ha de hacer es salvar el estado del procesador en el BCP del proceso interrumpido.
Se describe cada uno de estos procesos:

Estado
Descripción
Nuevo
Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de crearse.
Listo
Un proceso está en estado de listo, cuando podría usar una UCP, si hubiera una disponible.
En ejecución
Se dice que un proceso está estado de ejecución, si en ese momento tiene está ocupando la CPU.
Bloqueado
Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
Terminado
Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado.

Transiciones de estados
Cuando un trabajo es admitido se crea un proceso equivalente, y es insertado en la última parte de la cola de listos. Cuando un proceso pasa de un estado a otro se dice que hace una transición de estado, estas transiciones se describen:

Transición
Descripción
Admitido(Proceso):Nuevo Listo
Cuando un proceso se ha creado y se le es permito para competir por la CPU.
Despacho(Proceso):Listo En ejecución
La asignación de la CPU al primer proceso de la lista de listos es llamada despacho y es ejecutado por la entidad de sistema llamada despachador. Mientras que el proceso tenga la CPU se dice que está en ejecución.
Tiempo excedido(Proceso):En ejecución Listo
El S.O , cuando un proceso se le expira el intervalo de tiempo asignado para estar en ejecución (CUANTO), hace que este proceso que se hallaba en estado de ejecución pase al estado de listo e inmediatamente el despachador hace que el primer proceso de la lista pase a estado de ejecución.
Bloqueo(Proceso):En ejecución Bloqueado
Si un proceso que se encuentra en estado de ejecución inicia una operación de E/s antes que termine su cuanto, el proceso voluntariamente abandona la CPU, es decir, el proceso se bloquea a sí mismo.
Despertar(Proceso):Bloqueo Listo
La única transición posible en nuestro modelo básico ocurre cuando acaba una operación de E/S (o alguna otra causa por la que esté esperando el proceso), y esta termina pasa al estado de listo.
Salir(Proceso):En ejecución Terminado
Esta transición ocurre cuando el proceso se ha terminado de ejecutarse, y pasa a un estado de terminado

2.3 PROCESOS LIGEROS (HILOS O HEBRAS)
Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura, un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o más de un flujo de ejecución (procesos ligeros).
Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes:
  • Contador de programa.
  • Pila.
  • Registros.
  • Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:
  • Espacio de memoria.
  • Variables globales.
  • Archivos abiertos.
  • Procesos hijos.
  • Temporizadores.
  • Señales y semáforos.
  • Contabilidad.
Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista protección de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales. El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemática la estructura de un proceso de Windows NT con sus procesos ligeros.

Proceso ligero

El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
*      Un estado de ejecución (en ejecución, listo, bloqueado).
*      Un contexto de procesador, que se salva cuando no esté ejecutándose.
*      Una pila de ejecución.
*      Algún almacenamiento estático para variables locales.
*      Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.
CARACTERISTICAS
Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO. La conmutación de contexto es más rápida gracias al extenso compartir de recursos No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso Estado de los procesos ligeros.
Página: http//www.SistemasOperativos.com/unidad2S.O/fwlink/p/?Linkld=255141.

No hay comentarios.:

Publicar un comentario