TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
Procesos, estados y planificación
1.
2. Un proceso puede informalmente entenderse como un
programa en ejecución. Formalmente un proceso es "Una
unidad de actividad que se caracteriza por la ejecución de
una secuencia de instrucciones, un estado actual, y un
conjunto de recursos del sistema asociados".
3. Los procesadores sólo pueden ejecutar un solo proceso a
la vez, turnándolos para el uso de éste. Existen procesos
no apropiativos o cooperativos que básicamente ocupan
todo el tiempo del procesador hasta que ellos deciden
dejarlo.
Los posibles estados que puede tener un proceso son
ejecución, bloqueado y listo:
Ejecución, es un proceso que está haciendo uso del
procesador.
Bloqueado, No puede ejecutarse hasta que un evento
externo sea llevado a cabo.
Listo, ha dejado disponible al procesador para que otro
proceso pueda ocuparlo.
4. El bloque de control del proceso (BCP) o en inglés PCB
(Process Control Block) es un registro especial donde el
sistema operativo agrupa toda la información que necesita
conocer respecto a un proceso particular. Cada vez que se
crea un proceso el sistema operativo crea el BCP
correspondiente para que sirva como descripción en tiempo
de ejecución durante toda la vida del proceso.
El bloque de control de proceso es una estructura de datos
con campos para registrar los diferentes aspectos de la
ejecución del proceso y de la utilización de recursos.
5. Analizaremos todos los aspectos relacionados
con el problema de cuándo asignar un
procesador (CPU) y a qué proceso.
Distinguiremos entre tres niveles o tipos de
planificación (a largo, medio y corto plazo).
6. Planificación a largo plazo
Este planificador está presente en algunos sistemas que
admiten además de procesos interactivos trabajos por lotes.
Usualmente , se les asigna una prioridad baja a los trabajos
por lotes, utilizándose estos para mantener ocupados a los
recursos del sistema durante períodos de baja actividad de
los procesos interactivos.
Planificación a Medio Plazo
En los sistemas de multiprogramación y tiempo compartido
varios procesos residen en la memoria principal. El tamaño
limitado de ésta hace que el número de procesos que
residen en ella sea finito. Puede ocurrir que todos los
procesos en memoria estén bloqueados, desperdiciándose
así la CPU. En algunos sistemas se intercambian procesos
enteros (swap) entre memoria principal y memoria
secundaria (normalmente discos), con esto se aumenta el
número de procesos, y, por tanto, la probabilidad de una
mayor utilización de la CPU.
7. Planificación a corto plazo
El principal objetivo de la planificación a corto plazo es
repartir el tiempo del procesador de forma que se optimicen
algunos puntos del comportamiento del sistema.
Generalmente se fija un conjunto de criterios con los que
evaluar las diversas estrategias de planificación. El criterio
más empleado establece dos clasificaciones. En primer
lugar, se puede hacer una distinción entre los criterios
orientados a los usuarios y los orientados al sistema. Los
criterios orientados al usuario se refieren al comportamiento
del sistema tal y como lo perciben los usuarios o los
procesos. Uno de los parámetros es el tiempo de
respuesta. El tiempo de respuesta es el periodo de tiempo
transcurrido desde que se emite una solicitud hasta que la
respuesta aparece en la salida. Sería conveniente disponer
de una política de planificación que ofrezca un buen
servicio a diversos usuarios.
8. Puede verse la concurrencia de procesos como la
ejecución simultánea de varios procesos. Si tenemos un
multiprocesador o un sistema distribuido la concurrencia
parece clara, en un momento dado cada procesador
ejecuta un proceso. Se puede ampliar el concepto de
concurrencia si entendemos por procesado concurrente (o
procesado paralelo) la circunstancia en la que de tomar
una instantánea del sistema en conjunto, varios procesos
se vean en un estado intermedio entre su estado inicial y
final. Esta última definición incluye los sistemas
multiprogramados de un único procesador que
estudiamos en los temas anteriores.
9. Los distintos procesos dentro de un ordenador no actúan de
forma aislada. Por un lado, algunos procesos cooperan
para lograr un objetivo común. Por otro lado, los procesos
compiten por el uso de unos recursos limitados, como el
procesador, la memoria o los ficheros. Estas dos
actividades de cooperación y competición llevan asociada
la necesidad de algún tipo de comunicación entre los
procesos. Parte de este tema lo dedicaremos a estudiar
mecanismos de comunicación entre los procesos.
10. Dos o más procesos decimos que son concurrentes, paralelos, o
que se ejecutan concurrentemente, cuando son procesados al
mismo tiempo, es decir, que para ejecutar uno de ellos, no hace
falta que se haya ejecutado otro.
En sistemas multiprocesador, esta ejecución simultánea podría
conseguirse completamente, puesto que podremos asignarle, por
ejemplo, un proceso A al procesador A y un proceso B al
procesador B y cada procesador realizaran la ejecución de su
proceso.
Cuando tenemos un solo procesador se producirá un intercalado
delas instrucciones de ambos procesos, de tal forma que
tendremos la sensación de que hay un paralelismo en el sistema
(concurrencia, ejecución simultánea de más de un proceso).
11. Una interrupción es un mecanismo que permite ejecutar un
bloque de instrucciones interrumpiendo la ejecución de un
programa, y luego restablecer la ejecución del mismo sin
afectarlo directamente. De este modo un programa puede
ser interrumpido temporalmente para atender alguna
necesidad urgente del computador y luego continuar su
ejecución como si nada hubiera pasado.
12. En este su apartado vamos a hacer una
clasificación de las distintas clases de
interrupciones que nos podemos encontrar
atendiendo a la fuente que las produce. Por un
lado distinguiremos si se producen por causas
internas o externas al procesador y
remarcaremos que este hecho está íntimamente
ligado con que las interrupciones sean síncronas
o asíncronas:
13. Interrupciones hardware: Estas son asíncronas a la ejecución
del procesador, es decir, se pueden producir en cualquier
momento independientemente de lo que esté haciendo la CPU
en ese momento. Las causas que lo producen son externas al
procesador y a menudo suelen estar ligadas con distintos
dispositivos de E/S.
Traps : Son aquellas que se producen de forma síncrona a la
ejecución del procesador y por tanto podrían predecirse si se
analiza con detenimiento la traza del programa que en ese
momento estaba siendo ejecutado en la CPU. Normalmente las
causas de estas interrupciones suelen ser realizaciones de
operaciones no permitidas tales como la división por 0, el
desbordamiento, el acceso a una posición de memoria no
permitida, etc.
Interrupciones software o excepciones: A menudo se tiende a
confundir las interrupciones software y las trampas, ya que su
naturaleza es bastante similar. Sin embargo las excepciones se
producen al realizar una operación no permitida por lo que de
algún modo podemos decir que no es controlada directamente
por el programador sino que, por un fallo al programar, se
producen. No obstante las trampas sí que son provocadas por el
programador.