Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
15
INTRODUCCIN
Requisitos que un sistema operativo debe cumplir:
-
QU ES UN PROCESO?
Tambin llamado tarea, es la ejecucin de un programa individual, siendo la entidad que se puede
asignar y ejecutar en un procesador. Adems, es una unidad de actividad que se caracteriza por la
ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema
asociados. Por tanto, para que un programa se ejecute, se debe crear un proceso para dicho
programa.
La imagen del proceso se mantiene como un bloque de memoria contiguo o continuo y
habitualmente se encuentra en memoria secundaria. Para que el SO pueda gestionar el proceso, al
menos una pequea porcin de su imagen se debe mantener en memoria principal.
Se puede caracterizar el comportamiento de un determinado proceso, listando la secuencia de
instrucciones que se ejecuta para dicho proceso. A esta lista de la denomina traza del proceso.
Los procesos estn compuestos por:
Cabe destacar que el cdigo de programa puede compartirse con otros procesos.
El bloque de control de procesos (BCP) es una estructura de datos que almacena informacin como:
identificador, estado, prioridad, control de programa (direccin a la siguiente instruccin de
programa), punteros a memoria (incluye punteros a cdigo de programa y datos asociados a dicho
proceso), datos de contexto (datos de registros), informacin de estado de E/S (peticiones E/S
pendientes), informacin de auditora (cantidad de tiempo utilizado). El BCP es creado y controlado
por el SO, y lo que le permite la multiprogramacin.
Como podemos observar en la imagen, cuando un proceso se interrumpe, los datos de contexto se
guardan en el BCP y el estado del proceso cambia. Esto se ver con ms detalle en los cambios de
ejecucin.
Cuando el SO crea un nuevo proceso, crea el BCP y reserva espacio de direcciones en memoria
principal para el nuevo proceso e inserta dicho proceso en el sistema en estado No Ejecutando. El
proceso existe y est esperando su oportunidad de ejecutar.
Problemas: slo hay una cola de No Ejecucin (podra no tenerse en cuenta el envejecimiento).
5 ESTADOS
Problema: el procesador es ms rpido que la E/S, por lo que suele ser habitual que todos los
procesos de memoria estn esperando por E/S y por lo tanto se tiene toda la memoria ocupada con
procesos pero ninguno se est ejecutando.
6 ESTADOS
El swapping (memoria de intercambio) es una solucin al modelo de 5 estados. Este mtodo implica
mover parte o todo el proceso de memoria principal a disco (cuando el proceso est en estado
suspendido). El swapping es una operacin de E/S pero debido a que es sobre disco, es
habitualmente ms rpida que la E/S sobre otros sistemas.
El SO tiene como prioridad traer un proceso que anteriormente estuviese suspendido a crear uno
nuevo.
Problema: slo pueden ser suspendidos aquellos procesos que estn en estado de bloqueado.
7 ESTADOS
Es posible ejecutar un proceso que est slo parcialmente en memoria principal. Si se hace
referencia a una direccin de proceso que no se encuentra en memoria secundaria, la porcin
correspondiente del proceso se trae a ella.
Tablas de memoria
Se usan para mantener un registro tanto de la memoria principal como de la secundaria. Las
tablas de memoria deben incluir la siguiente informacin:
BCP
Identificacin del proceso
esta forma, las tablas mantenidas por SO deben mostrar la localizacin de cada
pgina de la imagen del proceso).
Prioridad de los recursos y utilizacin.
MODOS DE EJECUCIN
El motivo por el cual se usan los otros modos es porque se necesita proteger al SO y a las
tablas clave del sistema. El PSW es el bit que indica el modo de ejecucin.
Modo usuario
Es el modo menos privilegiado porque los programas de usuario tpicamente se ejecutan en
este modo.
Modo del sistema (modo ncleo)
Es el modo ms privilegiado. Se refiere al ncleo del SO, que es la parte del SO que engloba las
funciones ms importantes del sistema.
Manipulacin de procesos
Creacin de procesos:
o Asignar un nico identificador al nuevo identificador.
o Asignar espacio para el proceso.
o Iniciar el bloque del control de procesos.
o Establecer los enlaces apropiados.
o Crear o ampliar otras estructuras de datos.
Cambio de proceso:
o Salva el contexto del P1 (BCP).
o Asigna a CP la direccin de comienzo de programa atencin a la interrupcin
de cambio de proceso.
o Cambia a modo ncleo.
o Ejecuta la rutina de atencin a la interrupcin.
Actualiza el BCP.
Mueve el BCP a la cola apropiada (listos/bloqueados/).
Selecciona otro proceso.
Actualiza el BCP seleccionado (nuevo estado: ejecucin).
Actualiza las estructuras de datos.
Restaura el contexto del proceso seleccionado, incluyendo modo
usuario.
Cambio de modo:
No implica cambio de proceso. Se puede cambiar de modo, ejecutar instrucciones
privilegiadas en modo ncleo y volver a ejecutar otras instrucciones del mismo
proceso (no necesario cambio completo de proceso, basta con guardar el contexto
del procesador).
o
o
o
o
o
o
o
Ejecucin del SO
El SO es un conjunto de programas ejecutados por un procesador. El SO con frecuencia cede
el control y depende del procesador para recuperar dicho control.
PROCESOS EN UNIX
Listo para ejecutar y en memoria: listo para ejecutar tan pronto como el ncleo lo
planifique.
Dormido y en memoria: incapaz de ejecutar hasta que se produzca un suceso; el
proceso est en memoria principal.
Dormido y descargado: el proceso est esperando un suceso y ha sido expulsado al
almacenamiento secundario.
Expulsado: el proceso retorna del modo del ncleo al modo de usuario, pero el
ncleo lo expulsa y realiza un cambio de contexto para planificar otro proceso.
Creado: proceso recin creado y an no est listo para ejecutar.
En el caso de ejecucin en modo ncleo, volvera sobre s mismo porque cuando llega una
interrupcin y stas estn habilitadas habra que atenderlas.
10
Caractersticas
Un proceso UNIX tiene dos reas de memoria: ejecucin y control.
En memoria virtual:
o Entre Pila y BSS se encuentran los datos no inicializados.
o Datos: datos inicializados.
o Instrucciones: cdigo compilado.
En memoria fsica:
o Instrucciones: instrucciones compartidas que tienen el mismo cdigo.
Control de procesos
La creacin de procesos en UNIX se realiza por medio de la llamada al sistema fork():
Todo este trabajo se realiza en modo ncleo, dentro del proceso padre.
Zombie: un hijo termina y el padre no recoge el cdigo de finalizacin del hijo. Como
proceso no tiene nada pero sigue ocupando una entrada en la tabla. Permanecer en el
sistema hasta que alguien los espere.
Hurfano: el padre muere antes que el hijo haya terminado. Ser adoptado por el proceso
init (PID = 1, ancestro de todos los procesos que se crearn posteriormente) del sistema. El
proceso con PID = 0 es el creado por el ncleo cuando arranca el SO (nico que no se crea
con una llamada a fork, se convierte posteriormente en el proceso intercambiador (gestin
memoria virtual)).
Comunicacin entre procesos
Los procesos se pueden comunicar mediante tuberas (pipes) que deben ser creadas antes
de la ejecucin del fork.
A los pipes se accede a travs de dos descriptores de ficheros (lectura/escritura) con tamao
variable. Es necesaria la relacin padre-hijo. Estas pipes son unidireccionales.
HILOS
Caractersticas
Estados
Bloqueo:
o El hilo necesita esperar suceso.
o Al bloquearse se guarda el contexto del hilo.
Terminacin.
Tipos de hilos
A nivel de usuario: el SO no conoce los hilos, por tanto, no puede planificarlos (slo
puede planificar el proceso) para ello se utiliza la biblioteca de hilos, que es un
programa independiente. En este caso, si se bloquea un hilo se bloquear el proceso
entero.
Combinado.
13
Cambios de estado
14
Caractersticas
Proceso
o BCP
o Cdigo + datos + pila
Biblioteca hilos (ULT).
Hilos a nivel de ncleo (KLT).
Procesos ligeros (LWP):
o Asociacin entre ULT y KLT.
o Cada LWP: Se planifica de forma independiente por el ncleo.
Soporta uno o ms ULT.
Est asociado con un KLT.
15
BIBLIOGRAFA
Sistemas Operativos William Stallings (5 Edicin). Editorial Pearson.
16