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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Diseño <strong>de</strong> Sistemas Operativos<br />
Tema <strong>2.</strong> Gestión <strong>de</strong> Procesos<br />
<strong>2.</strong>10. NOCIONES BÁSICAS <strong>DE</strong> PLANIFICACIÓN <strong>DE</strong> <strong>PROCESOS</strong> EN UNIX.<br />
Planificador <strong>de</strong> procesos (scheduler) UNIX: tipo Round Robin con realimentación multinivel (múltiples colas<br />
en un sistema multiusuario).<br />
<strong>2.</strong>10.1. Algoritmo <strong>de</strong> Planificación.<br />
• El kernel requisa un proceso (restaura contexto) ⇒ cambio <strong>de</strong> contexto: asignar la CPU a otro<br />
proceso.<br />
• Elegir un nuevo proceso ⇒ algoritmo para planificar el mejor proceso: mayor prioridad en la lista<br />
<strong>de</strong> <strong>de</strong>scriptores <strong>de</strong> procesos “Listos para ejecutarse”.<br />
– Si hay varios procesos en la lista ⇒ se elige el proceso que haya estado “Listo para su<br />
ejecución” más tiempo (más tiempo esperando en la lista <strong>de</strong> <strong>de</strong>scriptores <strong>de</strong> procesos “Listos<br />
para ejecutarse”).<br />
– Si no hay ningún proceso listo para su ejecución:<br />
+ El procesador (CPU) está en estado ocioso (idle) hasta la siguiente interrupción.<br />
+ Después <strong>de</strong> manejar la interrupción ⇒ el kernel busca el proceso para ejecutar.<br />
<strong>2.</strong>10.<strong>2.</strong> Parámetros <strong>de</strong> Planificación.<br />
• Entrada en la tabla <strong>de</strong> procesos ⇒ campo <strong>de</strong> prioridad para planificar procesos.<br />
• Valor numérico bajo en este campo, indica una prioridad alta.<br />
• Prioridad = f(uso reciente CPU) ⇒ Más uso ⇒ menor prioridad (valor alto para el campo<br />
prioridad).<br />
• Rango <strong>de</strong> priorida<strong>de</strong>s.<br />
– Priorida<strong>de</strong>s <strong>de</strong> usuario por <strong>de</strong>bajo <strong>de</strong> un umbral.<br />
+ Procesos requisados al volver <strong>de</strong> modo kernel a modo usuario.<br />
– Priorida<strong>de</strong>s <strong>de</strong> kernel por encima <strong>de</strong> un umbral.<br />
+ Procesos en el algoritmo sleep.<br />
* Prioridad kernel baja (valor alto para el campo prioridad) ⇒ <strong>de</strong>spiertan al<br />
recibir una señal (wakeup).<br />
* Prioridad kernel alta (valor bajo para el campo prioridad) ⇒ continuarán<br />
durmiendo (sleep).<br />
• Cada clase <strong>de</strong> procesos ⇒ varios niveles <strong>de</strong> prioridad.<br />
• Cada valor posible tiene asociada una cola <strong>de</strong> procesos (Figura <strong>2.</strong>16).<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>60