Title: TEMA 2: GESTIN DE PROCESOS
1TEMA 2 GESTIÓN DE PROCESOS
- 1. Introducción
- 1.1. Aparición del concepto de Proceso
- 1.2. Definición de Proceso
- 1.3. Requisitos del Sistema Operativo para los
procesos - 1.4. Modelo de Procesos
- 2. Descripción de Procesos
- 3. Ciclo de Vida de Procesos
- 3.1. Modelo de cinco estados
- 3.2. Modelo General
- 3.3. Implantación del modelo
- 4. Control de Procesos
- 4.1. Modos de Ejecución
- 4.2. Cambio de Proceso
- 5. API del Sistema Operativo para la Gestión de
Procesos - 6. Conceptos Avanzados
- 6.1. Hebras
- 6.2. Cuestiones de Rendimiento
21.1. Aparición del Concepto de Proceso
- En sistemas antiguos ? 1 único programa en
ejecución que tenÃa control absoluto sobre el
sistema y todos sus recursos - Evolución de los sistema informáticos ? nuevas
necesidades - mejor rendimiento, interacción con el usuario,
varios usuarios, tiempo real - Nuevos objetivos de diseño para los sistemas
operativos - Multiprogramación, tiempo compartido, tiempo real
- Origen de la abstracción de proceso
- Multiprogramación Multiplexar los recursos del
sistema entre los programas a ejecutar - Tiempo compartido Soporte a varios usuarios
- Necesidad de una abstracción que represente la
ejecución de un programa ? supervisión y control
de la ejecución de los distintos programas.
3- Multiprogramación
- Multiplexar recursos entre programas
- Objetivo
- Mantener al procesador ocupado ? cambiar su
atención entre los distintos programas a
ejecutar. - Elevar el nivel de la máquina subyacente
- SO transforma máquina fÃsica ? múltiples máquinas
virtuales en la que ejecutar los procesos - Ciclo de Ejecución de un proceso
- Ejecutar P hasta que debe esperar (completar E/S)
- SO le quita la CPU a P y se la da a Q.
- Para implementar multiprogramación es necesario
poder intercalar las instrucciones de un programa
con las de otro. - Ciclo de ejecución tÃpico de una instrucción
- Busca ? decodifica ? ejecuta
- Siguiente instrucción ejecutada por el Procesador
? PC - PC evoluciona a la siguiente instrucción a la
actual. - Pero, es posible poner otra instrucción diferente
a esta, incluso, de otro programa. - Principal herramienta para el desarrollo de
sistemas de multiprogramación y en tiempo
compartido ? interrupción.
4- Interrupciones
- Permite interrumpir la ejecución de un programa
ante el acontecimiento de un suceso determinado. - Pprocesador puede ejecutar otras instrucciones
mientras se está realizando alguna operación de
E/S. - Ciclo ejecución instrucciones con interrupción
- Busca ? decodifica ? ejecuta ? trata
interrupción. - Nueva etapa que determina y trata interrupciones
- Procesador registra situación exacta de la
ejecución del trabajo actual - Se desvÃa a la rutina de tratamiento de la
interrupción, - La procesa según su naturaleza y, posteriormente,
reanudar el mismo u otro trabajo de usuario. - La rutina de tratamiento de la interrupción forma
parte del sistema operativo. Este programa
determina la naturaleza de la interrupción y
ejecuta cuantas acciones sean necesarias. - Interrupciones software
- Se provocan mediante la invocación de una
instrucción que existe en casi todos los
procesadores ??trap al SO - Esta instrucción permite provocar interrupciones
software desde el programa - Se usa para pedir servicios al S.O. sistema
operativo y se gestiona como si fuese una
interrupción
5- main(int argc, char argv)
- procesador.reloj0 / Inicializar el reloj/
- while (hay_algo_que_ejecutar())
- / Simulación ciclo ejecución instrucciones /
- busca_instrucción(...)
- decodificaejecutainstruccion(...)
- comprobarinterrupciones()
- procesador.reloj
- / fin while /
-
- void decodificaejecutainstruccion(...)
- / Simulación del procesador /
-
- switch (instrucción_a_ejecutar)
- / Instrucciones varias del procesador /
- case 'T' / Trap al sistema operativo /
- / Poner en el registro adecuado el valor 1 para
indicar que hay interrupción / - / Poner en el registro adecuado el valor que
indique el tipo de interrupción / -
6- void llamadaalsistema() / Ejecución del trap /
-
- switch(numsyscall)
- case E/S elegirprocesoaejecutar()
-
-
- void comprobarinterrupciones()
- / Aquà se comprueban las interrupciones de fin
de E/S y las de llamada al sistema ... / - / Comprobar si hay llamada al sistema /
- if (procesador.hayllamadaalsistema)
- llamadaalsistema()
- procesador.hayllamadaalsistema0
-
- / Comprobar si hay interrupcion de fin de E/S /
- if(procesoi.finalentradasalida)
- procesoi.estadoLISTO
-
71.2. Definición de Proceso
Memoria Principal
- Proceso ? programa en ejecución
- Cargado en memoria
- Proceso versus Programa
- Entidad dinámica / estática
- Compuesto por un conjunto de zonas de memoria
llamadas en conjunto contexto del proceso - texto, datos, pila
- información que el s.o. necesita para administrar
el proceso?? PCB.
Lista de Procesos
PCB
texto
Proceso A
datos
pila
Registros Procesador
PCB
Proceso B
texto
PC
datos
pila
81.3. Requisitos del Sistema Operativo para la
Gestión de Procesos
- Sistemas operativos de multiprogramación ?
construidos en torno al concepto de proceso - Requisitos de diseño que debe satisfacer un
sistema operativo relativos a este concepto - Intercalar la ejecución de un conjunto de
procesos para maximizar el uso de la CPU
garantizando que el proceso progresa hasta
terminar - Asigna recursos a los procesos que compite por
ellos siguiendo polÃticas especÃficas - Da soporte a la creación y destrucción de
procesos por parte del usuario y a la
comunicación entre ellos. - Creación ? Crea PCB que vive durante toda la vida
del proceso - Destrucción ? Libera memoria ocupada por el PCB
91.4. Modelo de Procesos
- SO ? programa de control que controla la
ejecución de los procesos - Describir el comportamiento que se quiere que
exhiban ? Ciclo de Vida de los Procesos - Modelo sencillo
- Cuestiones de diseño
- Información acerca de los procesos para poder
restaurarlos luego - Proceso que no tiene la CPU?
101.4. Modelo de Procesos Entrada y Salida de
Procesos del Modelo
- Independientemente del modelo, ?dos sucesos que
delimitan la vida del proceso Nacimiento y
muerte. - Creación de Procesos
- La lleva a cabo el sistema operativo
- Creación transparente al usuario no relación
- process spawning JerarquÃa
- Compartición de recursos Padre e hijo comparten
todos, parte o ninguno - Ejecución
- Se ejecutan concurrentemente
- Padre espera a que termine el hijo
- Implica crear estructuras de datos para
representar el proceso Crear PCB - Asignar espacio de direcciones que necesita
- Eliminación de Procesos
- Instrucción de finalización como última
instrucción de código - llamada explÃcita a un servicio del sistema
operativo (exit) - errores
- padre mata hijo
112. Descripción de Procesos
- 2.1. El PCB
- SO administra el uso que los procesos hacen de
los recursos - Para gestionar procesos y administrar el uso que
hacen de los recursos, el SO construye y mantiene
estructuras de control - PCB
- Estructura de datos con campos para registrar los
diferentes aspectos de la ejecución de un proceso
y del uso de recursos. - Sirve como repositorio para cualquier información
que puede variar de proceso en proceso. - Todas las operaciones que SO realiza sobre
procesos las realiza en realidad sobre los PCB o
al menos, implica el uso de los mismos - Identifica al proceso de cara al sistema
operativo - SO conoce Proceso sólo si hay un PCB asociado a
él - Elegible para competir por los recursos del
sistema ? Crear proceso ? SO crea PCB y Fin
proceso ? liberación PCB
122.2. Descripción de Procesos Contenido del PCB
- Diferentes organizaciones según los sistemas
- Identificación del proceso
- Información de estado del procesador
- Información de control del proceso.
- Identificación del proceso
- Identificador numérico único del proceso, de su
padre y del usuario responsable del trabajo. - Información de estado del procesador
- Contenido de los registros del procesador
- Información de control del proceso.
- Información de planificación y estado estado del
proceso, prioridad, información de planificación,
sucesos, - Estructuración de datos enlaces en colas
- Comunicación entre procesos
- Privilegios de los procesos
- Ubicación en memoria
- Propiedad y uso de los recursos
Puntero a PCB
Estado del Procesador
Identificador del Proceso
Registros (Contador de Programa, palabra de
estado del procesador, reg. Generales)
Información de memoria
133. CICLO DE VIDA DE LOS PROCESOS3.1. Modelo de 5
estados
- Procesos Sólo en ejecución y listos?
- Problema Procesos que no pueden ejecutarse
aunque se les de la CPU - Bloqueados esperando un suceso
- Cola listos ? Cola listos y cola bloqueados
- Necesario incluir estados
143.2. Modelo General
- Memoria principal limitada operaciones E/S
lentas CPU ociosa - Soluciones
- Aumento cantidad memoria
- Intercambio
- Nuevo estado Suspendidos
- SO trae a MP un Suspendido o atiende petición de
nuevo proceso - Combinación suspendido con espera suceso
- Varios estados nuevos
- Varias colas para cada estado
153.3. Implementación 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
- PCB de aquellos procesos que no tienen el
procesador en este momento pero están 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 - Varias colas de Bloqueados, una para cada suceso.
- Cuando ocurra un suceso, el sistema operativo
puede pasar a listo la lista entera de procesos
de la cola correspondiente.
164. Control de Procesos
- 4.1. Modos de ejecución
- Hardware Soporta modo usuario y núcleo
- Modo kernel
- Control absoluto sobre el procesador
- Instrucciones privilegiadas sólo pueden
ejecutarse en modo núcleo (primitivas de E/S,
lectura y modificación de los registros de
control, además del acceso a ciertas regiones de
memoria) - Puede acceder a cualquier dato
- Modo núcleo
- No puede ejecutar las instrucciones privilegiadas
- Sólo tiene acceso a su memoria
- Por qué dos modos de ejecución?
- Protección
- Implementación Bit en el PSW
174.2. Cambio de Proceso
- Cambio de proceso
- Proceso en Ejecución se interrumpe (no puede
seguir ejecutándose) - SO pasa el control del procesador a otro proceso
y lo pone listo para ejecutar - Proceso original pasa a bloqueado o listo
- Ocurre en respuesta a sucesos que alteran el
estado del sistema ? sistema operativo toma el
control. - Interrupciones o cepos Las interrupciones son
provocadas por un suceso externo e independiente
del programa en ejecución los cepos tienen
relación con una condición de error o excepción
generada dentro del programa que se está
ejecutando - Llamadas al sistema se producen desde el
programa en ejecución y provoca la transferencia
a una rutina que forma parte del S.O. - Procesamiento
- Conmutación de modo ?
- Salvar información de estado del procesador para
ejecución del proceso actual ? PCB - cambio de estado en el PCB y mover a la lista
adecuada - Seleccionar otro proceso para ejecución
- Sacarlo de la cola y ponerlo en estado En
Ejecución - Restaurar información estado del procesador para
el nuevo proceso. - Conmutación de modo ?
184.2. Cambio de Proceso(II)
194.3. Overhead
- Todas las tareas del sistema operativo son puro
overhead pero son necesarias para que todo
funcione bien. - Cambio proceso ? Costosa, compleja y frecuente
- Afecta significativamente al rendimiento de SO de
multiprogramación. - Eficiencia del cambio de proceso mejora con ayuda
hardware y con una técnica de estructuración de
procesos denominada hebras - Esquema hardware empleado para acelerar la
conmutación de procesos - Disponer de múltiples conjuntos estructuralmente
idénticos de registros del procesador. - MÃnimo dos uno para el S.O. y otro para el
usuario. - Cambio proceso ? cambiar puntero al conjunto de
registros actual. - Si existen más procesos activos que conjuntos de
registros, el sistema copia los datos de los
registros desde y hacia memoria.
205. API del sistema operativo para la gestión de
procesos
- 5.1. Definición de Llamada al Sistema
- Libertad al usuario para ejecutar cualquier cosa
? Riesgos - Degradación sistema Necesario mecanismo
- Destrucción de datos otros controlado y seguro
de ejecución - procesos o del S.O. Instrucciones peligrosas
- Peligros ? debe hacerse siempre bajo control del
S.O. - Acceso a los recursos (hardware o software)
- Creación y gestión de procesos
- Acciones sobre memoria, etc.
- Llamadas al sistema
- Proporcionan la interfaz entre el SO y un
programa en ejecución - Permiten la solicitud de servicios al sistema
operativo. - Provoca la ejecución de código del SO que se hace
siempre en modo privilegiado.
215.2. Interfaz de alto nivel de las llamadas al
sistema
- Llamadas al sistema normalmente disponibles como
instrucciones de bajo nivel - Lenguajes alto nivel permiten hacer llamadas al
sistema desde el programa ? parecen llamadas a
procedimientos o funciones normales - Estos sistemas generan llamada a rutina especial
de tiempo de ejecución que hace llamada sistema o
bien puede ser generada in-line. - Ejemplo
- Programa que lee datos de un fichero y los copia
a otro. - Parámetros Nombres de ambos ficheros.
- Acciones
- Programa debe abrir fichero origen y crear el
destino. - Cada operación implica llamada al sistema y trae
consigo la necesidad de gestionar los errores que
se produzcan. - Bucle lectura datos del origen y escritura en
destino (ambas llamadas al sistema). - Programador debe cerrar ambos ficheros.
- Sistema en tiempo de ejecución de lenguajes de
alto nivel proporciona interfaz más simple con
funciones como open, close, read y write. - Por ejemplo, función write en C se compila a una
llamada en tiempo de ejecución que realiza las
llamadas al sistema necesarias, chequea errores
y, finalmente, retorna al programa de usuario.
225.3. Gestión de una Llamada al Sistema
- Muchos procesadores cuentan con una instrucción
especial denominada interrupción software,
llamada al sistema, trap al S.O.,... - Cuando se ejecuta, el hardware la trata como una
interrupción. - El control pasa a través del vector de
interrupciones a una rutina de procesamiento del
S.O. y se cambia a modo privilegiado. - Rutina procesamiento forma parte del sistema
operativo. - S.O. examina la instrucción que provocó la
interrupción - Determina tipo servicio requerido e información
adicional. - El sistema operativo ejecuta la solicitud y
devuelve el control a la instrucción siguiente a
la llamada al sistema. - dibujo
235.4. Llamadas al sistema para la gestión de
procesos
- Sistema Operativo ofrece una serie de Servicios a
los programas de usuario referentes a la gestión
de procesos - Accesibles mediante llamadas al sistema
- Cada sistema operativo ofrece las que quiere.
- Crear(IdProceso, Atributos)
- Crear nuevo proceso con el identificador y los
atributos que se pasan como parámetro. - S.O. obtiene nuevo identificador y PCB
- Asigna memoria para el nuevo proceso
- Rellena PCB con atributos proporcionados o
predeterminados - Enlaza proceso con las estructuras del S.O.,
insertando el PCB del proceso en la lista de
Preparados. - Eliminar(IdProceso)
- SO destruye proceso y lo elimina del sistema
- Reclama los recursos asignados al proceso
- Elimina el PCB de la lista en que está y queda
libre - Un proceso puede eliminarse a sà mismo y a otros
- Se invoca como parte de la terminación ordenada
de un programa
24- Dividir/Unir
- Método de creación y terminación de procesos.
- Dividir ? Divide una secuencia de instrucciones
en dos secuencias ejecutables concurrentemente - Se crea nuevo proceso (hijo) que ejecuta parte
del código y padre ejecuta la otra - Devuelve identidad del hijo al padre que lo puede
usar para esperar fin del hijo antes de invocar
unir. - Unir ? Reune las secuencias de código divididas y
el padre puede usarlo para sincronizarse con el
hijo. - Bloquear (IdProceso)
- Proceso IdProceso permanece en el sistema ?
bloqueado indefinidamente y estado bloqueado - Proceso puede bloquearse a sà mismo o a otros
dependiendo de su nivel de privilegios. - El SO responde poniendo el PCB del proceso en la
lista de bloqueados y actualizando el estado - Reanudar(IdProceso)
- Reanuda proceso bloqueado
- SO pone PCB en listos para ejecución y actualiza
estado - Retardar(IdProceso, tiempo)
- Proceso queda bloqueado el tiempo especificado
- Leer_Atributos(IdProceso, grupoatributos)
- Consulta a la que el SO responde proporcionando
los valores actuales de los atributos del proceso
designado. - Modificar_Prioridad(IdProceso, nuevaprioridad)
256. Conceptos avanzados hilos
- Hebras o hilos o procesos ligeros (LWP)
- Unidad básica de uso de la CPU
- Consiste en Contador de programa Conjunto de
registros Espacio para la pila - Comparte con sus iguales la sección de código,
datos y recursos del sistema operativo, conocido
como task. - Un proceso tradicional task con un hilo.
- Hilos de usuario
- LibrerÃas
- Cambio de hilo no necesita llamada al sistema que
causa interrupciones al kernel, por tanto, es muy
rápido. - Hilos kernel
- Llamadas al sistema.
266. Conceptos avanzados
- Similitudes entre procesos e hilos
- Hilos varios estados listo, bloqueado,
ejecutándose o terminado - Comparten CPU y sólo hay un hilo activo al tiempo
- Hilo en ejecución dentro de un proceso tiene su
propia pila y contador de programa. - Pueden crear hilos hijos, bloquearse en llamadas
al sistema ? otros hilos siguen su ejecución
normal - Diferencias
- Hilos comparten espacio de direcciones de una
task - No son independientes unos de otros
- Un hilo puede leer o escribir la pila de otros
hilos. - No hay protección entre hilos.
- SerÃa necesaria?.
-