12.10.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!