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

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 />

<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!