domingo, 8 de noviembre de 2015

2.1 CONCEPTO DE PROCESOS:

Un proceso no es más que un programa en ejecución.
El proceso se puede definir como un programa de gestión por el sistema operativo.
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.
El sistema operativo mantiene por cada proceso una serie de estructuras de información que permiten identificar las características de este, así como los recursos que tiene asignados.
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.
Una parte muy importante de esta información se encuentra normalmente como en el llamado bloque de control de procesos (BCP). El sistema operativo mantiene una tabla de procesos con todos los BCP de los procesos. Por razones de eficiencia, la tabla de procesos se construye normalmente como una estructura estática, que tiene un determinado número de BCP, todos ellos del mismo tamaño.
La información que compone un proceso es la siguiente:
§  Contenido de los segmentos de memoria en los que residen el código y los datos del proceso. A esta información se le denomina imagen de memoria o core image.
§  Contenido de los registros del modelo de programación
§  Contenido del BCP.
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.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia es que en un proceso solamente puede crear hilos para sí mismo y que en 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.
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.

2.2 ESTADOS Y TRANSICIONES DE PROCESOS:

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:

Un proceso puede estar en cualquiera de los siguientes estados.
A continuación 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 CPU, 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.
Los estados de los procesos se pueden dividir en dos tipos:
1.- Activos: Son aquellos que compiten con el procesador o están en condiciones de hacerlo. Se dividen en: 
  • Ejecución: Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
  • Preparado: Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna causa.
  • Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algún recurso no disponible (generalmente recursos de E/S). 
2.- Inactivos: Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a ejecutarse desde el principio. 
Pueden ser de dos tipos:
·        Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas de su bloqueo. 
·        Suspendido programado: Es el proceso que ha sido suspendido, pero no tiene causa parta estar bloqueado.
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 a continuación.
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 llamado 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
Cuando a 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.

sábado, 7 de noviembre de 2015

2.3 PROCESOS LIGEROS: HILOS O HEBRAS:

Un proceso ligero es un programa en ejecución que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Los procesos ligeros son una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares.
Una tarea (o proceso pesado) está formada ahora por una o más hebras.
Una hebra sólo puede pertenecer a una tarea.
Un proceso ligero puede estar ejecutando, listo o bloqueado.