AYSO U04 Procesos 2007

Embed Size (px)

Citation preview

  • 8/14/2019 AYSO U04 Procesos 2007

    1/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 1 de 20

    Unidad 4: PROCESOS

    Introduccin. Estados. Planificacin, Bloque de control de procesos. Servicios. Algoritmos de asignacin dela CPU en multiprogramacin

    PROCESOS

    IntroduccinLa multiprogramacin (multitarea) es esencialmente la multiplexacin de los recursos del sistema (proce-sador, memoria central y dispositivos de E/S) entre una serie de programas activos.

    Los procesos son un mecanismo esencial para definir y gestionar la ejecucin concurrente de los progra-mas bajo el control del SO.

    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 ejecucin 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 informacin que permite al sistema operativo su planificacin.

    En esencia, un proceso es una instancia de un programa en ejecucin.

    Es la unidad ms pequea de de trabajo (job step) individualmente planificable por un SO.Una definicin ms completa de proceso puede ser:

    Un proceso es la porcin de programa en ejecucin ms una estructura de datos llamada Vector de Es-tado o Bloque de Control de Proceso o Process Control Block (PBC) que posee los valores actuales delespacio de nombres del programa y otros datos usados por el SO.

    Resumiendo:

    Un proceso es una porcin de programa en ejecucin ms su contexto.

    PROCESO = porcin de programa en ejecucin + PCB

    El PCB es utilizado por el SO para poder conmutar el uso de la CPU entre los distintos programas en ejecu-cin.

    Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo dela comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un pro-ceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y nocompartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de me-moria.

    De todo lo expuesto surgen trminos que deben ser definidos: Contexto: conjunto de entidades que definen los estados del proceso. Espacio de nombres de un programa: Conjunto de nombres sobre el cual el programa puede actuar di-

    rectamente (relacin directa). Por Ej., un Archivo debe ser trasladado a Memoria para que el Programapueda actuar sobre l.

    Espacio de nombres de un proceso: Conjunto de objetos que pueden ser usados por el proceso. Espacio de nombres del procesador: Conjunto de objetos que pueden ser usados por todos los procesos.

  • 8/14/2019 AYSO U04 Procesos 2007

    2/20

  • 8/14/2019 AYSO U04 Procesos 2007

    3/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 3 de 20

    1. Jerrquica

    Cada proceso que se crea es hijo del proceso creador y hereda el entorno de ejecucin del su padre. Un pro-ceso durante su ejecucin puede crear varios procesos hijos a travs de llamadas al sistema para creacin de

    procesos.Proceso creador es el proceso padre y el proceso nuevo es el proceso hijo, el cual podr crear otros procesoscreando un rbol (tree) de procesos.

    Los subprocesos pueden obtener recursos del SO o restringirse a recursos del proceso padre, el cual dividerecursos entre sus hijos o los comparte entre varios hijos. Al restringir un proceso hijo a un subconjunto derecursos del padre se evita que este sature al sistema creando demasiados procesos hijos.

    Al crearse un proceso este obtiene recursos fsicos y lgicos, datos iniciales del proceso padre.

    Hay dos alternativas:

    - El Padre contina ejecutndose concurrentemente con sus hijos. - El Padre espera a que todos sus hijos hayan terminado.

    2. No Jerrquica

    Cada proceso creado por otro proceso se ejecuta independientemente de su creador en un entorno diferente.(no muy comn).

    Fin de un procesoUn proceso t erminar por diversas razones. Las causales posibles de abandono son:

    FIN NORMAL (Proceso completo) ERROR (Fin anormal) NECESITA RECURSOS (E/S, etc.) (Pasa a Bloqueado) DESALOJO (Por algn proceso de mayor prioridad) (Pasa a Listos)

    Las dos primeras causas se refieren al fin total (muerte) del proceso, en tanto que las dos ltimas indican so-lamente un fin temporal del mismo.

    Desalojo significa que, por alguno de los algoritmos de administracin de procesador, se considera que eltiempo de uso del procesador por parte de ese proceso ha sido demasiado alto.

    Se puede graficar esta situacin visualizando adems la existencia de colas para los recursos compar-

    tidos.El padre puede provocar la terminacin de hijos por diferentes causas:

    el hijo se excedi en el uso de algn recurso asignado; ya no requiere tarea del hijo.

    Para esto el padre necesita conocer la identidad de sus hijos (cuenta con mecanismo para inspeccionar estadode sus hijos).

    Cuando un proceso muere ocurre los siguientes pasos:

    Desaparece el PCB

    Recursos comunes liberados Recursos locales destruidos

    Cuando un proceso termina tambin deben terminar sus hijos (normal o anormalmente). A esto se lo deno-mina terminacin en cascada.

  • 8/14/2019 AYSO U04 Procesos 2007

    4/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 4 de 20

    TIPOS DE RECURSOS DE UN PROCESODefinimos los siguientes tipos de variables para los procesos:

    Variables locales: Son aquellas que slo se acceden desde el Proceso y slo ste las conoce.

    Variables Globales o Pblicas: son aquellas que tambin se acceden desde otros Procesos (Compartidas).

    Se dice que un recurso es local de un proceso cuando slo es utilizado por dicho proceso.

    Un recurso es comn o repartible con n puntos de accesos cuando lo comparten n procesos al mismotiempo y no es local a ninguno de ellos.

    Los recursos que se comparten en un punto de acceso se dice que son crticos.

    TIPOS DE PROCESOS

    Procesos Independientes o DisjuntosSon aquellos que slo tienen variables locales (operan sobre variables disjuntas) o comparten variables glo-bales sin modificarlas, es decir la interseccin de su PCB es vaca.

    Procesos Paralelos o ConcurrentesSon aquellos que pueden usar simultneamente un recurso. Si el recurso es modificado entonces es criticoy se usa la mutua exclusin para sincronizar su uso.

    Tambin se denominan procesos concurrentes cuando sus ejecuciones se superponen en el tiempo (si laprimera operacin de uno de ellos es comenzada antes que se complete la ltima operacin del otro).

    Razones para la ejecucin concurrente: Informacin compartida Acelerar los clculos Modularidad Comodidad

    Para esto se requiere cooperacin entre procesos, necesitando un mecanismo para la sincronizacin y comu-nicacin.

    Procesos InteractuantesSon procesos concurrentes que comparten variables locales.

    Dos procesos que estn relacionados (son concurrentes) si la interseccin de sus vectores de estados (PCB) oes vaca: uno de ellos puede hacer que un recurso quede accesible al otro, o privarlo de este recurso, es decir,uno de los procesos puede hacer cambiar el estado del otro.

    Clasificacin de los procesos segn el cdigo de su programa

    ReutilizablesSon los que pueden ser ejecutados con diferentes juegos de datos.

    ReentrantesSlo tienen cdigo puro y no tienen asociados datos.

  • 8/14/2019 AYSO U04 Procesos 2007

    5/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 5 de 20

    ESTADOS DE LOS PROCESOSPara poder manejar convenientemente una administracin de procesador es necesario contar con un cierto juego de datos. Ese juego de datos se encuentra en una tabla en la cual se refleja en qu estado se en-cuentra el proceso, por ejemplo, si est ejecutando o no.

    Los procesos, bsicamente, se van a encontrar en tres estados:

    Listo para la ejecucin (Ready) Ejecutando (Running) Bloqueados por alguna razn (Waiting).

    Los estados de los procesos son internos del SO y transparente al usuario. Para el usuario el proceso est en

    ejecucin independientemente del estado en que se encuentra internamente en el sistema.

    Estados activosSon los estados que van desde el momento en que se le ha asignado el recurso hasta que lo devuelve

    Listo o Preparado (Ready)Disponen de todos los recursos para su ejecucin y aguardan su turno.

    Ejecucin (Running)El proceso est en uso (control) del procesador.

    Estados inactivos

    Son los que esperan por largo tiempo los recursos. Bloqueado (Waiting)

    Son los que aguardan momentneamente por un recurso.

    Suspendido (Suspended)Son los que esperan un evento.

    COLAS DE PROCESOSLos procesos se almacenan en colas, cada una de ellas representa un estado (status) particular de los proce-

    sos.

    1) Job queue (cola de trabajos)Procesos que residen en almacenamiento secundario (disco) y que esperan su ejecucin.

    2) Ready queue (cola de procesos listos)Procesos que residen en la memoria principal y que estn listos esperando su ejecucin.

    Es una lista ligada. Un encabezado de la cola de procesos listos contendr apuntadores al primer y ltimoPCB de la lista, cada PCB tiene campo apuntador que indica el siguiente proceso de la cola de procesoslistos.

    3) Waiting queue (cola de procesos bloqueados)Procesos que residen en la memoria principal y que estn esperando que acontezca algn suceso (ej. E/S).

  • 8/14/2019 AYSO U04 Procesos 2007

    6/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 6 de 20

    4) Suspended queue (cola de procesos suspendidos)Procesos que residen en la memoria secundaria (disco) y que estn esperando que acontezca algn suce-so (ej. E/S). Son los procesos residentes en memoria virtual (swap).

    BLOQUE DE CONTROL DE PROCESOS (PCB)El Bloque de Control de Procesos (PCB, Vector de Estado, Tabla de Estado o Descriptor) contiene elcontexto de un proceso y todos los datos necesarios para hacer posible la ejecucin de ese proceso y sa-tisfacer sus necesidades.

    En forma ms detallada cada uno de sus campos contiene:

    Apuntador a proceso anterior: direccin del BCP anterior (anterior en tiempo pues fue creado antes).El primer BCP tendr una identificacin que lo seale como tal y deber ser conocida su ubicacin por el

    Planificador de Procesos. Apuntador a proceso posterior: direccin del BCP posterior (posterior en tiempo, pues fue creado des-

    pus). El ltimo BCP tendr un nil (no se descartan encadenamientos circulares, pero por ahora se lospresenta como lineales).

    Identificacin de Proceso: identificacin nica para este proceso que lo hace inconfundible con otro. Palabra de control: espacio reservado o apuntador en donde se guarda la PC cuando el proceso no se

    encuentra en ejecucin. Registros: dem anterior, pero para los registros de uso general del proceso. TDP: apuntador al lugar en donde se encuentra la Tabla de Distribucin de Pginas correspondiente a

    este proceso. En el supuesto de tratarse de otro tipo de administracin de memoria en esta ubicacin seencontrara la informacin necesaria para conocer en qu lugar de memoria est ubicado el proceso.

    Dispositivos: apuntador a todos los dispositivos a los que tiene acceso el proceso al momento. Esta in-formacin puede ser esttica si es necesario que el proceso declare antes de comenzar su ejecucin losdispositivos a usar, o completamente dinmica si existe la capacidad de obtener y liberar dispositivos amedida que se ejecuta el proceso.

    Archivos: dem Dispositivos pero para los archivos del proceso. Tiempos: Tiempo de CPU utilizado hasta el momento. Tiempo mximo de CPU permitido a este proce-

    so. Tiempo que le resta de CPU a este proceso. Otros tiempos. Estado: Ejecutando. Listo. Bloqueado. Wait (En espera). Ocioso. Apuntador al BCP del proceso anterior en el mismo estado: direccin del BCP correspondiente al

    proceso anterior en ese mismo estado. Apuntador al BCP del proceso posterior en el mismo estado: dem anterior pero al proceso posterior. Informacin para el algoritmo de adjudicacin del procesador: aqu se tendr la informacin necesa-

    ria de acuerdo al algoritmo en uso. Apuntador al BCP del proceso anterior en funcin del algoritmo: depender del algoritmo. Apuntador al BCP del proceso posterior en funcin del algoritmo: depender del algoritmo. Apuntador al BCP del Proceso Padre: direccin del BCP del proceso que gener el actual proceso.

  • 8/14/2019 AYSO U04 Procesos 2007

    7/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 7 de 20

    Apuntador a los BCP Hijos: apuntador a la lista que contiene las direcciones de los BCP hijos (genera-dos por) de este proceso. Si no tiene contendr null.

    Accounting: informacin que servir para contabilizar los gastos que produce este proceso (nmeros

    contables, cantidad de procesos de E/S, etc)

    TABLAS Y DIAGRAMA DE TRANSICIN DE ESTADOSEn base a estos estados se construye lo que se denomina Diagrama de Transicin de Estados.

    Estar en la Cola de Listos significa que el nico recurso que le est haciendo falta a ese proceso es elprocesador. O sea, una vez seleccionado de esta cola pasa al estado de Ejecucin.

    Se tiene una transicin al estado de Bloqueados cada vez que el proceso pida algn recurso. Una vez queese requerimiento ha sido satisfecho, el proceso pasar al estado de Listo porque ya no necesita otra cosa

    ms que el recurso procesador.Para manejar esa Cola de Listos se requiere de una tabla, denominada Tabla de Bloques de Controlde Procesos (TBCP), que contiene, bsicamente, una identificacin de los procesos es decir los Bloques deControl de Procesos (PCB) .

    Como los listos pueden ser muchos, hace falta un apuntador al primero de esa cola de listos, y posiblementeun enganche entre los siguientes en el mismo estado.

    Cada entrada de la TBCP tiene un apuntador al bloque anterior y uno al posterior y un conjunto dedatos inherentes al proceso referido (identificacin del proceso, la palabra de control, los registros, disposi-tivos que est usando, archivos que est usando, tiempos que hacen a la vida del proceso, el estado,e t c . ) .

    Si bien es cierto que es ms fcil pensar a la TBCP como una matriz, este tipo de implementacin es muyrgida y rpidamente podra desembocar en que el espacio reservado para BCPs se termine.

    Pensando en una implementacin ms dinmica se puede implementar a la TBCP como un encadenamientode BCPs.

    DIAGRAMAS DE TRANSICIN

    Los diagramas de transicin o diagramas de estados son grficos que representan los estados de los proce-sos.

    Modelo de dos estadosEl modelo de estados ms simple es el de dos estados. En este modelo, un proceso puede estar ejecutndose ono. Cuando se crea un nuevo proceso, se pone en estado deNo ejecucin. En algn momento el proceso quese est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para

  • 8/14/2019 AYSO U04 Procesos 2007

    8/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 8 de 20

    ejecutar para ponerlo en estadoEjecucin. De esta explicacin se desprende que es necesario que el sistemaoperativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria.Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan suturno para ejecutar.

    Modelo de cinco estadosEl modelo anterior de dos estados funcionara bien con una cola FIFO y planificacin por turno rotatorio paralos procesos que no estn en ejecucin, si los procesos estuvieran siempre listos para ejecutar. En la realidad,los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se debaesperar algn suceso antes de continuar, como una operacin de Entrada/Salida. Es por esto que se necesita

    un estado donde los procesos permanezcan esperando la realizacin de la operacin de Entrada Salida porparte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecucin en dos es-tados:Listo yEspera. Se agregan adems un estadoNuevo y otro Terminado.

    Los cinco estados de este diagrama son los siguientes:

    Ejecucin: el proceso est actualmente en ejecucin. Listo: el proceso est listo para ser ejecutado, slo est esperando que el planificador de corto plazo as lo

    disponga. Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalizacin de una

    operacin de Entrada/Salida solicitada por una llamada al sistema operativo. Nuevo: El proceso recin fue creado y todava no fue admitido por el sistema operativo. En general los

    procesos que se encuentran en este estado todava no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termin o por al-

    gn fallo, como un error de proteccin, aritmtico, etc.

  • 8/14/2019 AYSO U04 Procesos 2007

    9/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 9 de 20

    Los nuevos estados Nuevo y Terminado son tiles para la gestin de procesos. En este modelo los estadosEspera yListo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo,se sita en la cola de listos. A falta de un esquema de prioridades sta puede ser una cola FIFO. Cuando se daun suceso se pasan a la cola de listos los procesos que esperaban por ese suceso.

    Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas deprocesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cul es el proceso que ms con-viene ejecutar a continuacin.

    Asimismo, existen varias colas en estado de espera, como mnimo una por cada perifrico.

    Modelo de cinco estados ms suspendidosUna de las razones para implementar el estadoEspera era poder hacer que los procesos se puedan manteneresperando algn suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho ms lentas estas opera-ciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estn esperan-do en el estadoEspera y que no haya ms memoria disponible para nuevos procesos. Podra conseguirse msmemoria, aunque es probable que esto slo permita procesos ms grandes y no necesariamente nuevos proce-sos. Adems hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismoestado con el tiempo. Otra solucin es el intercambio. El intercambio se lleva a cabo moviendo una parte deun proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido.Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido ante-riormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un procesoque est en el estado Suspendido, el mismo todava se encuentre en espera. Slo convendra traerlo cuando yaest listo para ejecutar, esto implica que ya aconteci el suceso que estaba esperando. Para tener esta diferen-ciacin entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo,Espera,Espera y suspendido yListo y suspendido.

    RUTINAS DE ADMINISTRACIN DEL PROCESADORGeneralmente, y dependiendo de la literatura que se consulte, se encuentra que la administracin del

    procesador incluye el pasaje de Retenido a Listos (la entrada del exterior a listos) como una de las par-tes de la administracin del procesador. Lgicamente, mientras no se seleccione un proceso, va a ser im-posible que ste compita por el recurso procesador.

    PLANIFICADOR DE TRABAJOSSe denomina Planificador de Trabajos al conjunto de rutinas que realizan esta funcin de ingresar un pro-ceso al sistema desde el exterior y se lo llama muy a menudo administrador de alto nivel. Es adems ca-

  • 8/14/2019 AYSO U04 Procesos 2007

    10/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 10 de 20

    paz de comunicarse con el resto de los administradores para ir pidiendo los recursos que el trabajo ne-cesitar para iniciar su ejecucin.

    Funciones Principales del Planificador de Trabajos:

    Seleccionar trabajos a ingresar al Sistema. Asignar recursos (solicitndolos a los administradores correspondientes) Liberar recursos (dem anterior)

    Si posee datos suficientes, el Planificador de Trabajos, puede planificar la carga de un sistema. Esta ltimacapacidad carece de sentido si se est trabajando en un sistema que pierde su caracterstica de "batch".

    PLANIFICADOR DEL PROCESADOR O PLANIFICADOR DE PROCE-SOSEl Planificador de Procesos, tambin llamado planificador de bajo nivel, es el que tiene que inspec-cionar la Cola de Listos y seleccionar, de acuerdo a algn criterio, cual de los procesos que se en-cuentran all har uso del procesador.

    Para administrar eficientemente esta situacin se cuenta con un conjunto de mdulos:

    PLANIFICADOR DEL PROCESADOR

    Es el que aplica la poltica de seleccin.

    CONTROLADOR DE TRFICO

    Es el que realiza el manejo de las tablas.

    DISPATCHER

    Es el que pone en estado de ejecucin al programa, o sea que carga en el procesador su contexto.

    Dado un proceso que pide un servicio sobre un recurso (por ejemplo una E/S) cambiar del estado de eje-cucin al estado de bloqueado es una actividad que le corresponde al Controlador de trfico, que es elmaneja las tablas. El seleccionar el prximo proceso a ejecutar le corresponde al que aplica la polticade seleccin, que es el Planificador de Procesos. Y el que realmente realiza la operacin final de cargarlos registros, la palabra de control y los relojes que sean necesarios (dependiendo de la polti-ca de administracin del procesador o sea el contexto), es funcin del Dispatcher.

    En alguna bibliografa se adjudica la funcin del Dispatcher al Controlador de Trfico.

  • 8/14/2019 AYSO U04 Procesos 2007

    11/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 11 de 20

    POLTICAS DE ASIGNACINLos criterios para seleccionar un algoritmo de asignacin del procesador deben responder lo mejor posible alas siguientes pautas:

    Utilizacin del procesador: 100 % Troughput: Cantidad de trabajos por unidad de tiempo Tiempo de Ejecucin: Tiempo desde que ingresa un proceso hasta que ter- mina Tiempo de Espera: Permanencia en Listos Tiempo de Respuesta: Tiempo que tarda en obtenerse un resultado

    Luego, el mejor algoritmo ser el que maximice las dos primeras pautas y minimice las 3 siguientes.

    FIFO o FCFSEntre las polticas que puede aplicar el planificador de procesos para la seleccin de procesos que deben pa-

    sar del estado de listos al estado de ejecucin existe obviamente la ms trivial, como siempre, que es laFIFO (first-in first-out) o FCFS (first come first served). Que significa que el primero que est en lacola es el primero que va a usar el recurso procesador.

    De un estado listo, pasa a un estado de ejecucin, y de ese estado de ejecucin el proceso abandonael recurso procesador solo por decisin propia pasando al estado de bloqueado, y despus, una vez sa-tisfecha su necesidad pasa otra vez al estado de listo. O sea que no es desalojado del uso del recursoprocesador ya que una vez que lo toma lo sigue usando.

    En el momento en que se produce una interrupcin por fin de E/S, se atender ese fin de E/S el que mo-mentneamente har que el proceso abandone el uso del procesador, pero despus de finalizada laatencin de tal interrupcin, el proceso original retomar el uso de la CPU.

    Ms Corto Primero (JSF) Sin Desalojo.Una de las polticas que siempre da el mejor resultado para aquello que se quiere ordenar en funcindel tiempo es la del ms corto primero (Job Short First).

    Esto implica ordenar los distintos procesos de acuerdo al tiempo que van a necesitar del recurso proce-sador. O sea, la cola se ordena en funcin de las rfagas que se espera que van a emplear de procesadorlo distintos procesos.

    Rfaga o Quantum es el tiempo continuo de uso del procesador por parte de un proceso que va desde queste toma el procesador hasta que lo abandona por algn evento.

    Este algoritmo es perfecto, ya que si se hace cualquier medicin, por ejemplo del turnaround, da siempremejor que cualquier otro algoritmo de administracin.

    La dificultad radica en que es necesario conocer el futuro. En la prctica es casi imposible saber conanterioridad cunto tiempo de procesador va a necesitar un proceso. Lo que se puede hacer es calcularlo que se presume que va a utilizar.

    La forma de implementarlo sera, conociendo esa medida, calificar al proceso, es decir si se tiene:

  • 8/14/2019 AYSO U04 Procesos 2007

    12/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 12 de 20

    Proceso Tiempo

    P1 5

    P2 3

    P3 4

    La cola de listos ordenada quedara como P2, P3 y P1.

    No se tiene en cuenta el tiempo total de ejecucin, sino el tiempo de la rfaga. O sea cada uno de los seg-mentos de uso del procesador.

    Puede haber varios criterios para conocer la rfaga. Uno de ellos sera que alguien declare un determinadovalor.

    Otro criterio sera, medir la cantidad de tiempo en la cual el proceso 1 ejecuta una rfaga, supngase queson 5 unidades de tiempo, y calificarlo luego como 5. En realidad, como no se puede conocer el futuro,

    lo que se hace es llevar algn tipo de estadstica sobre lo que pas en pasos anteriores. Cuando elproceso ingresa por primera vez es indistinto que se lo coloque primero o ltimo, aunque convendr ponerloprimero para que comience a conocerse su historia.

    Una vez que el proceso sale de bloqueado depender de cunto tiempo utiliz el procesador para que tengaotra calificacin. En la poltica Ms corto primero no importa el orden en el que entraron a la cola de lis-tos, sino la calificacin que se les ha dado.

    En este algoritmo no tenemos, todava, desalojo. Es decir que, como en FIFO o FCFS, el proceso abandonavoluntariamente el uso del procesador.

    Ms Corto Primero Con Desalojo

    Una variante del mtodo del ms corto primero es que exista desalojo.

    Este desalojo se da a travs de dos hechos fundamentales (estableciendo cada uno una poltica de asigna-cin distinta):

    Porque lleg un programa calificado como ms corto que el que est en ejecucin

    Porque lleg un programa cuyo tiempo es menor que el tiempo remanente.

    En el primero de los casos si se tiene en ejecucin un programa calificado con 3, y en la cola de listos hayotros dos calificados con 4 y con 5, y llega en este momento, a la cola de listos, uno calificado como 2, seproduce una interrupcin del que est calificado como 3, se lo coloca en la cola de listos en el orden quele corresponda, y pasa a ejecutarse el programa calificado como 2.

    En el caso de tiempo remanente, lo que se va a comparar es cunto hace que est ejecutando el que est

    calificado como 3. Es decir, dada la misma situacin del ejemplo anterior, si llega uno calificado como 2,pero resulta que al que est ejecutando slo le falta una unidad de tiempo de ejecucin, no se lo inte-rrumpe, y el nuevo programa pasa a la cola de listos en el orden que le corresponda.

    Si al programa que est ejecutndose le faltaran ms de 2 unidades de tiempo de ejecucin, se interrumpe,se lo pasa a la cola de listos, y pasa a ejecutarse el nuevo programa.

  • 8/14/2019 AYSO U04 Procesos 2007

    13/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 13 de 20

    Administracin por PrioridadesOtro tipo de administracin del procesador consiste en dar prioridades a los procesos. De alguna ma-nera, el algoritmo del ms corto primero con desalojo constituye uno de estos.

    La idea es que algunos procesos tengan mayor prioridad que otros para el uso del procesador por razones decriterio.

    Estos criterios pueden ser de ndole administrativa o por el manejo de otros recursos del sistema. Ejem-plos concretos seran:

    Por prioridad administrativa por ejemplo el "Proceso de Sueldos"

    Por recursos: Administracin de Memoria Particionada; por ejemplo los procesos se ejecutan en par-ticiones de direcciones ms bajas tienen mayor (o menor) prioridad que los procesos que se ejecutan enlas particiones de direcciones ms altas

    En estos casos es necesario implementar un mecanismo que evite un bloqueo indefinido para aquellos pro-cesos que tienen las ms bajas prioridades.

    Una solucin puede ser que a medida que transcurre el tiempo la prioridad de los procesos relegados se in-crementa paulatinamente.

    Round-RobinOtra forma de administrar el procesador es el Round-Robin. El origen del trmino Round-Robin provienede que antiguamente en los barcos de la marina cuando los oficiales deseaban presentar una queja al ca-pitn redactaban un documento el pie del cual estampaban sus firmas en forma circular, de forma talque era imposible identificar cual de ellos haba sido el promotor de tal queja.

    Esta administracin consiste en dar a cada proceso la misma cantidad o cuota de uso del procesador.La asignacin se comporta como una manecilla que recorre el segmento circular (que representa la rfagaasignada) y que al pasar al prximo proceso genera una interrupcin por reloj. Si el prximo proceso no seencuentra en estado de listo, se pasa al siguiente y as sucesivamente.

    Calesita circular del mtodo Round-Robin.

    Es decir, a todos los procesos se les da un quantum, que es una medida del tiempo que podrn usar el pro-cesador antes de ser interrumpidos por reloj. Obviamente puede ocurrir que cuando le toque al si-guiente proceso, ste se encuentre bloqueado por operaciones de E/S, en tal caso se pasa al siguienteproceso, y el anterior tendr que esperar que le toque el procesador nuevamente la prxima vuelta.

  • 8/14/2019 AYSO U04 Procesos 2007

    14/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 14 de 20

    Administracin del procesador Round- Robin.

    MulticolasOtra forma de prioridad es asignar distintas colas y distintos quantums dependiendo del tipo de bloqueo alque llega el proceso (lectora/impresora antes que cinta) o por las caractersticas del proceso.

    Administracin Multicolas.

    A este esquema se le podra agregar que el programa en ejecucin cuando es interrumpido vaya a alguna delas colas perdiendo el uso del procesador. De esta forma se est beneficiando a los de alta E/S, en caso con-

    trario se guardara el valor del reloj de intervalos.Se podra considerar que cada una de las colas es administrada por medio de una poltica diferente.

    Las variantes del Round-Robin y Multicolas pueden ser:

    Todos los procesos tienen el mismo Quantum Si un proceso us poco procesador se lo puede colocar por la mitad de la cola Si un proceso acaba de ingresar se le otorga ms tiempo Si un proceso ejecut muchas veces hasta el lmite ms alto de quantum slo se le permitir ejecutar

    cuando no haya otro proceso Dar preferencia a los procesos que realizan mucha E/S Dar preferencia a los procesos interactivos

    Dar preferencia a los procesos ms cortos Pasar procesos de una cola a otra segn el comportamiento que demuestren Se puede seleccionar de las colas de acuerdo a su historial

    De todas maneras en los sistemas Multicolas no debe olvidarse que existe la posibilidad de procesos quequeden relegados, luego es necesario implementar alguna variante para solucionar esto. Ms adelante se dis-cute una de ellas.

    Este tipo de administracin logra lo que se denomina un "Balance General del Sistema" debido a quecompensa la utilizacin de los recursos respecto de la ejecucin de los procesos otorgando mayor priori-dad de ejecucin (cola de Listos de mayor prioridad) a los procesos que utilizan los perifricos ms lentosy viceversa.

    Ntese en el grafo que los procesos que utilizan un perifrico lento luego de finalizar su E/S retornan ala cola de Listos de mayor prioridad. Esto permite que dicho proceso luego de estar durante bastante tiem-po fuera del circuito de listo-ejecutando (su E/S demora ms ya que el perifrico es ms lento) pueda tenerpronto una chance de retomar el uso del recurso Procesador. Si se lo hubiera colocado en una cola de lis- tosde menor prioridad debera esperar que las colas anteriores se vaciaran antes de poder acceder al procesa-dor.

  • 8/14/2019 AYSO U04 Procesos 2007

    15/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 15 de 20

    Las colas de menor prioridad que contienen a los procesos que realizan E/S sobre perifricos veloces seencuentran cargadas continuamente ya que el proceso demora muy poco tiempo en realizar su E/S (yaque el perifrico es rpido) y vuelve rpidamente a la cola de Listos, en tanto que las colas de mayor prio-ridad usualmente se vacan con bastante frecuencia ya que sus procesos demoran un tiempo considerableen volver del estado de Bloqueado.

    Finalmente este mecanismo logra asimismo que los perifricos lentos se utilicen ms frecuentementelogrando su mximo aprovechamiento.

    HILO DE EJECUCIN (Threads)Un hilo de ejecucin, en sistemas operativos, es una caracterstica que permite a una aplicacin realizar va-rias tareas concurrentemente. Los distintos hilos de ejecucin comparten una serie de recursos tales como elespacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el

    diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente.Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto cono-cidos como un proceso. El hecho de que los hilos de ejecucin de un mismo proceso compartan los recursoshace que cualquiera de estos hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria,los otros hilos acceden e ese dato modificado inmediatamente.

    Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el estado de la CPU (inclu-yendo el valor de los registros).

    El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo. Cuando el procesoes terminado, todos sus hilos de ejecucin tambin lo son. Asimismo en el momento en el que todos los hilosde ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados.

    Algunos lenguajes de programacin tienen caractersticas de diseo expresamente creadas para permitir a losprogramadores lidiar con hilos de ejecucin (como Java). Otros (la mayora) desconocen la existencia dehilos de ejecucin y stos deben ser creados mediante llamadas de biblioteca especiales que dependen del sis-tema operativo en el que estos lenguajes estn siendo utilizados (como es el caso del C y del C++).

    Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos, botones, ventanas),mientras otro hilo hace una larga operacin internamente. De esta manera el programa responde de manerams gil a la interaccin con el usuario. Tambin pueden ser utilizados por una aplicacin servidora para darservicio a mltiples clientes.

    Diferencias entre hilos y procesosLos hilos se distinguen de los tradicionales procesos en que los procesos son generalmente independientes,llevan bastante informacin de estados, e interactan slo a travs de mecanismos de comunicacin dadospor el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos directamente. En muchosde los sistemas operativos que proveen facilidades para los hilos, es ms rpido cambiar de un hilo a otro de-ntro del mismo proceso, que cambiar de un proceso a otro. Este fenmeno se debe a que los hilos compartendatos y espacios de direcciones, mientras que los procesos al ser independientes no lo hacen. Al cambiar deun proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se conoce como overhead, quees tiempo desperdiciado por el procesador para realizar un cambio de modo (mode switch), en este caso pasardel estado de Running al estado de Waiting o Bloqueado y colocar el nuevo proceso en Running. En los hiloscomo pertenecen a un mismo proceso al realizar un cambio de hilo este overhead es casi despreciable.

    Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) han dicho tener hilos 'baratos', yprocesos 'costosos' mientras que en otros sistemas no hay una gran diferencia.

    Funcionalidad de los hilosAl igual que los procesos, los hilos poseen un estado de ejecucin y pueden sincronizarse entre ellos para evi-tar problemas de compartimiento de recursos. Generalmente, cada hilo tiene una tarea especifica y determi-nada, como forma de aumentar la eficiencia del uso del procesador.

  • 8/14/2019 AYSO U04 Procesos 2007

    16/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 16 de 20

    Estados de un hiloLos principales estados de los hilos son: Ejecucin, Listo y Bloqueado. No tiene sentido asociar estados desuspensin de hilos ya que es un concepto de proceso. En todo caso, si un proceso est expulsado de la me-moria principal (RAM), todos sus hilos debern estarlo ya que todos comparten el espacio de direcciones delproceso.

    Cambio de estadosCreacin: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otroshilos dentro del mismo proceso. El hilo tendr su propio contexto y su propio espacio de pila, y pasara a lacola de listas.

    Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros). Ahora el proce-sador podr pasar a ejecutar otro hilo que est en la cola de Listos mientras el anterior permanece bloqueado.

    Desbloqueo: Cuando el suceso por el que el hilo se bloque se produce, el mismo pasa a la cola de Listos.

    Terminacin: Cuando un hilo finaliza se liberan tanto su contexto como sus pilas.

    Ventajas de los hilos contra procesosSi bien los hilos son generados a partir de la creacin de un proceso, podemos decir que un proceso es un hilode ejecucin, conocido como Monohilo. Pero las ventajas de los hilos se dan cuando hablamos de Multihilos,que es cuando un proceso tiene mltiples hilos de ejecucin los cuales realizan actividades distintas, quepueden o no ser cooperativas entre s. Los beneficios de los hilos se derivan de las implicaciones de rendi-miento.

    Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. Algu-nas investigaciones llevan al resultado que esto es as en un factor de 10.

    Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eli-minar el BCP del mismo, mientras que un hilo se elimina su contexto y pila.

    Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso

    Los hilos aumentan la eficiencia de la comunicacin entre programas en ejecucin. En la mayora de los sis-temas en la comunicacin entre procesos debe intervenir el ncleo para ofrecer proteccin de los recursos yrealizar la comunicacin misma. En cambio, entre hilos pueden comunicarse entre s sin la invocacin al n-cleo. Por lo tanto, si hay una aplicacin que debe implementarse como un conjunto de unidades de ejecucinrelacionadas, es ms eficiente hacerlo con una coleccin de hilos que con una coleccin de procesos separa-dos.

    Sincronizacin de hilosTodos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abier-tos. Cualquier modificacin de un recurso desde un hilo afecta al entorno del resto de los hilos del mismoproceso. Por lo tanto, es necesario sincronizar la actividad de los distintos hilos para que no interfieran unoscon otros o corrompan estructuras de datos.

    Una ventaja de la programacin multihilo es que los programas operan con mayor velocidad en sistemas decomputadores con mltiples CPUs (sistemas multiprocesador o a travs de grupo de mquinas) ya que loshilos del programa se prestan verdaderamente para la ejecucin concurrente. En tal caso el programador ne-cesita ser cuidadoso para evitar condiciones de carrera (problema que sucede cuando diferentes hilos o proce-sos alteran datos que otros tambin estn usando), y otros comportamientos no intuitivos. Los hilos general-mente requieren reunirse para procesar los datos en el orden correcto. Es posible que los hilos requieran deoperaciones atmicas para impedir que los datos comunes sean cambiados o ledos mientras estn siendomodificados, para lo que usualmente se utilizan los semforos. El descuido de esto puede generar interblo-queo.

  • 8/14/2019 AYSO U04 Procesos 2007

    17/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 17 de 20

    Formas de multihilosLos sistemas operativos generalmente implementan hilos de dos maneras:

    Multihilo apropiativo: permite al sistema operativo determinar cundo debe haber un cambio de contexto. Ladesventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causan-do un fenmeno conocido como inversin de prioridades y otros problemas.

    Multihilo cooperativo: depende del mismo hilo abandonar el control cuando llega a un punto de detencin,lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.

    El soporte de hardware para multihilo desde hace poco se encuentra disponible. Esta caracterstica fue intro-ducida por Intel en el Pentium 4, bajo el nombre de HyperThreading.

    Usos ms comunesTrabajo interactivo y en segundo plano

    Por ejemplo, en un programa de hoja de clculo un hilo puede estar visualizando los mens y leer la entradadel usuario mientras que otro hilo ejecuta las rdenes y actualiza la hoja de calculo. Esta medida suele au-mentar la velocidad que se percibe en la aplicacin, permitiendo que el programa pida la orden siguiente an-tes de terminar la anterior.

    Procesamiento asncrono

    Los elementos asncronos de un programa se pueden implementar como hilos. Un ejemplo es como los soft-wares de procesamiento de texto guardan archivos temporales cuando se est trabajando en dicho programa.Se crea un hilo que tiene como funcin guardar una copia de respaldo mientras se contina con la operacinde escritura por el usuario sin interferir en la misma.

    Aceleracin de la ejecucinSe pueden ejecutar, por ejemplo, un lote mientras otro hilo lee el lote siguiente de un dispositivo.

    Estructuracin modular de los programas

    Puede ser un mecanismo eficiente para un programa que ejecuta una gran variedad de actividades, teniendolas mismas bien separadas mediante a hilos que realizan cada una de ellas.

    ImplementacionesHay dos grandes categoras en la implementacin de hilos:

    Hilos a nivel de usuarioHilos a nivel de Kernel

    Tambin conocidos como ULT (User Level Thread) y KLT (Kernel Level Thread)

    Hilos a nivel de usuario (ULT)]En una aplicacin ULT pura, todo el trabajo de gestin de hilos lo realiza la aplicacin y el ncleo o kernelno es consciente de la existencia de hilos. Es posible programar una aplicacin como multihilo mediante unabiblioteca de hilos. La misma contiene el cdigo para crear y destruir hilos, intercambiar mensajes y datosentre hilos, para planificar la ejecucin de hilos y para salvar y restaurar el contexto de los hilos.

    Todas las operaciones descritas se llevan a cabo en el espacio de usuario de un mismo proceso. El kernelcontinua planificando el proceso como una unidad y asignndole un nico estado (Listo, bloqueado, etc.).

    Ventajas de los ULT]

    El intercambio de los hilos no necesita los privilegios del modo kernel, por que todas las estructuras de datosestn en el espacio de direcciones de usuario de un mismo proceso. Por lo tanto, el proceso no debe cambiara modo kernel para gestionar hilos. Se evita la sobrecarga de cambio de modo y con esto el sobrecoste ooverhead.

  • 8/14/2019 AYSO U04 Procesos 2007

    18/20

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 18 de 20

    Se puede realizar una planificacin especfica. Dependiendo de que aplicacin sea, se puede decidir por unau otra planificacin segn sus ventajas.

    Los ULT pueden ejecutar en cualquier sistema operativo. La biblioteca de hilos es un conjunto compartido.

    Desventajas de los ULT]

    En la mayora de los sistemas operativos las llamadas al sistema (System calls) son bloqueantes. Cuando unhilo realiza una llamada al sistema, se bloquea el mismo y tambin el resto de los hilos del proceso.

    En una estrategia ULT pura, una aplicacin multihilo no puede aprovechar las ventajas de los multiprocesa-dores. El ncleo asigna un solo proceso a un solo procesador, ya que como el ncleo no interviene, ve al con-junto de hilos como un solo proceso.

    Una solucin al bloqueo mediante a llamadas al sistema es usando la tcnica de jacketing, que es convertiruna llamada bloqueante en no bloqueante.

    Hilos a nivel de ncleo (KLT)]En una aplicacin KLT pura, todo el trabajo de gestin de hilos lo realiza el kernel. En el rea de la aplica-cin no hay cdigo de gestin de hilos, nicamente un API (interfaz de programas de aplicacin) para la ges-tin de hilos en el ncleo. Windows 2000, Linux y OS/2 utilizan este mtodo. Linux utiliza un mtodo muyparticular en que no hace diferencia entre procesos e hilos, para linux si varios proceso creados con la llama-da al sistema "clone" comparten el mismo espacio de direcciones virtuales el sistema operativo los trata comohilos y lgicamente son manejados por el kernel.

    Ventajas de los KLT]

    El kernel puede planificar simultneamente mltiples hilos del mismo proceso en mltiples procesadores.

    Si se bloquea un hilo, puede planificar otro del mismo proceso.

    Las propias funciones del kernel pueden ser multihilo

    Desventajas de los KLT

    El paso de control de un hilo a otro precisa de un cambio de modo.

    Combinaciones ULT y KLT

    Algunos sistemas operativos ofrecen la combinacin de ULT y KLT, como Solaris.

    La creacin de hilos, as como la mayor parte de la planificacin y sincronizacin de los hilos de una aplica-cin se realiza por completo en el espacio de usuario. Los mltiples ULT de una sola aplicacin se asociancon varios KLT. El programador puede ajustar el nmero de KLT para cada aplicacin y mquina para obte-ner el mejor resultado global.

    SEMFOROUn semforo es una variable especial protegida (o tipo abstracto de datos) que constituye el mtodo clsicopara restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento delsistema o variables del cdigo fuente) en un entorno de multiprocesamiento (en el que se ejecutarn variosprocesos concurrentemente). Fueron inventados por Edsger Dijkstra y se usaron por primera vez en el siste-ma operativo THEOS.

    OperacionesLos semforos slo pueden ser manipulados usando las siguientes operaciones (este es el cdigo con esperaactiva):

  • 8/14/2019 AYSO U04 Procesos 2007

    19/20

    Arquitectura y Sistemas OperativosUNIDAD 4: PROCESOS

    Prof: Rubn Calabuig Ref: AYSO - U04 - Procesos - 2007.doc

    Pgina 19 de 20

    Inicia(Semforo s, Entero v)

    {s = v;

    }

    En el que se iniciar la variable semforo s a un valor entero v.P(Semforo s)

    {while (s >= 0); /* espera hasta que s < 0 */

    s = s-1;

    }

    La cual mantendr en espera activa al regido por el semforo si este tiene un valor inferior o igual al nulo.

    V(Semforo s){

    s = s+1;

    }

    Estas instrucciones pueden modificarse para evitar la espera activa, haciendo que la operacin P duerma almismo proceso que la ejecuta si no puede decrementar el valor, mientras que la operacin V despierta a unproceso que no es quien la ejecuta. En un pseudolenguaje ms entendible, la operacin P suele denominarse"wait" o "espera" y la operacin V "signal" o "seal".

    El por qu de los nombres de estas funciones, V y P, tienen su origen en el idioma holands. "Verhogen" sig-

    nifica incrementar y "Proberen" probar, aunque Dijkstra us la palabra inventada prolaag. que es una combi-nacin deprobeer te verlagen (intentar decrementar). El valor del semforo es el nmero de unidades del re-curso que estn disponibles (si slo hay un recurso, se utiliza un "semforo binario" con los valores 0 y 1).

    Si hay n recursos, se inicializar el semforo al nmero n. As, cada proceso, al ir solicitando un recurso, ve-rificar que el valor del semforo sea mayor de 0; si es as es que existen recursos libres, seguidamente aca-parar el recurso y decrementar el valor del semforo.

    Cuando el semforo alcance el valor 0, significar que todos los recursos estn siendo utilizados, y los proce-sos que quieran solicitar un recurso debern esperar a que el semforo sea positivo, esto es: alguno de losprocesos que estn usando los recursos habr terminado con l e incrementar el semforo con un signal oV(s).

    Inicia se utiliza para inicializar el semforo antes de que se hagan peticiones sobre l, y toma por argumentoa un entero. La operacin P cuando no hay un recurso disponible, detiene la ejecucin quedando en esperaactiva (o durmiendo) hasta que el valor del semforo sea positivo, en cuyo caso lo reclama inmediatamentedecrementndolo. Ves la operacin inversa: hace disponible un recurso despus de que el proceso ha termi-nado de usarlo. Las operaciones P y Vhan de ser indivisibles (o atmicas), lo que quiere decir que cada unade las operaciones no debe ser interrumpida en medio de su ejecucin.

    La operacin Ves denominada a veces subirel semforo (up) y la operacin P se conoce tambin como ba-jarel semforo (down), y tambin son llamadas signal y waito soltary tomar.

    Para evitar la espera activa, un semforo puede tener asociada una cola de procesos (normalmente una cola

    FIFO). Si un proceso efecta una operacin P en un semforo que tiene valor cero, el proceso es detenido yaadido a la cola del semforo. Cuando otro proceso incrementa el semforo mediante la operacin Vy hayprocesos en la cola asociada, se extrae uno de ellos (el primero que entr en una cola FIFO) y se reanuda suejecucin.

  • 8/14/2019 AYSO U04 Procesos 2007

    20/20