Prioridades Non Expropiativo

De Manuais Informática - IES San Clemente.
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,

Prioridades Non Expropiativo CPU.png

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í:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
A continuación, a seguinte imaxe amosa os tempos de retorno e o tempo medio de espera, así como tamén o Diagrama de Gantt.

Prioridades Non Expropiativo 2 CPU.png


--ricardofc 24 nov 2008