l Administrador de Procesos trabaja junto con el Microkernel para proporcionar los servicios esenciales el sistema operativo. El Administrador de Procesos es responsable de la creación de nuevos procesos en el sistema y de la administración de los recursos más fundamentales asociados con un proceso. Estos servicios se proporcionan mediante mensajes.
Si un proceso quiere crear un nuevo proceso, simplemente ha de enviar un mensaje que contenga los detalles del nuevo proceso a crear. Además se puede crear un proceso en otro nodo fácilmente, enviando un mensaje de creación de proceso al Administrador de Procesos de la máquina remota.
1. INSTITUTO TECNOLOGICO
Del Istmo
ESPECIALIDAD:
ING. INFORMATICA
MATERIA:
SISTEMAS OPERATIVOS 1
INVESTIGACION:
UNIDAD II ADMINISTRADOR DEL POCESADOR
CATEDRATICO:
JACINTO TOLEDO TORRES
ALUMNO:
AMAIRANI VELAZQUEZ CRUZ
SEMESTRE: GRUPO:
4° “S”
HEROICA CD. DE JUCHITAN DE ZARAGOZA, OAX,
ISO 9001:2000
Proceso Educativo
S.E.P S.N.E.S.T D.G.E.S.T
2. Unidad 2. Administrador de procesador
2.1 concepto de proceso, programa y procesador
Concepto de Proceso:Un proceso es una secuencia de pasos
dispuesta con algún tipo de lógica que se enfoca en lograr algún resultado
específico. Los procesos son mecanismos de comportamiento que diseñan los
hombres para mejorar la productividad de algo, para establecer un orden o
eliminar algún tipo de problema. El concepto puede emplearse en una amplia
variedad de contextos, como por ejemplo en el ámbito jurídico, en el de la
informática o en el de la empresa. Es importante en este sentido hacer hincapié
que los procesos son ante todo procedimientos diseñados para servicio del
hombre en alguna medida, como una forma determinada de accionar.
Concepto de programa: es un conjunto de instrucciones u órdenes
que indican a la máquina las operaciones que ésta debe realizar con unos datos
determinados. En general, todo programa indica a la computadora cómo obtener
unos datos de salida, a partir de unos datos de entrada. En la siguiente figura se
muestra, gráficamente, el funcionamiento básico de un programa.
Concepto de procesador:
El procesador es en los sistemas informáticos el complejo de circuitos que
configura la unidad central de procesamiento o CPU. Típicamente, un procesador
o microprocesador es parte de cualquier computadora o de equipos electrónicos
digitales y es la unidad que hace las veces de “motor” de todos los procesos
informáticos desde los más sencillos hasta los más complejos.
3. 2.2 DIAGRAMA DE ESTADOS DE UN PROCESO
El estado de un proceso define su actividad actual. Durante su existencia, un
proceso pasa por una serie de estados discretos. Estos estados son se muestran
en el siguiente diagrama.
A continuación se describe cada uno de estos procesos:
Nuevo:Se dice que un procesoestá en estado de nuevo cuando
apenas se encuentra en procesode crearse.
Listo:Un proceso está en estado de listo, cuando podría usar una
UCP, si hubiera una disponible.
En ejecución:Se dice que un proceso está estado de ejecución, si en
ese momento tiene está ocupando la CPU.
Bloqueado:Se dice que un proceso está en estado de bloqueado,si
esperaque ocurra algo, como por ejemplo,la terminación de una E/S,
para así poderponerse en marcha.
Terminado:Cuando un proceso se ha completadosu ejecuciónpasa a
ser un proceso terminado.
4. 2.3 TRANSICIONES DE ESTADOS DE UN PROCESO
La asignación del CPU al primer proceso de la lista de listos es llamada despacho, y es ejecutado
por la entidad del sistema llamada despachador. Indicamos esta transición de la manera siguiente:
Despacho (nombre del proceso): Listo en ejecución.
Mientras el proceso tenga CPU, se dice que está en ejecución. Para prevenir que cualquier
proceso monopolice el sistema, ya sea de manera accidental o maliciosamente el sistema
operativo ajusta un reloj de interrupción del hardware para permitir al usuario ejecutar su proceso
durante un intervalo de tiempo especifico o cuánto. Si el proceso no abandona voluntariamente el
CPU, antes de que expire el intervalo, el reloj genera una interrupción, haciendo que el sistema
operativo recupere el control. El sistema operativo hace que el proceso que anteriormente se
hallaba en estado de ejecución pase al de listo, y hace que el primer proceso de la lista de listos
pase al estado de ejecución.
Estas transiciones de estado se indican como:
- tiempo excedido (nombre del proceso): en ejecución Listo
- bloqueado (nombre del proceso): en ejecución bloqueado
El proceso cambia del estado bloqueado al estado listo:
- despertar (nombre del proceso): bloqueado Listo.
Con esto tenemos definidas 4 transacciones de estado.
- despacho (nombre del proceso): Listo en ejecución
- tiempo excedido (nombre del proceso): en ejecución Listo
- bloqueado (nombre del proceso): en ejecución bloqueado
- despertar (nombre del proceso): bloqueado Listo.
2.4 CONCEPTO DE SEMÁFORO,EXCLUSIÓNMUTUAY SECCIÓN
CRÍTICA
SEMAFORO
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico
para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de
almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento
(en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger
Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS.
5. Los semáforos sólo pueden ser manipulados usando las siguientes operaciones (éste es el código
con espera activa):
Inicia (Semáforo s, Entero v)
{
s = v;
}
En el que se iniciará la variable semáforo s a un valor entero v.
P (Semáforo s)
{
If (s>0)
s = s-1;
Else
Wait ();
}
La cual mantendrá en espera activa al regido por el semáforo si éste tiene un valor inferior o igual
al nulo.
V (Semáforo s)
{
If (!procesos_bloqueados)
s = s+1;
Else
Signal ();
}
Estas instrucciones pueden modificarse para evitar la espera activa, haciendo que la operación P
duerma al mismo proceso que la ejecuta si no puede decrementar el valor, mientras que la
operación V despierta a un proceso que no es quien la ejecuta. En un pseudolenguaje más
entendible, la operación P suele denominarse "wait" o "espera" y la operación V "signal" o "señal".
6. El porqué de los nombres de estas funciones, V y P, tiene su origen en el idioma holandés.
"Verhogen" significa incrementar y "Proberen" probar, aunque Dijkstra usó la palabra inventada
prolaag [1], que es una combinación de proveer te verlagen (intentar decrementar). El valor del
semáforo es el número de unidades del recurso que están disponibles (si sólo hay un recurso, se
utiliza un "semáforo binario" cuyo valor inicial es 1). La verificación y modificación del valor, así
como la posibilidad de irse a dormir se realiza en conjunto, como una sola e indivisible acción
atómica. El sistema operativo garantiza que al iniciar una operación con un semáforo, ningún otro
proceso puede tener acceso al semáforo hasta que la operación termine o se bloquee. Esta
atomicidad es absolutamente esencial para resolver los problemas de sincronización y evitar
condiciones de competencia. Si hay n recursos, se inicializará el semáforo al número n. Así, cada
proceso, al ir solicitando un recurso, verificará que el valor del semáforo sea mayor de 0; si es así
es que existen recursos libres, seguidamente acaparará el recurso y decrementará el valor del
semáforo. Cuando el semáforo alcance el valor 0, significará que todos los recursos están siendo
utilizados, y los procesos que quieran solicitar un recurso deberán esperar a que el semáforo sea
positivo, esto es: alguno de los procesos que están usando los recursos habrá terminado con él e
incrementará el semáforo con un signal o V(s).
EXCLUSIÓNMUTUA
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso
compartido de forma que garantice la integridad del sistema. Los algoritmos de exclusión mutua se
usan en programación concurrente para evitar el uso simultáneo de recursos comunes, como
variables globales, por fragmentos de código conocidos como secciones críticas. La mayor parte
de estos recursos son las señales, contadores, colas y otros datos que se emplean en la
comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código
que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se
toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones
cualesquiera del código normal y esto puede provocar graves fallos. La técnica que se emplea por
lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto de
instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección
crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.
SECCIÓN CRÍTICA.
Es la parte del programa con un comienzo y un final claramente marcados que generalmente
contiene la actualización de una o más variables compartidas. Para que una solución al problema
de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones: Hay que
garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso
compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas
secciones críticas.
7. o No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
o Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la
sección crítica.
o Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en
un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final
2.5 planificacióndel procesador,niveles objetivosyu criterio de
planificación.
· Planificación a largo plazo (planificador de trabajos). Decide cuál será el próximo trabajo que se
va a ejecutar. Este nivel sólo existe en los sistemas de proceso por lotes, donde la decisión se
basa en las necesidades de recursos y su disponibilidad. En los sistemas de tiempo compartido
tiene como única misión cargar los programas que se desean ejecutar en memoria. Este nivel es,
por tanto, el encargado de crear los procesos.
· Planificación a medio plazo (planificador de swapping). Decide si un proceso que está en
ejecución en estado bloqueado o suspendido debe ser extraído de la memoria temporalmente.
Posteriormente, cuando el sistema se encuentre más descargado, devolverá dicho proceso a la
memoria y al estado de ejecución. Este nivel, por tanto, gestiona los procesos suspendidos en
espera de algún recurso no disponible en el momento de la suspensión.
· Planificación a corto plazo (planificador del procesador). Es el encargado de decidir cómo y
cuándo tendrá acceso al procesador un proceso que está preparado para utilizarlo. Por tanto, lleva
a cabo las funciones de la multiprogramación, estando siempre residente en memoria y
ejecutándose con mucha frecuencia; por ello, debe ser de ejecución muy rápida. En este nivel es
donde se debe dar un buen servicio a los procesos interactivos para que el usuario no perciba, o lo
haga en pequeño grado, que está compitiendo por el procesador junto con otros usuarios.
8. NIVELES OBJETIVOS
Las políticas de planificación intentan cubrir los siguientes objetivos:
· Justicia. La política debe ser lo más justa posible con todo tipo de procesos, sin favorecer a unos
y perjudicar a otros.
· Máxima capacidad de ejecución. Debe dar un servicio aceptable para que todos los trabajos se
realicen lo más rápidamente posible. Esto se logra disminuyendo el número de cambios de
proceso.
· Máximo número de usuarios interactivos. En los sistemas de tiempo compartido se tratará de
que puedan estar trabajando el mayor número de usuarios simultáneamente.
· Predecibilidad. La política de planificación debe concebirse de tal forma que en todo momento
pueda saberse cómo será su ejecución.
· Minimización de la sobrecarga. La computadora debe tener poca sobrecarga ya que ésta incide
directamente sobre el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de
proceso. Por ello, los cambios de contexto deben minimizarse.
· Equilibrio en el uso de recursos. Para obtener un buen rendimiento en el uso de los recursos y
que éstos estén ocupados equitativamente el mayor tiempo posible.
· Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, éste debe
ejecutarse más rápidamente.
Los objetivos enunciados pueden entrar en ocasiones en contradicción; por ello es necesario
llegar a una situación de compromiso entre todos los objetivos para conseguir del sistema
operativo un buen rendimiento y un buen servicio.
. CRITERIOS DE PLANIFICACION
Para realizar los objetivos de la planificación, un mecanismo de planificación debe considerar lo
siguiente:
La limitación de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la
CPU, ?la utiliza solo brevemente antes de generar una petición de Entrada / Salida? La limitación
de un proceso a la CPU: cuando un proceso obtiene la CPU, ?tiende a usarla hasta que expira su
tiempo?
Si un proceso es por lote o interactivo: los usuarios interactivos deben recibir inmediato servicio
para garantizar buenos tiempos de respuesta.
¿Que urgencia tiene una respuesta rápida?: por ejemplo, un proceso de tiempo real de un sistema
de control que supervise una refinería de combustible requiere una respuesta rápida, mas rápida
que la respuesta requerida por un proceso en lotes que deberá entregarse al día siguiente.
La prioridad de un proceso: a mayor prioridad mejor tratamiento.
9. Frecuentemente un proceso genera fallos (carencias) de página:
Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus “conjuntos
de trabajo” en el almacenamiento principal.
Los procesos que experimentan gran cantidad de fallos de página aun no han establecido sus
conjuntos de trabajo.
Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo.
Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que
rápidamente generaran una petición de Entrada / Salida.
Frecuentemente un proceso ha sido apropiado por otro de más alta prioridad, lo cual significa lo
siguiente:
A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cada vez que el
Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de
ejecución antes de la apropiación no justifica la sobrecarga de hacer ejecutar al proceso en primer
lugar. Cuanto tiempo de ejecución real ha recibido el proceso?: un criterio considera que debe ser
favorecido un proceso que ha recibido muy poco tiempo de CPU.
2.6 METODOS DE PLANIFICACIÓN
Algoritmo de planificación F.C.F.S
Los procesos son ejecutados en el orden que llegan a la cola deprocesos listos.
La implementación es fácil a través de una cola FIFO.
Es adecuado para sistemas por lotes (batch).
Es un algoritmo no expropiativo:una vez que el procesador lees asignado a un proceso este lo
mantiene hasta que termina o se bloquea (por ejemplo al generar un pedido de E/S).
El tiempo de espera promedio por lo general es alto.
Algoritmo de planificación S.J.F
El algoritmo asociaa los procesosel largo desu próximo CPU-burst.
Cuando el procesador queda disponibleseleasigna al proceso quetenga el menor CPU-
burst.
Si dos procesos tiene el mismo CPU-burst se desempata de alguna forma.
Su funcionamiento depende de conocer los tiempos de ejecución lo cual en la mayoría de
los casos no sucede.
Es adecuado para sistemas por lotes (batch)
ALGORITMO DE PLANIFICACION R.R
Round-robín es un método para seleccionar todos los elementos en un grupo de
manera equitativa y en un orden racional, normalmente comenzando por el primer
elemento de la lista hasta llegar al último y empezando de nuevo desde el primer
elemento. El nombre del algoritmo viene del principio de Round-Robín conocido de
otros campos, donde cada persona toma una parte de un algo compartido en
cantidades parejas.
10. Una forma sencilla de entender el Round-robín es imaginar una secuencia para
"tomar turnos". En operaciones computacionales, un método para ejecutar
diferentes procesos de manera concurrente, para la utilización equitativa de los
recursos del equipo, es limitando cada proceso a un pequeño período (quantum), y
luego suspendiendo este proceso para dar oportunidad a otro proceso y así
sucesivamente. A esto se le denomina comúnmente como Planificación Round-
Robín.