Sistemas operativos modernos

asignar, por ejemplo. Conforme pasa el tiempo, el número y el tamaño de las particiones cam­ biará a medida que lleguen procesos y se vayan. Partición de 8 CPUs Partición de 6 CPUs 0 2 8 9 10 I 16 17 18 ; 24 25 26 11 19 27 CPU no asignada ■ / 12 13 14 15 20 21 22 23 28 29 30 31 •Partición de 4 CPUs Partición de 12 CPUs Figura 8-13. Conjunto de 32 procesadores divididos en cuatro particiones, con dos CPUs disponibles. En forma periódica, hay que tomar decisiones de calendarización. En los sistemas unipro­ cesador, es muy conocido el algoritmo de trabajo más corto primero para la calendarización por lotes. El algoritmo análogo para un multiprocesador consiste en escoger el proceso que ne­ cesita el menor número de ciclos de CPU; es decir, el proceso para el que el producto número de CPU X tiempo de ejecución sea el más pequeño de entre todos los candidatos. Sin embar­ go, en la práctica pocas veces se cuenta con esta información, por lo que es difícil implemen­ tar el algoritmo. De hecho, ciertos estudios han demostrado que en la práctica es difícil superar el algoritmo de primero en llegar, primero en ser atendido (Krueger et al., 1994). En este sencillo modelo de particiones, un proceso simplemente solicita cierto número de pro­ cesadores y, o los obtiene todos, o se ve obligado a esperar hasta que estén disponibles. En un en­ foque diferente, los procesos controlan de manera activa el grado de paralelismo. Una forma de hacerlo es tener un servidor central que se mantiene al tanto de cuáles procesos se están ejecutan­ do y cuáles se quieren ejecutar, así como de sus necesidades mínima y máxima de procesadores (Tucker y Gupta, 1989). En forma periódica, cada CPU sondea al servidor central para preguntar­ le cuántas CPUs puede usar, y ajusta el número de procesos o subprocesos aumentándolo o redu­ ciéndolo de modo que coincida con lo que está disponible. Por ejemplo, un servidor Web puede tener 1, 2, 5, 10, 20 o cualquier otro número de subprocesos ejecutándose en paralelo. Si tiene 10 subprocesos y de repente aumenta la demanda de procesadores, y se le ordena bajar a cinco, cuan­ do los siguientes cinco subprocesos terminen su trabajo actual se les pedirá que terminen en lugar de dárseles más trabajo. Este esquema permite que los tamaños de las particiones varíen de mane­ ra dinámica, ajustándose a la carga de trabajo actual mejor que el sistema fijo de la figura 8-13. Calendarización tipo pandilla Una ventaja obvia del espacio compartido es la eliminación de la mulfiprogramación, con lo cual se ahorra el gasto adicional de las conmutaciones de contexto. Sin embargo, una desven­ taja igual de obvia es el fiempo que se desperdicia cuando una CPU se bloquea y no tiene na

RkJQdWJsaXNoZXIy MjI4NDcx