Prioridades Non Expropiativo
Ir a la navegación
Ir a la búsqueda
Prioridades Non Expropiativo
Este algoritmo chamado Prioridades Non Expropiativo ten en conta a quenda de chegada sendo non expropiativo, así determina que o proceso a entrar na CPU de todos os posibles será aquel que teña maior prioridade, isto é, entrará o proceso con maior prioridade independentemente dos ciclos de CPU a executar.
Imos ver un exemplo para explicar como traballa o algoritmo Prioridades Non Expropiativo:
- Supoñemos a situación seguinte:
- Tempo de chegada: P1-->0, P2-->5, P3-->4, P4-->2, P5-->3, P6-->1, P7-->6
- Cola: P1, P2, P3, P4, P5, P6, P7
- Duración Proceso: P1-->4 ciclos de CPU, P2-->7 ciclos de CPU, P3-->4 ciclos de CPU. P4-->1 ciclo de CPU, P5-->4 ciclos de CPU, P6-->6 ciclos de CPU, P7-->7 ciclos de CPU.
- Prioridade (A maior valor o proceso terá maior prioridade): P1-->15, P2-->10, P3-->5, P4-->20, P5-->30, P6-->25, P7-->40
sendo,
- te|Pi O tempo de espera do Proceso Pi
- tr|Pi O tempo de retorno do Proceso Pi
Imos calcular o tempo de retorno e o tempo medio de espera para este algoritmo, así como o Diagrama de Gantt correspondente,
Como podemos ver na imaxe o primeiro en entrar na CPU é o proceso P1 pois na orde de chegada é o primeiro da cola de procesos. O algoritmo Prioridades Non Expropiativo determina que ao entrar un proceso esté ocupará a CPU ata que remate a súa execución, pois o algoritmo é non expropiativo, así que aínda que outro proceso que posúa máis prioridade queira entrar na CPU, non expulsará ao proceso en execución mentres este estea executándose, xa que o algoritmo é non expropiativo, así:
- Ciclo de CPU 1-Tempo de Chegada 0: Entra o proceso P1 na CPU e acapara os ciclos da mesma ata a finalización da súa execución, xa que aínda que durante a súa execución chegan procesos con maior prioridade que P1 -que posúe prioridade 15-, como por exemplo P4 -que posúe prioridade 20-, éste non pode expulsar a P1 do estado de execución pois o algoritmo é non expropiativo.
- Ciclo de CPU 5-Tempo de Chegada 4: Agora temos en cola os procesos P6, P4, P5 e P3, co cal vemos as prioridades destes procesos en cola, posuíndo maior prioridade o proceso P5 -con prioridade 30-, co cal entra o proceso P5, xa que o algoritmo Prioridades Non Expropiativo determina que o proceso a entrar na CPU sexa aquel que posúa maior prioridade. Así o proceso P5 posúe prioridade 30, prioridade maior ca do proceso P6 -con prioridade 25-, maior ca do proceso P4 -con prioridade 20-, e maior ca do proceso P3 -con prioridade 5-. Entón entra P5 ata o remate da súa execución xa que o algoritmo é non expropiativo.
- Ciclo de CPU 9-Tempo de Chegada 8: Nesta situación temos 5 procesos en cola, os procesos P6, P4, P3, P2 e P7, co cal execútase P7 pois é o proceso con maior prioridade -posúe prioridade 40- ata o remate da súa execución pois o algoritmo é non expropiativo.
- Ciclo de CPU 16-Tempo de Chegada 15: Agora quedan en cola os procesos P6, P4, P3 e P2 executándose o proceso con maior prioridade, neste caso é o proceso P6 -con prioridade 25- ata finalizar a súa execución, pois o algoritmo é non expropiativo.
- Ciclo de CPU 22-Tempo de Chegada 21: Na cola quedan os procesos P4, P3 e P2, sendo o proceso con maior prioridade o proceso P4 -con prioridade 20-. Este proceso executarase ata rematar a súa execución pois o algoritmo é non expropiativo.
- Ciclo de CPU 23-Tempo de Chegada 22: A continuación temos 2 procesos na cola: P2 e P3, entrando a executarse o proceso P2 que posúe maior prioridade -P2 posúe prioridade 10- ata que remate a súa execución pois o algoritmo é non expropiativo.
- Ciclo de CPU 30-Tempo de Chegada 29: Soamente queda na cola o proceso P3 -con prioridade 5-, co cal execútase ata finalizar a súa execución pois o algoritmo é non expropiativo.
--ricardofc 24 nov 2008