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
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 />
Memoria <strong>de</strong>l kernel<br />
Entorno<br />
0xC0000000<br />
Argumentos<br />
Pila<br />
Datos (bss)<br />
Datos (data)<br />
Código o texto<br />
_end<br />
_data<br />
_etext<br />
Figura <strong>2.</strong>4. Espacio <strong>de</strong> direccionamiento <strong>de</strong> un proceso.<br />
0<br />
Asignación <strong>de</strong> memoria.<br />
Cuando un proceso empieza su ejecución, sus segmentos (código, datos y pila) poseen un tamaño fijo. Sin<br />
embargo, existen funciones <strong>de</strong> asignación y liberación <strong>de</strong> memoria, que permiten a un proceso manipular<br />
variables cuyo número o tamaño no es conocido en el momento <strong>de</strong> su compilación ⇒ asignación y liberación<br />
<strong>de</strong> memoria <strong>de</strong> forma dinámica (funciones malloc, calloc, realloc, free).<br />
Las asignaciones y liberaciones se efectúan modificando el tamaño <strong>de</strong>l segmento <strong>de</strong> datos <strong>de</strong>l proceso.<br />
Cuando <strong>de</strong>be asignarse un dato, el segmento <strong>de</strong> datos aumenta en el número <strong>de</strong> bytes necesario y el dato<br />
pue<strong>de</strong> almacenarse en el espacio <strong>de</strong> memoria así asignado. Cuando un dato situado al final <strong>de</strong>l segmento <strong>de</strong><br />
datos <strong>de</strong>ja <strong>de</strong> utilizarse, su liberación consiste simplemente en reducir el tamaño <strong>de</strong>l segmento.<br />
<strong>2.</strong>3.1. Regiones.<br />
• UNIX divi<strong>de</strong> el espacio <strong>de</strong> direcciones virtual <strong>de</strong>l proceso en zonas lógicas. Como se ha expuesto<br />
anteriormente el espacio <strong>de</strong> direccionamiento <strong>de</strong> un proceso se compone <strong>de</strong> varias regiones <strong>de</strong><br />
memoria. Cada región <strong>de</strong> memoria se caracteriza por varios atributos:<br />
− Sus direcciones <strong>de</strong> inicio y fin.<br />
− Los <strong>de</strong>rechos <strong>de</strong> acceso que tiene asociados.<br />
− El objeto asociado (por ejemplo, un archivo ejecutable que contiene el código ejecutable<br />
para el proceso).<br />
• Región: Área contigua <strong>de</strong>l espacio <strong>de</strong> direcciones virtuales <strong>de</strong> un proceso que pue<strong>de</strong> ser tratada<br />
como un objeto a ser protegido o compartido.<br />
– Como entidad, se pue<strong>de</strong> tratar como un objeto cuyas operaciones principales son:<br />
+ Creación y eliminación <strong>de</strong> regiones <strong>de</strong> memoria.<br />
+ Proteger regiones <strong>de</strong> memoria.<br />
+ Modificaciones para las protecciones <strong>de</strong> las regiones <strong>de</strong> memoria.<br />
+ Reasignar regiones <strong>de</strong> memoria.<br />
+ Compartir regiones <strong>de</strong> memoria.<br />
– Concepto <strong>de</strong> Región: In<strong>de</strong>pendiente <strong>de</strong> la política <strong>de</strong> gestión <strong>de</strong> memoria implementada en el<br />
sistema operativo.<br />
• Las regiones <strong>de</strong> memoria contenidas en el espacio <strong>de</strong> direccionamiento <strong>de</strong> un proceso pue<strong>de</strong>n<br />
<strong>de</strong>terminarse mostrando el contenido <strong>de</strong>l archivo maps, situado en el directorio <strong>de</strong> cada proceso en<br />
el sistema <strong>de</strong> archivos /proc.<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>12