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