Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este algoritmo siempre ejecuta primero aquellos procesos a los que les queda menos tiempo
para terminar Este algoritmo también es conocido como ‘optimo’, pues con el se obtienen
los mejores resultados.
Los procesos pueden aparecer en la simulación siempre y cuando el tiempo este pasando
por esta, es decir, cuando un proceso está consumiendo CPU y cuando el sistema operativo
está detenido (consecuencia de que todos los procesos existentes estén Dormidos). Todos
los procesos creados competirán por el procesador según el algoritmo Prioridad al Tiempo
Restante Mas Corto.
Los Procesos, para concluir su ejecución, tendrán que consumir un número de unidades de
tiempo con el que parten desde el momento en el que se crean.
Irán pasando desde una cola de procesos listos hasta la figura que representa el núcleo del
sistema operativo y una vez allí podrán consumir todas las unidades de tiempo que
necesiten para su ejecución o bien dormirse como consecuencia de una operación de
entrada/salida o un bloqueo.
Los procesos que se duermen lo harán durante una serie de unidades de tiempo, dato que
mostrarán mientras dure este estado.
Una vez que pasen por la simulación las unidades de tiempo por las que se durmieron, se
despertarán y pasaran de nuevo a formar parte de la cola de procesos listos.
Los procesos irán pasando por los distintos estados de su ciclo de vida reflejando en cada
estado unas características externas que los identificarán.
1. Una caja con cuatro apartados, uno por cada proceso, a los que irán pasando los
procesos cuando estén dormidos o terminados, de forma que podamos observar su
evolución.
Cada uno de los cuatro procesos tienen reservado su sitio en ella. El primer hueco
será para el proceso 0, el segundo para el 1, .... La caja viene etiquetada con el
rotulo "PROCESOS DORMIDOS/TERMINADOS".
2. El núcleo del sistema operativo, que está representado por un rectángulo en el que
se ha inscrito otro menor en el que se insertara el proceso que en un determinado
momento este en posesión del procesador.
3. La cola de procesos listos, en la que se encontrarán los procesos que estén
esperando a que les corresponda el procesador. La apariencia externa de la "COLA
DE PROCESOS LISTOS" es la misma que la parte de procesos
dormidos/terminados, una caja rectangular con cuatro cavidades en las que irán
entrando los procesos. La diferencia está en que aquí, cada proceso no tiene
reservado un apartado, sino que irán ocupando el que les corresponda según vaya el
algoritmo.
Los procesos, dependiendo del estado en que se encuentren, se situarán en una de estas tres
estructuras. Una casilla de una de las tres estructuras estará ocupada por un proceso cuando
no aparezca en su color original.
Según el estado, necesitaremos saber del proceso una determinada información. Como se
ve en la Ilustración 1, cada proceso se pone de un color distinto y muestra unos datos
representativos del estado actual.
Ilustración 1 Distintos estados de los procesos
.- El proceso 2 se encuentra en el estado LISTO. Los procesos listos tienen color "verde".
Aparece indicando su numero de proceso, las unidades de tiempo que le restan para
terminar (18 unidades de tiempo) y su estado.
Los procesos, al ir cambiando de estado, se situarán en las distintas estructuras que forman
la simulación. El cambio de estado de los procesos, lo simulamos desplazando un
rectángulo que se moverá, desde la estructura que ocupa el proceso en el estado actual hasta
la nueva posición que ocupará.
Por defecto tiene un 25%. Puede tomar valores desde 1 a 98. Y esto porque va en
combinación del siguiente dato. La probabilidad total de que un proceso se duerma, es la
suma de la probabilidad de que realice una operación de Entrada Salida y la de que surja un
Bloqueo, con lo que un valor que haga que las dos sumen mas de 99 hará que este se
modifique a otro más próximo.
Mediante él, podemos hacer que los procesos sean más o menos interactivos.
En la segunda fila de controles nos encontramos con "T. CPU". Este dato indica las
necesidades máximas que van a tener los procesos de unidades de tiempo. Al crearse los
procesos, estos tendrán unas necesidades de CPU que irán de 1 a la cantidad introducida en
este apartado.
Mediante él, podemos hacer que los procesos sean más o menos largos. La introducción de
un valor incorrecto provocará que este dato tome un valor por defecto.
El parámetro "T. Max. Dormido", indica el máximo número unidades de tiempo que un
proceso va a permanecer dormido. Cuando un proceso realice una operación de Entrada o
Salida , o se bloqueé, permanecerá dormido un número de ciclos que estará entre 1 y la
cantidad aquí introducida.
Puede tomar valores de 1 a 999. Mediante él, podemos hacer que los procesos permanezcan
más o menos tiempo dormidos. La introducción de un valor incorrecto provocará que este
dato tome un valor por defecto.
El ultimo dato que se le puede pasar a la simulación es el de "P Llegada PCS". Indica la
probabilidad de llegada, en tanto por ciento, de nuevos procesos al algoritmo.
El Banco de Pruebas
En esta simulación, debido a la amplia gama de controles de que dispone, vamos a poder
experimentar con bastantes combinaciones.
Una de las primeras pruebas que podemos realizar es, para poder observar como funciona
el algoritmo, dar una probabilidad de aparición a los procesos baja, con esto, no aparecerán
todos los procesos de una vez y algunos aparecerán cuando otros se estén ejecutando. Si el
tiempo de CPU de los proceso es alto (200 - 400 unidades), el rango de valores que podrán
tomar los procesos, será más dispar y tendremos mas posibilidad de que los procesos que
llegan a la simulación tengan un número de unidades de tiempo menor que el que en este
momento está en ejecución. Si esto ocurre veremos como el proceso en ejecución abandona
el procesador en beneficio del recién creado.
El proceso con el tiempo estimado de ejecución menor para …nalizar es el siguiente en ser
ejecutado.
Un proceso en ejecución puede ser apropiado por un nuevo proceso con un tiempo
estimado de ejecución menor.
Debe mantener un registro del tiempo de servicio transcurrido del proceso en ejecución, lo
que aumenta la sobrecarga.
Los trabajos largos tienen un promedio y una varianza de los tiempos de espera aún mayor
que en SJF.
Podemos hacer también diversas pruebas con el tiempo que los procesos van a permanecer
dormidos. Si este lo hacemos muy alto, cuando un proceso se duerma, se estará en la cola
de dormidos mucho rato. Así, si la probabilidad de que se duerma es baja (esta probabilidad
se obtiene como suma de probabilidades de bloqueo y de entrada/salida) el proceso que se
duerma asistirá a la ejecución continua de los demás procesos sin llegar el a tomar parte del
procesador. El proceso que se duerma, tendrá un gran retraso en la consecución de su
objetivo.
Si por el contrario, el tiempo que los procesos permanecen dormidos lo hacemos bajo, estos
abandonarán rápidamente el estado dormido y no sufrirán muchos retrasos en la
consecución de su objetivo.
Esta situación también haría que los procesos cortos se vean retrasados por los procesos
largos, pues tendrían que esperar a que un proceso largo consumiese todo su tiempo antes
de poder tomar el procesador.
Manejando el tiempo de CPU, vamos a poder hacer que los procesos sean cortos, y por lo
tanto, su vida en la simulación sea también corta. O bien si hacemos que este tiempo sea
alto(700 - 900), los proceso que se duerman en algunas ocasiones, estarán bastante tiempo
haciendo recorridos por la simulación.
formulas simples:
tiempo de retorno:
tiempo de ejecucion + tiempo de espera
tiempo de termino - tiempo de llegada
tiempo de espera:
tiempo de retorno - tiempo de ejecucion
Dirección http://jckuri2005.vndv.com/pages/sp-projects.html
http://todojava.awardspace.com/ejemplos-java.html
http://translate.google.com.ec/translate?hl=es&langpair=en|es&u=http://www.seas.gwu.edu/~si
mhaweb/cs173/classwork/module2/module2.html