Unidad 3
Unidad 3
Unidad 3
Cuando hay más de un proceso ejecutable, el sistema operativo debe decidir cuál
ejecutará primero. La parte del sistema operativo que toma esta decisión se denomina
planificador; el algoritmo que usa se denomina algoritmo de planificación.
1. Equitatividad —asegurarse de que cada proceso reciba una parte justa del tiempo de
CPU.
4. Retorno —minimizar el tiempo que los usuarios por lotes tienen que esperar sus
salidas.
de cada proceso.
A partir de él, es posible determinar el tiempo de retorno. En términos del modelo de
colas, el tiempo de retorno (TAT) es el tiempo de estancia Tr o tiempo total que el
elemento
consume en el sistema (tiempo de espera más tiempo de servicio). Un valor más útil es
el tiempo de retorno normalizado, que es la razón entre el tiempo de retorno y el tiempo
de servicio. Este valor indica el retardo relativo experimentado por un proceso.
Normalmente, cuanto mayor es el tiempo de ejecución, mayor es el retardo absoluto que
puede tolerarse. El valor mínimo para esta proporción es de 1.0; los valores mayores
corresponden a niveles decrecientes del servicio [FINK88]:
El tiempo de espera normalizado para el proceso C no es tolerable: El tiempo total que
pasa en el sistema es 100 veces el tiempo necesario de procesamiento. Tan larga
espera tiene lugar cada vez que un proceso corto llega justo después de uno largo. Por
otro lado, incluso en este ejemplo extremo, a los procesos largos no les va del todo mal.
El proceso D obtiene un tiempo de retorno que es aproximadamente el doble que el de
C, pero su tiempo de espera normalizado está por debajo de 2,0.
Otro problema del FCFS es que tiende a favorecer a los procesos con carga de CPU
frente los que tienen carga de E/S.
La única cuestión interesante cuando se usa el round robin es la duración del cuanto. La
conmutación de un proceso a otro requiere cierto tiempo para llevar a cabo las tareas
administrativas: guardar y cargar registros y mapas de memoria, actualizar diversas
tablas y listas, etc. Su pongamos que esta conmutación de proceso o conmutación de
contexto requiere 5 ms.
Supongamos también que usamos cuantos de 20 ms. Con estos parámetros, después
de realizar trabajo útil durante 20 ms, la CPU tendrá que ocupar 5 ms en la conmutación
de procesos. Se desperdiciará el
20% del tiempo de CPU en gastos extra administrativos.
A fin de mejorar la eficiencia de la CPU, podríamos usar cuantos de, digamos, 500 ms.
Ahora el tiempo desperdiciado es de menos del 1%, pero consideremos lo que sucede
en un sistema de tiempo compartido sil0 usuarios interactivos pulsan la tecla de retomo
de carro aproximadamente al mismo tiempo: diez procesos se pondrían en la lista de
procesos ejecutables. Si la CPU está ociosa, el primero se iniciará de inmediato, el
segundo podría no iniciarse hasta cerca de medio segundo después, y así
sucesivamente. El pobre proceso que le haya tocado ser último podría tener que esperar
5 segundos antes de tener su oportunidad, suponiendo que los demás procesos utilizan
su cuanto completo. Para casi cualquier usuario, un retardo de 5 segundos en la
respuesta a un comando corto sería terrible. El mismo problema puede presentarse en
una computadora personal que maneja multiprogramación.
La conclusión puede formularse así: escoger un cuanto demasiado corto causa
demasiadas Conmutaciones de procesos y reduce la eficiencia de la CPU, pero
escogerlo demasiado largo puede dar pie a una respuesta deficiente a solicitudes
interactivas cortas. Un cuanto de cerca de 100 ms suele ser un término medio razonable.
Para evitar volver a calcular la suma completa cada vez, se puede reescribir esta
ecuación como:
Nótese que esta fórmula da el mismo peso a todos los casos. Normalmente, resulta
más conveniente dar un peso mayor a los casos más recientes, ya que es más probable
que reflejen el comportamiento futuro. Por ello, una técnica habitual de predicción de
los valores futuros a partir de una serie de valores pasados es usar un promediado
exponencial.
Compárese esta ecuación con la (2). Empleando un valor constante de a (0 < α < 1),
independiente del número de observaciones pasadas, se llega a una situación en la que
se tienen en cuenta todos los valores pasados, pero los más distantes reciben un peso
menor. Para verlo con más claridad, considérese el siguiente desarrollo de la ecuación
(3):
Como α y (1 - α) son menores que uno, cada uno de los sucesivos términos de la
ecuación es más pequeño. Por ejemplo, para α = 0,8, la ecuación (4) se convierte en:
RR =_w + s_
s
Donde:
R= tasa de respuesta
w = tiempo consumido esperando al procesador
s = tiempo de servicio esperado
Existen varias razones para construir tales sistemas. Una ventaja es un mayor
rendimiento. Al incrementar el número de procesadores, se busca realizar más
trabajo en menos tiempo. Sin embargo, la razón de aceleración con n
procesadores no es n, sino menor que n. Cuando varios procesadores
cooperan en una tarea, se necesita una cierta cantidad de trabajo adicional
para mantener a todas las partes funcionando de manera correcta. Este trabajo
adicional {overhead), mas la disputa por los recursos compartidos, reduce la
ganancia esperada de los procesadores adicionales. De manera similar, un
grupo de n programadores trabajando juntos estrechamente no da por
resultado n veces la cantidad de trabajo realizado.
3.6 PARALELISMO
Organizaciones con varios procesadores
TIPOS DE SISTEMAS DE PARALELOS
Organizaciones paralelas
Los aspectos de diseño relacionados con los SMP, los «clusters», y los
NUMA, son complejos, implicando cuestiones relativas a la organización
física, las estructuras de interconexión, el diseño de los sistemas
operativos, y el software de las aplicaciones. Nuestro interés se centra
fundamentalmente en la organización, aunque se describirán brevemente
aspectos del diseño de los sistemas operativos.
3.7 SISTEMAS MULTIPROCESAMIENTO
Multiprocesadores Simétricos
4. Todos los procesadores pueden desempeñar las mismas funciones (de ahí
el término simétrico).
Es importante resaltar que los anteriores son beneficios potenciales, más que
beneficios garantizados. El sistema operativo debe disponer de herramientas y
funciones que permitan explotar el paralelismo presente en un SMP.
Memoria multipuerto
Otra cuestión más: se debe utilizar una estrategia de escritura directa {«write-
through») para controlar la cache, puesto que no hay forma de avisar a los
otros procesadores de una actualización de memoria.
Unidad de control central
• Interconexión conmutada
• Caches L2 compartidas
• Cache L3
Interconexión conmutada
Hay que tener en cuenta que, aunque hay cuatro módulos de memoria
distintas, cada PU y cada L2 solo tienen dos puertos físicos en la dirección de
memoria principal. Esto se debe a que cada cache L2 solo almacena datos de
la mitad de la memoria principal. Se necesitan dos caches para dar servicio a
toda la memoria principal, y cada PU debe conectarse a ambas caches.
Caches L2 compartidas
La Tabla 16.1 muestra las prestaciones que se obtienen en este SMP con tres
niveles de cache, para el caso de una carga de trabajo típica de una
aplicación comercial del S/390, que carga considerablemente el bus y la
memoria [DOET97]2. La penalización de acceso al almacenamiento es el
retardo entre la petición del dato a la jerarquía de caches, y el momento en el
que se obtiene el primer bloque de datos de 16 bytes. La cache LI muestra un
porcentaje de aciertos del 89 %, de forma que el 11 % de los restantes
accesos a memoria deben resolverse en el nivel L2, L3, o en memoria. De este
11 %, un 5 % se resuelven en la cache L2, y así sucesivamente. Utilizando
estos tres niveles de cache, solo un 3 % de las referencias necesitan acceder a
memoria. Sin el tercer nivel, la proporción de accesos a memoria principal se
duplicaría.
Cache Li 15 32 KB 89 5
Cache L2 14 256KB 33
Cache L3 32 2MB
Memoria
8 GB