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 />
• Campo <strong>de</strong> valor <strong>de</strong> retorno que almacena el resultado <strong>de</strong> las llamadas al sistema efectuadas por el<br />
proceso.<br />
• Parámetros <strong>de</strong> E/S que <strong>de</strong>scriben la cantidad <strong>de</strong> datos a transferir, la dirección <strong>de</strong>l array origen o<br />
<strong>de</strong>stino <strong>de</strong> la transferencia y los punteros <strong>de</strong> Lectura/Escritura <strong>de</strong>l archivo al que se refiere la<br />
operación <strong>de</strong> Entrada/Salida.<br />
• El directorio <strong>de</strong> trabajo actual y el directorio raíz asociados al proceso.<br />
• Tabla <strong>de</strong> <strong>de</strong>scriptores <strong>de</strong> archivos que i<strong>de</strong>ntifica los archivos que tiene abiertos el proceso.<br />
• Campos <strong>de</strong> límite que restringen el tamaño <strong>de</strong>l proceso y el tamaño <strong>de</strong> algún archivo sobre el que<br />
pue<strong>de</strong> escribir.<br />
• Una máscara <strong>de</strong> permisos que va a ser utilizada cada vez que se cree un nuevo archivo.<br />
En resumen, para gestionar los procesos, el kernel, en general, divi<strong>de</strong> (conceptualmente y en la<br />
implementación) la información <strong>de</strong>l proceso en dos apartados: la necesaria para localizarlo y planificarlo<br />
(Tabla <strong>de</strong> Procesos) y el resto <strong>de</strong> informaciones referentes la proceso (u-Area). Tabla <strong>de</strong> Procesos ⇒<br />
localizar el proceso y su u-Area; u-Area ⇒ caracterización <strong>de</strong>tallada <strong>de</strong>l proceso.<br />
Tabla <strong>de</strong> Procesos<br />
Global <strong>de</strong>l Kernel (todos los procesos)<br />
Estática (n entradas)<br />
Estado<br />
Localización <strong>de</strong> la u-Area<br />
Tamaño <strong>de</strong>l proceso<br />
I<strong>de</strong>ntificadores (grupos, señales)<br />
Evento en el que duerme<br />
Parametros <strong>de</strong> planificación<br />
Señales recibidas no atendidas<br />
Tiempos y recursos consumidos<br />
u-Area<br />
Local, asociada al proceso (sólo visible al proceso en ejecución)<br />
Dinámica (solo para procesos en el sistema)<br />
Puntero a la tabla <strong>de</strong> procesos<br />
I<strong>de</strong>ntificadores (permisos), máscaras <strong>de</strong> permisos (create)<br />
Detalle <strong>de</strong> tiempos<br />
Acción ante señales<br />
Terminal asociada, cuotas <strong>de</strong> proceso y archivos<br />
Campo <strong>de</strong> error en llamadas al sistema<br />
Valor <strong>de</strong> retorno en llamadas al sistema<br />
Parámetros para E/S, Curr_dir y Root_dir, Tabla <strong>de</strong> archivos<br />
<strong>2.</strong>3. ORGANIZACIÓN <strong>DE</strong> LA MEMORIA <strong>DE</strong>L SIS<strong>TEMA</strong>.<br />
• La memoria física <strong>de</strong> una máquina es direccionable <strong>de</strong>s<strong>de</strong> el byte 0 hasta el byte que se<br />
correspon<strong>de</strong> con la memoria total <strong>de</strong> la máquina.<br />
• En UNIX, el kernel genera direcciones para un proceos en un espacio <strong>de</strong> direcciones virtual <strong>de</strong>ntro<br />
<strong>de</strong> un rango dado.<br />
– No hay otros procesos en dicho rango <strong>de</strong> direcciones virtual ⇒ no hay conflictos para el uso<br />
<strong>de</strong> la memoria entre procesos.<br />
– La memoria es infinita.<br />
• Unidad <strong>de</strong> gestión <strong>de</strong> memoria <strong>de</strong> la máquina.<br />
– Direcciones virtuales ⇒ Direcciones físicas.<br />
• Los subsistemas <strong>de</strong>l kernel y <strong>de</strong>l hardware (control <strong>de</strong>l hardware) cooperan para realizar la<br />
traducción <strong>de</strong> direcciones virtuales a físicas ⇒ subsistema <strong>de</strong> gestión <strong>de</strong> memoria.<br />
Espacio <strong>de</strong> direccionamiento <strong>de</strong> un proceso.<br />
A todo proceso se le asocia un espacio <strong>de</strong> direccionamiento que representa las zonas <strong>de</strong> memoria asignadas a<br />
dicho proceso. Este espacio <strong>de</strong> direcciones disponibles se <strong>de</strong>scompone en regiones <strong>de</strong> memoria utilizables<br />
por el proceso. Este espacio <strong>de</strong> direcciones incluye:<br />
• El código (texto) <strong>de</strong>l proceso.<br />
• Los datos <strong>de</strong>l proceso, que se <strong>de</strong>scompone en dos segmentos, por una parte data, que contiene las<br />
variables inicializadas, y por otra parte bss (block started symbol) que contiene las variables no<br />
inicializadas.<br />
• La pila utilizada por el proceso<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>11