TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
TEMA 2. GESTIÃN DE PROCESOS - Universidad de AlmerÃa
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Diseño <strong>de</strong> Sistemas Operativos<br />
Tema <strong>2.</strong> Gestión <strong>de</strong> Procesos<br />
Priorida<strong>de</strong>s<br />
Modo Kernel<br />
No Interrumpible<br />
por señales<br />
swapper<br />
esperando I/O<br />
<strong>de</strong> disco<br />
esperando buffer<br />
esperando nodo-i<br />
umbral <strong>de</strong> prioridad<br />
Interrumpible<br />
por señales<br />
esperando una<br />
entrada<br />
esperando una<br />
salida<br />
esperando el<br />
exit <strong>de</strong> un hijo<br />
nivel usuario 0<br />
nivel usuario 1<br />
Priorida<strong>de</strong>s<br />
Modo Usuario<br />
nivel usuario n<br />
Figura <strong>2.</strong>16. Rango <strong>de</strong> Priorida<strong>de</strong>s <strong>de</strong> los procesos.<br />
<strong>2.</strong>10.3. Cálculo y Control <strong>de</strong> Prioridad <strong>de</strong> un Proceso.<br />
• A: Asigna la prioridad a un proceso a punto <strong>de</strong> dormir ⇒ Valor fijo <strong>de</strong>pendiente <strong>de</strong> la razón por la<br />
que se fue a dormir.<br />
• B: Ajusta la prioridad a un proceso cuando vuelve a modo usuario <strong>de</strong>s<strong>de</strong> modo kernel.<br />
– Tiene prioridad muy alta.<br />
– Ha usado valiosísimos recursos <strong>de</strong>l kernel.<br />
• C: Ajusta las priorida<strong>de</strong>s a procesos en modo usuario en intervalos fijos <strong>de</strong> tiempo (quantum) y<br />
ejecuta el algoritmo <strong>de</strong> planificación para prevenir la monopolización <strong>de</strong> la CPU por parte <strong>de</strong><br />
<strong>de</strong>terminados procesos (Round Robin).<br />
• Reloj pue<strong>de</strong> interrumpir el proceso varias veces durante su quantum <strong>de</strong> tiempo.<br />
• Cada interrupción ⇒ el manejador <strong>de</strong> interrupciones incrementa el campo <strong>de</strong> prioridad en la tabla<br />
<strong>de</strong> procesos que registra el uso reciente <strong>de</strong> CPU por parte <strong>de</strong>l proceso.<br />
• Cuando se produce el fin <strong>de</strong>l quantum ⇒ calcula el uso reciente <strong>de</strong> la CPU ajustándolo con:<br />
– Función <strong>de</strong> <strong>de</strong>caimiento ⇒ <strong>de</strong>caimiento (CPU) = CPU / <strong>2.</strong><br />
• Recalcula la prioridad <strong>de</strong> procesos en estado “listo para su ejecución”.<br />
– prioridad = (uso_reciente_CPU / 2) + (nivel_base_prioridad_usuario).<br />
• El efecto <strong>de</strong> recalcular las priorida<strong>de</strong>s ⇒ Movimiento <strong>de</strong> procesos entre las diferentes colas <strong>de</strong><br />
prioridad.<br />
• Otras implementaciones <strong>de</strong>l mecanismo <strong>de</strong> planificación.<br />
– Variar el tamaño <strong>de</strong>l quantum <strong>de</strong> tiempo dinámicamente según la carga <strong>de</strong>l sistema.<br />
– Respuesta más rápida vs. más cambios <strong>de</strong> contexto ⇒ elegir un tamaño <strong>de</strong> quantum<br />
a<strong>de</strong>cuado.<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>61