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

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

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

Saved successfully!

Ooh no, something went wrong!