Ir al contenido principal

Deadlock, que son y como evitarlos?

Imaginemos que estamos conduciendo por una calle de un solo sentido, y de repente quieres dar vuelta a la derecha que lleva a la casa de tu abuelita (esa calle también tien un solo carril muy estrecho), sin embargo de esa misma calle viene saliendo otro automovil, y por la falta de semaforos ambos se ven involucrados en un gran problema, puesto que no existe una manera de organizar quien puede pasar primero que otro. Bueno, esta es la definición de un "Deadlock", cuando dos o mas procesos se ven bloqueados debido a que la lucha por obtener recursos, y ninguno cede, como consecuencia se ven bloqueados para siempre y ya no se puede realizar mas trabajo. 

Cómo solucionariamos esto?

Bueno, como se dijo anteriormente, una solución es el uso de semaforos, lo cual administra la sincronización de los procesos, organizando quien se ejecuta primero por orden o por importancia.



Comentarios

Entradas populares de este blog

Encriptación de datos ¿Cómo funciona?

¿Qué es la encriptación de datos? La encirptación de datos se refiere al proceso de ocultar datos mediante el uso de claves o contraseñas, para que aquellos que intenten acceder a esta información sin tener la contraseña adecuada, no podrán hacer uso alguno de esta información, ya que será imposible descifrar su contenido. De esta manera si un hacker llegase a robar datos de una empresa importante que estan encriptados, pues le sería totalmente inútil haberlos robados, porque no podrá leerlos. Debemos tener en cuenta que la encriptación no resuelve el probelma del coontrol de acceso de usuarios, ya que los hackers aun pueden acceder a la base de datos, sin embargo no podran leer la información.  Existe otra técnica llamada "Data masking" que si ofrece una mayor cobertura de seguridad. La criptografía, puede resguardar datos, conexiones y procedimientos almacenados. La historia de la encriptación Un ejemplo básico de la encriptación es asociar...

Programación de procesos

Para empezar este Blog tenemos que entender algunos conceptos básicos, tales como: En un sistema de un solo procesador, solo puede correr un proceso a la vez, todos los demás que quieran correr al mismo tiempo tendran que esperar hasta que el CPU este libre y se pueda reorganizar. El concepto conocido como "multiprogramming" se refiere al objetivo de tener muchos procesos corriendo al mismo tiempo en un uniprocesador, así que la idea es relativamente simple, ya que podemos pensar en los procesos como personas que esperan a que un camarero les asigne una mesa en un restaurante, de la misma manera los procesos esperan hasta que una otra tarea termine de ser realizada por el CPU. Así que ahora multiprogramming suena como una buena idea, no? Ya que esto nos puede ahorrar mucho tiempo, siendo una manera mas productiva de realizar las cosas, pero para realizar todo esto necesitamos un scheduler, par que administre las tareas que van a ser realizadas, debemos notar que es...