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>3.3. Organización <strong>de</strong> la Memoria <strong>de</strong>l Kernel.<br />

Aunque el kernel ejecuta en el contexto <strong>de</strong> un proceso, su espacio virtual es in<strong>de</strong>pendiente <strong>de</strong> todos los<br />

procesos. El kernel permanece en memoria en todo momento y su código y datos se comparte. En el<br />

arranque (boot) se carga su código y se preparan las tablas y registros para mapear su espacio virtual. Estas<br />

páginas y el mecanismo para mapearlas es el mismo usado para los procesos, pero estas tablas son visibles<br />

solo cuando se ejecuta en modo kernel (en general el kernel y el hardware colaboran para permitir/inhibir<br />

este acceso, ya sea cargando <strong>de</strong>terminados registros cuando se ejecuta en modo kernel o dividiendo el<br />

espacio físico.<br />

• Las tablas <strong>de</strong> páginas <strong>de</strong>l kernel y mecanismos <strong>de</strong> traducción <strong>de</strong> direcciones virtuales a físicas son<br />

análogas a las <strong>de</strong> los procesos.<br />

• Espacio <strong>de</strong> direcciones virtuales <strong>de</strong> un proceso.<br />

– Clases sistema.<br />

– Clases usuario.<br />

– Cada clase tiene su propia tabla <strong>de</strong> páginas.<br />

• Colaboración <strong>de</strong>l hardware + sistema operativo.<br />

– Cuando un proceso se ejecuta en modo kernel permite accesos a direcciones kernel.<br />

– Prohibidos cuando se ejecuta en modo usuario.<br />

• Tripletas <strong>de</strong> registros <strong>de</strong>l kernel, para mapear las tablas <strong>de</strong> páginas <strong>de</strong> los proceso y <strong>de</strong>l kernel.<br />

– Modo kernel.<br />

– Cambio <strong>de</strong> modo kernel a modo usuario ⇒ el sistema permita o no referencias a direcciones<br />

vía las tripletas <strong>de</strong> registros <strong>de</strong>l kernel.<br />

+ Dirección <strong>de</strong> la Tabla <strong>de</strong> Páginas (en memoria).<br />

+ Primera dirección virtual mapeada (base <strong>de</strong> la región).<br />

+ Longitud <strong>de</strong> la Tabla <strong>de</strong> Páginas (permisos, tipo <strong>de</strong> página, etc.).<br />

Dir. tabla<br />

<strong>de</strong> páginas<br />

Dir. virtual<br />

en proceso<br />

Nº págs en<br />

tabla págs.<br />

Tripleta reg. kernel<br />

Tripleta reg. kernel<br />

Tripleta reg. kernel<br />

Tripleta reg. usuario 1<br />

Tripleta reg. usuario 1<br />

Tripleta reg. usuario 1<br />

Código<br />

Datos<br />

Pila<br />

Código<br />

Datos<br />

Pila<br />

856<br />

917<br />

564<br />

444<br />

747<br />

950<br />

333<br />

556<br />

997<br />

458<br />

632<br />

0<br />

4<br />

3<br />

17<br />

128<br />

97<br />

135<br />

139<br />

256<br />

292<br />

304<br />

279<br />

Tablas páginas por proceso Tablas páginas kernel<br />

Figura <strong>2.</strong>8. Organización <strong>de</strong> la memoria <strong>de</strong>l kernel y <strong>de</strong> los procesos. Se usan tablas <strong>de</strong> páginas y un<br />

conjunto <strong>de</strong> registros para mapear las direcciones <strong>de</strong> inicio <strong>de</strong> estas páginas. Es necesario <strong>de</strong>cir que se<br />

dispone <strong>de</strong> una pila por cada proceso (el código y los datos son el mismo, es <strong>de</strong>cir, es compartido por todos<br />

los procesos) cuando éste se ejecuta en modo kernel.<br />

Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>17

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

Saved successfully!

Ooh no, something went wrong!