En los sistemas de tiempo compartido se presntan muchos problemas debido a que los procesos compiten por los recursos del sistema, para entender esto describiremos los principales problemas de concurrencia.
1. Condicion de carrera o competencia.
2. Postegracion o aplazamiento indefinido
3. condicion de espera circular
4. Condicion de no apropiacion.
5. condicion de espera ocupada
6. Condicion de exclusion mutua
7. Condicion de ocupar y esperar recurso.
Participa activamente para obtener un conocimiento constructivo en conjunto con los compañeros de clase, podemos realizar comentarios a los compañeros y complementar su aportacion.
Saludos
Suscribirse a:
Enviar comentarios (Atom)
Los programas concurrentes a diferencia de los programas secuenciales tienen una serie de problemas muy particulares derivados de las caracteristicas de la concurrencia:
ResponderEliminar1.Violacion de la exclusion mutua: En ocasiones ciertas acciones que se realizan en un programa concurrente no proporcionan los resultados deseados. Esto se debe a que existe una parte del programa donde se realizan dichas acciones que constituye una region critica, es decir, es una parte del programa en la que se debe garantizar que si un proceso accede a la misma, ningun otro podra acceder. Se necesita pues garantizar la exclusion mutua.
2. Bloqueo mutuo o deadlock: Un proceso se encuentra en estado de deadlock si esta esperando por un suceso que no ocurrira nunca. Se puede producir en la comunicacion de procesos y mas frecuentemente en la gestion de recursos.
3. Retraso indefinido o starvation: Un proceso se encuentra en starvation si es retrasado indefinidamente esperando un suceso que no puede ocurrir. Esta situacion se puede producir si la gestion de recursos emplea un algoritmo en el que no se tenga en cuenta el tiempo de espera del proceso.
4. Injusticia o unfairness: Se puden dar situaciones en las que exista cierta injusticia en relacion a la evolucion de un proceso. Se deben evitar situaciones de tal forma que se garantice que un proceso evoluciona y satisface sus necesidades sucesivas en algun momento.
5. Espera ocupada: En ocasiones cuando un proceso se encuentra a la espera por un suceso, una forma de comprobar si el suceso se ha producico es verificando continuamente si el mismo se ha realizado ya. La solucion ideal es suspender el proceso y continuar cuando se haya cumplido la condicion de espera.
6. Condiciones de Carrera o Competencia: La condicion de carrera (race condition) ocurre cuando dos o mas procesos accesan un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada.
7. Postergacion o Aplazamiento Indefinido(a): Consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de ejecucion para terminar a su tarea. Por ejemplo, que un proceso ocupa un recurso y lo marque como ocupado y que termine sin marcarlo como desocupado. Si algun otro proceso pide ese recurso, lo vera ocupado y esperara indefinidamente a que se desocupe.
8. Condicion de Espera Circular:Esto ocurre cuando dos o mas procesos forman una cadena de espera que los involucra a todos.
9. Condicion de No apropiacion: Esta condicion no resulta precisamente de la concurrencia, pero juega un papel muy importante en este ambiente. Esta condicion especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatarsele po nungun motivo, y estara disponible hasta que el proceso lo suelte por su voluntad.
veronica:
ResponderEliminarproblemas de concurencia son:Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asincronos, lo cual significa que en ocasiones requieren cierta sincronizacion o cooperacion.
Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o mas procesos sean concurrentes, es necesario que tengan alguna relacion entre ellos como puede
ser la cooperacion para un determinado trabajo o el uso de informacion o recursos compartidos, por ejemplo: en un sistema de un procesador, la multiprogramacion es una condicion necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.
Los procesos necesitan acceso exclusivo a los recursos.
Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros.
Los recursos no se pueden obtener de los procesos que estan a la espera.
Existe una cadena circular de procesos en la cual cada proceso posee uno o mas de los recursos que necesita el siguiente proceso en la cadena.
Los procesos necesitan acceso exclusivo a los recursos.
Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros.
Los recursos no se pueden obtener de los procesos que estan a la espera.
Existe una cadena circular de procesos en la cual cada proceso posee uno o mas de los recursos que necesita el siguiente proceso en la cadena.
Los procesos necesitan acceso exclusivo a los recursos.
Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros.
Los recursos no se pueden obtener de los procesos que estan a la espera.
Existe una cadena circular de procesos en la cual cada proceso posee uno o mas de los recursos que necesita el siguiente proceso en la cadena.
•Condiciones de Carrera o Competencia: también llamado (race condition) ocurre cuando dos o más procesos acezan un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada.
ResponderEliminar•Postergación o Aplazamiento Indefinido(a):Es cuando uno o varios procesos nunca reciban el suficiente tiempo de ejecución para terminar su tarea.
•Condición de Espera Circular: Esto ocurre cuando dos o más procesos forman una cadena de espera que los involucra a todos.
•Condición de No Apropiación: Aquí especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará disponible hasta que el proceso lo 'suelte' por su voluntad.
•Condición de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado.
algo que permite evitar los problemas de concurrenciason:
ResponderEliminarEl control de competencia involucra al sistema operativo, porque es el que asigna los recursos.
Cooperación entre procesos por compartimiento
Comprende los procesos que interactúan con otros sin tener conocimiento explícito de ellos. Ej. : Varios procesos pueden tener acceso a variables compartidas.
Los procesos deben cooperar para asegurar que los datos que se comparten se gestionan correctamente. Los mecanismos de control deben garantizar la integridad de los datos compartidos.
Cooperación entre procesos por comunicación
Los distintos procesos participan en una labor común que une a todos los procesos.
La comunicación sincroniza o coordina las distintas actividades, está formada por mensajes de algún tipo. Las primitivas para enviar y recibir mensajes, vienen dadas como parte del lenguaje de programación o por el núcleo del sistema operativo
lei los comentarios anteriores de mis compañeros y todos son similares, mi compañera erika escribio algunos problemas de concurrencia y yo agrego otros.
ResponderEliminarProblemas de Concurrencia
En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que reparten el uso de CPU entre estos) se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. Imagine que un proceso está escribiendo en la unidad de cinta y se le termina su turno de ejecución e inmediatamente después el proceso elegido para ejecutarse comienza a escribir sobre la misma cinta. El sistema operativo debe ofrecer mecanismos para sincronizar la ejecución de procesos: semáforos, envío de mensajes, 'pipes', etc. Los semáforos son rutinas de software (que en su nivel más interno se auxilian del hardware) para lograr exclusión mutua en el uso de recursos.
Para entender este y otros mecanismos es importante entender los problemas generales de concurrencia
•Condición de Exclusión Mutua: Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A la sección de código que usa ese recurso se le llama 'región crítica'. La condición de exclusión mutua establece que solamente se permite a un proceso estar dentro de la misma región crítica.
•Condición de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado. Los problemas descritos son todos importantes para el sistema operativo, ya que debe ser capaz de prevenir o corregirlos. Tal vez el problema más serio que se puede presentar en un ambiente de concurrencia es el 'abrazo mortal', también llamado 'trabazón' y en inglés deadlock.
•Asignar recursos en orden lineal: Esto significa que todos los recursos están etiquetados con un valor diferente y los procesos solo pueden hacer peticiones de recursos 'hacia adelante'. Esto es, que si un proceso tiene el recurso con etiqueta '5' no puede pedir recursos cuya etiqueta sea menor que '5'. Con esto se evita la condición de ocupar y esperar un recurso.
•Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede dárselos todos, si no, no le da nada y lo bloquea.
•Algoritmo del banquero: Este algoritmo usa una tabla de recursos para saber cuántos recursos tiene de todo tipo. También requiere que los procesos informen del máximo de recursos que va a usar de cada tipo. Cuando un proceso pide un recurso, el algoritmo verifica si asignándole ese recurso todavía le quedan otros del mismo tipo para que alguno de los procesos en el sistema todavía se le pueda dar hasta su máximo.
Sebemos que existem varios problemas de concurrencia tales como ya fueron mencionados tal como la exclucion mutua.
ResponderEliminarEn un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea.
Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.
La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son :
consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades:
Compartir recursos globales es riesgoso
Para el sistema operativo es difícil gestionar la asignación óptima de recursos
mmmmmmmmm!!! creio q ya escribieron todo lo importante yo solo agrego un pequeño resumen
ResponderEliminarlos principales problemas de concurrencia.
1. Condicion de carrera o competencia.
2. Postegracion o aplazamiento indefinido.
3. condicion de espera circular.
4. Condicion de no apropiacion.
5. condicion de espera ocupada.
6. Condicion de exclusion mutua.
7. Condicion de ocupar y esperar recurso.
bueno y algo que evita los problemas de concurrencia son:
El control de competencia involucra al sistema operativo, porque es el que asigna recursos.
Cooperación entre procesos por compartimiento
Comprende los procesos que interactúan con otros sin tener conocimiento explícito de ellos.
Los mecanismos de control deben garantizar la integridad de los datos compartidos.
Cooperación entre procesos por comunicación
Los distintos procesos participan en común que une a todos los procesos.
Este comentario ha sido eliminado por el autor.
ResponderEliminarlos comentariios son casi iguales, bueno yo pongo mi comentario(dice lo mismo) pero en otras palabras mas bonitas jijijijijiji
ResponderEliminarlos errores de condiciones de carrera en un programa, resultan cuando 1 o mas hilos intentan accesar al mismo tiempo a un dispositivo, variable, funcion, etc.
El aplazamiento indefinido puede ocurrir debido a predisposiciones en las políticas de planificación de recursos del sistema. Cuando los recursos se planifican por prioridad, es posible que un proceso dado espere de forma indefinida un recurso porque siguen llegando otros procesos con mayor prioridad. En algunos sistemas, el aplazamiento indefinido se evita aumentando la prioridad del proceso mientras espera (técnica de envejecimiento). En algún momento la prioridad de ese proceso superará la prioridad de los entrantes y el proceso en espera será atendido.
Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena
Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita
Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible
.Condiciones de Carrera: también llamado (race condition) ocurre cuando dos o más procesos acezan un recurso compartido sin control,
ResponderEliminar•Postergación o Aplazamiento Indefinido:Es cuando uno o varios procesos nunca reciban el suficiente tiempo de ejecución para terminar su tarea.
.Condición de Espera Circular: Esto ocurre cuando dos o más procesos forman una cadena de espera que los involucra a todos.
.Condición de No Apropiación: Aquí especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará disponible hasta que el proceso lo 'suelte' por su voluntad.
•Condición de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado.
estos problemas de concurrencia que han mensionado mis compañeros, ocurren debido a que se ejecutan varios procesos(con hilos)y cada proceso puede utilizar el mismo recurso para realizar su accion y en este caso el S:O necesita administrar el recurso y a cada proceso dar un tiempo para ocuparlo, esto se puede soluocionar implementando algoritmos de planificacion para lograr que estos procesos terminen sus acciones sin complicaciones.....}
ResponderEliminarProblemas de concurrencia de los hilos 5
ResponderEliminarModos de prevenir el problema de la concurrencia en los Hilos Posix.
Funcion de inicializacion de mutex
Funcion de peticion de bloqueo
Funcion de liberacion de bloqueoFuncion de liberacion de memoria
Son algunos q pueden prevenir la concurrencia entre procesos.
Nuevamente hola chamacos y chamacas......
ResponderEliminarcomo ya mis compañeros han dicho todo relacionado con los problemas de concurrencia.
Que da agrgar que...
Uno de los problemas principales que nos podemos encontrar al desarrollar programas concurrentes es el Indeterminismo
Los programas secuenciales son totalmente ordenados. Esto significa que cuando se ejecuta un programa podemos saber de antemano cual va a ser la próxima instrucción que se va a ejecutar.
En un programa concurrente el orden de ejecución es parcial. Esto significa que no sabemos cuál va a ser la próxima instrucción a ejecutar. No está determinado que instrucción de que hilo o proceso en un momento determinado va a ejecutarse. Esta situación se conoce con el nombre de indeterminismo. y los principales problemas de concurrencia son
Condicion de carrera o competencia.
Postegracion o aplazamiento indefinido
condicion de espera circular
Condicion de no apropiacion.
condicion de espera ocupada
Condicion de exclusion mutua
Condicion de ocupar y esperar recurso.