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 />
Descripción <strong>de</strong> Regiones.<br />
• Tabla <strong>de</strong> regiones <strong>de</strong>l Sistema.<br />
– Esta tabla es gestionada por el kernel (global a todo el sistema).<br />
– Una entrada se correspon<strong>de</strong> con cada región activa <strong>de</strong>l sistema.<br />
+ Información necesaria para localizar a la región en memoria física. Direcciones <strong>de</strong><br />
inicio y fin.<br />
+ Tamaño <strong>de</strong> la región.<br />
• Tabla <strong>de</strong> regiones por proceso o pregion.<br />
– Esta tabla es privada para cada proceso.<br />
– Esta tabla está relacionada con la tabla <strong>de</strong> procesos.<br />
– Cada entrada.<br />
+ Apunta a una entrada en la tabla <strong>de</strong> regiones.<br />
+ Direcciones virtuales <strong>de</strong> comienzo y <strong>de</strong> final <strong>de</strong> la región en el proceso.<br />
+ Los <strong>de</strong>rechos <strong>de</strong> acceso que tiene asociados la región. (r = lectura, w = escritura, x =<br />
ejecución y p = indica si la región pue<strong>de</strong> ser compartida por otros procesos)<br />
+ Otros campos que indican la información relativa al objeto asociado a la región <strong>de</strong><br />
memoria: el <strong>de</strong>splazamiento <strong>de</strong>l inicio <strong>de</strong> la región en el objeto, número <strong>de</strong> dispositivo<br />
que tiene asociado el objeto y el número <strong>de</strong> inodo <strong>de</strong>l objeto.<br />
• Regiones compartidas ⇒ diferentes direcciones virtuales para cada proceso (Figura <strong>2.</strong>5). En dicha<br />
figura po<strong>de</strong>mos ver dos procesos compartiendo la mismo región <strong>de</strong> código, pero la misma región<br />
está situada en dos direcciones virtuales diferentes (l 8 para el proceso a y la 4 para el proceso b)<br />
Proceso<br />
A<br />
Proceso<br />
B<br />
Tablas <strong>de</strong> regiones por proceso<br />
(Direcciones virtuales)<br />
Código 8K<br />
Datos 16K<br />
Pila 32K<br />
Código 4K<br />
Datos 8K<br />
Pila<br />
32K<br />
b<br />
a<br />
d<br />
Regiones<br />
Figura <strong>2.</strong>5. Procesos y regiones.<br />
c<br />
e<br />
Este esquema <strong>de</strong> regiones facilita la compartición <strong>de</strong> memoria, ya que para ello bastará que <strong>de</strong>s<strong>de</strong> dos tablas<br />
<strong>de</strong> regiones <strong>de</strong> proceso se apunte a la misma zona <strong>de</strong> memoria. Por esta razón, es necesario un campo con la<br />
dirección <strong>de</strong> inicio <strong>de</strong> la región, ya que la misma región podría estar en dos direcciones virtuales diferentes<br />
para dos procesos diferentes. A<strong>de</strong>más, observe que para po<strong>de</strong>r compartir las regiones necesitamos una Tabla<br />
global <strong>de</strong> regiones don<strong>de</strong> llevemos control <strong>de</strong>l número <strong>de</strong> procesos que comparten la región, indicación <strong>de</strong><br />
que la región pue<strong>de</strong> ser compartida, etc. y también surgirán algunas limitaciones para algoritmos que se<br />
puedan ejecutar sobre este tipo <strong>de</strong> regiones (por ejemplo el crecimiento dinámico <strong>de</strong> la región).<br />
<strong>2.</strong>3.<strong>2.</strong> Páginas y Tablas <strong>de</strong> Páginas.<br />
UNIX utiliza los mecanismos <strong>de</strong> memoria virtual proporcionados por el procesador sobre el que se ejecuta<br />
(paginación y segmentación). Las direcciones manipuladas por el kernel y los procesos son direcciones<br />
lógicas y el procesador junto con el sistema operativo efectúan una conversión para transformar una<br />
dirección lógica en dirección física en memoria principal. Ahora, vamos a presentar como mo<strong>de</strong>lo <strong>de</strong> trabajo<br />
un esquema <strong>de</strong> gestión <strong>de</strong> memoria por Páginas (bloques <strong>de</strong> memoria <strong>de</strong> igual tamaño [512B...4KB], cuyo<br />
formato <strong>de</strong> dirección es <strong>de</strong>l tipo (página, <strong>de</strong>splazamiento). El kernel asigna páginas a las regiones (sin<br />
continuidad ni or<strong>de</strong>n) lo que le proporciona gran flexibilidad, con un nivel controlado <strong>de</strong> fragmentación (en<br />
la última página <strong>de</strong> cada región) y un coste razonable <strong>de</strong> gestión (memoria para las tablas).<br />
La i<strong>de</strong>a en que se basa la memoria virtual es que el tamaño combinado <strong>de</strong>l código, datos y pila pue<strong>de</strong> exce<strong>de</strong>r<br />
la cantidad <strong>de</strong> memoria física disponible. El sistema operativo mantiene en memoria principal las partes <strong>de</strong>l<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>13