Planificación
Cuando
una computadora se multiprograma, con frecuencia tiene varios procesos o hilos
que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos
o más de estos procesos se encuentran al mismo tiempo en el estado listo.
Si sólo hay una CPU disponible, hay que decidir cuál proceso se va a ejecutar a continuación.
Si sólo hay una CPU disponible, hay que decidir cuál proceso se va a ejecutar a continuación.
La parte del sistema operativo que realiza esa decisión
se conoce como planificador
de procesos y el algoritmo
que utiliza se conoce como algoritmo de planificación.
Interbloqueos
Los
sistemas computacionales están llenos de recursos que pueden ser utilizados por
sólo un proceso a la vez. Algunos ejemplos comunes son las impresoras, las
unidades de cinta y las ranuras en los tableros internos del sistema. Cuando
dos procesos escriben de manera simultánea en la impresora se producen
incoherencias. Si dos procesos utilizan la misma entrada en la tabla del
sistema de archivos invariablemente se corrompe el sistema de archivos. En
consecuencia, todos los sistemas operativos tienen la habilidad de otorgar (en
forma temporal) a un proceso el acceso exclusivo a ciertos recursos.
Hay
situaciones donde varios procesos están bloqueados y permanecerán así para
siempre. A esta situación se le conoce como interbloqueo.
Los interbloqueos también pueden ocurrir entre máquinas.
Las situaciones más complicadas pueden ocasionar interbloqueos que involucren a tres, cuatro o más dispositivos y usuarios.
Los interbloqueos también pueden ocurrir entre máquinas.
Las situaciones más complicadas pueden ocasionar interbloqueos que involucren a tres, cuatro o más dispositivos y usuarios.
El interbloqueo se puede definir formalmente de la siguiente manera:
Un conjunto de procesos, se encuentra en un interbloqueo, si cada proceso en el conjunto está esperando un evento que solo puede ser ocasionado por otro proceso en el conjunto.
Inanición
Una
situación en la que todos los programas continúan ejecutándose de forma
indefinida, pero no progresan, se conoce cono inanición (starvation).
Un problema muy relacionado con el interbloqueo es la inanición.
En un sistema dinámico, las peticiones de recursos ocurren todo el tiempo.
Se necesita cierta política para decidir acerca de quién obtiene qué recurso y cuándo.
Esta política, aunque parece razonable, puede ocasionar que ciertos procesos nunca reciban atención, aun cuando no estén en interbloqueo.
En un sistema dinámico, las peticiones de recursos ocurren todo el tiempo.
Se necesita cierta política para decidir acerca de quién obtiene qué recurso y cuándo.
Esta política, aunque parece razonable, puede ocasionar que ciertos procesos nunca reciban atención, aun cuando no estén en interbloqueo.
Como
ejemplo, considere la asignación de la impresora.
Imagine que el sistema utiliza cierto algoritmo para asegurar que la asignación de la impresora no produzca un interbloqueo?Ahora suponga que varios procesos la quieren al mismo tiempo. ¿Quién debe obtenerla?
Un
posible algoritmo de asignación es otorgar
la impresora al proceso con el archivo más pequeño a imprimir (suponiendo que
esta información esté disponible).
Este método maximiza el numero de clientes satisfechos y parece razonable.
Ahora considere lo que ocurre en un sistema ocupado, cuando un proceso
tiene que imprimir un archivo enorme.
Cada vez que la impresora esté libre, el
sistema buscará y elegirá el proceso con el archivo más pequeño.
Si hay un
flujo constante de procesos con archivos cortos, el proceso con el archivo enorme
nunca recibirá la impresora, simplemente se pospondrá de manera indefinida, aun
cuando no esté bloqueado.
La inanición se puede evitar mediante el uso de una política de asignación de recursos del tipo
“primero en llegar, primero en ser atendido”.
Con este método, el proceso que espere más tiempo será el que se atienda primero.
A su debido tiempo, cualquier proceso dado se convertirá en el más antiguo y, por ende, obtendrá el recurso que necesita.
Con este método, el proceso que espere más tiempo será el que se atienda primero.
A su debido tiempo, cualquier proceso dado se convertirá en el más antiguo y, por ende, obtendrá el recurso que necesita.
No hay comentarios:
Publicar un comentario