UNIDAD 2 Administración de Procesos y Del Procesador
UNIDAD 2 Administración de Procesos y Del Procesador
UNIDAD 2 Administración de Procesos y Del Procesador
SISTEMAS OPERATIVOS 1.
Programa.- Coleccin de instrucciones que el procesador interpreta y ejecuta, se
almacenan en sistemas no voltiles necesitando ser cargados en memoria principal para
poder ser ejecutados, se considera un ente esttico.
Procesos.-Programa en ejecucin, es una entidad activa capaz de hacer que ocurran hechos,
el sistema operativo les asigna recursos, Se consideran un ente dinmico.
El proceso es una abstraccin creada por el SO, que se compone de:
1. Cdigo de Programa: seccin texto
2. Contexto de Ejecucin: PC, registros del procesador y una pila para invocacin
de procedimientos
3. Seccin de Datos, que contiene variables globales
4. Recursos del sistema.
ESTADOS DE UN PROCESO
Durante su vida un proceso pasa por una serie de estados discretos. Varios eventos
pueden ocasionar que un proceso cambie de estado.
Se dice que un proceso se est ejecutando, es decir, se encuentra en estado de
ejecucin, si tiene asignada la unidad central de procesamiento (CPU de aqu en adelante).
Se dice que un proceso est listo (es decir, se encuentra en estado listo) si pudiera utilizar
una CPU en caso de haber una disponible.
Un proceso est bloqueado (es decir, se encuentra en estado bloqueado) si est esperando
que suceda algn evento (como un evento de fin de E/S, por ejemplo) antes de poder
proseguir su ejecucin.
Por sencillez, se considera un sistema con una sola CPU, aunque no es difcil la extensin a
mltiples procesadores. Solamente puede haber un proceso en ejecucin a la vez, pero
puede haber varios listos y varios pueden estar bloqueados.
As pues, se forma una lista de procesos listos y otras de procesos bloqueados. La lista de
procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la
CPU ser el primero de la lista. La lista de procesos bloqueados normalmente no est
ordenada; los procesos no se desbloquean (es decir, no pasan a ser procesos listos) en orden
de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que estn
esperando.
TRANSICIONES DE ESTADO DE LOS PROCESOS.
Cuando se admite una tarea en el sistema, se crea el proceso correspondiente y se inserta
normalmente al final de la lista de procesos listos. El proceso se desplaza poco a poco hacia
el frente de la lista de procesos listos, a medida que los procesos que se encuentran antes
que l completan su turno de uso de la CPU. Cuando el proceso llega al principio de la
lista, se le asigna la CPU cuando sta queda disponible y entonces se dice que hay una
transicin de estado del estado listo al estado de ejecucin (Figura 2.1). La asignacin
del procesador al primer proceso de la lista de procesos listos se denomina despacho; dicha
actividad la realiza una entidad del sistema llamada despachador. A continuacin se dan
ejemplos de eventos que pueden provocar transiciones de estado en un proceso en este
modelo de 5 estados. Hay otros modelos que detallan ms la forma en que se dan estas
transiciones pero considero que este modelo es perfecto en nuestro caso.
Procesos ligeros: Hilos Hebras:
El concepto de proceso es ms complejo y sutil que el presentado hasta ahora. Engloba dos
conceptos separados y potencialmente independientes: uno relativo a la propiedad de
recursos y otro que hace referencia a la ejecucin.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de
tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecucin (una
traza) a travs de uno o ms programas. Esta ejecucin se entremezcla con la de otros
procesos. De tal forma, que un proceso tiene un estado (en ejecucin, listo, etc) y una
prioridad de expedicin u origen. La unidad planificada y expedida por el sistema
operativo es el proceso.
En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la
esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como
tales por el sistema operativo. Esta distincin ha conducido en los sistemas operativos
actuales a desarrollar la construccin conocida como thread, cuyas traducciones ms
frecuentes son hilo, hebra y proceso ligero. Si se tiene esta divisin de caractersticas,
la unidad de asignacin de la CPU se conoce como hilo, mientras que a la unidad que
posee recursos se le llama proceso.
Dentro de un proceso puede haber uno o ms hilos de control cada uno con:
Un estado de ejecucin (en ejecucin, listo, bloqueado).
Un contexto de procesador, que se salva cuando no est ejecutndose.
Una pila de ejecucin.
Algn almacenamiento esttico para variables locales.
Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.
Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se
tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo,
y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un
mismo proceso a varios flujos de ejecucin se mantiene una nica copia en memoria
del cdigo, y no varias.
Un ejemplo de aplicacin que podra hacer uso de los hilos es un servidor de ficheros
de una red de rea local. Cada vez que llega una solicitud de una operacin sobre un
fichero, se puede generar un nuevo hilo para su gestin. El servidor gestiona multitud
de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para
dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar
varios hilos de un mismo proceso simultneamente y en diferentes procesadores.
Concurrencia y secuenciabilidad.
Principios Generales de la Concurrencia: En sistemas multiprogramados con un nico
procesador, los procesos se intercalan en el tiempo es decir el procesador se cambia de un
proceso a otro (Round Robin) aparentando una ejecucin simultnea.
Puede verse la concurrencia de procesos como la ejecucin simultnea 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 instantnea del sistema en conjunto, varios procesos
se vean en un estado intermedio entre su estado inicial y final.
Los distintos procesos dentro de un ordenador no actan de forma aislada. Por un
lado, algunos procesos cooperan para lograr un objetivo comn. 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 cooperacin y competicin llevan asociada la
necesidad de algn tipo de comunicacin entre los procesos.
Histricamente los lenguajes de programacin concurrente y Las APIs de los
sistemas operativos ofrecen un conjunto de Principios que facilitan la
interaccin entre procesos de forma sencilla y eficiente.
Estas Principios deben hacer posible:
-La Sincronizacin: Un proceso tiene acceso al estado de flujo de control
que en ese instante tiene otro proceso.
-La Exclusin mutua: Garantiza que mientras que un proceso accede a un
recurso o actualiza una variable compartida, ningn otro proceso accede al
mismo recurso o a la variable compartida.
Se denomina seccin crtica, en programacin concurrente, a la porcin de cdigo de un
programa de computador en la cual se accede a un recurso compartido (estructura de
datos o dispositivo) que no debe ser accedido por ms de un proceso o hilo en ejecucin.
La seccin crtica por lo general termina en un tiempo determinado y el hilo, proceso o
tarea slo tendr que esperar un perodo determinado de tiempo para entrar. Se necesita un
mecanismo de sincronizacin en la entrada y salida de la seccin crtica para asegurar la
utilizacin en exclusiva del recurso, por ejemplo un semforo(Es una Variable que indica
si se accede o no a un recurso).
El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro
y fuera de la seccin crtica. La seccin crtica se utiliza por lo general cuando un programa
multihilo actualiza mltiples variables sin un hilo de ejecucin separado que lleve los
cambios conflictivos a esos datos. Una situacin similar, la seccin crtica puede ser
utilizada para asegurarse de que un recurso compartido, por ejemplo, una impresora, puede
ser accedida por un solo proceso a la vez.
La manera en cmo se implementan las secciones puede variar dependiendo de los diversos
sistemas operativos.
Slo un proceso puede estar en una seccin crtica a la vez.
El mtodo ms comn para evitar que dos procesos accedan al mismo tiempo a un
recurso es el de la exclusin mutua.
NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIN
El Planificador es la porcin del Sistema Operativo que decide y el Algoritmo de
Planificacin es el utilizado. Los principales criterios respecto de un buen
algoritmo de planificacin son la equidad, la eficacia, el tiempo de respuesta, el
tiempo de regreso y el rendimiento.
Cada proceso es nico e impredecible, es decir que pueden requerir intensivamente
operaciones de Entrada / Salida o intensivamente CPU; el planificador del Sistema
Operativo no tiene la certeza de cunto tiempo transcurrir hasta que un proceso se
bloquee, ya sea por una operacin de Entrada / Salida o por otra razn.
Para evitar que un proceso se apropie de la cpu un tiempo excesivo, los equipos
poseen un dispositivo que provoca una interrupcin en forma peridica, por ejemplo
60 hz, o sea sesenta veces por segundo.
Planificacin de Procesador:
Planificacin apropiativa: es la estrategia de permitir que procesos ejecutables
(desde el punto de vista lgico) sean suspendidos temporalmente.
Planificacin noapropiativa: es la estrategia de permitir la ejecucin de un proceso
hasta terminar.
Planificacin del procesador: determinar cundo deben asignarse los procesadores
y a qu procesos, lo cual es responsabilidad del Sistema Operativo.
Niveles de planificacin del procesador:
Planificacin de alto nivel: Tambin se denomina Planificacin de trabajos.
Determina a qu trabajos se les va a permitir competir activamente por los
recursos del sistema, lo cual se denomina Planificacin de admisin.
Planificacin de nivel intermedio: Determina a qu procesos se les puede permitir
competir por la CPU.
Responde a fluctuaciones a corto plazo en la carga del sistema y efecta
suspensiones y activaciones (reanudaciones) de procesos. Debe ayudar a
alcanzar ciertas metas en el rendimiento total del sistema.
Planificacin de bajo nivel: 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.
La efecta el Despachador del Sistema Operativo, el que opera muchas veces por
segundo y reside siempre en el almacenamiento primario.
Tcnicas de administracin del planificador
FIFO (First In First Out): "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 ms 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 algn esquema de prioridad. Los procesos con igual
prioridad se despachan FIFO.
RR (Round Robin): Los procesos se despachan en FIFO y disponen de una
cantidad limitada de tiempo de cpu, llamada divisin de tiempo o cuanto. Si
un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes
acciones: La cpu es apropiada. La cpu es otorgada al siguiente proceso en espera.
El proceso apropiado es situado al final de la lista de listos. Es efectiva en
ambientes de tiempo compartido. La sobrecarga de la apropiacin se mantiene
baja mediante mecanismos eficientes de intercambio de contexto y con suficiente
memoria principal para los procesos. "
SJF (Shortest Job First): "Es una disciplina no apropiativa y por lo tanto no
recomendable en ambientes de tiempo compartido. El proceso en espera con el
menor tiempo estimado de ejecucin hasta su terminacin es el siguiente en
ejecutarse. Los tiempos promedio de espera son menores que con FIFO. Los
tiempos de espera son menos predecibles que en FIFO. Favorece a los procesos
cortos en detrimento de los largos. Tiende a reducir el nmero de procesos en
espera y el nmero de procesos que esperan detrs de procesos largos. Requiere
un conocimiento preciso del tiempo de ejecucin de un proceso, lo que
generalmente se desconoce. Se pueden estimar los tiempos en base a series de
valores anteriores. "