Los PCB’s se almacenan en listas, una para cada posible estado:
Los estados se pueden dividir en: Activos e inactivos Activos los que compiten por el procesador. Tipos:
Ejecución.- Cuando el proceso tiene el control del cpu
Preparado (Listo).- Tienen las condiciones para ser ejecutados pero no están en ejecución por alguna causa.
Inactivos.- No pueden competir por el cpu Los 3 estados principales pueden no ser suficientes Justificación:
Si todos los procesos están en bloqueados esperando un suceso y no hay memoria disponible para nuevos procesos, el procesador estará desocupado, sin uso. La Solución: procesos suspendidos:
• Permitir la ejecución de más procesos
• Ampliar la memoria principal
• Intercambio de procesos entre memoria y disco (swapping) Surgen 2 nuevos estados de un proceso:
suspendido listo: el proceso está suspendido, pero se encuentra listo para ejecutarse suspendido bloqueado: el proceso está suspendido y además está esperando que suceda un evento
• El sistema operativo puede poner en suspendido un proceso y transferirlo a disco
• El espacio liberado en la memoria principal es usado para traer otro proceso ¿Qué proceso elegir para cargar en memoria?
Uno nuevo
Uno previamente suspendido (debemos elegir los que se encuentran en suspendido listo y no en suspendido bloqueado)
Otras razones por las que un proceso puede pasar a estado suspendido:
• El sistema está en riesgo de fallo. El sistema suspende todos los procesos activos para poder corregir errores y volver a activarlos cuando el sistema funcione correctamente
• Un proceso sospechoso de mal funcionamiento puede ser suspendido hasta verificar su correcto funcionamiento
• El planificador puede suspender los procesos de baja prioridad en momento de carga excesiva del sistema
Conjunto de datos donde se
PCB incluye el estado de un proceso SCB
proceso, modo de ejecución, etc. y estado de los registros internos de la computadora.
Estadísticas de tiempo y ocupación de recursos.- Planificación del CPU
Ocupación de memoria interna y externa.- Swapping
Recursos en uso
Archivos en uso
Privilegios
SCB (Bloque de control del sistema).- Objetivos globales similares al PCB, además enlaza los PCB’s de los
procesos existentes
Cambio de un proceso a otro suponiendo un solo SISTEMA OPERATIVO
cpu, una tarea en ejecución a la vez y 2 procesos activos (A y B) compitiendo por el cpu, ambos en memoria
principal Cambio de A por B
1. Deja de ejecutar el proceso en curso (A)
2. Se salva el estado del proceso A para su regreso al punto de interrupción
3. Cede el control al kernel
4. Cambio de contexto (de modo usuario a modo supervisor)
5. El kernel estudia si el proceso B está preparado para su ejecución
6. Si si, cambio de contexto (de modo supervisor a modo usuario)
7. Repone el estado de B (si es que se había interrumpido antes)
8. Pone en ejecución a B
El cambio de contexto se da en caso de: ejecución de instrucción privilegiada, llamada al sistema operativo o interrupción
TRANSICIONES DE ESTADO.- Cambio de un estado a otro
Comienzo (Creación).- Un proceso comienza al ser dada la orden de ejecución insertándose en la lista de listos
Ejecución.- Cuando el CPU está inactivo y en la cola de listos haya un proceso en espera de ser ejecutado. (Pasa al CPU)
Bloqueado.- Un proceso en ejecución solicita una operación a un dispositivo, durante la espera el proceso se bloqueará. Su PCB se insertará en la lista de bloqueados.
Preparado.- 4 causas:
1 Orden de ejecución de un programa en espera
2 Si un proceso está bloqueado esperando una operación de entrada/salida y ésta termina.
3 Si un proceso está en ejecución y aparece una interrupción que fuerza al sistema operativo a ejecutar otro proceso, el 1º pasará a listo y su PCB se inserta en la lista de listos (Quantum, proceso de mayor prioridad)
4 Activación.- Un proceso suspendido listo pasará a listo al ser reactivado
Suspendido bloqueado.- Un proceso está bloqueado y el sistema operativo lo suspende Suspendido listo.- 3 causas:
1 Suspensión de un proceso listo
2 Suspensión de un proceso en ejecución
3 Desbloqueo de un proceso suspendido bloqueado al desaparecer la causa de su bloqueo
Operaciones sobre procesos
1.- Creación.- Se produce con la orden de ejecución del programa, usa argumentos (nombre, prioridad). En este momento aparece el PCB y es insertado en la lista de listos
proceso
Pasos que sigue el S.O.
1. Asignarle un PCB
2. Establecer espacio de direcciones de memoria
3. Cargar imagen (ejecutable) en memoria 4. Marcar la tarea como ejecutable Tipos de creación:
Jerárquica.- cada proceso que se crea es hijo del proceso creador y hereda el entorno de ejecución del padre. El primer proceso que ejecuta un usuario será hijo del intérprete de comandos. Un proceso durante su ejecución puede crear varios procesos hijos a través de llamadas al sistema para creación de procesos. Al restringirse un proceso hijo a un subconjunto de recursos del padre, se evita que éste sature al sistema creando demasiados procesos hijos. Al crear procesos hijos, el padre continúa ejecutando concurrentemente con sus hijos o espera a que todos sus hijos hayan terminado y luego continúa él.
No jerárquica.- Cada proceso creado por otro se ejecuta independiente de su creador con un entorno independiente.
2.- Destrucción.- Orden de eliminación del proceso, el sistema operativo destruye el PCB y libera los recursos empleados
– Normalmente lo hace un antepasado directo (p.e. el proceso padre)
– Significa la terminación de toda su “descendencia” (terminación en cascada) – Pasos que sigue el S.O.
1. Envío de datos del proceso finalizado al creador. (p.e. Código de finalización)
2. El SO desasigna los recursos que tiene
3.- Suspensión.- Paralización de un proceso que puede ser reanudado posteriormente, se aplica en ocasiones de mal funcionamiento o sobrecarga de trabajo (Guarda su PCB en disco)
4.- Reanudación.- Activación de un proceso suspendido (Reinserta el PCB en memoria)
5.- Cambio de prioridad.- Reasignación de un nuevo rango de prioridad
6.- Temporizar la ejecución.- Un proceso se ejecuta cada cierto periodo de tiempo, por etapas o de una vez
7.- Despertar un proceso.- Desbloqueo de un proceso
8.- Bloqueo.- puesta en espera de un proceso
Prioridades
Todo proceso por su importancia tiene necesidades de ejecución en cuanto a urgencia de recursos. No todos acceden de igual forma y con igual frecuencia al CPU debido a su prioridad Tipos según quién las asigna:
1 Asignadas por el sistema operativo.- Se asigna al iniciar la ejecución y depende de los privilegios de su propietario
2 Asignadas por el propietario.- El usuario la asigna.
Tipos según su posibilidad de variación:
1 Estáticas.- No pueden ser modificadas durante la ejecución del proceso
2 Dinámicas.- Pueden ser modificadas en la ejecución respondiendo a eventos
Tipos de procesos Según el uso:
1 Reutilizables.- Pueden cambiar los datos que usan, si vuelven a ejecutarse comienzan desde su estado inicial y procesar nuevos datos (programas de usuario) Están escritos con variables genéricas y cada uno introducirá los valores de las variables genéricas que precise.
2 Reentrantes.- No tienen asociados datos, sólo código puro. Los datos que usan están en los registros internos y no se modifican durante su uso. (programas del sistema operativo) Según la utilización de memoria:
1 Procesos residentes.- Durante su vida activa tiene que estar cargado en memoria.
2 Procesos intercambiables.- Pueden ser llevados de memoria principal a disco mientras estén bloqueados. La memoria liberada puede ser reasignada
Según el acceso a los recursos
1 Apropiativos.- Al tener asignado un recurso no permiten que otro proceso lo use hasta que ellos lo liberen
2 No apropiativos.- Permiten a otros procesos acceder a recursos usados por ellos
Excepciones
Durante la ejecución puede haber fallos que el sistema operativo debe controlar: hardware, de software, datos incorrectos, anomalías, etc.
Gestor de excepciones.- parte del sistema operativo que controla las excepciones Tipos según la gravedad:
Catastróficos.- Imposibilitan el funcionamiento del sistema y no hay modo de recuperarlo (apagón) No recuperables.- Sin afectar al sistema, hacen que el proceso no pueda continuar (div/0)
Recuperables.- Con algunos ajustes
el proceso puede continuar (datos Terminación incorrectos)
Tipos de tratamiento:
Tratamiento de la excepción y continuación del proceso Tratamiento de la excepción y terminación del proceso
No hay comentarios.:
Publicar un comentario