UNIVERSIDAD REGIONAL AUTÓNOMA DE
LOS ANDES “UNIANDES” TULCÁN
Sistemas Operativos
Título del Trabajo:
Introducción a los Procesos
Modelo de Procesos
Implementación de Procesos
Cambio de Contexto
Planificación del CPU
ALUMNOS: Alejandro Ordóñez - Edwin Coral -
Juan Carlos Rosero - Jhony Montenegro
PROFESOR: Ing. Dario Maldonado
Tulcán, noviembre del 2011
El concepto central de cualquier Sistema
Operativo es el de PROCESO: una
abstracción de un programa en ejecución
también llamada tarea.
No hay un acuerdo universal sobre una
definición de proceso, pero sí algunas
definiciones aceptadas:
Un programa que se está ejecutando.
Una actividad asincrónica. (Asincronía: Hace
referencia al suceso que no tiene lugar en
total,correspondencia temporal con otro
suceso).
El emplazamiento del control de un
procedimiento que está siendo ejecutado.
Aquello que se manifiesta por la existencia
en el Sistema Operativo de un bloque de
control de proceso.
Aquella entidad a la cual son asignados los
procesadores.
La unidad despachable.
En sistemas de multiprogramación la CPU alterna de programa en
programa, en un esquema de seudo paralelismo, es decir que la CPU
ejecuta en cierto instante un solo programa, intercambiando muy
rápidamente entre uno y otro.
El paralelismo real de hardware se da en las siguientes situaciones:
En ejecución de instrucciones de programa con más de un procesador
de instrucciones en uso simultáneamente.
Con la superposición de ejecución de instrucciones de programa con
la ejecución de una o más operaciones de entrada / salida.
El objetivo es aumentar el paralelismo en la ejecución.
Todo el software ejecutable, inclusive el Sistema Operativo, se
organiza en varios procesos secuenciales o procesos.
El modelo de procesos posee las siguientes características:
Un proceso incluye al programa en ejecución y a los valores
activos del contador, registros y variables del mismo.
Conceptualmente cada proceso tiene su propia CPU virtual.
Si la CPU alterna entre los procesos, la velocidad a la que ejecuta
un proceso no será uniforme, por lo que es necesario aclarar lo
siguiente:
Que los procesos no deben programarse con hipótesis implícitas acerca del
tiempo.
Que normalmente la mayoría de los procesos no son afectados por la
multiprogramación subyacente de la cpu o las velocidades relativas de
procesos distintos.
Un proceso es una actividad de un cierto tipo que tiene un
programa, entrada, salida y estado.
Un solo procesador puede ser compartido entre varios procesos
con cierto “algoritmo de planificación”, el cual determina
cuándo detener el trabajo en un proceso y dar servicio a otro
distinto
En cuanto a las jerarquías de procesos es necesario señalar que los
Sistemas Operativos deben disponer de una forma de crear y
destruir procesos cuando se requiera durante la
operación, teniendo además presente que los procesos pueden
generar procesos hijos mediante llamadas al Sistema
Operativo, pudiendo darse ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las
siguientes consideraciones:
Cada proceso es una entidad independiente pero frecuentemente
debe interactuar con otros procesos (ver Figura 2.2).
Los procesos pueden bloquearse en su ejecución porque:
Desde el punto de vista lógico no puede continuar porque espera datos que
aún no están disponibles.
El Sistema Operativo asignó la CPU a otro proceso.
Los estados que puede tener un proceso son:
En ejecución: utiliza la CPU en el instante dado.
Listo: ejecutable, se detiene en forma temporal para que se ejecute otro
proceso.
Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento
externo.
La implementación del modelo de
procesos se logra debido a que el
sistema operativo almacena en una
tabla denominada tabla de control
de procesos información relativa a
cada proceso que se está ejecutando
en el procesador. Cada línea de esta
tabla representa a un proceso.
La información que se almacena es la
siguiente:
1) Identificación del proceso.
2) Identificación del proceso padre.
3) Información sobre el usuario y grupo.
4) Estado del procesador.
5) Información de control de proceso
5.1) Información del planificador.
5.2) Segmentos de memoria asignados.
5.3) Recursos asignados.
Un cambio de contexto consiste en la
ejecución de una rutina perteneciente al
núcleo del sistema operativo multitarea de
una computadora, cuyo propósito es parar la
ejecución de un hilo (o proceso) para dar
paso a la ejecución de otro distinto.
En principio, una computadora que dispone de un único microprocesador
solamente puede ejecutar un programa al mismo tiempo. No es posible
ejecutar otro programa hasta que ha finalizado el anterior.
No obstante, sería posible simular la ejecución simultánea de dos o más
programas si fuera posible detener un programa en cualquier momento y
reanudarlo posteriormente sin pérdida de información.
Los programas alternarían su ejecución durante cortos periodo de tiempo
aparentando que se ejecutan todos a la vez. Esto se denomina ejecución
concurrente.
Además, durante la ejecución de un programa existen muchos tiempos
muertos donde no es necesario el uso del microprocesador. Se trata de
los momentos en los que el programa está esperando a que finalice una
operación de entrada/salida, por ejemplo, una lectura desde el disco
duro. Estos tiempos muertos podrían aprovecharse para ejecutar otro
programa.
Para hacer realidad la ejecución concurrente es necesario que el programa en
ejecución se detenga voluntariamente. Puesto que esto no va a ocurrir nunca, es
imprescindible la intervención del hardware. Gracias a las interrupciones generadas
por el propio ordenador, es posible expulsar el programa en ejecución para dar paso
al sistema operativo.
Cuando esto ocurre, el sistema operativo ejecuta inmediatamente la rutina de
cambio de contexto. Esta rutina realiza las siguientes operaciones en el orden
indicado:
1. Salvar el estado del programa que se estaba ejecutando. El estado, también
denominado contexto, consiste en los valores de todos los registros del
microprocesador. Se copian en la memoria principal.
2. Seleccionar otro programa para ejecutar. Entre todos los programas que estén
preparados para ejecutarse, la rutina selecciona uno de ellos siguiendo algún
algoritmo equitativo.
3. Restaurar el estado del programa seleccionado. Para ello, se toma el estado
previamente copiado en la memoria principal.
4. Ejecutar el programa seleccionado. La rutina termina su ejecución saltando a la
instrucción que estaba pendiente de ejecutar en el programa seleccionado.
Este ciclo se repite bien cada vez que ocurre un evento de entrada/salida, bien
cuando vence un temporizador programado en el hardware.
La ejecución de un trabajo se compone de
ráfagas de CPU y E/S (Entrada y salida)
Objetivos perseguidos en la planificación de
CPU:
Equidad
Eficiencia
Bajo tiempo de respuesta
Rendimiento alto
Minimizar el tiempo de espera
Todosestos objetivos no se pueden conseguir
simultáneamente
Programa 1 Sistema Operativo Programa 2
Salvar registros Inactivo
Interrupción o
llamada al sistema
Restaurar registros
Inactivo En ejecución
Salvar registros
Interrupción o
llamada al sistema
Restaurar registros Inactivo
Tipos de planificadores de procesador:
Planificador a largo plazo
Controla el grado de multiprogramación
Planificador a corto plazo
Selecciona entre los trabajos cargados en memoria y
que están preparados para ejecutarse cual hará uso
del procesador
El planificador a corto plazo debe ser muy rápido ya
que entra en juego con una frecuencia muy alta
Planificador a medio plazo
Carga y descarga trabajos desde el disco a la memoria
y de la memoria al disco en función del grado de
sobrecarga del sistema.
Utilización del procesador
Maximizar el rendimiento del procesador
Rendimiento (“Throughput”)
Trabajos completados por unidad de tiempo
Tiempo de estancia (“Turnaround time”)
Tiempo transcurrido desde que se lanza hasta
que finaliza
Tiempo de espera
Por operaciones de E/S o por la planificación.
Tiempo de respuesta
Importante en aplicaciones interactivas o de TR
Se establecen compromisos de desempeño con el
proceso del usuario, por ejemplo, si existen “n”
procesos en el sistema, el proceso del usuario
recibirá cerca del “1 / n” de la potencia de la
CPU.
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.
Es muy simple, los procesos se despachan de acuerdo con
su tiempo de llegada a la cola de listos.
Una vez que el proceso obtiene la CPU, se ejecuta hasta
terminar, ya que es una disciplina “no apropiativa”.
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:
Los procesos se despachan con algún esquema de
prioridad.
Los procesos con igual prioridad se despachan “FIFO”.