Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Autor Mensaje
Alejandro Sin conexión
Militante
nada
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 85
Agradecimientos dados: 5
Agradecimientos: 269 en 22 posts
Registro en: Apr 2008
Mensaje: #1
[Sistemas Operativos] VoF de Finales (Sincronización y Deadlock) Finales Sistemas Operativos
Aporto VoF de finales resueltos, solo de Sincronización y Deadlock, algunos resueltos por mi y otros los encontré resueltos, la idea es debatir cuales estan mal.

Una condición de carrera (Race Condition) ocurre cuando, independientemente del orden de ejecución de dos o más procesos, el recurso compartido queda siempre en un estado inconsistente.
Falso, la condición de carrera es una situación en la cual múltiples hilos o procesos leen y escriben un dato compartido y el resultado final depende del orden de la ejecución de instrucciones en los múltiples procesos.

La diferencia fundamental entre competencia y cooperación de procesos es que en la primera la sincronización es realizada solamente por los procesos, mientras que en la segunda necesariamente debe participar el sistema operativo.
Falso, Es al revés. En la competencia, la sincronización es realizada por el sistema operativo, mientras que en la cooperación, es realizada por los procesos.

Con el paralelismo independiente, no existe sincronización explícita entre los procesos.
Verdadero, cada uno representa una separación, una aplicación independiente.

Una falla en el mecanismo de sincronización de procesos concurrentes puede generar el fenómeno de inversión de prioridades.
Verdadero ya que si un proceso de menor prioridad lockea un recurso necesario por ambos procesos el proceso de mayor prioridad no podrá continuar hasta que el otro haya finalizado.

Sistemas que utilizan soluciones hardware para garantizar la mutua exclusión pueden presentar el problema de inversión de prioridades.
Verdadero, las soluciones por hardware hacen que los procesos se amontonen cuando no pueden entrar a la sección critica, cuando un proceso puede entrar a esta la selección es arbitraria.

La instrucción Test and Set, no sujeta a interrupción, como una solución hardware al problema de la exclusión mutua se define como sigue: La instrucción comprueba el valor de su argumento i. Si el valor es 1, entonces la instrucción reemplaza el valor por 0 y devuelve cierto. En caso contrario, el valor no se cambia y devuelve falso.
Falso. Si el valor es 0, entonces la instrucción reemplaza el valor por 1 y devuelve cierto. En caso contrario, el valor no se cambia y devuelve falso. Stallings Pág. 213

La gran desventaja que tienen las instrucciones TSL (test and set instructions) es que no pueden trabajar en sistemas con múltiples procesadores, lo que si pueden ser realizado por los semáforos.
Falso, los TSL son ideales para múltiples procesadores aunque no previene que hay deadlock o starvation.

El algoritmo de Peterson es una estrategia para la sincronización de procesos.
Verdadero. Si consideramos que la mutua exclusión es un método de sincronización de procesos que permite no compartir una región crítica podemos decir que el el Algoritmo de Peterson es una estrategia para la sincronización de procesos ya que es una estrategia para la mutua exclusión. Sin embargo, si se considera que la mutua exclusión es un concepto independiente de la sincronización, es decir que la mutua exclusión no es un metodo de sincronización de procesos, la respuesta sería FALSA.

Si sincronizo KLTS o procesos mediante semáforos y por lo menos tantas pruebas de escritorio como cantidad de semáforos se han colocado, funcionan correctamente, se puede inferir que la sincronización está bien realizada y funcionará correctamente.
Falso porque depende del orden en que se ejecuten los procesos.

La variable interna que guarda el valor del semáforo sólo puede ser modificada utilizando las funciones wait y signal (o sus equivalentes p y v, down y up, etc).
Falso, también es modificada al inicializarse

La sincronización de procesos mediante semáforos permite liberar al procesador más rápidamente cuando un proceso no consigue un recurso.
Verdadero porque cuando sea hace un wait y no se consigue el recurso se bloquea el proceso permitiendo atender a otro proceso.

El pasaje de mensajes es útil para la comunicación entre procesos pero necesita de los semáforos para realizar la mutua exclusión.
Falso. El pasaje de mensajes es uno de los modelos de comunicación entre procesos más comunes (junto con el de memoria compartida), es suficiente para la mutua exclusión; y no necesita el uso de semáforos. El paso de mensajes puede ser directo o indirecto a través de mailboxes (buzones).

Los semáforos son herramientas que se emplean únicamente para resolver el problema de la exclusión mutua y para ello, basta con implementar un semáforo MUTEX.

Falso, también existen semáforos contadores para cuando el recurso tiene varias instancias.

En los semáforos sin espera activa se utiliza una cola asociada para los procesos que esperan. Esto puede provocar en algunos procesos starvation, porque el algoritmo para dar de baja en la cola no necesariamente tiene que ser de tipo FIFO.
Falso. Ningún semáforo presenta espera activa, y todos los semáforos tiene una cola asociada para los procesos que esperan. Un semáforo que no especifica el orden en que los procesos son extraídos de la cola es un semáforo débil. Los semáforos que utilizan FIFO para extraer procesos de la cola de bloqueados se conocen como semáforos fuertes.[Stallings, 5ª ed. Esp., Pg. 218].

Un semáforo es una función protegida por el sistema operativo que permite sincronizar el acceso a un recurso dentro de un ambiente multiprogramado.
Falso, un semáforo no es una función.

Si se tienen dos procesos concurrentes que utilizan algún mecanismo de sincronización, entonces no pueden estar simultáneamente dentro de una región crítica.
Falso, podrían estar dentro de una región crítica si se sincronizó con semáforos contadores.

Cuando un proceso quiere ingresar a una variable compartida, debe ejecutar un semáforo para preservar la mutua exclusión.
Falso. Los semáforos no se ejecutan, lo que se ejecutan son instrucciones P/down/wait() o V/up/signal() sobre los semáforos.

Los pipes en Unix son archivos cuyo funcionamiento puede aprovecharse para la sincronización de procesos.
Verdadera, los pipes tienen file descriptors y se puede trabajar con las funciones de archivos y además permiten sincronización a través del modelo productor consumidor.

Los monitores son una colección de procedimientos, variables y estructuras de datos que se agrupan en un cierto tipo de módulo particular y garantizan la exclusión mutua por si solos.
Verdadero, por definición.

Si un proceso, ejecutando código de un procedure de un monitor, ejecuta una operación WAIT sobre una variable condición, el proceso espera “dentro” del monitor en una cola de procesos bloqueados asociada a dicha variable
Falso. Si el proceso queda bloqueado pero como “ejecutando” dentro de un monitor, ningún otro proceso podrá acceder a la variable condición (sobre la cual el proceso original hizo el WAIT) para hacer el SIGNAL correspondiente que despierte al proceso dormido. Recordar que cualquier acceso a una variable condición definida en un monitor DEBE hacerse ejecutando código del mismo, y que solamente un único proceso puede figurar como “ejecutando” código del monitor en un momento dado (por la exclusión mutua que estas construcciones proveen); cualquier otro proceso que haya invocado al monitor se bloquea en espera de que quede disponible.

Los monitores son un mecanismo más fácil de usar que los semáforos, aunque tienen la desventaja de que sólo sirven para garantizar la mutua exclusión.
Verdadero, sólo un proceso se puede estar ejecutando dentro del monitor al mismo tiempo, cualquier otro proceso que haya invocado al monitor se bloquea, en espera que el monitor quede disponible.

Si dentro de un monitor se tienen varios procesos suspendidos en una condición “X” y un proceso ejecuta un signal() en esa condición, el orden de ejecución del próximo proceso suspendido es LIFO.
Falso. Es FIFO. [Silberchatz-Galvin, 7ª ed. Esp., Pg. 191].

En monitores con notify y broadcast, si el proceso que ejecuta un signal no termina su ejecución dentro del monitor, entonces son necesarios dos cambios de procesos (processes switch).
Verdadero, ocurre cuando cambia el modo de usuario a kernel y de kernel a usuario.

A pesar de implementar monitores como mecanismo de sincronización, en Java es posible implementar una solución del problema de los filósofos.
Verdadero, con los monitores también se puede sincronizar los procesos. Los monitores garantizan la sincronización necesaria para la resolución del problema de los filósofos.

Cuando un proceso que se encuentra dentro de un monitor realiza una operación WAIT sobre una variable de condición, el proceso espera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condición.
Falso, espera dentro del monitor por esa condición. En monitores la operación WAIT no existe, sino que la primitiva se llama CWAIT.

El término espera activa (busy waiting) se refiere a que un proceso no puede hacer nada o ejecutar hasta obtener permiso para entrar en su región crítica.

Falso. Busy Waiting (espera activa) se refiere a que el proceso entra en un ciclo (while, for) preguntando por una condición y hasta que no se cumpla esa condición el proceso no sale del ciclo. [Stallings, 5ª ed. Esp., Pg. 213].

El Bussy Waiting se produce siempre que un proceso ejecuta un ciclo y tiene como desventaja que empeora la performance del sistema.
Falso, un proceso con espera activa empeora la performance del sistema porque usa tiempo de procesador para esperar un recurso.

La técnica para evitar la Inanición (Starvation) es matar al proceso que no consigue el recurso.
Falso. Un proceso que sufre de inanición precisamente necesita que se le asigne el recurso que espera, si eliminamos ese proceso se termina la inanición de éste a un costo muy alto, ya que el proceso nunca habrá concluido su trabajo satisfactoriamente (muerte por inanición). (“seria como curar una enfermedad matando al paciente”). La inanición se puede evitar mediante una correcta sincronización de procesos que compiten por recursos críticos. Ahora cuando se produce un deadlock, eliminar procesos que intervienen en él si es una alternativa (pero no es una técnica para evitarlo, sino para recuperarse de un deadlock). Otra alternativa de recuperación es la apropiación de recursos, desalojar en forma sucesiva recursos de proceso y asignarlos a otros hasta que se interrumpe el deadlock.[Stallings, 5ª ed. Esp., Pgs. 203, 209].

Únicamente se produce starvation por el uso inadecuado de herramientas de sincronización.
Falso, también puede ocurrir por una mala planificación. Puede producirse starvation en la utilización de herramientas de planificación. Por ejemplo en la utilización de SPN (Shortest Process Next) en la planificación de procesos, puede, en algunos casos, producirse starvation con los procesos largos.

El problema de los lectores/escritores puede tratarse como una situación particular del productor/consumidor, pero la solución sería extremadamente ineficiente.
Falso, un productor no es solo un escritor y un consumidor no es solo un lector, el productor y el consumidor utilizan punteros para ver donde escribir y ver si el buffer está lleno o vacío, mientras los lectores consumidores no.

Que ciertas instrucciones se ejecuten de forma atómica significa que no se pueden ejecutar concurrentemente.
Falso, significa que es una operación que no es interrumpida hasta que finaliza su procesamiento, se podrían ejecutar concurrentemente en en distintos procesadores.

La Mutua Exclusión de dos secciones críticas asegura que éstas se ejecuten atómicamente en forma concurrente.
Falso, una operación atómica significa que no es interrumpida hasta que finaliza su procesamiento.

Es deseable que todos los procesos (o al menos de misma prioridad) tengan la misma probabilidad de adquirir recursos.
Verdadero, si un proceso tuviese una probabilidad muy baja de adquirir un recurso y a su vez este está reteniendo muchos otros recursos que son requeridos por otros procesos es poco deseable porque tardaría mucho tiempo para liberar sus recursos.

Una de las ventajas que posee el mecanismo de inhabilitar y habilitar las interrupciones para lograr mutua exclusión es que nunca podrá generarse deadlock ni starvation entre procesos.
Falso, en una arquitectura multiprocesador, el mecanismo de inhabilitar y habilitar las interrupciones no garantiza exclusión mutua pero con un solo procesador sí.

En un sistema multiprocesador, deshabilitar las interrupciones de un procesador es suficiente para solucionar el problema de la sección crítica.
Falso, ya que si se deshabilitan las interrupciones, otro procesador puede estar ejecutando en la sección critica que se intenta entrar.

La inhabilitación de interrupciones como mecanismo para garantizar la exclusión mutua a una sección crítica tiene sentido en Sistemas Operativos con multiprocesamiento.
Falso, ya que si se deshabilitan las interrupciones, otro procesador puede estar ejecutando en la sección critica que se intenta entrar.

En un sistema multiprocesador, deshabilitar las interrupciones no garantiza la mutua exclusión.
Verdadero. ya que si se deshabilitan las interrupciones de un procesador, otro procesador puede estar ejecutando en la sección critica que se intenta entrar.

Los conflictos involucrados en un Deadlock se deben a 2 o más procesos y no a la necesidad de recursos que necesitan esos procesos
Falso, se debe a los recursos que necesitan los procesos . [Stallings, 5ª ed. Esp., Pg. 266].

En un Sistema que contiene una única instancia de cada recurso, la espera circular es una condición necesaria y suficiente para la existencia de Deadlock.
Falso, las 4 condiciones de Coffman deben cumplirse para que exista deadlock.

La cuarta condición de Coffman (Espera Circular) es necesaria y suficiente para la existencia de deadlock si se tiene un sistema con recursos de una sola instancia.
Verdadero, porque todos los procesos en ese conjunto están esperando por un recurso retenido por otro proceso en el conjunto.

Una de las formas de prevención del deadlock es eliminar la condición de mutua exclusión, sobre los recursos.
Verdadero porque al compartir los recursos se dejaría de cumplir una de las 4 condiciones necesarias para la existencia de deadlock.

En el análisis de un grafo se asignación de recursos si los recursos no son compartibles y hay un ciclo, entonces hay un deadlock.
Falso, se tienen que cumplir las otras 2 condiciones necesarias: "sin desalojo" y "retencion y espera".

Si en un conjunto de procesos existe una espera circular es probable que existe o se pueda producir un deadlock.
Verdadero, es condición necesaria pero no suficiente.

Si existe una función F: R --> N que asocia a cada recurso un número natural y un proceso que posee un recurso Ri puede solicitar otro recurso Rj si y sólo si F(Ri) < F(Rj), entonces no se producirá deadlock.
Verdadero, Mecanismo de prevencion que atenta con la espera circular.

Una forma de detectar deadlock, es detectar uno o más procesos con pedidos insatisfechos de recursos.
Falso, Detectar sólo que uno o más procesos tienen pedidos insatisfechos no es detectar deadlock. Para detectar deadlock se deberá analizar si los pedidos de procesos insatisfechos pueden satisfacerse con los recursos disponibles.

Un Livelock es más fácil de detectar que un Deadlock.
Falso porque en el livelock los procesos siguen ejecutándose.

La forma más sencilla de prevenir un deadlock es lograr que se elimine la condición de retención y espera en donde el proceso antes de iniciar la ejecución pide todos los recursos que va a necesitar durante todo el tiempo que este ejecutando.
Verdadero, porque si ya tiene todos los recursos asignados va a poder terminar sin tener que esperar por ningún recurso retenido por otro proceso, sin embargo en ciertos casos sería casi imposible estimar de antemano todos los recursos que va a necesitar.

Una técnica para evitar (avoidance) que se produzcan deadlocks es matar uno de los procesos que intervienen en el deadlook.
Falso, matar un proceso es una solución a un deadlock que ya se había producido, no es una técnica para evitarlo.

El algoritmo del Banquero es un planificador a corto plazo, puesto que decide si otorga un recurso en el mismo momento en que este es solicitado.
Falso. El Algoritmo del banquero, en es una forma de evitar el interbloqueo, decide si le asigna recursos a los proceso que los solicitan para mantener al sistema en un estado seguro. Un planificador es un componente funcional del SO que reparte el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.

Usando el algoritmo del banquero se puede prevenir la ocurrencia de deadlock independientemente de que se produzcan o no las cuatro condiciones necesarias para la existencia del mismo.
Falso, el algoritmo del banquero evita el deadlock y un deadlock solo se puede dar si se produjeron las cuatro condiciones necesarias.

Un estado seguro es aquel estado en el que por lo menos un proceso se puede ejecutar en su totalidad.
Falso, Un estado seguro es uno en el cual existe una forma de asignar los recursos de manera que todos los procesos puedan ejecutar en su totalidad. (STL. 176) -> "Un estado seguro es uno en el cual hay al menos una secuencia que no resulta en deadlock".

Si el estado de un sistema es un estado seguro, entonces no puede haber espera circular.
Falso, El estado de un sistema es seguro si hay una secuencia de ejecución que permita terminar todos los procesos, independientemente si hay una espera circular o no, entonces en un estado seguro se puede dar un espera circular momentáneamente siempre que no se den las tres condiciones restantes (coffman). Una espera circular por sí sola no es condición suficiente.

Si después de correr el algoritmo de detección de deadlock observamos que no hay ningún tipo de interbloqueo podemos asegurar que el sistema está en estado seguro.
Verdadero porque se puede asignar los recursos a los procesos sin que se produzca deadlock.

Mediante la aproximación de instrucciones de máquina para la sincronización de procesos no es posible el Deadlock.
Falso, la ocurrencia de deadlock es independiente de la aproximación de instrucciones a lenguaje máquina.

Si en un SO no existe ninguna cola de bloqueados, entonces está libre de deadlocks.
Falso. Todos los modelos de transiciones de estados de procesos existentes incluyen el estado bloqueado, por lo tanto no puede haber un SO que no contenga ninguna cola de bloqueados.

Desde el punto de vista de la evitación del deadlock, si un sistema está en estado seguro, cualquier solicitud de recursos que efectúe un proceso puede satisfacerse y dejar nuevamente al sistema en estado seguro.
Falso, puede ser que no pueda satisfacerla y por lo tanto no le asigna los recursos.

En sistemas de tiempo real, la mejor implementación para gestionar los inconvenientes de deadlock es el algoritmo del avestruz, debido al bajo costo que acarrea su solución.
Falso, el algoritmo de avestruz no es una solución, es justamente no hacer nada para evitar problema del deadlock.

Solo puede haber Interbloqueos entre threads del mismo proceso.
Falso puede haber deadlock entre threads de distinos procesos que necesiten un mismo recurso.

La evasión de interbloqueos requiere que se proporcione de antemano al sistema operativo información adicional sobre qué recursos solicitará y utilizará un proceso durante su tiempo de vida.
Verdadero porque se necesita determinar una secuencia de ejecución de los procesos para que no termine en deadlock.
13-01-2013 12:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Alejandro recibio 14 Gracias por este post
jimena (15-01-2013), leonel (18-01-2013), juanmanuelcolado (14-02-2013), Lilieclipse (17-02-2013), gonnza (05-03-2013), Axius (06-03-2013), matiasGorosito (14-12-2013), H3rnst (07-07-2014), alexandermonday (01-03-2015), drechu (24-07-2015), alduveron (01-12-2015), chrisgel15 (24-06-2016), emii99 (06-12-2016), colox188 (27-02-2020)
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 887 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #2
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Cita:En un Sistema que contiene una única instancia de cada recurso, la espera circular es una condición necesaria y suficiente para la existencia de Deadlock.
Falso, las 4 condiciones de Coffman deben cumplirse para que exista deadlock.

La cuarta condición de Coffman (Espera Circular) es necesaria y suficiente para la existencia de deadlock si se tiene un sistema con recursos de una sola instancia.
Verdadero, porque todos los procesos en ese conjunto están esperando por un recurso retenido por otro proceso en el conjunto.

cual es la diferencia aca, que en una pones verdadero y en la otra no ? Para mi son iguales..

[Imagen: v34BEFt.gif]
05-03-2013 15:49
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Koren Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 123
Agradecimientos dados: 3
Agradecimientos: 17 en 6 posts
Registro en: Feb 2011
Mensaje: #3
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
(05-03-2013 15:49)gonnza escribió:  
Cita:En un Sistema que contiene una única instancia de cada recurso, la espera circular es una condición necesaria y suficiente para la existencia de Deadlock.
Falso, las 4 condiciones de Coffman deben cumplirse para que exista deadlock.

La cuarta condición de Coffman (Espera Circular) es necesaria y suficiente para la existencia de deadlock si se tiene un sistema con recursos de una sola instancia.
Verdadero, porque todos los procesos en ese conjunto están esperando por un recurso retenido por otro proceso en el conjunto.

cual es la diferencia aca, que en una pones verdadero y en la otra no ? Para mi son iguales..

Para mí también.

Saludos
05-03-2013 16:10
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Tizi Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 3
Agradecimientos: 50 en 1 posts
Registro en: Feb 2012
Mensaje: #4
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
(05-03-2013 16:10)Koren escribió:  
(05-03-2013 15:49)gonnza escribió:  
Cita:En un Sistema que contiene una única instancia de cada recurso, la espera circular es una condición necesaria y suficiente para la existencia de Deadlock.
Falso, las 4 condiciones de Coffman deben cumplirse para que exista deadlock.

La cuarta condición de Coffman (Espera Circular) es necesaria y suficiente para la existencia de deadlock si se tiene un sistema con recursos de una sola instancia.
Verdadero, porque todos los procesos en ese conjunto están esperando por un recurso retenido por otro proceso en el conjunto.

cual es la diferencia aca, que en una pones verdadero y en la otra no ? Para mi son iguales..

Para mí también.

Saludos


Si, son iguales y son falsas, ya que se tienen que cumplir las cuatro simultaneamente para que pueda existir deadlock (son NECESARIAS y suficientes). Un contraejemplo sería si el criterio fuera CON desalojo, uno de los recursos que esta esperando otro podria sacarle a otro el recurso y no hay deadlock.
(Este mensaje fue modificado por última vez en: 10-12-2013 00:37 por Tizi.)
08-12-2013 23:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
SebaRontani Sin conexión
Militante
Aim for the Bushes!
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 71
Agradecimientos dados: 82
Agradecimientos: 13 en 8 posts
Registro en: Dec 2008
Mensaje: #5
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Cita:Si en un SO no existe ninguna cola de bloqueados, entonces está libre de deadlocks.
Falso. Todos los modelos de transiciones de estados de procesos existentes incluyen el estado bloqueado, por lo tanto no puede haber un SO que no contenga ninguna cola de bloqueados.

Para mi esto es verdadero. En los SO con planificación de Round Robin un proceso puede pasar a la cola de Listo sin ir a la de bloqueado, mismo también con aquellos planificadores donde existe el desalojo. Si no hay procesos en la cola de bloqueados significa que no hay procesos a la espera de recursos. Entonces esta afirmación es correcta.
07-12-2014 13:37
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alexandermonday Sin conexión
Campeon del cubo Rubik

****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 132
Agradecimientos dados: 144
Agradecimientos: 145 en 30 posts
Registro en: Apr 2009
Mensaje: #6
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
(07-12-2014 13:37)SebaRontani escribió:  
Cita:Si en un SO no existe ninguna cola de bloqueados, entonces está libre de deadlocks.
Falso. Todos los modelos de transiciones de estados de procesos existentes incluyen el estado bloqueado, por lo tanto no puede haber un SO que no contenga ninguna cola de bloqueados.

Para mi esto es verdadero. En los SO con planificación de Round Robin un proceso puede pasar a la cola de Listo sin ir a la de bloqueado, mismo también con aquellos planificadores donde existe el desalojo. Si no hay procesos en la cola de bloqueados significa que no hay procesos a la espera de recursos. Entonces esta afirmación es correcta.

VERDADERO en cierto contexto: En un Modelo de Proceso de dos estados [Stalling,5ed,p113] exiten los estados ejecutando y no ejecutando. En sistemas operativos monoprogramados, que solo pueden ejecutar un único proceso “simultáneamente”, un proceso pide una E/S interactuando directamente con el dispositivo, sin que intervenga el SO. No existe una cola de bloqueados. Al ser un único proceso en memoria, no existen deadlocks.

El enunciado no indicaba si el SO es multiprogramado o monoprogramado. De todas formas Seba, estas hablando de una situación particular que puede darse. El enunciado supone un SO sin ninguna cola de bloqueados, no existe. No habla que la cola de bloqueados este siempre vacía (puede ser que interpretaste esto ultimo?)
01-03-2015 11:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #7
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Encontré este VoF en uno de los finales

Una condición de carrera en un sistema que soporta hilos podría provocar un deadlock.


Falso, porque para que pueda provocar un deadlock debe existir mutua exclusión (lo que es un acceso restringido a una región critica, que contiene el recurso compartido, para cada uno de los procesos en cuestión) y en este caso habla de una condición de carrera que los procesos modifican una recurso compartido en común sin tener ningún control en el acceso al mismo por lo que el resultado de la misma va a estar determinado por el orden y la velocidad de ejecucion de los distintos hilos en cuestión pudiendose obtener datos inconsistentes pero nunca se podría provocar un deadlock.

Alguno si puede corregirme, agradezco.
25-02-2016 00:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
juanchi.rios Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 16
Agradecimientos dados: 18
Agradecimientos: 17 en 6 posts
Registro en: Aug 2013
Mensaje: #8
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Cita: Los monitores son un mecanismo más fácil de usar que los semáforos, aunque tienen la desventaja de que sólo sirven para garantizar la mutua exclusión.

Esta como verdadera pero creo que es falsa , mirá:
Cita:
Un monitor soporta la sincronización mediante el uso de variables condición que están contenidas
dentro del monitor y son accesibles sólo desde el monitor.
Página 229- Stallings quinta edición
thumbup3
25-02-2016 19:36
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gan Sin conexión
Profesor del Modulo A
:ö:
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 288
Agradecimientos dados: 91
Agradecimientos: 160 en 48 posts
Registro en: Apr 2011
Mensaje: #9
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
(25-02-2016 00:57)Nacho14 escribió:  Encontré este VoF en uno de los finales

Una condición de carrera en un sistema que soporta hilos podría provocar un deadlock
Falso, porque para que pueda provocar un deadlock debe existir mutua exclusión (lo que es un acceso restringido a una región critica, que contiene el recurso compartido, para cada uno de los procesos en cuestión) y en este caso habla de una condición de carrera que los procesos modifican una recurso compartido en común sin tener ningún control en el acceso al mismo por lo que el resultado de la misma va a estar determinado por el orden y la velocidad de ejecucion de los distintos hilos en cuestión pudiendose obtener datos inconsistentes pero nunca se podría provocar un deadlock.

Alguno si puede corregirme, agradezco.

Para mi tmb es falsa

me asombra la voluntad del instinto
07-07-2016 01:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Foshe Sin conexión
Militante
Utniando
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 61
Agradecimientos dados: 31
Agradecimientos: 35 en 6 posts
Registro en: Sep 2015
Mensaje: #10
RE: [Sistemas Operativos] VoF de Finales (Sincronización y Deadlock)
Hola que tal? Gracias por el aporte.

Queria dejar algunos comentarios, porfa corrijanme si me equivoco...

Cita:Una condición de carrera (Race Condition) ocurre cuando, independientemente del orden de ejecución de dos o más procesos, el recurso compartido queda siempre en un estado inconsistente.
Falso, la condición de carrera es una situación en la cual múltiples hilos o procesos leen y escriben un dato compartido y el resultado final depende del orden de la ejecución de instrucciones en los múltiples procesos.

Es valido, pero creeria que lo que estan esperando que digas es que el estado puede o no ser inconsistente. Justamente, dependiendo del orden de ejecucion, el estado del recurso es impredecible

Cita:En el análisis de un grafo se asignación de recursos si los recursos no son compartibles y hay un ciclo, entonces hay un deadlock.
Falso, se tienen que cumplir las otras 2 condiciones necesarias: "sin desalojo" y "retencion y espera".

Es falso, pero esta mal la justificacion. Del Stallings:

"La Figura 6.5c muestra un ejemplo de interbloqueo. Hay sólo una unidad de cada recurso Ra y
Rb. El proceso P1 mantiene Rb y solicita Ra, mientras que P2 mantiene Ra pero pide Rb. La Figura
6.5d tiene la misma topología que la Figura 6.5c, pero no hay interbloqueo porque están disponibles
múltiples unidades de cada recurso."

en la pag 265, 5ta edicion. Si ves las figuras, es falso porque tambien depende de la cantidad de instancias de cada recurso. Ambas tienen un ciclo en el grafo, pero en el primer caso es interbloqueo porque hay una unica instancia (no compartible) y en el segundo no lo es porque hay mas instancias, y son suficientes para todas las solicitudes.

Cita:En los semáforos sin espera activa se utiliza una cola asociada para los procesos que esperan. Esto puede provocar en algunos procesos starvation, porque el algoritmo para dar de baja en la cola no necesariamente tiene que ser de tipo FIFO.
Falso. Ningún semáforo presenta espera activa, y todos los semáforos tiene una cola asociada para los procesos que esperan. Un semáforo que no especifica el orden en que los procesos son extraídos de la cola es un semáforo débil. Los semáforos que utilizan FIFO para extraer procesos de la cola de bloqueados se conocen como semáforos fuertes.[Stallings, 5ª ed. Esp., Pg. 218].

Es verdadero. Mas alla de que existen algunas implementaciones de semaforos con espera activa, un semaforo puede implementar cualquier algoritmo de planificacion para seleccionar el proceso a dar de baja de la cola. Puede o no ser FIFO, y como ya sabemos, hay algunos algoritmos donde es posible la inanicion (por ej, prioridades)

Cita:Si un proceso, ejecutando código de un procedure de un monitor, ejecuta una operación WAIT sobre una variable condición, el proceso espera “dentro” del monitor en una cola de procesos bloqueados asociada a dicha variable
Falso. Si el proceso queda bloqueado pero como “ejecutando” dentro de un monitor, ningún otro proceso podrá acceder a la variable condición (sobre la cual el proceso original hizo el WAIT) para hacer el SIGNAL correspondiente que despierte al proceso dormido. Recordar que cualquier acceso a una variable condición definida en un monitor DEBE hacerse ejecutando código del mismo, y que solamente un único proceso puede figurar como “ejecutando” código del monitor en un momento dado (por la exclusión mutua que estas construcciones proveen); cualquier otro proceso que haya invocado al monitor se bloquea en espera de que quede disponible.

En realidad, es verdadero. Ambos libros tienen imagenes que justifican esto. No son dificiles de encontrar, pero para agilizar este comentario, paso una de wikipedia que muestra como es

[Imagen: 200px-Monitor_%28synchronization%29-Mesa.png]

Cita:Los conflictos involucrados en un Deadlock se deben a 2 o más procesos y no a la necesidad de recursos que necesitan esos procesos
Falso, se debe a los recursos que necesitan los procesos . [Stallings, 5ª ed. Esp., Pg. 266].

En realidad entenderia que es verdadero, ya que depende de la especificacion de las aplicaciones y su dinamica de ejecucion. Pero la verdad es bastante ambiguo y poco claro

Cita:En un Sistema que contiene una única instancia de cada recurso, la espera circular es una condición necesaria y suficiente para la existencia de Deadlock.
Falso, las 4 condiciones de Coffman deben cumplirse para que exista deadlock.

La cuarta condición de Coffman (Espera Circular) es necesaria y suficiente para la existencia de deadlock si se tiene un sistema con recursos de una sola instancia.
Verdadero, porque todos los procesos en ese conjunto están esperando por un recurso retenido por otro proceso en el conjunto.

Aca pusiste una falsa y la otra verdadera, los enunciados son muy similares. Del Stallings:

"Las tres primeras condiciones son necesarias pero no suficientes para que exista un interbloqueo. La cuarta condición es, realmente, una consecuencia potencial de las tres primeras. Es decir, si se cumplen las tres primeras condiciones, se puede producir una secuencia de eventos que conduzca a una espera circular irresoluble. La espera circular irresoluble es de hecho la definición del interbloqueo. La espera circular enumerada como cuarta condición es irresoluble debido a que se cumplen las tres primeras condiciones. Por tanto, las cuatro condiciones de forma conjunta constituyen condiciones necesarias y suficientes para el interbloqueo."

Distingase espera circular de espera circular irresoluble. Puede suceder una espera circular sin las otras 3 condiciones, pero para que esta sea irresoluble, deben cumplirse tambien las otras 3 condiciones.

A mi criterio por ende serian las 2 falsas. Que haya una unica instancia de cada recurso solo implica la mutua exclusion, pero no implica que exista retencion y espera o no apropiacion.

Cita:Si después de correr el algoritmo de detección de deadlock observamos que no hay ningún tipo de interbloqueo podemos asegurar que el sistema está en estado seguro.
Verdadero porque se puede asignar los recursos a los procesos sin que se produzca deadlock.

Falso. Sabemos que en un momento dado no hay deadlock, pero eso no dice nada de si existe una secuencia por la cual todos los procesos pueden terminar correctamente. Solo nos esta diciendo que todas las solicitudes en un determinado instante pueden saciarse correctamente

Cita:Mediante la aproximación de instrucciones de máquina para la sincronización de procesos no es posible el Deadlock.
Falso, la ocurrencia de deadlock es independiente de la aproximación de instrucciones a lenguaje máquina.

Estan esperando una justificacion basada en esto:

"Es posible el interbloqueo. Considérese el siguiente escenario en un sistema de procesador único. El proceso P1 ejecuta la instrucción especial (por ejemplo, testset, exchange) y entra en su sección crítica. Entonces P1 es interrumpido para darle el procesador a P2, que tiene más alta prioridad. Si P2 intenta ahora utilizar el mismo recurso que P1, se le denegará el acceso, dado el mecanismo de exclusión mutua. Así caerá en un bucle de espera activa. Sin embargo, P1 nunca será escogido para ejecutar por ser de menor prioridad que otro proceso listo, P2."

Notese que se esta hablando de un livelock, no deadlock.

Yo diria por ende que es verdadero. Lo que es (muy) posible es un livelock. Pero la espera es siempre activa: los procesos estan continuamente chequeando ya sea por test and set o por swap.

Cita:Si en un SO no existe ninguna cola de bloqueados, entonces está libre de deadlocks.
Falso. Todos los modelos de transiciones de estados de procesos existentes incluyen el estado bloqueado, por lo tanto no puede haber un SO que no contenga ninguna cola de bloqueados.

No me la jugaria a decir que no existe un SO que no contenga lista de bloqueados. Podria plantear una justificacion por este lado:

En la solucion hardware: "Es posible el interbloqueo. Considérese el siguiente escenario en un sistema de procesador único. El proceso P1 ejecuta la instrucción especial (por ejemplo, testset, exchange) y entra en su sección crítica. Entonces P1 es interrumpido para darle el procesador a P2, que tiene más alta prioridad. Si P2 intenta ahora utilizar el mismo recurso que P1, se le denegará el acceso, dado el mecanismo de exclusión mutua. Así caerá en un bucle de espera activa. Sin embargo, P1 nunca será escogido para ejecutar por ser de menor prioridad que otro proceso listo, P2."

Ahi se puede ver que ambos procesos estan en estado "listo". Ninguno entro a la cola de bloqueados en ningun instante, y aun asi, hay interbloqueo. No obstante, es un livelock, no un deadlock.

En un deadlock, el proceso se encuentra bloqueado esperando un recurso. En un livelock, el proceso se encuentra chequeando constantemente por la existencia de éste.

Por ende, podría decir que es verdadero. Que en un SO de esas características, el interbloqueo podría darse por espera activa (livelock), pero no deadlock.

Cita:Desde el punto de vista de la evitación del deadlock, si un sistema está en estado seguro, cualquier solicitud de recursos que efectúe un proceso puede satisfacerse y dejar nuevamente al sistema en estado seguro.
Falso, puede ser que no pueda satisfacerla y por lo tanto no le asigna los recursos.

Entiendo que es verdadera siempre y cuando la solicitud de recursos haya sido tenida en cuenta para las peticiones maximas del proceso. Por favor corrijanme si me equivoco

You met me at a very strange time in my life...
(Este mensaje fue modificado por última vez en: 23-02-2020 12:00 por Foshe.)
23-02-2020 10:18
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Foshe recibio 1 Gracias por este post
MelisaGodoy (12-08-2020)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)