Procesos
Procesos
Procesos
Estados de Procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo
varias las circunstancias que pueden hacer que el mismo cambie de estado.
Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y
una “Lista de Bloqueados” para los “bloqueados”.
Obtiene el control.
Salva el estado del proceso interrumpido, generalmente en su bloque de
control de procesos.
Analiza la interrupción.
Transfiere el control a la rutina apropiada para la manipulación de la
interrupción.
Una interrupción puede ser iniciada por un proceso en estado de ejecución o por
un evento que puede o no estar relacionado con un proceso en ejecución.
Generalmente las interrupciones se pueden clasificar por tipos según el siguiente
detalle:
El “núcleo” del Sistema Operativo controla todas las operaciones que implican
procesos y representa solo una pequeña porción del código de todo el Sistema
Operativo pero es de amplio uso.
Manipulación de interrupciones.
Creación y destrucción de procesos.
Cambio de estados de procesos.
Despacho.
Suspensión y reanudación de procesos.
Sincronización de procesos.
Comunicación entre procesos.
Manipulación de bloques de control de proceso.
Soporte de las actividades de Entrada / Salida.
Soporte de la asignación y desasignación de almacenamiento.
Soporte del sistema de archivos.
Soporte de un mecanismo de llamada / regreso al procedimiento.
Soporte de ciertas funciones contables (estadísticas) del sistema.
Planificación de Procesos
Criterio Descripción
Para evitar que un proceso se apropie de la cpu un tiempo excesivo, los equipos
poseen un dispositivo que provoca una interrupción en forma periódica, por
ejemplo 60 hz, o sea sesenta veces por segundo.
Los principales conceptos relacionados con Planificación del Procesador son los
siguiente:
Condición de Espera Circular: Esto ocurre cuando dos o más procesos forman
una cadena de espera que los involucra a todos. Por ejemplo, suponga que el
proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso
'disco'. En ese momento al proceso A se le ocurre pedir el recurso 'disco' y al
proceso B el recurso 'cinta'. Ahi se forma una espera circular entre esos dos
procesos que se puede evitar quitándole a la fuerza un recurso a cualquiera de los
dos procesos.
Determina a qué proceso listo se le asigna la cpu cuando esta queda disponible y
asigna la cpu al mismo, es decir que “despacha” la cpu al proceso.
Objetivos de la Planificación
Ser justa:
Todos los procesos son tratados de igual manera.
Ningún proceso es postergado indefinidamente.
Ser predecible:
Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de
tiempo independientemente de la carga del sistema.
Minimizar la sobrecarga:
No suele considerarse un objetivo muy importante.
Asegurar la prioridad:
Los mecanismos de planificación deben favorecer a los procesos con prioridades
más altas.
Criterios de Planificación
El proceso al cual está asignada la cpu se dice que está en ejecución y puede ser
un proceso de Sistema Operativo o de usuario.
El Sistema Operativo dispone de mecanismos para quitarle la cpu a un proceso de
usuario para evitar que monopolice el sistema.
El Sistema Operativo posee un “reloj de interrupción” o “temporizador de
intervalos” para generar una interrupción, en algún tiempo futuro específico o
después de un transcurso de tiempo en el futuro; la cpu es entonces despachada
hacia el siguiente proceso [7, Deitel].
Un proceso retiene el control de la cpu hasta que ocurra alguna de las siguientes
situaciones:
La libera voluntariamente.
El reloj la interrumpe.
Alguna otra interrupción atrae la atención de la cpu.
Si el reloj interrumpe un proceso de usuario, la interrupción causa la
ejecución del Sistema Operativo, el que decide cuál será el proceso que
obtendrá la cpu.
El reloj de interrupción ayuda a garantizar tiempos de respuesta razonables
a usuarios interactivos, ya que evita que el sistema se “cuelgue” a un solo
usuario en un ciclo infinito y permite que los procesos respondan a “eventos
dependientes del tiempo”.
Asimismo, los procesos que necesitan una ejecución periódica dependen del reloj
de interrupción
Prioridades
Tipos de prioridades
Asignadas
automáticamente por el
sistema
Asignadas desde el
exterior
Dinámicas
Estáticas
Asignadas racionalmente
Asignadas
arbitrariamente
Tipos de Planificación
El sistema debe tener un registro del tiempo de cpu que cada proceso ha tenido
desde su entrada al sistema y del tiempo transcurrido desde esa entrada. Con los
datos anteriores y el registro de procesos en curso de ejecución, el sistema calcula
y determina qué procesos están más alejados por defecto de la relación “1 / n”
prometida y prioriza los procesos que han recibido menos cpu de la prometida.
Puede ocasionar que procesos largos hagan esperar a procesos cortos y que
procesos no importantes hagan esperar a procesos importantes.
Es más predecible que otros esquemas. No puede garantizar buenos tiempos de
respuesta interactivos. Suele utilizarse integrado a otros esquemas, por ejemplo,
de la siguiente manera:
a) La cpu es apropiada.
b) La cpu es otorgada al siguiente proceso en espera.
c) El proceso apropiado es situado al final de la lista de listos.
d) Es efectiva en ambientes de tiempo compartido.
Considera factores externos al proceso [23, Tanenbaum]. Las ideas centrales son
que cada proceso tiene asociada una prioridad y que el proceso ejecutable con
máxima prioridad es el que tiene el permiso de ejecución.
Las prioridades también pueden ser asignadas dinámicamente por el sistema para
lograr ciertas metas relacionadas con el procesador o la Entrada / Salida.
Los procesos limitados por la Entrada / Salida (requerimientos intensivos de
Entrada / Salida) ocupan mucho de su tiempo en espera de operaciones de
Entrada / Salida, por lo tanto:
Un algoritmo sencillo consiste en establecer que la prioridad sea “1 / f”, donde “f”
es la fracción del último cuanto utilizado por el proceso. Un proceso que utilice 2
mseg (dos milisegundos) de su cuanto de 100 mseg (cien milisegundos) tendrá
prioridad 50.
Un proceso que se ejecutó 50 mseg antes del bloqueo tendrá prioridad 2.
Un proceso que utilizó todo el cuanto tendrá prioridad 1.