Professional Documents
Culture Documents
Sistemas Operativos
1. Introduccin.
1.1. Origen y Evolucin del Concepto de Proceso.
Memoria
Principal
Lista de
Procesos
PC
Proceso
A
B
texto
datos
pila
Registros
Procesador
PCB
texto
Proceso
B
PC
datos
pila
El SO gestiona procesos y recursos, por lo que debe mantener informacin actualizada del estado de
cada proceso y cada recurso.
- Tablas de memoria: Permiten al SO controlar el uso de la memoria principal (incluso tambin
secundaria) por los procesos.
- Tablas de entrada/salida: Usadas por el SO para gestionar los dispositivos de E/S.
- Tablas de ficheros: Informacin sobre los ficheros, su ubicacin en memoria secundaria, etc.
- Tablas de procesos: bloque de control de procesos.
El SO agrupa toda la informacin que necesita para controlar y gestionar a un proceso en su PCB.
- Esta informacin sirve como descripcin en tiempo de ejecucin.
- Un proceso existe en cuanto tiene un PCB
El SO conoce un Proceso slo si hay un PCB asociado a l.
- Si un programa es elegido para competir por los recursos del sistema Hay crear el proceso SO
crea el PCB para ese proceso.
- Cuando llegue el fin de un proceso El SO libera el PCB.
Cada SO le da una implementacin diferente al PCB.
Todas las operaciones que el SO realiza sobre un proceso implican la manipulacin de su PCB.
Todos los PCB se organizan en la tabla de procesos.
El contenido de un PCB es, realmente, el contexto de ejecucin de proceso.
El PCB es:
- Una Estructura de Datos.
- En l se registran diferentes aspectos de la ejecucin de un proceso y del uso de recursos.
- Adems es un repositorio para cualquier informacin que puede variar de proceso en proceso.
La Identificacin del Proceso: Identifica al proceso a la hora de comunicarse con otros procesos,
conocer su jerarqua, identificar qu proceso utiliza cada recurso
- Identificador numrico nico del proceso: A cada proceso que se crea el SO le da un nombre (en
realidad le da un n), as el SO puede identificar los procesos. Puede ser usado:
en otras tablas como referencia
para la identificacin del proceso cuando se comunica con otros
si la tabla de procesos es un array, se puede obtener el PCB del proceso usndolo como ndice.
- Identificador de su proceso padre: si los procesos estn autorizados a crear otros procesos.
- Identificador del usuario responsable del trabajo.
Informacin de Control del Proceso: (Informacin adicional necesaria para que el SO controle y
coordine los diferentes procesos activos). Informacin que el SO necesita para administrar el proceso
- Datos de planificacin y estado: Estado del proceso, prioridad, datos de planificacin, sucesos.
- Pertenencia del proceso a estructuras de datos: Enlaces en Colas, listas, etc. Tiene datos necesarios
para mantener las estructuras.
- Comunicacin entre procesos.
- Privilegios de los procesos.
- Ubicacin en memoria: de su cdigo, datos y pila
- Propiedad y uso de los recursos.
La siguiente instruccin que tiene que ejecutar el Procesador es la que aparezca en el contenido del
registro PC (es decir, la instruccin a la que apunte el PC).
- El PC evoluciona a la siguiente instruccin a la actual (se actualiza para la prxima vez que
tengamos que acceder a l para saber qu instruccin es la siguiente a ejecutar).
- No posibilita la intercalacin de instrucciones de diferentes programas (multiprogramacin y/o
tiempo compartido): No hay gestin de interrupciones, la E/S tiene que ser por programa.
- E/S por programa:
El mdulo del E/S del SO es el que realiza la operacin, dialoga con el dispositivo.
Comprueba constantemente el estado del dispositivo hasta que detecta que se ha completado la
operacin.
SO Multiprogramados
- Un proceso P se ejecuta hasta que debe esperar el fin de una operacin de E/S (completar E/S)
Cuando ocurre esto el S.O. le quita la CPU a P y se la da a Q.
- Para implementar la multiprogramacin es necesario poder intercalar las instrucciones de un
programa con las de otros, con lo que hay que guardar informacin en el PCB. (En los registros del
procesador tenemos la informacin del PCB del proceso que est en ejecucin. Si lo quitamos de la
CPU hay que guardar los datos del procesador en su PCB para que la prxima vez que ejecute tenga
actualizados los datos y hay que poner en los registros del procesador los datos del PCB del nuevo
proceso que se va a ejecutar, para que trabaje con sus datos y no con los del proceso anterior).
- Necesidades
La CPU ya no puede estar constantemente comprobando el estado del dispositivo de E/S para
ver si termin la operacin iniciada para P, pero la operacin de E/S terminar en algn
momento y el SO tendr que saberlo. Se necesita por lo tanto, E/S dirigida por interrupciones.
- E/S dirigida por interrupciones
El mdulo de E/S del SO solicita la realizacin de la operacin al dispositivo
El dispositivo avisar al final de la operacin con una interrupcin.
Durante la realizacin de la operacin, la CPU puede dedicarse a otras cosas, como ejecutar
otros procesos por ejemplo.
SO de Tiempo compartido
- Un proceso P se ejecuta de forma continuada hasta que finaliza el tiempo que tiene asignado (o bien
tiene que hacer E/S multiprogramacin).
- Consiste en ejecutar otra instruccin de un programa diferente a ste
- Necesidades
Interrupciones de fin de tiempo (reloj) para saber que se ha agotado el tiempo.
Las interrupciones posibilitan que el S.O. recupere el control ante determinados sucesos, sin que el
proceso lo ceda voluntariamente (como s ocurre en las llamadas al sistema). Son la principal
herramienta para sistemas multiprogramados. Cuando hay que cambiar de proceso se produce una
interrupcin.
1.6. Interrupciones.
Se puede producir degradacin del sistema y Destruccin de datos de otros procesos o del S.O., por
lo que es necesario un mecanismo controlado y seguro de ejecucin de Instrucciones Peligrosas.
Los Peligros deben hacerse siempre bajo control del S.O. El S.O. debe hacer las siguiente tareas:
- Acceso a los recursos (hardware o software).
- Creacin y gestin de procesos.
- Acciones sobre memoria, etc.
Llamadas Al Sistema:
- Proporcionan la interfaz entre el SO y un programa en ejecucin.
- Son el mecanismo por el cual un proceso puede solicitar al SO la realizacin de un servicio.
- Provoca la ejecucin de cdigo del SO que se hace siempre en modo privilegiado.
Muchos procesadores cuentan con una instruccin especial denominada interrupcin software, llamada
al sistema, trap al S.O,
Las llamadas al sistema se implementan con una instruccin especial (trap) que genera una interrupcin.
- Cuando se ejecuta, el hardware la trata como una interrupcin.
- La gestin de la interrupcin es realizada por el SO en modo privilegiado, puede acceder a todos los
recursos.
- El SO examina la instruccin que provoc la interrupcin.
- Determina el tipo de servicio solicitada y obtiene informacin adicional necesaria para realizarlo.
- El sistema operativo ejecuta la solicitud y devuelve el control a algn proceso, que se ejecutar en
modo usuario. El proceso puede ser el mismo que solicit la llamada al sistema u otro.
1.6.1.3. Interfaz de Alto Nivel de Llamadas al Sistema
Los lenguajes de alto nivel permiten hacer llamadas al sistema desde el programa. Estas llamadas al
sistema parecen llamadas a procedimientos o funciones normales.
Cuando se programa en un lenguaje de alto nivel las llamadas al sistema estn ocultas dentro de
procedimientos o funciones de librera
- Tienen una parte inicial que prepara los parmetros del servicio solicitado de acuerdo con la forma
en que los espera el SO
- A continuacin, incluyen la instruccin especial (trap ) que es la verdadera llamada al sistema.
- Una parte final que recupera los valores de resultado del servicio, para devolverlos al proceso que
realiz la invocacin.
Ejemplo: Programa que lee datos de un fichero y los copia a otro. Los parmetros que necesita son:
Nombres de ambos ficheros. Acciones:
- Programa debe abrir el fichero origen y crear el destino.
Cada operacin (abrir el fichero origen y crear el destino) implica una llamada al sistema y trae
consigo la necesidad de gestionar los errores que se produzcan.
- Bucle lectura de datos del origen y escritura en destino (ambas son llamadas al sistema).
- El programador debe cerrar ambos ficheros (tambin es una llamada al sistema).
Uso de las llamadas al sistema:
- Problemas: No tiene portabilidad. (Distintos sistemas operativos tiene distintas llamadas al sistema).
- Solucin: Funciones de mayor nivel de abstraccin proporcionadas por lenguajes de alto nivel.
La principal responsabilidad del SO es controlar la ejecucin de los procesos: sta incluye determinar el
patrn de intercalado de ejecucin de instrucciones y la asignacin de recursos a los procesos.
El Ciclo de Vida de los Procesos se utiliza para describir el comportamiento que se quiere que exhiban
los procesos.
8
Existen varios modelos dependiendo de la complejidad que el sistema operativo sea capaz de soportar
El Ciclo de Vida de un proceso se representa por estado y transacciones. Las transacciones son
movimientos de un estado a otro.
Modelo Sencillo: Los procesos que tienen la CPU, estn ejecutndose y los que no la tienen estn en el
estado no ejecutndose.
Transaccin
Estado
Cuando cambio de proceso, para buscar el nuevo proceso voy a la lista de PCB de los procesos, adems
tendr una lista apuntando al primer PCB.
Hay que definir e implementar una rutina del sistema operativo que se encargue de cambiar procesos,
esta es el Despachador (Dispatcher).
Listo: Procesos que estn listos para ejecutarse, slo necesitan que se les de la CPU.
Ejecucin: Proceso en Ejecucin.
Bloqueado: Estos procesos no tienen la CPU, pero aunque se la diramos quedaran parados. No pueden
ejecutarse hasta que ocurra algn evento.
Exit: Cuando un proceso termina el SO no libera todos los recursos. El PCB del proceso sigue guardado por
si otro programa necesita alguna de sus funciones. Luego liberara tambin el PCB.
Nuevo: El proceso ha sido creado pero no ha sido admitido an por el SO en el conjunto de procesos
ejecutables. Habitualmente esto es debido a que el proceso an no se ha cargado en memoria.
Finalizado: El proceso ha sido eliminado por el SO del conjunto de procesos ejecutables porque ha
finalizado, o porque se ha cancelado su ejecucin por alguna razn (habitualmente, por alguna excepcin).
Un proceso sale de Ejecucin cuando no puede seguir ejecutndose porque va a hacer una E/S o termina
(exit), o cuando de se le acaba el tiempo.
Si un proceso se est ejecutando y necesita una entrada de datos exterior, pasa el estado Bloqueado hasta que
realiza esa entrada. Pasara entonces al estado Listo.
De Ejecucin pasara a Listo, cuando se le quita la CPU al proceso, por el motivo que sea. Una de las causas
ms habituales es el tiempo compartido. Cuando a un proceso se le acaba el tiempo asignado, se le quita la
CPU y tiene que esperar para ejecutarse.
10
Cuestiones de diseo:
Son necesarias dos colas:
Cola listos
Cola bloqueados
Cuando ocurre un evento, todos los procesos de la cola de Bloqueado que esperaban por l (hay
que buscarlos) se mueven a la cola de Listos
En el caso de S0s en los que pueden existir muchos procesos bloqueados, puede ser ms eficiente
tener una cola de bloqueados por cada evento.
Cuando ocurra un suceso, el sistema operativo puede pasar a listo la lista entera de procesos de la
cola correspondiente.
Problema: Se plantea un problema respecto al modelo anterior: Todos los procesos estn cargados en
memoria, tengan el estado que tengan. El problema es que la Memoria Principal es limitada, y los
procesos ocupan cada vez ms. Tambin hay otro problema, las operaciones de E/S son muy lentas en
comparacin con la velocidad de la CPU, y a pesar de la multiprogramacin, la CPU puede estar ociosa
mucho tiempo.
Soluciones:
- Aumentar cantidad de memoria.
Intercambio (swapping): Llevar un proceso de memoria principal a memoria secundaria
(preferentemente los de estado bloqueados). El proceso pasara a estado suspendido. Se suele
11
hacer cuando hay un proceso que hace que la CPU est demasiado tiempo ociosa, y as podemos
cargar otro proceso en memoria que no desperdicie tanto la CPU.
Es una operacin de E/S, pero al usarse el disco como dispositivo, el intercambio suele
mejorar el rendimiento del sistema.
En este modelo podemos suspender procesos sin falta de que estn en ejecucin (podemos suspender
procesos que estn bloqueados o listos para ejecucin). Como en el modelo anterior, los procesos
suspendidos esperan en memoria secundaria (disco duro, por ejemplo).
Implementacin del Modelo.
- Para implementar la pertenencia de los procesos a determinado estado, se guardan, asociadas con
cada estado, listas de PCB.
- Cola de Listos
Cola inicial donde se colocan los procesos.
12
PCB de aquellos procesos que no tienen el procesador en este momento pero estn esperando
que se lo den para poder ejecutarse.
SO selecciona siguiente a ejecutar de esta cola.
- Cola de Bloqueados
PCB de procesos esperando suceso para poder continuar.
Estructura de colas de PCBs
3. Control de Procesos
3.1. Creacin de Procesos
13
En cualquier momento, el proceso en ejecucin puede ser interrumpido y el SO puede decidir colocar en
el estado Ejecutando a otro proceso: Cambio de proceso
Despachador [Silberschatz, Pg. 108 (4.4.5)]
- Es un mdulo del S.O. encargado de realizar los cambios de proceso, se divide en varias etapas:
1. Salvar el contexto del proceso que abandona la CPU.Guardar datos en su PCB.
Fundamentalmente los registros del procesador y el nuevo estado al que pasa el proceso.
2. Mover al proceso a la cola correspondiente.
3. Restaurar el contexto del proceso que toma la CPU:Recuperar datos desde su PCB.
4. Eliminar a este ltimo proceso de la cola de listos y ponerlo en estado Ejecutndose.
El despachador no elige el proceso que va a tomar el control de la CPU: Lo har el planificador a corto
plazo.
La ocurrencia de una interrupcin no implica un cambio de proceso, aunque s obliga a salvar el contexto
del proceso en ejecucin para que se pueda ejecutar la rutina de tratamiento de la interrupcin y que el
mismo proceso pueda continuar despus.
Las tareas de Salvar y Restaurar contexto nos asegura que los procesos continan ejecutndose en el
punto donde lo dejaron por ltima vez y en las mismas condiciones.
Problema: sobrecarga (OVERHEAD). Todas las tareas del sistema operativo son pura sobrecarga
(consumen tiempo de CPU no til para el usuario) pero son necesarias para que todo funcione bien.
- Cambio proceso Costosa, compleja y frecuente
Afecta significativamente al rendimiento de SO de multiprogramacin.
14
Es costoso por ser muy frecuente: depende tambin de la velocidad de la memoria, el nmero de
registros a copiar y de la existencia o no de instrucciones especiales para copiar todos los
registros.
Solucin: Eficiencia del cambio de proceso mejora con ayuda hardware.
Esquema hardware empleado para acelerar la conmutacin de procesos
- Disponer de mltiples conjuntos estructuralmente idnticos de registros del procesador.
- Cambio proceso cambiar puntero al conjunto de registros actual.
- Si existen ms procesos activos que conjuntos de registros, el sistema copia los datos de los registros
desde y hacia memoria.
15
16
Todos los Sistemas Operativos ofrecen una serie de Servicios a los programas de usuario referentes a
la gestin de procesos.
Estos servicios son accesibles mediante Llamadas al sistema.
Cada sistema operativo ofrece un conjunto diferente: hay un subconjunto de ellas comn.
Categoras principales:
- Creacin y eliminacin de procesos.
- Control de procesos.
- Informacin de procesos.
Idproceso = CrearProceso (Atributos)
- Crear nuevo con los atributos que se pasan como parmetros.
- El valor de retorno es el identificador del nuevo proceso.
- El S.O. obtiene un identificador que no est en uso y el PCB para el nuevo proceso.
- Asigna memoria para el nuevo proceso (texto, datos y pila).
- Crea y Rellena el PCB con atributos proporcionados, valores por defecto y valores resultantes de
alguna de las operaciones anteriores.
- Enlaza el proceso con las estructuras del S.O, insertando el PCB del proceso en la lista de listos.
Finalizar (IdProceso)
- El SO coloca al proceso en el estado Finalizado, adems reclama algunos de los recursos
asignados al proceso, habitualmente todos excepto el PCB
- Se suele invocar como parte de la terminacin ordenada de un proceso
- La finalizacin de un proceso est sujeta a ciertas restricciones, por ejemplo, slo los procesos de
un determinado usuario pueden hacer terminar procesos de l mismo.
- Un proceso puede eliminarse a s mismo y a otros (el hijo).
- Es posible que no se elimine el PCB inmediatamente, sino ms adelante, ya que es posible que
otros procesos necesiten datos del que se quiere eliminar.
idProceso =Dividir(), Unir(IdProceso): Crear un nuevo proceso para que se ejecute una instruccin
mientras el padre ejecuta otras.
- Es un mtodo de creacin y terminacin de procesos.
- Divide una secuencia de instrucciones en otras dos ejecutables concurrentemente, con lo que:
Se crea un nuevo proceso (hijo) que ejecuta parte del cdigo y el padre ejecuta la otra.
Habitualmente tambin usa una copia de los datos que estaba manipulando el padre.
Se devuelve la identidad del hijo al padre que lo puede usar para esperar el fin del hijo antes
de invocar la operacin Unir.
- Unir: Rene las secuencias de cdigo divididas y el padre puede usarlo para sincronizarse con el
hijo. El padre espera por la terminacin del hijo.
Bloquear (IdProceso): Pararse indefinidamente.
- El proceso IdProceso permanece en el sistema bloqueado indefinidamente y por lo tanto pasa al
estado Bloqueado.
- El proceso puede bloquearse a s mismo o a otros dependiendo de ciertas restricciones.
- El SO responde poniendo el PCB del proceso en la lista de Bloqueados y actualizando el estado.
Reanudar (IdProceso)
- Reanuda el proceso bloqueado.
- El SO pone el PCB en la lista de Listos para Ejecucin y actualiza el estado del proceso.
Retardar (IdProceso, tiempo)
- El proceso queda bloqueado el tiempo especificado.
- El SO ser el responsable de pasar a Listo al proceso cuando haya transcurrido dicho tiempo.
- El control del paso del tiempo ser realizado con ayuda de las interrupciones de reloj.
LeerAtributos (IdProceso, &cjtoAtributos)
17
Consulta a la que el SO responde proporcionando los valores actuales de los atributos del proceso
designado y dejndolos en la estructura de datos cjtoAtributos
- En general, dichos valores estn almacenados en el PCB del proceso.
ModificarAtributos (IdProceso, cjtoAtributos)
- Operacin inversa a la anterior.
- Ejemplo: Modificar la prioridad de un proceso
P
C
TASK
Segmento de
texto
Segmento de
datos
18
Overhead
- Todas las tareas del sistema operativo son puro overhead, pero son necesarias para que todo
funcione bien.
19