Hilos y Sincronizacion de Procesos

download Hilos y Sincronizacion de Procesos

of 26

Transcript of Hilos y Sincronizacion de Procesos

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    1/26

    HILOS,COMUNICACIN

    YSINCRONIZACIN DE

    PROCESOS

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    2/26

    Hilos.

    Un hiloes una ejecucin de programa queusa los recursos de un proceso, tiene supropia pila y su propio estado del CPU.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    3/26

    El uso de procesos para proveconcurrencia dentro de una aplicacin una gran cantidad de conmutacionsobrecarga del proceso, los hilos provemtodo de bajo costo de implementacla concurrencia, que sirve para ciertas

    de aplicaciones.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    4/26

    La conmutacin de la sobrecarga delproceso tiene dos componentes.

    Sobrecarga relacionada con la ejecucin: unproceso se define como la ejecucin de unprograma. Por lo tanto al conmutar procesos, el

    estado del CPU del proceso en ejecucin tieneque salvarse y el del CPU de un nuevo procesotiene que cargarse en el CPU.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    5/26

    Sobrecarga relacionada con el uso

    recurso: el ambiente del proceso coninformacin relativa a los recursos asiga un proceso y su interaccin con procesos. Conduce a un tamao gran

    informacin del estado de proceso, loacrecienta la sobrecarga de conmutaciproceso.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    6/26

    Las ventajas de los hilos.

    Sobrecarga baja. El estado de hilo consiste solamestado de un cmputo. El estado de asignacin de restado de comunicacin no es parte del estado del conduce a una sobrecarga baja del intercambio.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    7/26

    Aceleracin. La concurrencia dentroproceso puede obtenerse mediante la creahilos. Esta tcnica puede acelerar la ejecuuna aplicacin tanto en los uniprocesadoren los multiprocesadores.

    Comunicacin eficiente.los hilos de un

    pueden comunicarse entre s a travs delcompartido de datos, evitando de esta fsobrecarga de las llamadas al sistema comunicacin.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    8/26

    Implementacin de hilos.

    Los hilos en el nivel del kernel.

    Un hilo a nivel de kernel es implementado por ePor tanto, la creacin y la terminacin de los en ese nivel y la comprobacin de su statu

    realizan a travs de las llamadas de sisteanlogos. Cuando un proceso hace una llamadsistema el kernel le asigna un id y asigna un blode control de hilos.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    9/26

    Ventajas y desventajas:

    Un hilo en el nivel de kernel es como un procesporque tiene una cantidad ms pequea de infoestado, es decir, tiene un estadoms delgado

    Esta similitud entre hilos y procesos es convelos programadores: la planificacin para hdiferente a la planificacin para los procesos. multiprocesador, los hilos en el nivel de kernel f

    de un proceso pueden planificarse simultneame

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    10/26

    Hilos en el nivel de usuario.

    Estos se implementan mediantbiblioteca del hilo, que se enlaza cdigo de un proceso.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    11/26

    Ventajas y desventajas:

    La biblioteca del hilo implementa la sincronizacin y lade los hilos. Este evita la sobrecarga de una llamada

    para la comunicacin y la sincronizacin entre hilos, sobrecarga de la conmutacin de hilos es ms pequehilos en el nivel del kernel. Este arreglo tambin le peproceso usar una poltica de planificacin que se ajustnaturaleza. Un proceso que implementa una para atiempo real puede usar la planificacin basada en priorhilos para encontrar sus requisitos de respuesta, mieproceso que implementa a un servidor multihilos puplanificacin de hilos.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    12/26

    Problemas clsicos de comunicacin ysincronizacin.

    Las secciones crticas y la sealizacin sonlos elementos clave de la sincronizacin deprocesos. La solucin para un problema desincronizacin de procesos deber usar una

    combinacin adecuada de estos elementos.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    13/26

    Productores/consumidores con bufferacotado.

    Buffer es el espacio en memoria asignado.

    Consiste en un nmero no especificado de procesos productores y consumidores,as como un rea central de memoria finita para buffers. Cada buffer es capaz decontener un registro de informacin; se dice que est lleno cuando un productorgraba en l, y vaco cuando un productor copia un registro contenido en l, en uninicio el buffer esta vaco.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    14/26

    Una solucin para el problema deproductores/consumidores debe cumplir con lassiguientes condiciones.

    1. Un productor no debe sobrescribir en un buffer lleno.

    2. Un consumidor no debe consumir de un buffer vaco.

    3. Productores y consumidores deben acceder a buffers de manera

    mutuamente exclusiva

    4. Las informaciones deben consumirse en el mismo orden aplicado paracolocarlas en los buffers, es decir, en orden FIFO (primero en entrarprimero en salir).

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    15/26

    Lectores y escritores.

    Consiste en una serie de procesos que usan algunos datoscompartidos. Un proceso que solo lee los datos es el lector, uno quelos modifica o actualiza es el escritor. Usamos los trminos lectura yescritura para referirnos a accesos a los datos compartidos realizadospor procesos de lectores y escritores, respectivamente.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    16/26

    Las condiciones de correccin para el problema delectores/escritores son las siguientes:

    A. Muchos lectores pueden realizar la lectura en formaconcurrente.

    B. La lectura est prohibida mientras un escritor escribe.

    C. Solo un escritor puede realizar escritura en cualquiermomento dado.

    D. Un lector tiene una prioridad o preferente sobreescritores, es decir, obtendr acceso a los datoscompartidos antes que un escritor en espera, pero notendr preferencias sobre un escritor activo.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    17/26

    Mecanismos de comunicacin ysincronizacin de procesos.

    En general se habla de sincronizacin deprocesos cuando un proceso p1 requiereque un proceso p2 realice alguna accinpara continuar.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    18/26

    Semforos.

    La herramienta de sincronizacin ms general son los

    semforos. Estos son herramientas de sincronizacin deprocesos que tiene asociada una estructura de datos(descriptor del semforo), una variable enteraid_semaforo que almacena el valor del semforo y unacola de procesos detenidos en el semforo. Una de susprincipales caractersticas es que cada operacin esindivisible, debiendo ser ejecutada globalmente en todassus fases sin intercalacin de ninguna otra.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    19/26

    Las operaciones bsicas sobre lossemforos son:

    Espera: cuando se realiza una operacin de espera, elvalor de la variable asociada con el semforo ser elresponsable de la sincronizacin entre los diversosprocesos, de forma que si la variable id_semafor >0 se

    permite el paso a los procesos incondicionalmente (elsemforo esta verde, y en caso contrario id_semafor = 0,el proceso llamador pierde el control del procesador y esaadido a la cola del semforo (el semforo esta rojo).

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    20/26

    Sealizador: cuando se realiza esta operacin y

    hay procesos detenidos en la cola del semforo,el primero de la cola ser autorizado a continuar.Si la operacin se realiza sin procesos detenidos,la variable del semforo se incrementa. Si hayprocesos detenidos en la cola del semforo

    entonces pasar un proceso de la cola del semforoa la cola de procesos preparados en casocontrario id_semforo := id_semaforo+1.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    21/26

    Eventos: los eventos son mecanismos desincronizacin que tiene asociadas dos primitivasdenominadas dormir y despertar.

    Dormir: cuando se realiza una operacin de dormir unevento, el proceso solicitante pierde el control delprocesador y es aadido a la cola de procesosdetenidos en la cola el evento.

    Despertar: cuando se realiza la operacin de despertarsobre un evento todos los detenidos en la cola delevento son pasados a la cola del procesador. Si nohubiera procesos detenidos en la cola del evento, lallamada no tiene efecto ninguno.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    22/26

    Comunicacin de procesos.

    En general se habla de comunicacin de procesos cuandoun proceso requiere intercambiar informacin con otroproceso. Para que dos procesos puedan intercambiarinformacin debern sincronizarse par que el procesoreceptor espere por el emisor en el caso de que este no

    haya enviado el mensaje o viceversa.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    23/26

    Las operaciones para la comunicacin de

    procesos que se describen a continuacinsuponen la existencia de unalmacenamiento intermedio (buzn) paraalmacenar los mensajes enviado y norecibidos.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    24/26

    Un buzn sirve como lugar de encuentro entre procesos ymensajes. Un proceso puede enviar un mensaje a un

    buzn y otro proceso comunicarse con el retirandomensajes del mismo buzn. Todo buzn tiene asociada unacola de procesos detenidos en el buzn y una cola demensajes pendientes de recibir. En la cola de procesosdetenidos en el buzn estarn todos los procesos quehayan intentado extraer mensajes del buzn, cuando elbuzn estaba vaco.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    25/26

    Enviar buzn:

    Eta operacin permite que un proceso envi un mensaje aun buzn existente en el sistema.

    Al enviar un mensaje a un buzn se comprueba si existenprocesos detenidos en la cola de procesos del buzn,seleccionamos al primero de la lista, le autorizamos acontinuar y el enviamos el mensaje.

  • 7/23/2019 Hilos y Sincronizacion de Procesos

    26/26

    Recibir:

    Esta operacin permite que un proceso retire un mensaje

    de un buzn y que dicho mensaje sea recibido por elproceso que realizan la llamada. Al realizarse la llamadase comprueba si existe algn mensaje en la cola demensajes del buzn y en caso afirmativo se copia elmensaje en el proceso llamador y se cede el control a unode los procesos preparados. Se puede producir un error al

    intentar recibir un mensaje de un buzn.