Sistemas operativos Segundo corte
miércoles, 15 de abril de 2015
miércoles, 8 de abril de 2015
Procesos de estado
Multiprogramacion.
Técnica para la
ejecución simultanea de dos o mas programas es una misma computadora. La
multiprogramaciones una técnica que intenta incrementar la utilización del CPU
tratando de tener siempre algo para que el CPU lo ejecute.
Esta idea funciona
de la siguiente manera:
El sistema operativo
selecciona uno de los trabajos y empieza su ejecución. Eventualmente, el
trabajo tiene que esperar por algo, tal como una lectura a disco, un comando
que debe ser tecleado, etc. En un sistema no multiprogramado el CPU debe
esperar si hacer nada. En un sistema con multiprogramación, el sistema
operativo simplemente seleccionará otro trabajo y lo ejecutará.
Cuando ese trabajo
necesite esperar, el CPU será asignado a otro trabajo y de esta forma
continuará. Eventualmente el primer trabajo habrá terminado su espera y
obtendrá el CPU nuevamente. De esta manera, sí siempre existe algún trabajo
para ejecutar, el CPU nunca estará ocioso.
Los Sistemas
Operativos son altamente sofisticados ya que necesitan tener varios trabajos
listos para ser ejecutados, los cuales deben de estar simultáneamente en
memoria principal.
Memoria
Principal
Memoria
primaria (MP), memoria
principal, memoria
central o memoria
interna es
la memoria de la computadora donde
se almacenan temporalmente tanto los datos como los programas que la unidad central de procesamiento (CPU) está procesando o va a procesar en un
determinado momento. Por su función, la MP debe ser inseparable del microprocesador o CPU, con quien se comunica a
través del bus de datos y
el bus de direcciones. El ancho del bus determina la capacidad que posea
el microprocesador para el direccionamiento de direcciones en memoria.
En
algunas ocasiones suele llamarse “memoria interna” porque a diferencia de los
dispositivos de memoria secundaria, la MP no puede
extraerse tan fácilmente.
Esta
clase de memoria es volátil, es decir que cuando se corta la energía eléctrica, se
borra toda la información que estuviera almacenada en ella.
La
MP es el núcleo del subsistema de memoria de un sistema informático, y posee una menor
capacidad de almacenamiento que la memoria secundaria, pero una velocidad
millones de veces superior. Cuanto mayor sea la cantidad de memoria, mayor será
la capacidad de almacenamiento de datos.
Memoria
Virtual
La memoria virtual
es una técnica de gestión de la memoria que permite que el sistema operativo
disponga, tanto para el software de usuario como para sí mismo, de mayor
cantidad de memoria que esté disponible físicamente. La mayoría de los
ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la
memoria RAM y
el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor
capacidad y menor velocidad.
Modelos de
estado
El principal trabajo del procesador es ejecutar las instrucciones de máquina que
se encuentran en memoria principal. Estas instrucciones se encuentran en
forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador
ejecuta una tras otra las instrucciones del mismo.
En un entorno de
multiprogramación, el procesador intercalará la ejecución de instrucciones de
varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las
pautas de intercalado y asignación de recursos a cada proceso.
El principal trabajo del procesador es
ejecutar las instrucciones de máquina que se encuentran en memoria principal.
Estas instrucciones se encuentran en forma de programas. Para que un programa pueda
ser ejecutado, el sistema operativo crea un nuevo proceso, y el
procesador ejecuta una tras otra las instrucciones del mismo.
En un entorno de
multiprogramación, el procesador intercalará la ejecución de instrucciones de
varios programas que se encuentran en memoria. El sistema operativo
es el responsable de determinar las pautas de intercalado y asignación de recursos a
cada proceso.
El modelo de
estados más simple es el de dos estados. En este modelo, un proceso puede estar
ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No
ejecución. En algún momento el proceso que se está ejecutando pasará al estado No
ejecución y
otro proceso se elegirá de la lista de procesos listos
para ejecutar para ponerlo en estado Ejecución.
De esta explicación
se desprende que es necesario que el sistema operativo pueda seguirle la pista
a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además
los procesos que no se están ejecutando deben guardarse en algún tipo de cola
mientras esperan su turno para ejecutar.
Modelo de tres estados
Ejecución. Se tiene
una transición al estado de Bloqueados cada vez que el proceso pida algún
recurso. Una vez que ese requerimiento ha sido satisfecho, el proceso pasará al
estado de Listo porque ya no necesita otra cosa más que el
recurso procesador.
El modelo anterior
de dos estados funcionaría bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están en ejecución, si los procesos
estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para
operar con ellos, y puede suceder que no se encuentren listos, o que se deba
esperar algún suceso antes de continuar, como una operación de Entrada/Salida.
Es por esto que se necesita un estado donde los procesos permanezcan bloqueados
esperando hasta que puedan proseguir. Se divide entonces al estado No
ejecución en
dos estados: Listo y Bloqueado.
Se agregan además un estado Nuevo y
otro Terminado.
Ejecución: el
proceso está actualmente en ejecución.
Listo: el
proceso está listo para ser ejecutado, sólo está esperando que el planificador
así lo disponga.
Bloqueado: el
proceso no puede ejecutar hasta que no se produzca cierto suceso, como una
operación de Entrada/Salida.
Nuevo: El
proceso recién fue creado y todavía no fue admitido por el sistema operativo.
En general los procesos que se encuentran en este estado todavía no fueron
cargados en la memoria principal.
Terminado: El
proceso fue expulsado del grupo de
procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de
protección, aritmético, etc.
Los nuevos estados Nuevo y Terminado son
útiles para la gestión de
procesos. En este modelo los estados Bloqueado y Listo tienen
ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema
operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades
ésta puede ser una cola FIFO. Los procesos suspendidos son mantenidos en una
cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos los
procesos que esperaban por ese suceso.
Si existe un esquema
con diferentes niveles de prioridad de procesos es conveniente mantener varias
colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a
determinar cuál es el proceso que más conviene ejecutar a continuación.
Una de las razones
para implementar el estado Bloqueado era poder hacer
que los procesos se puedan mantener esperando algún suceso, por ejemplo una
Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones,
puede suceder en nuestro modelo de cinco estados todos los procesos en memoria
estén esperando en el estado Bloqueado y que no haya más memoria
disponible para nuevos procesos. Podría conseguirse más memoria, aunque es
probable que esto sólo permita procesos más grandes y no necesariamente nuevos
procesos. Además hay un costo asociado
a la memoria y de cualquier forma es probable que se llegaría al mismo estado
con el tiempo.
Otra solución es el intercambio.
El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso
completo desde la memoria principal al disco, quedando en el estado Suspendido.
Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un
proceso suspendido anteriormente.
El problema que se
presenta ahora es que puede ser que si se decide traer a memoria un proceso que
está en el estado Suspendido, el mismo todavía se encuentre bloqueado.
Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya
aconteció el suceso que estaba esperando cuando se bloqueó. Para tener esta
diferenciación entre procesos suspendidos, ya sean listos como bloqueados, se
utilizan cuatro estados: Listo, Bloqueado, Bloqueado y
suspendido y Listo y suspendido.
Dos o más procesos
pueden cooperar mediante señales de
forma que uno obliga a detenerse a los otros hasta que reciban una señal para
continuar.
Se usa una variable
llamada semáforo para
intercambiar señales.
Si un proceso esta
esperando una señal, se suspende (WAIT) hasta que la señal se envíe (SIGNAL).
Se mantiene una cola
de procesos en ESPERA en el semáforo.
La forma de elegir
los procesos de la cola en ESPERA es mediante una política FIFO.
La sincronización
explícita entre procesos es un caso particular del estado
"bloqueado". En este caso, el suceso que permite desbloquear un
proceso no es una operación de entrada/salida, sino una señal generada a
propósito por el programador desde otro proceso.
Planificación a corto plazo
El planificador a
largo plazo se ejecuta con relativa poca frecuencia, tomando una primera
decisión sobre si tomar o no un nuevo proceso y cuál tomar. El planificador a
medio plazo se ejecuta con algo más de frecuencia, para tomar la decisión del
intercambio. El planificador a corto plazo, también conocido como
distribuidor (dispatcher), es el de ejecución más frecuente y toma decisiones
con un mayor detalle sobre el proceso que se ejecutará a continuación.
El planificador a
corto plazo se ejecuta cuando ocurre un suceso que puede conducir a la
interrupción del proceso actual o que ofrece la oportunidad de expulsar de la
ejecución al proceso actual en favor de otro. Como ejemplos de estos sucesos
se tienen:
· Interrupciones
del reloj
· Interrupciones
de E/S
· Llamadas
al sistema operativo
· Señales
|
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.
El planificador a
medio plazo es el encargado de regir las transiciones de
procesos entre memoria principal y secundaria, actúa intentando
maximizar la utilización de los recursos. Por ejemplo, transfiriendo siempre a
memoria secundaria procesos bloqueados, o transfiriendo a memoria principal
procesos bloqueados únicamente por no tener memoria.
Bibliografia
http://es.wikipedia.org/wiki/Wikipedia:Portada
http://www.monografias.com/
http://es.wikipedia.org/wiki/Wikipedia:Portada
http://www.monografias.com/
Suscribirse a:
Entradas (Atom)



