Sei sulla pagina 1di 2

Multiprogramacin con particiones fijas

Cuando llega un trabajo se le puede colocar en la cola de entrada de la particin pequea que puede contenerlo. Puesto que las particiones estn fijas en este esquema, cualquier espacio de una particin que un trabajo no utilice se desperdiciar. En las figuras anteriores se ve el aspecto que tiene este sistema de particiones fijas y colas de entrada individuales. La desventaja de repartir los trabajos entrantes en colas distintas se hace evidente cuando la cola de particin grande est vaca pero la cola de una particin pequea est llena. Una organizacin diferente sera mantener una sola cola. Cada vez que se libere una particin, se selecciona el trabajo ms cercano a la cabeza de la cola que cabe en esa particin, se carga en dicha particin y se ejecuta. Una estrategia diferente consiste en examinar toda la cola de entrada cada vez que se libera una particin y escoger el trabajo ms grande que cabe en ella. Una salida consiste en tener por lo menos una particin pequea disponible para trabajos pequeos. Una particin as permitir que se ejecuten los trabajos pequeos sin tener que asignar una particin grande para ellos. Otro enfoque sera adoptar la regla de que un trabajo es elegible para ejecutarse no puede pasarse por alto ms de k veces. Cada vez que se pase por alto, el trabajo recibir un punto, cuando haya adquirido k puntos, no se le podr pasar por alto otra vez. Reasignacin y proteccin Estos son dos problemas esenciales por resolver en la multiprogramacin. Cuando un programa se liga (es decir, el programa principal, los procedimientos escritos por el usuario y los procedimientos de la biblioteca se conjuntan en un espacio con una sola direccin), el ligador debe conocer la direccin donde comienza el programa en la memoria. Supngase que la primera instruccin en una llamada a un procedimiento que se encuentra en la direccin relativa 100, dentro del archivo en binario generado por el ligador. Si este programa se carga en la particin 1, esa instruccin saltara a la direccin absoluta 100, la cual est dentro del S.O. lo que se necesita es hacer una llamada a 100k + 100. Si el programa se carga en la particin se carga en la particin 2, debe llevarse a cabo como una llamada a 200k + 100 y as sucesivamente, a este problema se conoce como el problema de reasignacin. Una posible solucin es modificar las instrucciones cuando el programa se carga en memoria. Para que la reasignacin se lleve a cabo durante el cargado, el ligador debe incluir en el programa en binario una lista de mapas de bits. La reasignacin durante el proceso de cargado no resuelve el problema de proteccin. Un programa con cierta malicia puede construir siempre una nueva instruccin y saltar hacia ella.

La solucin por la que opto IBM para proteger la 360 fue dividir la memoria en bloques de 2K bytes y asignar un cdigo de proteccin de 4 bits a cada bloque, la contrasea contena un bloque de 4 bits. Otra alternativa para ambos problemas fue la de equipar la maquina con dos registros especiales en harware, llamados el registro de base y el registro limite. Lo que hacan es que cuando se planificaba la ejecucin de un proceso, el registro base se carga con la direccin del inicio de la particin, mientras que el registro limite se carga con la longitud de la particin. Una ventaja mas del uso del registro base para la reasignacin es que un programa se puede desplazar en la memoria mientras se encuentra en ejecucin

Potrebbero piacerti anche