exposicion sistemas opertivos1
TRANSCRIPT
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
2 Sistemas Operativos
INDICE
ESTADOS DE PROCESOS-----------------------------------------------------------------------------------------3
DIAGRAMA DE ESTADOS----------------------------------------------------------------------------------------4
PROCESAMIENTO DE INTERRUPCIONES--------------------------------------------------------------------6
¿Cuándo ocurre una interrupción en un S.O?-------------------------------------------------------------------7
TIPOS DE INTERRUPCIONES------------------------------------------------------------------------------------8
PALABRAS DE ESTADO DE PROGRAMA---------------------------------------------------------------------10
PLANIFICACION DE PROCESOS--------------------------------------------------------------------------------11
PLANIFICADOR A LARGO PLAZO-----------------------------------------------------------------------------12
PLANIFICADOR A MEDIO PLAZO------------------------------------------------------------------------------13
BLOQUE DE CONTROL DE PROCESOS----------------------------------------------------------------------14
ALGORITMO DE PLANIFICACION-----------------------------------------------------------------------------15
BIBLIOGRAFIA-------------------------------------------------------------------------------------------------------17
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
3 Sistemas Operativos
ESTADOS DE PROCESOS
Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución
en que se encuentra. El número de posibles estados varía de un sistema operativo a otro.
Diagrama de estados simplificados
Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres
estados:
Activo: el proceso está empleando la CPU, por tanto, está ejecutándose. Pueden haber
tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone
de un único procesador, únicamente puede haber un proceso activo a la vez.
Preparado: el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el
planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la
lista de procesos preparados para pasar a estado activo.
Bloqueado: el proceso está pendiente de un evento externo que le ha hecho bloquear, tales
como una operación de lectura/escritura, la espera de finalización de un proceso hijo, una
señal o una operación sobre un semáforo. El dispositivo/hecho externo "avisa" al S.O. cuando
ha terminado la acción que realizaba mediante una INTERRUPCIÓN, dejando el S.O. lo que
está haciendo para atender a esta última. Tras esto, el S.O. comprueba cuales son los
procesos que fueron bloqueados por ese evento externo, cambiándolos al estado de
preparado.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
4 Sistemas Operativos
La transición de activo a preparado y viceversa depende de decisiones tomadas por
el planificador del sistema operativo en base a un cierto criterio. La transición de activo a
bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al
sistema.
Diagrama de estados ampliado
En espera / Preparación: Estado por el que pasan los procesos antes de pasar a estar
preparados por primera vez. Los procesos, cuando comienzan a existir, no están preparados
para comenzar a ejecutar instrucciones hasta que el sistema no ha llevado a cabo una serie de
actividades. Una vez que el proceso está completamente cargado, ya se puede producir la
primera transición al estado preparado.
Terminado: La transición de activo a este estado ocurre cuando el proceso realiza una
llamada al sistema solicitando su propia terminación. En estas circunstancias, hay estructuras
de datos correspondientes al proceso que no pueden ser liberadas hasta que el proceso padre
del que está terminando recoja el código de terminación del mismo. Hasta que esto ocurra,
estas estructuras se mantendrán y el proceso seguirá existiendo en estado terminado.
Transición: cuando se completa la operación que mantiene a un proceso en estado
bloqueado termina, el proceso puede haber perdido parte de los recursos que necesita para
proseguir su ejecución.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
5 Sistemas Operativos
Hay tres posibles situaciones en las que se ejecutará el planificador del sistema operativo:
El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su
naturaleza, resulta en una transición al estado bloqueado. Este es el caso de las llamadas
read(), write(), wait(), pause(), entre muchas otras. Al pasar a estado bloqueado, se invoca al
planificador para que decida que otro proceso se asignará al procesador.
Si el proceso que se encuentra en el estado activo excede el tiempo máximo de asignación, en
caso de que lo hubiere.
Si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar su
código.
Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos
pasan antes de terminar su ejecución.
Ejemplos:
· De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una
operación WAIT sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán
los semáforos).
· De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso
que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el
sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la
CPU a estado listo.
· De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el
planificador de la CPU en el tema de planificación de procesos).
· De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por
ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en
que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
6 Sistemas Operativos
PROCESAMIENTO DE INTERRUPCIONES
Una “interrupción” es un evento que altera la secuencia en que el procesador ejecuta las
instrucciones. Sirve como mecanismo para atender alguna necesidad urgente del computador y
luego continuar su ejecución como si nada hubiera pasado. Es un hecho generado por el hardware
del computador.
Generalmente se aplica para realizar tareas elementales asincrónicas, tales como responder al
teclado, escribir en la pantalla, leer y escribir archivos. Podemos considerar una tarea asincrónica
como aquella que es solicitada sin previo aviso y aleatoriamente desde el punto de vista del
computador.
Cada interrupción tiene asignada un número único. El PC está diseñado de manera que la
interrupción tiene asignada 4 bytes de memoria RAM. La dirección de los cuatro bytes en la
memoria corresponde al número de la interrupción multiplicado por 4.
Fig. 01: Cómo ocurre una interrupción. Las conexiones entre los dispositivos y el controlador de
interrupciones en realidad utilizan líneas de interrupción en el bus, en vez de cables dedicados.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
7 Sistemas Operativos
1. ¿Cuándo ocurre una interrupción el S.O?:
o Obtiene el control.
o Salva el estado del proceso interrumpido:
o Generalmente en su bloque de control de procesos.
o Analiza la interrupción. Transfiere el control a la rutina apropiada para la Manipulación de
la interrupción.
2. Una interrupción puede ser iniciada por:
o Un proceso en estado de ejecución.
o Un evento que puede o no estar relacionado con un Proceso en ejecución.
3. Tipos de interrupciones
a) SVC (llamada al supervisor): es una petición generada por el usuario para un servicio
particular del sistema, por ejemplo, realización de Entrada / Salida u obtención de más
memoria.
b) Entrada / Salida: son iniciadas por el hardware de Entrada / Salida, indicando a la cpu
que ha cambiado el estado de un canal o dispositivo, por ejemplo, finalización de Entrada /
Salida u ocurrencia de un error.
c) Externas: son causadas por distintos eventos, por ejemplo, expiración de un cuanto en
un reloj de interrupción o recepción de una señal de otro procesador en un sistema
multiprocesador.
d) De reinicio: ocurren al presionar la “tecla de reinicio” o cuando llega una instrucción de
reinicio de otro procesador en un sistema multiprocesador.
e) De verificación de programa: son causadas por errores producidos durante la
ejecución de procesos, por ejemplo:
a. Un intento de dividir por cero.
b. Un intento de un proceso de usuario de ejecutar una instrucción privilegiada.
c. Un intento de ejecutar un código de operación inválido.
f) De verificación de máquina: son ocasionadas por un mal funcionamiento del hardware.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
8 Sistemas Operativos
Fig. 02: Tipos de Interrupción
4. Interrupciones precisas e imprecisas
A) Interrupción precisa
Se conoce como a una interrupción precisa a aquella que deja al equipo en un estado bien
definido (Walker y Cragon, 1995). Dicha interrupción tiene cuatro propiedades:
o El contador del programa (PC) se guarda en un lugar conocido.
o Todas las instrucciones antes de la instrucción a la que apunta el PC se han ejecutado por
completo.
o Ninguna instrucción más allá de la instrucción a la que apunta el PC se ha ejecutado.
o Se conoce el estado de ejecución de la instrucción a la que apunta el PC.
B) Interrupción imprecisa
Es una interrupción donde hay distintas instrucciones cerca del contador del programa en distintos
estados de avance, y las más antiguas no necesariamente están más completas que las más
recientes. Las máquinas con interrupciones imprecisas por lo general vuelcan una gran cantidad de
estado interno en la pila, para dar al sistema operativo la posibilidad de averiguar qué está pasando.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
9 Sistemas Operativos
El código necesario para reiniciar la máquina es por lo general muy complicado. Además,
al guardar una cantidad extensa de información para la memoria en cada interrupción se reduce
aún más las velocidades las interrupciones y la recuperación.
5. Manipuladores de Interrupciones (IH):
El Sistema Operativo incluye rutinas para procesar cada tipo diferente de interrupción.
Cuando se produce una interrupción el Sistema Operativo efectúa las siguientes acciones:
o Salva el estado del proceso interrumpido.
o Dirige el control al manipulador de interrupciones adecuado.
o Se aplica la técnica de “Cambio de Contexto”.
6. Palabras de Estado de programa:
Los Sistemas Operativos instrumentan información de control que puede aparecer como
las “Palabras de Estado de Programa (PSW)”, las cuales controlan el orden de ejecución de las
instrucciones y contienen información sobre el estado del proceso.
Existen tres tipos de PSW, que son la “actual”, la “nueva” y la “vieja”.
La “PSW Actual” almacena la dirección de la próxima instrucción que será ejecutada e indica los
tipos de instrucciones actualmente “habilitadas” e inhabilitadas”.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
10 Sistemas Operativos
En un sistema uni procesador existe:
o Solo una PSW actual.
o Seis PSW nuevas (una para cada tipo de interrupción).
o Seis PSW viejas (una para cada tipo de interrupción).
o La PSW nueva para un tipo de interrupción dado contiene la dirección en el hardware
donde reside el manipulador de interrupciones para este tipo específico.
o Cuando ocurre una interrupción para la cual el procesador no está inhabilitado, ocurren
las siguientes acciones:
o El hardware cambia las PSW en los casos siguientes:
o Al almacenar la PSW actual en la PSW vieja, para este tipo de interrupción.
o Al almacenar la PSW nueva en la PSW actual, para este tipo de interrupción.
o Luego de este “intercambio de PSW”:
o La PSW actual contiene la dirección del manipulador de interrupción adecuado.
o El manipulador de interrupciones procesa la interrupción.
o Luego de procesar la interrupción, la CPU es enviada al:
Proceso que estaba en ejecución en el momento de la interrupción.
Proceso de listo de más alta prioridad.
o La acción precedente depende de si el proceso de interrupción es:
“Apropiativo”: obtiene la CPU solo si no hay procesos de listos.
“No apropiativo”: obtiene de nuevo la CPU.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
11 Sistemas Operativos
PLANIFICACION DE PROCESOS
El sistema operativo es el encargado de decidir qué procesos entran en la CPU cuando ésta
queda libre, y en qué momento sale de la CPU el proceso que está en ejecución. Todo
ello se lleva a cabo a través de una política de planificación de procesos.
Se pueden definir múltiples políticas de planificación de procesos: por orden de llegada, primero la
tarea más breve, por orden de prioridad, etc. En definitiva, lo que una política de planificación
debe conseguir es que los procesos obtengan adecuadamente sus turnos de ejecución por lo
que son tratados de la misma forma, que no se produzca sobrecarga, es decir, el planificador debe
responder rápidamente ante cargas de trabajo ligera y responder de la misma forma ante
cargas de trabajo similares. Y obtener un buen rendimiento, por lo se debe lograr finalizar
el mayor número de procesos y maximizar el tiempo de respuesta.
No existe una política de planificación óptima para todas las computadoras, sino que depende de
las características de los procesos. Así se puede ver cómo una política obtiene unos resultados
excelentes en un sistema, sin embargo en otro sistema el rendimiento es mucho menor. Ello
se debe a las características de los procesos, donde cada uno puede tener una cantidad de
operaciones de E/S enorme cómo es el caso de las bases de datos, otros usan mayormente la
CPU, otros realizan una mayor lectura de datos frente a otros, hay procesos que requieren una
prioridad máxima en los turnos de ejecución, es el caso de los procesos de tiempo real, y hay
procesos que requieren más tiempo de ejecución que otros, por lo que habrá que valorar si
terminar primero los cortos o no.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
12 Sistemas Operativos
PLANIFICADOR A LARGO PLAZO (‘PLP’):
En un sistema de procesos por lotes, los procesos recién incorporados permanecen detenidos en
una cola de procesamiento por lotes, en el disco. El planificador a largo plazo creará procesos a
partir de la cola cuando sea posible (carga en memoria los procesos de nueva creación)
DECISIONES QUE TOMA EL PLANIFICADOR A LARGO PLAZO:
CUANDO CREAR UN NUEVO PROCESO: CONTROLA EL GRADO DE
MULTIPROGRAMACIÓN.
CUÁL VA A SER EL SIGUIENTE PROCESO A ADMITIR: ALGORITMO FCFS
(FIRST-COME FIRSTSERVED), PRIORIDADES, TIEMPOS DE EJECUCIÓN ESPERADOS,
EXIGENCIAS E/S.
Es el encargado de controlar el grado de multiprogramación en el sistema, intentando
conseguir una mezcla adecuada de trabajos en CPU y E/S. Es por tanto el encargado de
suministrar los procesos a la cola de planificación a corto plazo.
Se ejecuta con poca frecuencia, ya que pueden transcurrir minutos entre la creación de nuevos
procesos en el sistema.
PROCESOS ORIENTADOS A CPU U ORIENTADOS A E/S
Un proceso orientado a CPU es aquel que invierte la mayor parte de su tiempo en efectuar cálculos
y genera solicitudes de E/S con de su tiempo en efectuar cálculos y genera solicitudes de E/S con
poca frecuencia.
Un proceso orientado a E/S es aquel que emplea más tiempo en realizar E/S que en efectuar cálculos.
El planificador a largo plazo debe seleccionar una mezcla adecuada de procesos
orientados a CPU y orientados a E/S.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
13 Sistemas Operativos
PLANIFICADOR A MEDIO PLAZO (‘PLP’):
Es el encargado de suspender y posteriormente restaurar procesos de poco interés, realizando
el intercambio de los mismos entre la memoria principal y el disco o memoria secundaria. El
planificador a medio plazo se encarga de sacar el proceso y volverlo a introducir más tarde. El
proceso continuará su ejecución a partir del punto donde se había quedado.
Dicho proceso es conocido como swapping, y se ejecuta cuando hay escasez de recursos.
Cuando un usuario se conecta al sistema, se genera una solicitud de crear un proceso los
usuarios de tiempo compartido no pueden de crear un proceso, los usuarios de tiempo
compartido no pueden ser puestos en una cola y esperar a que el sistema pueda
aceptarlos (no planificador a largo).
En ocasiones es interesante sacar procesos de memoria para reducir el grado de
multiprogramación o para mejorar la mezcla de procesos (orientados a CPU o E/S).
Se encarga de controlar qué procesos, de entre todos los iniciados deben estar en
memoria (preparados) y qué otros deben estar en el espacio de intercambio.
PLANIFICADOR A CORTO PLAZO (‘PCP’):
Selecciona un proceso de la cola de procesos preparados para ejecución y le asigna la CPU.
Se ejecuta con mucha frecuencia. El proceso seleccionado quizás se ejecute únicamente durante
unos milisegundos antes de iniciar una solicitud de E/S.
Se ejecuta cuando ocurre un evento que conduce a la interrupción del proceso actual, expulsando
el proceso a favor de otro Ejemplos de eventos:
Interrupciones de reloj.
Interrupciones de E/S.
Llamadas al sistema operativo.
Señales.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
14 Sistemas Operativos
Bloque de Control del Proceso (PCB, Process
Control Block).
Es un conjunto de registros que almacena información sobre el proceso:
Estado del proceso: Nuevo, Listo, en Ejecución, Bloqueado.
Contador del programa: Dirección siguiente instrucción a ejecutar.
Registros de la CPU: Contenidos al final de la última ejecución (contador de programa,
puntero a pila, registros de datos, etc.).
Información planificación CPU: Prioridad, apuntadores a las colas, algoritmo usado.
Información contable y de identificación: Número de proceso, tiempo real y de CPU
utilizado. Información estado E/S: Solicitudes E/S pendientes, lista archivos abiertos,
etc.
Se utiliza para poder ejecutar procesos concurrentes: hay un cambio de contexto (se produce
una interrupción que debe atender el sistema operativo).
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
15 Sistemas Operativos
ALGORITMOS DE PLANIFICACIÓN
Decidir a cuál de los procesos que están en la cola de procesos listos se le asignará la CPU.
Clasificación de algoritmos de planificación:
POR ORDEN DE LLEGADA (FCFS).
La CPU es asignada a todos los procesos en el mismo orden que lo solicitan. Es fácil de
implementar.
Sin expulsión: Cuando un proceso tiene asignada la CPU, la conserva hasta que desee liberarla,
bien sea porque finaliza o por solicitud de una E/S.
Inconvenientes:
No optimiza el tiempo de espera: es muy variable en función del orden de llegada de los
procesos y la duración de los intervalos de CPU.
No es adecuado para sistemas interactivos: Por ser sin expulsión un trabajo con una ráfaga
de CPU larga puede provocar una espera larga a otros usuarios.
CIRCULAR (RR, ROUND-ROBÍN)
A cada proceso se le asigna una pequeña cantidad de tiempo de CPU, llamada “quantum” de
tiempo, normalmente 10-100 mseg.
Si el proceso tiene un intervalo de CPU mayor que el “quantum”, entonces es expulsado de la
CPU y añadido a la cola de procesos listos.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
16 Sistemas Operativos
Si hay n procesos, cada uno obtiene 1/n del tiempo de la CPU en intervalos de q unidades
como máximo (en un ciclo).
Equitativo.
El tiempo de espera máximo está limitado por (n -1) q, antes de recibir su siguiente cuanto de
tiempo (en un ciclo).
El tiempo de retorno medio varía con el cuanto de tiempo.
En general es peor que el del algoritmo SRTF. Mejora si un porcentaje alto de trabajos acaban
antes de que acabe el cuanto de tiempo (de ahí la regla practica anterior).
POR PRIORIDADES
Sin expulsión (“Non preemptive”)/ Con expulsión (“Preemptive”)
Estáticos: La prioridad se asigna antes de la ejecución y no cambia.
Dinámicos: La prioridad cambia con el tiempo.
COMBINACIÓN DE ALGORITMOS: PRIORIDADES.
El algoritmo de prioridades se selecciona para ejecutar el proceso en estado de listo que tenga la
máxima prioridad. Aunque puede haber versiones no expulsivas de este algoritmo, generalmente,
se usan versiones expulsivas en las que puede haber cambios de contexto involuntarios cuando se
desbloquea un proceso con mayor prioridad que el actual, utilizándose también en este caso el
mecanismo de la interrupción software.
Universidad Nacional de Trujillo
Estados de Procesos, Planificación de Procesos y
Procesamiento de Interrupciones
17 Sistemas Operativos
BIBLIOGRAFIA
http://es.slideshare.net/gladysmamani/planificacion-de-proceso-presentation
http://astreo.ii.uam.es/~ortigosa/ssoo/05-planificador-2pp.pdf
http://www.ecured.cu/index.php/Planificaci%C3%B3n_de_procesos_en_Siste
mas_Operativos
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap3.pdf
http://www.monografias.com/trabajos13/gesme/gesme.shtml
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/ADMINIS
TRACIONDELAMEMORIA/5.3SegmentacionPaginada.htm
Juan A. Pérez-Campanero, Juan M. Morera. Conceptos de Sistemas
Operativos, España, 2002
David A. Patterson, Jhon L. Hennessy. Estructura y Diseño de Computadores,
España, 2000
Sistemas operativos- Expto. David Luis La Red Martinez.
Sistemas operativos 3° Edición-Andrews Tanenbaum