ProcesoseHilosIIcandados

download ProcesoseHilosIIcandados

of 53

Transcript of ProcesoseHilosIIcandados

  • 8/7/2019 ProcesoseHilosIIcandados

    1/53

    Procesos Hilos y Candados

    Procesos concurrentes

    Recursos crticos y seccin critica.

    Candados

    Algoritmo de Dekker, Peterson, Round Robin.

    Soluciones por hardware al problema de exclusinmutua.

    Semforos, Mutex. Monitores.

    Comunicacin entre procesos.

    Mensajes.

  • 8/7/2019 ProcesoseHilosIIcandados

    2/53

    Procesos Hilos y Candados

    Tuberas.

    Seales.

    Servicios Posix y Win32 para la coordinacin entreprocesos.

  • 8/7/2019 ProcesoseHilosIIcandados

    3/53

    Procesos concurrentesEn un equipo con un solo procesador, seejecutan procesos en un instante de tiempo,dichos procesos toman un pequeo espacio delprocesador (slice) se ejecutan y dan paso a otroprocesos, esto crea la idea de que variosprocesos se estn ejecutando en simultaneo,eso se llama concurrencia.

    Para la ejecucin optima la concurrencia planteala exclusin mutua que es el hecho de que unproceso respete que otro proceso se ejecute porun tiempo determinado sobre el procesador.

  • 8/7/2019 ProcesoseHilosIIcandados

    4/53

    Procesos concurrentesTiempo

    Proceso A Proceso A

    Proceso B Proceso B

    En sistemas con un solo procesador podemos ver en la figura que los procesos interactuanen el procesador pero no varios al mismo tiempo.

    Equipo con un solo procesador

    Procesos

  • 8/7/2019 ProcesoseHilosIIcandados

    5/53

    Procesos concurrentes

    En sistemas con mas de un procesador podemos observar como los procesos se

    superponen en el tiempo.

    Tiempo

    Proceso A Proceso A

    Proceso C Proceso C

    Procesos

    Proceso B

    Proceso B

    Proceso D

    Procesos

    Equipo con mas de unprocesador

  • 8/7/2019 ProcesoseHilosIIcandados

    6/53

    Procesos concurrentes

    regiones crticas (interbloqueo)

    Proceso A

    Proceso B

    T1 T2 T3 T4

    Regin crtica

    A est en la regin crtica

    Si B trata de entraren regin crtica de A

    B es bloqueado

    Regin crtica de B

    Como podramos solucionar el problema de la competencia deprocesos por el procesador?, una de las soluciones son las regionescrticas tratando de hacer respetar la exclusin mutua. Pero esto puedetraer el problema de que haya interbloqueo sea un recurso nunca esliberado por un proceso que lo esta usando (mas adelante en deadlockshablaremos de eso)

  • 8/7/2019 ProcesoseHilosIIcandados

    7/53

    Procesos concurrentes,

    regiones crticas (inanicin)

    Proceso A

    Proceso B

    T1 T2 T3

    Regin crtica

    A est en la regin crtica

    Proceso c

    B tambin est en la regincrtica

    Otro problema es la inanicin,hay 3 procesos A, B y C, el proceso Aesta usando su regin crtica, antes de vencerse su tiempo en el

    procesador se le concede el procesador al proceso B, esto genera unlazo o un deadlock y esto hace que el proceso C nunca entre alprocesador.

  • 8/7/2019 ProcesoseHilosIIcandados

    8/53

    Deadlocks o candadosEste comportamiento atpico de los procesos almanejar recursos (incluso el procesador), puede

    provocar lo que se conoce como candados, ascomo el interbloqueo o la inanicin. A continuacin,ahondamos en candados para verificar como secomportan, inicialmente analizando su teora,

    tocando incluso el tema de grafos y luego comoevitarlos, mediante el uso de semforos, mutexs,monitores, etc. En el laboratorio los vemos afectando

    una maquina y como solucionarlos.

  • 8/7/2019 ProcesoseHilosIIcandados

    9/53

    Deadlocks o candadosDefinicin: Un conjunto de procesos seencuentra en deadlock si cada proceso

    del conjunto est

    esperando por unevento que slo puede ser producido porotro proceso del mismo conjunto.

    Ej. Dos procesos cada uno esperandopor el otro ya sea para:

    1) Poner una bandera en verdadero ofalso.

    2) Envi de un mensaje.

    3) Entrega de un recurso.

  • 8/7/2019 ProcesoseHilosIIcandados

    10/53

    Candados

    Estar en presencia de un candado implica que en eltiempo de un proceso:

    Nunca pueda hacer lo que esta tratando de hacer o

    Nunca tome lo que esta tratando de tener.

    Retiene lo que posee e insiste en adquirir lo que desea y Existe una posibilidad de que el evento pudiera suceder.

  • 8/7/2019 ProcesoseHilosIIcandados

    11/53

    Un caso tpico de candados

    Equipo A efectapeticin porimpresora y lefue dada.

    Equipo A realiza unapeticin porescaner y este esbloqueado hasta queequipo B desbloquee

    el uso del escaner

    Equipo B realiza peticin de

    uso del escaner y le fueotorgada la peticin.

    Equipo B realizapeticin ahora por la

    impresora pero estasiendo usada por elequipo A, el procesoes bloqueado.

    A este punto las dos peticiones estnbloqueadas de forma indefinida esto es un

    candado.

  • 8/7/2019 ProcesoseHilosIIcandados

    12/53

    Candados y recursos

    Expropiativos (Preemptable) yNo expropiativos(Nonpreemtable)

    Expropiativo: Aquellos recursos quepueden ser extrados del procesopropietario sin que esto afecte a otroproceso.

    No Expropiativo: Es un recurso que nopuede dejar de ejecutarse de supropietario actual sin causar un fallo decomputacin.

  • 8/7/2019 ProcesoseHilosIIcandados

    13/53

    CandadosUn recurso excluyente puede ser resueltore alojando recursos de un lado (recurso) aotro.

    Nuestro enfoque ser a nonpreemptable(no expropiativos).

  • 8/7/2019 ProcesoseHilosIIcandados

    14/53

    Candados, petici

    n de recursosEl manejo de recursos en candados escomo sigue:

    1. Se realiza la petici

    n del recurso.2. Se usa el recurso.3. Se libera el recurso.

    Dependiendo del sistema operativocuando un recurso es pedido, se libera elrecurso o se bloquea el recurso hasta queel recurso que lo esta usando es liberado.

  • 8/7/2019 ProcesoseHilosIIcandados

    15/53

    Candados: Estrategias

    Estrategias para lidiar con candados:1.Ignorar el problema.2. Detectar y recuperar.3. Evitar candados en forma dinmica medianteasignacin de recursos cuidadosamente.

    4. Prevenir mediante la negaci

    n de cualquierade las cuatro condiciones necesarias para laocurrencia de un candado.

  • 8/7/2019 ProcesoseHilosIIcandados

    16/53

    Modelado de candados

    El proceso es representado por crculos, el recurso

    por cuadros.En (a) El recurso R esta asignado al proceso A.En (b) el proceso B esta solicitando el recurso S.En (c) hay una situacin de candado, T y U estnasignados por siempre a D y a C.

  • 8/7/2019 ProcesoseHilosIIcandados

    17/53

    Modelado de candados(2)

    Bsicamente el proceso A esta solicitando dos

    recursos, cada recurso es ejecutado hasta quefinaliza, esta forma de impedir los candados puedeser lenta.

    A AA B B

    R SRSRS

    B B

    R S

  • 8/7/2019 ProcesoseHilosIIcandados

    18/53

    Modelado de candados (3)

    En este esquema podemos ver como una situacinde candado es alcanzada siguiendo un esquema derecursos asignados a procesos en una formaordenada, en el ultimo paso vemos como el procesoC peticiona el proceso R creando una situacin decandado dado que el proceso A tiene asignado elrecurso R.

    BA c

    TSR

  • 8/7/2019 ProcesoseHilosIIcandados

    19/53

    Modelado de candados (4)

    Finalmente podemos ver que si el sistema operativoselecciona bloquear uno de los procesos y bloquea elproceso B, se puede ejecutar una situacin de nocandado si el proceso es bloqueado hasta que A use

    el recurso R, luego S, luego C ejecute R.

    BA c

    TSR

    BA c

    TSR

    BA c

    TSR

    BA c

    TSR

    BA c

    TSR

    BA c

    TSR

  • 8/7/2019 ProcesoseHilosIIcandados

    20/53

    Algoritmo del avestruz

    La estrategia ms sencilla es el algoritmo del avestruz: tal cualcomo reacciona un avestruz cuando se siente amenazado.Los matemticos consideran que es inaceptable y argumentanque los interbloqueos se deben evitar a toda costa.Los ingenieros se interrogan sobre la frecuencia del problema,la frecuencia con el que el sistema puede sufrir un candado porotras causas y la importancia de la ocurrencia de los candados.

    Si stos se presentan de una vez cada cinco aos, y lossistemas se ven impactados una vez al mes por errores en elhardware, en el compilador o en el sistema operativo.

  • 8/7/2019 ProcesoseHilosIIcandados

    21/53

    Dos ejemplos cl

    sicos

    Se llena un filesystem por falta de inodos, lasolucin: no hacer nada. Otro ejemplo es quese alcanza el mximo nmero de procesos enun sistema, a pesar de que se puede modifcar

    las variables, no hay una solucinpreestablecida, claros ejemplos de solucinpor algoritmo de avestruz.

  • 8/7/2019 ProcesoseHilosIIcandados

    22/53

    Detectar y recuperar

    El algoritmo inicia una lista en al que coloca recursos y procesos, sien algn momento en el chequeo de esta lista se detecta un lazoinfinito se detiene el algoritmo para liberar el recurso y el procesoque lo esta ejecutando.

  • 8/7/2019 ProcesoseHilosIIcandados

    23/53

    Detectar y recuperar en una

    matriz de ejemplo

    Para cumplir el algoritmo recordemos que:Observar por un proceso desmarcado, Pi, para el cual la i ava fila de R es menor oigual a A.Si tal proceso es encontrado aadir la i ava fila de C en A y volver al paso anterior.Si no existe el proceso el algoritmo termina.

  • 8/7/2019 ProcesoseHilosIIcandados

    24/53

    Otras formas de evitar candados,

    por estados seguros e inseguros.

  • 8/7/2019 ProcesoseHilosIIcandados

    25/53

    Inanicin, interbloqueo, recursos que

    no son manejados de formasatisfactoria por procesos, pueden serevitados con una solucin como los

    sem

    foros, para regular sucomportamiento o un semforobinario (mutex), las prximas laminashablan sobre estas soluciones.

    Como garantizar que no se

    genere un candado

  • 8/7/2019 ProcesoseHilosIIcandados

    26/53

    La solucin correcta de Dekker, se bas en trabajar conuna variable externa que permitiera ser cambiada almomento de entrar algn proceso a ejecutarse pero

    adems el proceso que trata de ejecutarse podraverificar el estado del proceso en la regin critica hastaque el estado fuese cambiado.

    Exclusin mutua, solucin de

    software, Dekker

  • 8/7/2019 ProcesoseHilosIIcandados

    27/53

    Exclusin mutua, soluciones

    por software, Peterson

    P(0) Seal (0) cierto, turno escolocado en (1)

    P(1) Seal (1) FALSO, turno escolocado en (0)

    Proceso ejecutandose Proceso bloqueado

    P(1) Seal (1) cierto, turno escolocado en (0)

    P(0) Seal (0) falso, turno escolocado en (1)

  • 8/7/2019 ProcesoseHilosIIcandados

    28/53

    Exclusin mutua, soluciones

    por software, desventajas

    Estos algoritmos as como algunos otros resuelvenel problema esencial pero crean tiempo ocioso delprocesador, debido al tiempo en que deben esperarpor la ejecucin de algn proceso.

    Es necesario considerar que de ser aplicados ensistemas con mltiples procesadores la memoriacompartida cumple un rol impotante (que lodiscutiremos mas adelante).

  • 8/7/2019 ProcesoseHilosIIcandados

    29/53

    Exclusi

    n mutua, sem

    foros

    Dos o mas procesos deben cooperar pormedio de seales, se obligara a unproceso a detenerse en un momentodeterminado hasta que el proceso recibauna seal determinada.

  • 8/7/2019 ProcesoseHilosIIcandados

    30/53

    Sem

    forosCondiciones generales:Se manejan seales para el semforo.Se definen dos tipos de seales con distintas repercusiones cada una:down: recibe una seal, decrementa el valor de la seal en uno y se

    bloquea el proceso.up: transmite una seal, incrementa el de la seal en uno, pasa elproceso a la cola de listo.Existe una cola de procesos.Existe una cola de procesos listos y una cola de procesos bloqueados.Si el valor del semforo es 0 el chequeo y el cambio de la seal se har

    de forma at

    mica

    sea como un todo.Se garantiza que ser ejecutado el proceso o hasta que termina o hastaque sea bloqueado.Si el valor es menor a cero se bloquea el proceso.

  • 8/7/2019 ProcesoseHilosIIcandados

    31/53

    Semforo S variable entera S. solo puede ser accesada mediante dos

    operaciones atmicas: wait(S): S:= S 1;

    if S < 0 then block(S);

    signal(S): S:= S+1;

    if S 0 then wakeup(S);

    block(S) provoca la suspensi n del proceso que la invoca.

    wakeup(S) provoca que un proceso bloqueado siga con suejecucin.

    Semforo: Herramienta desincronizacin

  • 8/7/2019 ProcesoseHilosIIcandados

    32/53

    Semforos

    Los procesos siguen una poltica de FIFO,el proceso que mas tiempo tenga en lacola se debe liberar. La ejecucin debe seratmica (se ejecuta hasta que finaliza).

  • 8/7/2019 ProcesoseHilosIIcandados

    33/53

    Productores consumidoresEl problema:Dos procesos comparten un buffer detamao fijo.El productor coloca procesos en el buffer.El consumidor los extrae.El problema radica cuando el productorquiere colocar un proceso en el buffer peroeste esta full o el consumidor quiereextraer un proceso pero el buffer estavaco.

  • 8/7/2019 ProcesoseHilosIIcandados

    34/53

    Semforo, una solucin

    simulada.

    http://wwwdi.ujaen.es/~lina/TemasSO/CONCURRENCIA/ProductorConsumidor/problema_del_productor_consumidor_resuelto_c

    on_semaforos.html

  • 8/7/2019 ProcesoseHilosIIcandados

    35/53

    Mutexs

    Cuando la disponibilidad de un contador enun semforo no es necesario, un mutexspuede ser habilitado, es til enprogramacin hilada, el mutex puede estarbloqueado o desbloqueado.

  • 8/7/2019 ProcesoseHilosIIcandados

    36/53

    Mutex

    Los mutexes son buenos para paqueteshilados en el espacio de usuario.

  • 8/7/2019 ProcesoseHilosIIcandados

    37/53

    Como funciona el mutex?

    El mutex tiene dos estados posibles: bloqueado y

    desbloqueado, se usa el valor 0 para representardesbloqueado y el valor 1 o cualquier entero parabloqueado.Cuando un proceso o hilo necesita ser ejecutadoeste llama al procedimiento mutex_lock, esteverifica si el mutex esta desbloqueado, de ser asel proceso es pasado a la regin crtica.

  • 8/7/2019 ProcesoseHilosIIcandados

    38/53

    Como funciona mutex (cont)

    Si el mutex esta ya bloqueado entonces el

    proceso es bloqueado hasta que el hilotermine de ejecutarse, en ese momento sellamara a mutex_unlock, si mltiplesprocesos estn bloqueados en el mutex

    uno de ellos es seleccionadoaleatoriamente y ejecutado.

  • 8/7/2019 ProcesoseHilosIIcandados

    39/53

    Consideraciones importantes

    con mutex

    El mutex como es descrito antes, es un

    esqueleto de llamadas a procedimientos,se asume que al igual que en el caso desemforos podramos estar hablando deuna sola direccin de memoria para el

    manejo de distintos procesos.

  • 8/7/2019 ProcesoseHilosIIcandados

    40/53

    Monitores

    Un monitor es una coleccin deprocedimientos, variables y estructuras de

    datos que son agrupados juntos en unaespecie de paquete o modulo. Se usa enmuchas oportunidades para reportar unerror de sistema operativo, mediante eluso de sus variables.

  • 8/7/2019 ProcesoseHilosIIcandados

    41/53

    Monitores, algunas

    condiciones

    Un proceso entra al monitor invocando uno de sus

    procedimientos.Los procesos llaman a los procedimientos delmonitor, dentro del monitor, pero no pueden hacerlodesde estructuras externas.

    Solo un proceso puede estar ejecutndose dentrodel monitor, cualquier otro proceso que invoque elmonitor se bloqueara hasta que el primer procesoabandone el monitor.

  • 8/7/2019 ProcesoseHilosIIcandados

    42/53

    Monitores, como garantizamos

    que se cumplan?

    Para garantizar que un proceso sea bloqueado odesbloqueado en el momento oportuno se utiliza lasincronizacin mediante variables de condicin, lasvariables de condicin son estructuras especiales

    que se ejecutarn mediante dos funciones:

  • 8/7/2019 ProcesoseHilosIIcandados

    43/53

    Monitores, variables condicin,

    funciones

    Espera (condicin): Suspender la ejecucin delproceso llamado bajo condicin. El monitor estarahora disponible para ser usado por otro proceso.Seal (condicin): Reanudar la ejecucin de algn

    proceso suspendido despus de espera bajocondicin. Si hay varios procesos, elige a uno deellos, si no hay ninguno, no hace nada.

  • 8/7/2019 ProcesoseHilosIIcandados

    44/53

    Monitores en lneas generales

  • 8/7/2019 ProcesoseHilosIIcandados

    45/53

    Comunicacin entre procesos

    Los procesos se pueden comunicar entresi mediante mecanismos tales comocompartir memoria, se siguen reglasconocidas como protocolos decomunicacin, se siguen protocolos de redcomo IP, protocolo de control detransmisin, protocolos como

    transferencias de hipertexto.

  • 8/7/2019 ProcesoseHilosIIcandados

    46/53

    Tipos de comunicacin

    Sncrona: Se ejecuta en simultaneo, uno enva, el otro recibe.Asncrona: Quien enva sigue su ejecucin despus de enviar elmensaje al receptor. Puede tener un buffer medio para manejarrespuestas.Persistente: El mensaje se puede encolar y entregarse cuando serealiza la peticin del receptor.Momentanea: El receptor no tiene por que encolar mensajes para sucomunicacin (Ej.: e Mail, sockets, mpi, etc)Directa: Las primitivas enviar y recibir explicitan el nombre delproceso con el que se comunican.Indirecta: La comunicacin indirecta se implementa mediante

    puertos, en alguna bibliografa se lo denomina buzones. Para podercomunicarse los procesos deben compartir el puerto.Simtrica: Todos los procesos pueden enviar o recibir.Asimtrica: Un proceso puede enviar, los dems procesos soloreciben.

    http://es.wikipedia.org/wiki/Puerto_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/Puerto_%28computaci%C3%B3n%29
  • 8/7/2019 ProcesoseHilosIIcandados

    47/53

    Comunicacin entre procesos

    RPC: Llamadas a procedimientos remotos, Hay uncliente y un servidor.Paso de parmetros: Cada sistema operativo puedehablar su propio idioma: Mainframe EBCDIC, o PC deIBM: ASCII.Intel: little endian, Sun SPARC: big endian.RMI: Invocacin remota de mtodos:La idea es tener objetos distribuidos. Para acceder al

    estado de un objeto slo se realiza a travs de mtodosdefinidos por un objeto interface. Un objeto ofrecemltiples interfaces. Una interface puede serimplementada por mltiples objetos.

  • 8/7/2019 ProcesoseHilosIIcandados

    48/53

    Paso de mensajes

    Conocido tambin como MPI (Message PassingInterface). No usa memoria compartida.Dependiendo si es sncrona utiliza dos primitivas,invocadas por llamadas al sistema:

    Enviar (destino, mensaje).Recibir (fuente, mensaje).Si es asncrona solo utiliza Enviar (destino, mensaje)

  • 8/7/2019 ProcesoseHilosIIcandados

    49/53

    Paso de mensajes

    Puede ser manejado por acknowledge, los cuales

    notifican cuando es satifactora la transmisi

    n, si elack no es recibido en un intervalo de tiempo el

    mensaje es retransmitido, puede darse el caso queel mensaje llegue pero el acknowledge se pierdaesto se resuelve colocando nmeros desecuencias, si el nmero de secuencias es igual elmensaje se descarta.

  • 8/7/2019 ProcesoseHilosIIcandados

    50/53

  • 8/7/2019 ProcesoseHilosIIcandados

    51/53

    Tuberas

    La salida de un proceso esta ligada a laentrada de otro proceso.El tema principal esta en la herencia de la

    salida o resultado de un proceso por otroproceso.En sistemas multitarea todos los procesosse inician simultneamente, se atendern

    todas las lecturas de forma simultaneapara la salida del proceso anterior.Se implementa en algunas oportunidadesusando buffers.

  • 8/7/2019 ProcesoseHilosIIcandados

    52/53

    Seales

    Se podra afirmar que una seal es unacomunicacin limitada entre procesos, esuna especie de notificacin asncrona

    empleada para avisarle a un proceso deun evento, cuando se enva una seal a unproceso, el sistema operativo modifica laejecucin del proceso.

    En unix el SystemCall Kill enva sealespor defecto a los procesos .

  • 8/7/2019 ProcesoseHilosIIcandados

    53/53

    Posix y Win32MtodoMtodo Provisto por (Sistema Operativo u otro ambiente )Provisto por (Sistema Operativo u otro ambiente )

    Archivo Todos los Sistemas Operativos.

    Seal

    La mayora de los Sistemas Operativos; algunos, comoWindows, solo implementan seales en las liberas de Crun-time de C y actualmente no proveen soportes paro suuso como tcnica de IPC.

    Socket La mayora de los Sistemas Operativos.

    Tubera / Pipes Todos los sistemas POSIX.

    Named pipe Todos los sistemas POSIX.

    Semforo Todos los sistemas POSIX.

    Memoria compartida Todos los sistemas POSIX.

    Mensajes Usado en el paradigma MPI, Java RMI, CORBA y otros.

    Mapa de MemoriaTodos los sistemas POSIX. Windows tambin es apto paraesta tcnica, las APIs usadas son especficas de estaplataforma.

    Cola de Mensajes La mayora de los Sistemas Operativos.

    puertos Algunos Sistemas Operativos.

    http://es.wikipedia.org

    http://es.wikipedia.org/wiki/Archivo_inform%C3%A1ticohttp://es.wikipedia.org/wiki/Se%C3%B1alhttp://es.wikipedia.org/wiki/Windowshttp://es.wikipedia.org/wiki/Sockethttp://es.wikipedia.org/wiki/Pipeshttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Named_pipehttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Sem%C3%A1foro_%28programaci%C3%B3n%29http://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/MPIhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/CORBAhttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Puerto_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/Puerto_%28computaci%C3%B3n%29http://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/CORBAhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/MPIhttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Sem%C3%A1foro_%28programaci%C3%B3n%29http://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Named_pipehttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Pipeshttp://es.wikipedia.org/wiki/Sockethttp://es.wikipedia.org/wiki/Windowshttp://es.wikipedia.org/wiki/Se%C3%B1alhttp://es.wikipedia.org/wiki/Archivo_inform%C3%A1tico