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 />
Ejecutándose en modo usuario<br />
interrupción,<br />
vuelta interrupción.<br />
llamada al sistema,<br />
interrupción<br />
1<br />
volver<br />
volver a<br />
usuario<br />
9<br />
exit<br />
2<br />
Ejec. modo kernel<br />
requisar<br />
7<br />
Zombie<br />
4<br />
Durmien<br />
do en<br />
memoria<br />
dormir<br />
<strong>de</strong>spertar<br />
sacar <strong>de</strong> memoria<br />
principal (swap<br />
out)<br />
swap out<br />
or<strong>de</strong>n <strong>de</strong>l.<br />
scheduler<br />
3<br />
swap in<br />
Requisado,<br />
cambio <strong>de</strong><br />
contexto<br />
Listo ejec. en memoria<br />
memoria suficiente<br />
Creado<br />
8<br />
fork<br />
6<br />
Durmiendo, intercambiado<br />
(área <strong>de</strong> swap)<br />
<strong>de</strong>spertar<br />
5<br />
memoria. insuficiente<br />
(sólo en sist. con<br />
intercambio)<br />
Listo para ejecución,<br />
intercambiado (área <strong>de</strong> swap)<br />
Figura <strong>2.</strong>1. Diagrama <strong>de</strong> transición <strong>de</strong> estados <strong>de</strong> un proceso en un sistema UNIX.<br />
Recor<strong>de</strong>mos que existen dos niveles <strong>de</strong> ejecución para un proceso: modo kernel (2) y modo usuario (1).<br />
• Modo kernel (modo privilegiado). En este modo no se impone ninguna restricción al kernel <strong>de</strong>l<br />
sistema. El kernel podrá:<br />
− Utilizar todas las instrucciones <strong>de</strong>l procesador.<br />
− Manipular toda la memoria.<br />
− Dialogar directamente con todos los controladores (drivers) <strong>de</strong> dispositivos, ...<br />
• Modo usuario. Modo <strong>de</strong> ejecución normal <strong>de</strong> un proceso. En este modo el proceso no posee ningún<br />
privilegio.<br />
− Ciertas instrucciones están prohibidas.<br />
− Sólo tiene acceso a las zonas que se le han asignado al proceso.<br />
− No pue<strong>de</strong> interactuar con la máquina físicas (hardware).<br />
− Sólo efectúa operaciones en su entorno, sin interferir con los <strong>de</strong>más procesos.<br />
− Pue<strong>de</strong> ser interrumpido en cualquier momento, pero esto no obstaculiza su funcionamiento.<br />
Recor<strong>de</strong>mos también que un proceso que se ejecute en modo usuario no pue<strong>de</strong> acce<strong>de</strong>r directamente a los<br />
recursos <strong>de</strong> la máquina, para ello <strong>de</strong>be efectuar “llamadas al sistema”. Una llamada al sistema es una petición<br />
transmitida por un proceso al kernel. El kernel trata la petición en modo kernel, con todos los privilegios, y<br />
envía el resultado al proceso, que prosigue su ejecución en modo usuario. Una llamada al sistema provoca un<br />
cambio: (1) el proceso ejecuta una instrucción <strong>de</strong>l procesador que le hace pasar a modo kernel (interfaz <strong>de</strong><br />
llamadas al sistema), (2) el kernel ejecuta una función <strong>de</strong> tratamiento vinculada a la llamada al sistema que<br />
ha efectuado, y (3) el proceso vuelve a modo usuario para proseguir con su ejecución. De este modo, el<br />
propio proceso trata su llamada al sistema, ejecutando una llamada al kernel. Esta función que ejecuta el<br />
kernel, se supone que es fiable y pue<strong>de</strong> ejecutarse 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>5