ProcesoseHilosIIcandados
-
Upload
darioleonz -
Category
Documents
-
view
215 -
download
0
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