Vous êtes sur la page 1sur 34

CAPTULO 2.

GESTIN DE PROCESOS
En un computador se ejecutan los programas, y cada programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y la ejecucin de dichos procesos, pues para que se ejecute un programa es necesario que el microprocesador ejecute los procesos de ese programa. El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina que proceso se debe ejecutar y cuanto tiempo debe estar ejecutndose, a todo esto se le denomina gestin de procesos. Los procesos son un mecanismo esencial para definir y gestionar la ejecucin concurrente de los programas bajo control de un sistema operativo. En esencia un proceso o tarea es una instancia de un programa en ejecucin es la unidad ms pequea de trabajo individualmente planificada por un sistema operativo. Un sistema operativo controla a todos los procesos activos y les asigna recursos de sistema de acuerdo a polticas de diseo. El mtodo segn el cual el sistema operativo decide cuando intervenir y como asignar recursos es tratado en este captulo. En los ordenadores modernos se pueden hacer varias cosas al mismo tiempo, como por ejemplo: ejecutar un programa, escuchar msica, conectarse a Internet, leer un disco e imprimir en un terminal o impresora. En un sistema multitarea, la UCP, alterna de programa en programa ejecutando cada uno de ellos, unos cuantos milisegundos. En un sentido estricto la UCP, ejecuta en un cierto instante un solo programa, pero durante todo un segundo puede trabajar con varios de ellos, lo que nos da una apariencia de paralelismo. Los diseadores del SO han usado el tiempo como parmetro del paralelismo. El modelo proceso en s es el programa ejecutndose en un momento dado con unos datos y recursos concretos, conceptualmente cada proceso tendr su propia UCP virtual,

PROCESOS 28

donde la verdadera y nica UCP alterna los procesos, esta rpida alternancia es lo que se llama multiprogramacin. 2.1. Concepto del proceso: No hay un acuerdo universal sobre el concepto de proceso, pero s algunas definiciones aceptadas: Un programa que se est en ejecucin. Es un mecanismo fundamental dentro del sistema operativo para gestionar la ejecucin de programas concurrentes. Unidad de procesamiento gestionada por el sistema operativo. La unidad dinmica individualmente planificable. Proceso es una actividad de cierto tiempo. Al hablar de procesos se debe tener presente dos conceptos: Las interrupciones y el cambio de contexto. Interrupcin es la indicacin al sistema de que hay otra actividad pendiente y cambio de contexto consiste en que el procesador atendiendo una interrupcin decide en funcin de unos criterios preestablecidos cambiar de proceso. Para reanudar el trabajo por donde se ha quedado hay que guardar la informacin de lo que se estaba haciendo y liberar parte de la memoria para la nueva actividad, al hacer este cambio de contexto el procesador deber anotar todos los datos importantes que haba antes de la interrupcin para poder reanudar ms tarde la actividad. Toda la informacin de los procesos se guarda en una estructura denominada Bloque de Control de Procesos o BCP. En sistemas multitarea, los procesos activos se encuentran tpicamente en diferentes etapas de ejecucin en cada instante de tiempo. Un proceso particular suele evolucionar cclicamente recorriendo varias veces distintos estados, tales como los de ejecucin y suspendido, antes de terminar y salir del sistema. El sistema operativo sigue la pista dinmicamente al estado de cada proceso y registra todos los cambios de estado cuando se producen. Esta informacin es utilizada para planificacin y para otras decisiones de asignacin de recursos en respuesta a demandas de los procesos activos. [1] Milan Milenkovic

Captulo 2. Sistemas Operativos

PROCESOS 29

2.1.1. Divisin implcita y explcita en tareas Dependiendo del sistema operativo y del entorno de ejecucin de programas, la divisin en procesos de un programa puede ser efectuada o bien por el sistema operativo o bien por el programador de sistemas. En otras palabras un proceso separado en tiempo de ejecucin puede provenir de: Divisin implcita definida por el Sistema Operativo Divisin explicita definida por el Programador Divisin implcita.- Se usa para explotar los beneficios de concurrencia entre diferentes aplicaciones. La divisin implcita en tareas significa que los procesos son definidos por el sistema. Esta divisin implcita aparece comnmente en sistemas de multiprogramacin de propsito general, tales como los de tiempo compartido. El sistema operativo asigna valores iniciales a los atributos de procesos, tales como la prioridad de planificacin y los derechos de acceso, en el momento de crear el proceso en base al perfil del usuario y a valores predeterminados del sistema. Los procesos creados de esta manera son generalmente transitorios en el sentido de que son destruidos y eliminados por el sistema despus de cada ejecucin. Divisin explicita.- Es usada por los programadores para definir explcitamente cada proceso y algunos de sus atributos con el fin de mejorar su rendimiento. La divisin explicita se utiliza en situaciones en donde se desea elevar el rendimiento o controlar explcitamente las actividades del sistema. Las aplicaciones de tiempo real son ejemplos tpicos de procesos definidos por el programador. Despus de dividir a mano el trabajo de la aplicacin en el nmero deseado de tareas independientes, el programador de sistema define las fronteras de cada proceso individual. El programador puede asignar valores iniciales de atributos de proceso y controlar diferentes aspectos de la ejecucin del proceso incorporando en llamadas al sistema. Entre las razones comunes para aplicar la divisin explcita en tareas se incluyen: Ganancia de velocidad. Multiplexacin de dispositivos de E/S. Multiprocesamiento. Computacin distribuida con mltiples sesiones de red. En general se puede usar divisin explcita por cualquier conveniencia del usuario.
Captulo 2. Sistemas Operativos

PROCESOS 30

2.1.2. Relaciones entre procesos Los procesos estn ligados por dos relaciones que son la competicin y la cooperacin. Tanto la competicin como la cooperacin de procesos requieren el adecuado soporte por parte del SO. Competicin.- En un sistema multitarea todos los procesos concurrentes compiten unos con otros por la asignacin de los recursos del sistema necesarios para sus operaciones respectivas. La competicin requiere una proteccin de los recursos en trminos de aislamiento de los diferentes espacios de direcciones. Cooperacin.- Los procesos que provienen de una sola aplicacin cooperan entre s. La cooperacin es habitual entre los procesos creados como resultado de una divisin explcita en tareas. Los procesos cooperativos intercambian entre si datos y seales de sincronizacin necesarias para su progreso, controlados por ciertos mecanismos exigentes y con frecuencia conflictivos que deben ser abordados durante el diseo de los sistemas operativos de multiprogramacin. Los procesos cooperativos con frecuencia se agrupan en lo que se denomina una familia de procesos, aunque dentro de una familia son posibles relaciones complejas, la ms frecuente es de jerarqua. En los cuales los procesos hijos heredan generalmente los atributos de sus padres o hermanos en el momento de la creacin. La secuencia de creacin de procesos genera un rbol de procesos como se muestra en la Figura 2.1
Proc. Inic.

Inicio Shell

Inicio

Inicio Shell Proceso A

Inicio

Dem. Impr.

Dem. Com..

Editor Proceso B Proceso E Proceso F Proceso D Proceso C

Figura 2.1. Jerarqua de procesos.


Captulo 2. Sistemas Operativos

PROCESOS 31

Para referirse a las relaciones entre los procesos de la jerarqua se emplean los trminos de padre, hijo, hermano o abuelo. Cuando el proceso A solicita al sistema operativo que cree el proceso B, se dice que A es padre de B y que B es hijo de A. Bajo esta ptica, la jerarqua de procesos puede considerarse como un rbol genealgico. Algunos sistemas operativos, como Linux, mantienen de forma explcita esta estructura jerrquica de procesos, un proceso sabe quin es su padre, mientras que otros sistemas operativos como el Windows NT relacionan los procesos con las llamadas hebras. Una hebra es un proceso ligero con un estado reducido que comparten recursos del proceso que provienen tales como memoria y archivos. Las hebras asumen el papel de los procesos como unidad planificable. En tales sistemas el proceso o tarea sirve como entorno para la ejecucin de hebras. El proceso se convierte por tanto en una unidad propietaria de recursos, tales como memoria y archivos para una coleccin de hebras. En sistemas con hebras, un proceso con una sola hebra es equivalente a un proceso clsico. Cada hebra pertenece exactamente a un solo proceso, y ninguna hebra puede existir fuera de un proceso. Los procesos son estticos, y solo las hebras pueden ser planificadas para ejecucin. Tpicamente, cada hebra representa un flujo separado de control y est caracterizada por su propia pila y estado hardware. Las hebras son un mecanismo conveniente para explotar la concurrencia dentro de una aplicacin. Las hebras pueden comunicarse eficientemente por medio de memoria compartida comnmente accesible dentro del proceso que las engloba. Los mecanismos de comunicacin y sincronizacin tales como las seales, tambin son eficaces debido a que las hebras relacionadas comparten memoria, y su interaccin no requiere el recargo de cruzar fronteras de proteccin de memoria. Las hebras proporcionan una base adecuada para la ejecucin paralela de aplicaciones sobre multiprocesadores de memoria compartida. 2.2. LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR DE SISTEMAS. Los programadores de sistemas tienen que tratar con procesos de forma explcita. El sistema operativo, o un lenguaje de programacin proporcionan servicios para definir los atributos para controlar o influenciar muchos aspectos importantes del comportamiento y gestin del proceso en tiempo de ejecucin. Al crear procesos, el
Captulo 2. Sistemas Operativos

PROCESOS 32

programador informa al sistema operativo sobre que actividades pueden ser planificadas para ejecucin concurrente. 2.2.1. Ejemplo de multitarea Ayudndonos de una aplicacin tpica como es la suma de dos nmeros, podemos indicar que existen cuatro actividades identificadas que se designan del modo siguiente: RECOGER (recoger los nmeros a sumar puede ser a travs del teclado o disco), GUARDAR (Almacenar los nmeros a sumar y la respuesta en disco), CALCULAR (realizar la suma uso del procesador), IMPRIMIR (impresin del resultado puede ser en pantalla o impresora). Como se entiende, la codificacin, usando cualquier lenguaje, de estas actividades seran:

Inicio del programa


inicio Mientras se verdad inicio recoger_a y b; almacenado} guardar a, y b; calcular_c; imprimir_c; fin {Mientras} fin {una_tarea_} {mientras sea verdad} {A travs del teclado o archivo previamente {a disco} {procesamiento sumar} {presentar resultados a pantalla o archivo}

La simplicidad engaosa de este ejemplo es intencionada. Demuestra cmo se puede razonar lgicamente dando lugar a una implementacin ineficiente de un solo proceso. Si la aplicacin fuera mayor no solamente la suma de dos nmeros sino aplicaciones grandes con tiempos crticos que se demorara mucho tiempo en recoger los datos o presentar la informacin el problema sera mayor. Como podemos darnos cuenta el procesador tendr tiempos muertos bastante largos en espera que se cumplan las tareas de E/S. Un enfoque multitarea puede producir un rendimiento mejor al disponer de un proceso separado para manejar cada actividad. La ejecucin concurrente de tales procesos puede
Captulo 2. Sistemas Operativos

PROCESOS 33

facilitar el progreso comn mediante la reasignacin del procesador a otros procesos ejecutables mientras los procesos suspendidos esperan la terminacin de sus operaciones de E/ S. El primer paso importante en la preparacin de sta aplicacin para su implementacin multitarea es identificar las operaciones que deben ser codificadas como procesos separados y la determinacin de su precedencia relativa, si existe. A partir de la definicin del problema en primer lugar se recolectan los datos, luego se guardan en disco y luego se procesan. IMPRIMIR solo puede ejecutarse cuando acaba CALCULAR, ya que imprime los datos proporcionados por CALCULAR. Por ejemplo, comenzando con un sistema recin inicializado, se ejecuta primero RECOGER (R1), que prepara los datos para la primera ejecucin de GUARDAR (G1), y CALCULAR (C1), los cuales pueden ejecutarse concurrentemente. Cuando acaban, comienza otra ejecucin de RECOGER (R2) concurrentemente con la primera ejecucin de IMPRIMIR (I1), que imprime las modificaciones obtenidas por CALCULAR (C1). En el grafo de la figura 2.2 indican las relaciones causales y de precedencia. Por ejemplo, R2 puede comenzar se ejecucin slo despus de que G1 y C1 hayan completado sus respectivas ejecuciones. La ejecucin concurrente de este ejemplo puede dar lugar a una mejora de rendimiento del doble con respecto al caso secuencial. En los siguientes grficos se puede indicar esta implantacin y su respectivo seudo cdigo: Inicio del programa multitarea_ADQ; ... proceso recoger; inicio Mientras sea verdad inicio esperar_seal_de(guardar, calcular); recoger_a y b; enviar_seal_a(guardar, calcular) fin {mientras} fin {recoger};

Captulo 2. Sistemas Operativos

PROCESOS 34

R1

R1

G1

G1

C1

C1

R2

I1

I1

G2

C2

R2

R3

I2

G2

G3

C3

Figura 2.2. Ejecucin secuencial y concurrente de procesos

2.2.2. Sincronizacin entre procesos. Para forzar el cumplimiento de las relaciones de precedencia entre procesos cooperativos se utilizan mecanismos de sincronizacin entre procesos como son las seales, que se encuentran entre los servicios ms importantes proporcionados por los sistemas operativos multitarea

Captulo 2. Sistemas Operativos

PROCESOS 35

Un proceso que espera una o ms seales es suspendido por el sistema operativo, hasta que le lleguen todas las seales requeridas enviadas por otro proceso. El envo de una seal no ocasiona la suspensin del proceso emisor. 2.2.3. Comportamiento de los procesos del ejemplo Para demostrar el comportamiento en tiempo de ejecucin y la operacin multiplexada de los cuatro procesos, es necesario efectuar algunas suposiciones con respecto al tiempo. La Figura 2.3a muestra grficamente la temporizacin supuesta. [1] Milan Milenkovic Los bloques de lnea continua indican que se usa el procesador. Las lneas discontinuas representan las operaciones de E/ S. Las marcas de flecha hacia arriba los momentos en que se producen interrupciones. Las flechas hacia abajo indican los instantes en que el proceso CALCULAR, que no est controlado por interrupciones, se encuentra preparado para ejecucin.
Actividades
Recoger (A/D)

Unidades de tiempo por ciclo


3

Guardar (Disco)

Calcular (UCP) Imprimir (Impresora) Sumad o

12

(a) Suposiciones de tiempo

RECOGER

GUARDAR

CALCULAR

IMPRIMIR

RECOGER 2

Tiempo

10

11

12

13

(b) Ejecucin Secuencial

Captulo 2. Sistemas Operativos

PROCESOS 36

Figura 2.3. Procesos temporizados

Si suponemos que RECOGER, GUARDAR, CALCULAR e IMPRIMIR tardan 3,4,2,y3 unidades de tiempo, respectivamente, en realizar un ciclo de ejecucin. Una ejecucin secuencial tarda 12 unidades de tiempo. Figura 2.3b. Si suponemos tambin que el sistema operativo es uno de tiempo compartido, cada proceso tendr una prioridad, que en orden decreciente son las siguientes: GUARDAR, RECOGER, IMPRIMIR, CALCULAR.
G1
GUARDAR

G2

G3

R1
RECOGER

R2

R3

I1
IMPRIMIR

I2

C1
CALCULAR

C2

C3

5.25

10

11

12

13

14

Figura 2.4. Procesos temporizados con ejecucin multitarea

En la Figura 2.4 se muestra la ejecucin de los cuatro procesos, comenzando inmediatamente despus de la inicializacin, desde el punto de vista del sistema. Inicialmente, RECOGER es el primer proceso de ejecutarse, ya que es el nico que no necesita seales con el fin de continuar su ejecucin. GUARDAR, CALCULAR e IMPRIMIR estn suspendidos por el sistema operativo al estar pendientes de la llegada de las seales respectivas en las cuales estn esperando. Cuando se completa la primera pasada de RECOGER, RECOGER anuncia el suceso enviando seales a GUARDAR y CALCULAR. Esto, a su vez, hace que ambos procesos GUARDAR y CALCULAR sean elegibles para ejecucin, pero GUARDAR tiene prioridad ms elevada y por tanto es el proceso planificado para ejecucin. Cuando GUARDAR finaliza su primera rfaga
Captulo 2. Sistemas Operativos

PROCESOS 37

de utilizacin del procesador y espera a que se complete la operacin de E/S de disco, el SO asigna el procesador a CALCULAR. CALCULAR, solo necesitar el procesador, continua ejecutndose hasta que se completa la operacin de E/S de disco, de modo que GUARDAR ya que esta preparado para continuar (el SO es alertado de esta situacin por la interrupcin que indica terminacin de la E/S de disco). Debido a sus prioridades relativas, el SO elige expropiar a CALCULAR y ejecutar GUARDAR. A esto se denomina disciplina de planificacin expropiativa basada en prioridades, la cual es frecuentemente utilizada en sistemas operativos de tiempo real. [1] Milan Milenkovic Suponiendo que la escritura de un disco utiliza bferes internos de entrada y salida se experimenta un aumento de ms del doble de su productividad. La utilizacin de bferes mejora generalmente la productividad hasta que algn cuello de botella limite. En este ejemplo, el cuello de botella es el tiempo de procesador, y se produce cuando se utilizan dos bferes. En otras situaciones, podran resultar tiles tres, cuatro o ms bferes. Generalmente el diseador elige la utilizacin ptima de bferes analizando el rendimiento y verificando el diseo mediante mediciones de tiempo. [1]Milan Milenkovic El ejemplo ilustra que los beneficios de la operacin multitarea no se consiguen gratuitamente. Para dividir en una serie de procesos lo que pareca un programa sencillo, se ha introducido la complejidad adicional de las seales y la asignacin de prioridades, proceso que requiere una codificacin cuidadosa y que se puede necesitar varias iteraciones para perfeccionar su implementacin en la vida real. 2.3. LOS PROCESOS OPERATIVO: DESDE LA PERSPECTIVA DEL SISTEMA

Como se indic anteriormente, el proceso es la unidad de procesamiento gestionada por el sistema operativo. Para poder realizar este cometido, el proceso tiene asociado una serie de elementos de informacin, que se resumen en la Figura 2.5, que se analizan seguidamente.

Captulo 2. Sistemas Operativos

PROCESOS 38

Registros especiales

Mapa de memoria del Proceso A Mapa de memoria del Proceso B

Registros generales

Tablas del sistema operativo


Mapa de memoria del Proceso C Tablas SO

Tabla de procesos
BCP Proceso A BCP Proceso B BCP Proceso C - Estado (registros) - Estado (registros) - Estado (registros) - Identificacin - Identificacin - Identificacin - Control - Control - Control

PC SP Estado

Mapa de Memoria

- Tabla de memoria - Tabla de E/S - Tabla de ficheros

Figura 2.5. Procesos temporizados

Estos elementos se organizan en tres grupos: Estado del procesador, Imagen de memoria, Tablas del sistema operativo. El estado del procesador de un proceso reside en los registros del procesador, cuando el proceso est en ejecucin, o en el bloque de control de proceso (BCP), cuando el proceso no est en ejecucin. Cuando el proceso est ejecutando, el estado del procesador vara de acuerdo al flujo de instrucciones. En este caso, la copia del estado del procesador que reside en el BCP no est actualizada. Tngase en cuenta que los registros de la mquina se utilizan para no tener que acceder a la informacin de memoria, dado que es mucho ms lenta. Por tanto, no tiene sentido plantear que, en cada modificacin de un registro, se actualice su valor en el BCP, puesto que est en memoria. Sin embargo, cuando se detiene la ejecucin de un proceso, como consecuencia de la ejecucin de una interrupcin, es muy importante que el sistema operativo actualice la copia del estado del procesador en su BCP. En trminos 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. [2] J. Carretero Imagen de memoria.- La imagen de memoria esta formado por el espacio que ocupa el cdigo y datos de proceso cargado en la memoria RAM. En general, este espacio ser virtual y estar compuesto por varias pginas. Tablas del sistema operativo. El sistema operativo mantiene una serie de tablas que describen a los procesos y a los recursos del sistema. La informacin asociada a cada proceso se encuentra parcialmente en el BCP y parcialmente fuera de l. La decisin de incluir o no una informacin en el BCP se toma
Captulo 2. Sistemas Operativos

PROCESOS 39

segn dos argumentos: eficiencia y necesidad de compartir informacin. En las siguientes secciones se estudiar en detalle el BCP. En general un proceso esta formado por: Cdigo. Bajo este nombre se considera el programa mquina que ha de ejecutar el proceso. Datos. Datos para procesar. Imagen de Memoria. Y al menos una hebra. La formacin de un proceso consiste en completar todas las informaciones que lo constituyen, como se muestra en la Figura 2.6 De forma ms especfica, las operaciones que debe hacer el sistema operativo son las siguientes: Asignar un espacio de memoria para albergar la imagen de memoria. En general, este espacio ser virtual y estar compuesto por varias pginas. Seleccionar un BCP libre de la tabla de procesos.
Mapa de memoria T abla de procesos

Objeto ejecutable Bibliotec a sistema

Cargador

Imagen del proceso

BCP

Figura 2.6. Creacin de un proceso.

Captulo 2. Sistemas Operativos

PROCESOS 40

Rellenar el BCP con la informacin de identificacin del proceso, con la descripcin de la memoria asignada, con los valores iniciales de los registros indicados en el archivo objeto, etc. Cargar en el segmento de texto el cdigo ms las rutinas de sistema y en el segmento de datos los datos iniciales contenidos en el archivo objeto. Crear en el segmento de pila, la pila inicial del proceso que incluye inicialmente el entorno del proceso y los parmetros que se pasan en la invocacin del programa correspondiente. Una vez completada toda la informacin del proceso, se puede marcar como listo para ejecutar, de forma que el planificador, cuando lo considere oportuno, lo seleccione para su ejecucin, mientras no pase esto al proceso se lo considera como inactivo. De acuerdo con la Figura 2.7, un proceso puede estar en varias situaciones procesamiento, listo para ejecutar y espera, que se denominan estados. A lo largo de su vida, el proceso va cambiando de estado segn evolucionan sus necesidades.
Proceso A Proceso B Proceso C Procesador Tiempo
Figura 2.7. Comportamiento de procesos segn estados.
Procesamiento Entrada/salida Listo SO

Como se muestra en la Figura 2.7, existe un intervalo en el que el procesador no tiene nada que hacer. Para evitar esta contradiccin, los sistemas operativos incluyen el denominado proceso nulo. Este proceso consiste en un bucle infinito que no realiza ninguna operacin til. El objetivo de este proceso es entretener al procesador cuando no hay ninguna otra tarea.
Captulo 2. Sistemas Operativos

PROCESOS 41

En la Figura 2.7, no todos los procesos activos de un sistema multitarea estn en la misma situacin. Se diferencian, por tanto, cuatro estados bsicos en los que puede estar un proceso, Figura 2.8, estados que detallamos seguidamente: Inactivo.- Algunos no lo consideran como estado, es la condicin en la cual el proceso todava no se registra en el BCP, por lo tanto no es contabilizado. Preparado o Listo.- Un proceso est listo para ejecutar cuando puede entrar en fase de procesamiento, posee todos los recurso excepto el procesador. Ejecucin. En este estado est el proceso que est siendo ejecutado por el procesador, es decir, posee todos los recursos. En esta fase el estado del proceso reside en los registros del procesador. Bloqueado o Suspendido.- Un proceso bloqueado est esperando a que ocurra un evento y no puede seguir ejecutando hasta que suceda el evento. Una situacin tpica de proceso bloqueado se produce cuando el proceso solicita una operacin de E/S. Hasta que no termina esta operacin, el proceso queda bloqueado. En esta fase, el estado del proceso reside en el BCP.

EJECUCION

Termina

Espera suceso

(E/S, sincronizacin)

INACTIVO
Planificado Expropiado

SUSPENDIDO

Creado Ocurre suceso

PREPARADO

Figura 2.8. Transicin de procesos segn estados.


Captulo 2. Sistemas Operativos

PROCESOS 42

Los estados colectivos de todos los procesos y recursos del sistema considerados como el estado global del sistema. Las operaciones que pueden hacer sobre los procesos son:

pueden ser

Crear.- Son cuando se ejecuta un proceso y este pasa a la cola de procesos preparados para ser ejecutados, el nico dato a tener en cuenta es la prioridad que tiene dicho proceso sobre el resto de los procesos que se encuentran en ese momento en la cola de preparados, por si el fuera de mayor privilegio que los dems o al contrario. Bloquear.- Son cuando al estado se le pone en estado bloqueado por que el evento o recurso al cual quiere acceder se encuentre en uso por otro proceso y por lo tanto tiene que esperar, pero sin detener ni hacer perder tiempo al microprocesador. Reanudar.- Son cuando a los procesos bloqueados, se les reanuda la ejecucin, por que el evento o recurso que estaban esperando ya se encuentra disponible y puede ser usado. Suspender.- Son cuando determinados procesos no van a ser usados y se devuelve a la memoria RAM, pasando entonces a ser eliminados de los registros del microprocesador para no ser ejecutados. Retirarlos.- Cuando un proceso se los suspende puede sacrselo de la memoria RAM a memoria secundaria. 2.3.1. Bloque de control de procesos (BCP) El BCP contiene la informacin bsica del proceso, entre la que cabe destacar la siguiente: Informacin de identificacin.- Esta informacin identifica al usuario y al proceso. Como ejemplo, se incluyen los siguientes datos: Identificador del proceso. Identificador del proceso padre, en caso de existir relaciones padre-hijo Informacin sobre el usuario (identificador de usuario, identificador de grupo). Estado del procesador.- Contiene los valores iniciales del estado del procesador o su valor en el instante en que fue interrumpido el proceso.

Captulo 2. Sistemas Operativos

PROCESOS 43

Informacin de control del proceso.- En esta seccin se incluye diversa informacin que permite gestionar al proceso. Destacaremos siguientes datos: Informacin de planificacin y estado. Estado del proceso. Evento por el que espera el proceso cuando est bloqueado. Prioridad del proceso. Informacin de planificacin. Descripcin de los segmentos de memoria asignados al proceso. Recursos asignados, tales como: o Archivos abiertos (tabla de descriptores o manejadores de archivo). o Puertos de comunicacin asignados. Punteros para estructurar los procesos en colas o anillos. Por ejemplo, los procesos que estn en estado de listo pueden estar organizados en una cola, de forma que se facilite la labor del planificador. Comunicacin entre procesos. El BCP puede contener espacio para almacenar las seales y para algn mensaje enviado al proceso. Para un proceso recin creado, el BCP se rellena con los atributos definidos por el programador que se hallan en la plantilla del proceso o que son especificados como parmetros de la llamada al sistema operativo CREA_PROCESO. En ese momento el sistema operativo suele asignar valores por efecto a otros campos. 2.3.2. Estado del sistema y listas de procesos Para seguir la pista a todos los procesos, para efectos de planificacin el sistema operativo mantiene listas de bloques de control de procesos clasificados por el estado. En general existe una lista de procesos preparados, y una lista de procesos suspendidos, en sistemas multiprocesadores tambin pueden haber una lista de procesos en ejecucin global. El rendimiento del SO puede mejorar ordenando y actualizando estas listas de la manera ms conveniente para las rutinas del sistema operativo que se saben que operan sobre ellas. 2.3.3. Transiciones de estado de un proceso
Captulo 2. Sistemas Operativos

PROCESOS 44

Los sistemas operativos de multiprogramacin estn en gran medida guiados por sucesos en el sentido de que efectan las operaciones de gestin en respuesta a sucesos del sistema que pueden provocar cambios de estado y conducir potencialmente a reasignaciones de recursos, tal como la reasignacin del procesador. Los sucesos que producen la invocacin al sistema operativo pueden ser externos, como la terminacin de una E/S, o internos, como el envi y recepcin de seales. Desde el punto de vista del sistema, los sucesos externos suelen ocurrir asincrnicamente y se manifiestan por medio de interrupciones, los sucesos internos, por otra parte, son sncronos, ya que generalmente ocurren como efecto secundario de la ejecucin de llamadas al sistema operativo invocadas por el proceso en ejecucin. 2.3.4. Conmutacin de procesos. Cuando se produce una interrupcin en la ejecucin de un proceso, el sistema operativo realiza ciertas operaciones, llamadas cambio de contexto. Guarda el estado del procesador en el correspondiente BCP. Pasa a ejecutar la rutina de tratamiento de interrupcin del sistema operativo. Como resultado del cambio de contexto se puede producir un cambio en el estado de algunos procesos. Supngase que el proceso A est bloqueado esperando a que se complete una lectura de disco y que llega una interrupcin del disco. Se produce un cambio de contexto y entra a ejecutar el sistema operativo para tratar la interrupcin. En el caso de que la interrupcin indique que ha terminado la lectura por la que esperaba, el sistema operativo cambiar el estado de este proceso a listo o incluso a ejecucin si as lo decide el planificador. El resultado final es que ha habido un cambio de estado de proceso. . Supngase ahora que est ejecutando el proceso A y que llega una interrupcin de teclado asociado al proceso B. Se produce el cambio de contexto, pero el proceso B puede seguir en estado de bloqueado (no lleg el carcter de fin de lnea) y el proceso A puede seguir en estado de ejecucin, por lo que no hay cambio de estado en los procesos. Las transiciones en el estado del proceso exigen un trabajo cuidadoso por parte del sistema operativo, para que se hagan correctamente. El aspecto ms delicado se refiere al contenido de los registros de la computadora. Veamos detalladamente los pasos involucrados:
Captulo 2. Sistemas Operativos

PROCESOS 45

Un proceso est en ejecucin, su informacin reside en los registros del procesador, que estn siendo constantemente modificados por la ejecucin de sus instrucciones de mquina. Bien sea porque llega una interrupcin o porque el proceso solicita un servicio del sistema operativo, el proceso para su ejecucin. Inmediatamente entra a ejecutar el sistema operativo, ya sea para atender la interrupcin o para atender el servicio demandado. La ejecucin del sistema operativo, como la de todo programa, modifica los contenidos de los registros de la mquina, destruyendo sus valores anteriores. Segn la secuencia anterior, si se desea ms adelante continuar con la ejecucin del proceso, se presenta un grave problema: los registros ya no contienen los valores que deberan. Para evitar esta situacin, lo primero que hace el sistema operativo al entrar a ejecutar es salvar el contenido de todos los registros, teniendo cuidado de no haber modificado el valor de ninguno de ellos Figura 2.9. Como muestra la Figura 2.11, al interrumpirse la ejecucin de un proceso el sistema operativo almacena los contenidos de los registros en el BCP de ese proceso.
Registros especiales

Tabla de procesos
BCP Proceso A Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso B Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso N Estado (registros) Informacin de identificacin Informacin de Control

Estado

Registros generales

PC SP Estado

Figura 2.9. Informacin de los procesos

Los procedimientos que se llevan a cabo para realizar una conmutacin de procesos se resumen en la Figura 2.11.
Captulo 2. Sistemas Operativos

PROCESOS 46
Espacio de usuario Espacio del Sistem a Operativo

Pa Suceso

en ejecucin

Cambio de Modo

Conmutacin de proceso (SO en ejecucin)

Guarda el estado hardware de Pa en BCP (a) Actualiza el estado de Pa, planificacin, prioridad, etc... (Atiende al suceso) Planifica el siguiente proceso a ejecutar, Pb Restaura el estado hardware de Pb, y sus atributos desde BCP(b)

Cambio de Modo Pb
en ejecucin

Figura 2.10. Conmutacin de procesos.

El mdulo del sistema operativo que pone a ejecutar un proceso se denomina activador o dispatcher. La activacin de un proceso consiste en copiar en los registros del procesador el estado del procesador, que est almacenado en su BCP. De esta forma, el proceso continuar su ejecucin en las mismas condiciones en las que fue parado. Evidentemente, la conmutacin de proceso es una operacin considerablemente ms compleja y costosa que la conmutacin de contexto de interrupcin, y puede ser bastante complicada en sistemas operativos grandes que disponen de detallado mantenimiento de recursos y sofisticados esquemas de planificacin. Dada su complejidad y relativa alta frecuencia de ocurrencia, la implementacin de la conmutacin de proceso puede afectar significativamente al rendimiento de un sistema operativo de multiprogramacin. Es especialmente importante en sistemas orientados al rendimiento, tales como las aplicaciones de tiempo real. La eficiencia de la conmutacin de proceso puede ser mejorada con la ayuda de asistencias hardware y una tcnica de estructuracin de procesos especial denominada hebras, que se discuten en la prxima seccin. Un esquema hardware habitualmente empleado para acelerar la conmutacin de proceso es disponer de mltiples conjuntos estructuralmente idnticos de registros del procesador. Lo mnimo son dos: uno por el sistema operativo y otro para los procesos
Captulo 2. Sistemas Operativos

PROCESOS 47

de usuario. Un bit dedicado en la (nica copia) palabra de estado del procesador indica el modo actual de operacin, supervisor o usuario, y el conjunto correspondiente de registros activos. 2.3.5. Hebras de ejecucin (THREADS) Un proceso ligero, o hebra (thread), es un programa en ejecucin que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura 2.12, un proceso puede contener un solo flujo de ejecucin, como ocurre en los procesos clsicos o ms de un flujo de ejecucin (procesos ligeros).

Proceso

Procesos ligeros
Figura 2.11. Divisin de un proceso en hebras

Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el cdigo, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista proteccin de memoria entre los procesos ligeros de un mismo proceso, algo que s ocurre con los procesos convencionales. El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura 2.12 representa de forma esquemtica la estructura de un proceso de Windows NT con sus procesos ligeros.

Captulo 2. Sistemas Operativos

PROCESOS 48

Proceso
Cdigo Datos Recursos (ficheros, ...) Entorno del proceso Thread 1
Registros Pila

......

Thread n
Registros Pila

Figura 2.12. Estructura de un proceso con sus hebras en Windows.

Comparando el uso de los procesos ligeros con otras soluciones se puede decir que: Los procesos ligeros permiten paralelismo y variables compartidas. Divisin de trabajo que dan los procesos una mayor sencillez, lo que se traduce en mejores prestaciones. Comparten memoria directamente, por lo que no hay que aadir ningn mecanismo adicional para utilizarla. La destruccin de procesos ligeros requiere mucho menos trabajo que la de procesos. Facilita la modularidad, al dividir trabajos complejos en tareas. Aumenta la velocidad de ejecucin del trabajo, puesto que aprovecha los tiempos de bloqueo de unos procesos ligeros para ejecutar otros. Permite la programacin concurrente. 2.4. APLICACIONES Y MULTITAREA EN WINDOWS. Como se sabe, Microsoft tuvo su xito gracias a su poltica de mantener la compatibilidad de los programas realizados para MS-DOS y Windows 3.x a Windows 95 y NT. Para lo cual tuvo que realizar muchos parches en su sistema operativo. Una de las implementaciones es el concepto de mquina virtual, que es un contexto de
Captulo 2. Sistemas Operativos

PROCESOS 49

ejecucin para cada tipo de aplicacin que se ejecute bajo Windows 95, NT y sus descendientes. As tambin cada tipo de aplicacin tiene diferente comportamiento respecto a la divisin en hebras. Aplicaciones desarrolladas para MSDOS de 8 bits y las aplicaciones para Windows 3.x de 16 Bits no se dividen, o solo se divide, en una hebra. No as las aplicaciones de 32 bits que se dividen en muchas hebras, aprovechndose de muchas posibilidades que influyen en el rendimiento como mayor tiempo de uso del procesador porque la planificacin se realiza a nivel de hebra. Un resumen del comportamiento de los diferentes tipos de aplicacin con respecto al nmero de hebras, mquinas virtuales y uso de memoria presentamos a continuacin: Tipo Aplicacin 8 bits (MSDOS) de # de mquinas Hebras 1 Memoria.

virtuales 1 por aplicaciones 1 Separada/cada Aplicacin

16 bits (Windows 1 por aplicacin 3.x)

Compartida

32 bits (Windows 1 por todas las Ms de Separada 9x y NT aplicaciones 1

En las Figuras 13a, 13b y 13c se presenta grficamente las diferencias anotadas en la tabla anterior:[14] Windows Training Microsoft. Tambin se debe indicar que Windows tiene que implementar dos tipos de multitarea para poder ejecutar cada tipo de aplicacin que son: Multitarea Cooperativa2.- Es el modelo de multitarea en la que se confa que cada proceso que es planificado para su ejecucin coopere dejando libre el procesador cuando termine su trabajo.

Thread

Multitasking Cooperative Captulo 2. Sistemas Operativos

PROCESOS 50

Multitarea con Derecho Preferente 3.- Es un modelo en el que planificador4 del sistema operativo es el que decide cuando un proceso tiene de dejar el procesador.

Figura 2.13 a

Figura 2.13b

Figura 2.13c

Figura 2.13. Caractersticas de las aplicaciones de 32,16 y 8 bits.

Como se podr imaginar en el primer caso es arriesgado, ya que si un proceso falla en el momento de su ejecucin no podr abandonar el procesador, quedndose indefinidamente en un bucle; que causara el colapso del sistema. En el segundo caso, el sistema operativo a travs de su planificador es quien toma el control, en presencia de algn problema con el proceso que se est ejecutando, responde protegindose y sacndolo al proceso del procesador y si no lo logra hacer por si solo, permite que el usuario actu para finalizar el proceso. Continuando su trabajo como si nada hubiese pasado. En las Figuras 14 y 15 se representa los dos tipos de multitarea que tiene que implantar Windows para efectos de compatibilidad:[14] Windows Training Microsoft.

Multitasking Preemptive

Scheduler Captulo 2. Sistemas Operativos

PROCESOS 51

Figura 2.14. Multitarea cooperativa.

Figura 2.15. Multitarea con derecho preferente

2.5. PLANIFICACIN: La planificacin de procesos tiene como objetivos obtener siempre la mayor productividad, o la mayor cantidad de trabajos realizados en una unidad de tiempo. El concepto de planificacin podra llamarse al conjunto de polticas y mecanismos incorporados al sistema operativo por el que se rige el orden en el que se completa el trabajo que hay que realizar.

Captulo 2. Sistemas Operativos

PROCESOS 52

La planificacin se refiere a la manera o tcnica que se usan para decidir cunto tiempo de ejecucin y cuando se le asigna a cada proceso los recursos del sistema, es decir decide Qu, Cmo y Cando? Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. El planificador es el mdulo del sistema operativo que realiza la funcin de seleccionar el proceso en un estado y pasarlo a otro estado de ejecucin. Con la planificacin se pretende: Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algn momento obtienen su turno de ejecucin o intervalos de tiempo de ejecucin hasta su terminacin exitosa. Maximizar la Produccin: El sistema debe de finalizar el mayor nmero de procesos por unidad de tiempo. Minimizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. Evitar el Aplazamiento Indefinido: Los procesos deben terminar en un plazo finito de tiempo. El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rpido y con cargas pesadas debe ir degradndose paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar. La mayora de estos objetivos son incompatibles entre s, por lo que hay que centrar la atencin en aquel que sea de mayor inters. Por ejemplo, una planificacin que realice un reparto equitativo del procesador no conseguir optimizar el uso del mismo. En los sistemas de planificacin generalmente se identifican tres niveles: el alto, medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya estn listos (y que en algn momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutndose en la unidad central de procesamiento. En este trabajo se

Captulo 2. Sistemas Operativos

PROCESOS 53

revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en ejecucin. 2.5.1.Tipos de planificadores: Los sistemas pueden incluir varios tipos de planificadores de procesos. La figura 2.16 muestra el caso de tres tipos: corto, medio y largo plazo. La planificacin a largo plazo tiene por objetivo aadir nuevos procesos al sistema, tomndolos de la lista de espera. Estos procesos son procesos de tipo batch, en los que no importa el instante preciso en el que se ejecuten (siempre que se cumplan ciertos lmites de espera). La planificacin a medio plazo trata la suspensin de procesos. Es la que decide qu procesos pasan a suspendido y cules dejan de estar suspendidos. Aade o elimina procesos de memoria principal modificando, por tanto, el grado de multiprogramacin. La planificacin a corto plazo se encarga de seleccionar el proceso en estado de listo que pasa a estado de ejecucin, es por tanto, la que asigna el procesador. La planificacin puede ser con expulsin o sin ella. En un sistema sin expulsin un proceso conserva el procesador mientras lo desee, es decir, mientras no solicite del sistema operativo un servicio que lo bloquee. Esta solucin minimiza el tiempo que gasta el sistema operativo en planificar y activar procesos, pero tiene como inconveniente que un proceso puede monopolizar el procesador (imagnese lo que ocurre si el proceso, por error, entra en un bucle infinito).
Memoria
Planificacin a largo plazo
Ejecucin Exit

Listo

Fin E/S

Bloqueado

Entra al sistema

Planificacin a corto plazo

Zona de intercambio

Procesos Batch en espera

Listo y suspendido

Bloqueado y suspendido

Planificacin a medio plazo

Figura 2.16. Tipos de planificadores


Captulo 2. Sistemas Operativos

PROCESOS 54

En los sistemas con expulsin, el sistema operativo puede quitar a un proceso del estado de ejecucin aunque ste no lo solicite. Esta solucin permite controlar el tiempo que est en ejecucin un proceso, pero requiere que el sistema operativo entre de forma sistemtica a ejecutar para as poder comprobar si el proceso ha superado su lmite de tiempo de ejecucin. Como sabemos, las interrupciones sistemticas del reloj garantizan que el sistema operativo entre a ejecutar cada pocos milisegundos, pudiendo determinar en estos instantes si ha de producirse un cambio de proceso o no. Para realizar las funciones de planificacin, el sistema operativo organiza los procesos listos en una serie de estructuras de informacin que faciliten la bsqueda del proceso a planificar. Es muy frecuente organizar los procesos en colas de prioridad y de tipo. Lo sucesos que provocan replanificacin en virtud de su capacidad de modificar el estado global del sistema son: Interrupciones basadas en el tiempo. Interrupciones y terminaciones de E / S. La mayora de las llamada operacionales al SO. El envi y recepcin de seales. La activacin de programas interactivos. 2.5.2. Criterios de planificacin y rendimiento Con el fin de poder analizar el rendimiento de la planificacin, se debe analizar algunos parmetros, entre los ms importantes tenemos: Utilizacin del trabajando. Procesador.- Es el tiempo que el procesador se mantiene

Productividad.- Es la cantidad de trabajo que el procesador completa en una unidad de tiempo. Tiempo de Espera.- Es el tiempo que transcurre mientras el proceso espera en la cola de procesos listos. Tiempo de Retorno.- Es la suma de los tiempos de espera, de ejecucin y el tiempo que el proceso efecta las operaciones de E/S. El Tiempo de Respuesta.- Es el tiempo transcurrido desde la presentacin de una solicitud hasta que se produce la primera respuesta.
Captulo 2. Sistemas Operativos

PROCESOS 55

Como es lgico un planificador ideal sera el que maximice la productividad con utilizacin alta del procesador minimizando los tiempos retorno, de respuesta y espera con imparcialidad, predecibilidad y repetibilidad. La utilizacin del procesador es la fraccin de tiempo promedio en el que el procesador no est inactivo, ya sea ejecutando programas de usuario como el del sistema operativo. El propsito es que, manteniendo el procesador ocupado tanto tiempo como sea posible, los perifricos tambin permanecern ocupados y se obtendrn buenas ganancias de inversin. Como es lgico el hecho de que el procesador est siempre ocupado no garantiza cunto trabajo pueda procesar, ya que puede estar ocupado en los procesos llamados nulos. Lo ms importante es la productividad se refiere a la cantidad de trabajo til completada en una unidad de tiempo. El tiempo de retorno R es el tiempo consumido dentro del sistema, y puede ser expresado como la suma del tiempo de ejecucin, el tiempo de espera y el tiempo en E/S El tiempo de espera E es el pago por la competencia entre procesos para usar el procesador. Se puede expresar como el tiempo de retorno menos el tiempo de ejecucin efectivo x y el usado en los dispositivos E/S d E(x) = R(x) x- d El tiempo de espera identifica a la ineficiencia. Por ejemplo, un trabajo largo ejecutado sin expropiaciones y un trabajo corto ejecutado con varias expropiaciones pueden experimentar idnticos tiempos de retorno. Pero los tiempos de espera serian diferentes, como es lgico la aplicacin corta tiene mayor tiempo de espera por lo tanto es mas ineficiente. El tiempo de respuesta o consola se define como el tiempo que transcurre desde el momento en que se da la instruccin hasta que aparece el primer resultado en la pantalla. 2.6. ALGORITMOS DE PLANIFICACIN: Existen algunos algoritmos de planificacin, la aplicacin de ellos depende del tipo de sistema operativo, se puede emplear uno solo o pueden operar conjuntamente para dar mejores resultado. A continuacin se explica cada uno de ellos.
Captulo 2. Sistemas Operativos

PROCESOS 56

2.6.1. Planificacin FCFS (FIRST-COME, FIRST-SERVED) Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos o preparados. Una vez que el proceso obtiene el procesador, se ejecuta hasta terminar, ya que es una disciplina no expropiativa Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes. Suele utilizarse integrado a otros esquemas, por ejemplo, a procesos de igual prioridad se puede despachar utilizando FCFS. Es un algoritmo ms predecible que otros esquemas y no puede garantizar buenos tiempos de respuesta interactivos. 2.6.2. Planificacin SRTN (SHORTEST REMAINING TIME NEXT) El proceso en espera con el menor tiempo estimado de ejecucin hasta su terminacin es el siguiente en ejecutarse. Requiere un conocimiento preciso del tiempo de ejecucin de un proceso, lo que generalmente se desconoce, pero se pueden estimar los tiempos en base a estadsticas anteriores. La dependencia sobre el conocimiento futuro tiende a limitar en la prctica la efectividad de las implementaciones SRTN, ya que en general el comportamiento futuro del proceso es desconocido y difcil de estimar. La planificacin SRTN se puede implementar tanto con una disciplina expropiativa como no expropiativa. En general se puede indicar lo siguiente: Los tiempos promedio de espera son menores que con FCFS. Los tiempos de espera son menos predecibles que en FCFS. Favorece a los procesos cortos en detrimento de los largos. Tiende a reducir el nmero de procesos en espera. 2.6.3. Planificacin por reparto del tiempo RR. (ROUND ROBIN) Es un disciplina expropiativa ideal para entornos de tiempo compartido, tambin conocida planificacin por turnos. Bsicamente, el tiempo del procesador se divide en cuotas o cuantos que son asignados a los procesos que lo solicitan. Ningn proceso puede ejecutarse durante mas de una cuota de tiempo cuando hay otros esperando en la
Captulo 2. Sistemas Operativos

PROCESOS 57

cola de preparados. Sin un proceso necesita mas tiempo para completar despus de agotar su cuota de tiempo, se coloca la final de la lista de preparados para esperar a una asignacin siguiente. Se puede ayudar de la disciplina FCFS. La determinacin del tamao del cuanto es decisiva para la operacin efectiva de un sistema computacional [7] Deitel. Los interrogantes son: Tamao de cuanto pequeo o grande?, Tamao del cuanto fijo o variable? y Tamao del cuanto igual para todos los procesos de usuarios o determinado por separado para cada uno de ellos? Si el cuanto se hace muy grande, cada proceso recibe todo el tiempo necesario para llegar a su terminacin, por lo cual la asignacin en rueda (RR) degenera en FIFO o FCFS. Si el cuanto se hace muy pequeo, la sobrecarga del intercambio de contexto se convierte en un factor dominante y el rendimiento del sistema se degrada, puesto que la mayor parte del tiempo de cpu se invierte en el intercambio del procesador (cambio de contexto) y los procesos de usuario disponen de muy poco tiempo de cpu. El cuanto debe ser lo suficientemente grande como para permitir que la gran mayora de las peticiones interactivas requieran de menos tiempo que la duracin del cuanto, es decir que el tiempo transcurrido desde el otorgamiento de la UCP a un proceso hasta que genera una peticin de Entrada / Salida debe ser menor que el cuanto establecido, de esta forma, ocurrida la peticin la UCP pasa a otro proceso y como el cuanto es mayor que el tiempo transcurrido hasta la peticin de Entrada / Salida, los procesos trabajan al mximo de velocidad, se minimiza la sobrecarga de apropiacin y se maximiza la utilizacin de la Entrada / Salida. El cuanto ptimo vara de un sistema a otro y con la carga, siendo un valor de referencia 100 mseg (cien milisegundos). [7] Deitel. 2.6.4. Planificacin con expropiacin basada en prioridades ED ( EVENT DRIVEN) Considera factores externos al proceso. [10] Tanenbaum Las ideas centrales son que cada proceso tiene asociada una prioridad y que el proceso ejecutable con mxima prioridad es el que tiene el permiso de ejecucin. Los procesos de alta prioridad podran ejecutarse indefinidamente.

Captulo 2. Sistemas Operativos

PROCESOS 58

El planificador del sistema puede cambiar la prioridad del proceso en ejecucin en cada interrupcin del reloj para lograr ciertas metas relacionadas con el procesador o la Entrada / Salida. Los procesos con requerimientos intensivos de Entrada / Salida ocupan mucho de su tiempo en espera de operaciones de Entrada / Salida, por lo tanto: Deben tener prioridad para usar la UCP y efectuar la siguiente peticin de Entrada /Salida, ya que se ejecutar en paralelo con otro proceso que utilice la UCP. Si deben esperar mucho tiempo a la UCP estarn ocupando memoria por tiempo innecesario. Frecuentemente los procesos se agrupan en Clases de Prioridad, en cuyo caso se utiliza la planificacin con prioridades entre las clases y con round robin (RR) dentro de cada clase. Si las prioridades no se reajustan en algn momento, los procesos de las clases de prioridad mnima podran demorarse indefinidamente. 2.6.5. Planificacin MLQ De las disciplina de planificacin descritas hasta ahora Cul debera utilizarse en un sistema mixto o de propsito general, en el que hay sucesos crticos en el tiempo, una multitud de usuarios interactivos y algunos trabajos no interactivos muy largos?. La solucin podra estar en combinar varias disciplinas de planificacin clasificadas de acuerdo a la carga de trabajo manteniendo colas de procesos separadas servidas por diferentes planificadores. A este mtodo se le denomina planificacin de colas multinivel (MLQ). Una posible divisin de la carga de trabajo seria: procesos de sistema, programas interactivos y trabajos de lotes. Esto dara lugar a tres colas separadas, como se muestra en la Figura 2.17.
Procesos de sistema Cola de prioridad alta
Planificador entre colas (Prioridad, Reparto de Tiempo proporcional)
Planificacin reparto del tiempo Planificacin guiada por eventos

Procesos interactivos

Cola de prioridad media

UCP

Planificacin FCFS

Procesos generados por lotes

Cola de prioridad baja

Figura 2.17. Ejemplo de planificacin de colas de multinivel.


Captulo 2. Sistemas Operativos

PROCESOS 59

2.6.6. Planificacin por mltiples colas con realimentacin La realimentacin en el mecanismo MLQ tiende a clasificar los procesos dinmicamente de acuerdo con la cantidad observada de servicio obtenido, dando preferencia a aquellos que han recibido menos. En lugar de tener clases fijas de procesos asignados a colas especficas, la idea es hacer que un proceso pueda pasar de una cola a otra dependiendo de su compartimiento en tiempo de ejecucin. En el caso de Windows utiliza los dos algoritmos de planificacin, en primer lugar el de prioridades y luego el de reparto de tiempo en dos fases. La figura 2.18 grficamente indica la secuencia:

Figura 2.18a. Acta el primer planificador.

En la primera fase se valora cada hebra por su prioridad. Figura 2.18 a Se le asigna un nmero que puede ir desde 0 a 32. Figura 2.18b Si hubiese dos o mas hebras con la misma prioridad pasa a actuar el segundo planificador.

Captulo 2. Sistemas Operativos

PROCESOS 60

Figura 2.18b. Acta el primer planificador asignando prioridades.

Cuando existen dos o ms procesos con la misma prioridad se utiliza el algoritmo de reparto de tiempo entre estos procesos hasta finalizar, dejando los otros procesos en lo que se denomina en segundo plano. Figura 2.18c y 2.18d

Figura 2.18c y d. Acta el segundo planificador utilizando el reparto de tiempo.

Captulo 2. Sistemas Operativos

Vous aimerez peut-être aussi