Prioridades Si Expropiativo
Prioridades Si Expropiativo
Este algoritmo chamado Prioridades Si Expropiativo ten en conta a quenda de chegada sendo o algoritmo expropiativo, é dicir, ven sendo o algoritmo Prioridades Non Expropiativo pero expropiativo, así determina que o proceso a entrar na CPU de todos os posibles será aquel que teña maior prioridade de execución, isto é, entrará o proceso con maior prioridade de execución na CPU independentemente dos ciclos de CPU a executar, tendo en conta que se quere entrar un proceso con maior prioridade na CPU co proceso que se está executando expulsará ao proceso que se está executando e entrará na CPU para executarse -pois o algoritmo é expropiativo-.
Imos ver un exemplo para explicar como traballa o algoritmo Prioridades Si 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 Si Expropiativo determina que ao entrar un proceso esté ocupará a CPU ata que chegue outro proceso con maior prioridade de uso, pois o algoritmo é expropiativo, así :
- Ciclo de CPU 1-Tempo de Chegada 0: Entra o proceso P1 na CPU e acapara os ciclos da mesma ata a entrada do proceso P6 -paso seguinte no cal estudiarase o que acontecerá-, co cal -de momento- acapara a CPU 1 ciclo da mesma.
- Ciclo de CPU 2-Tempo de Chegada 1: A continuación entra o proceso P6, xa que o algoritmo Prioridades Si Expropiativo determina que o proceso a entrar na CPU sexa aquel que posúa maior prioridade de uso da CPU. Así o proceso P6 posúe prioridade 25 mentres que o proceso P1 posúe prioridade 15, entón entra P6 que acapararía 1 ciclo de CPU expulsando o proceso P1 da súa execución.
- Ciclo de CPU 3-Tempo de Chegada 2: Nesta situación temos en cola os procesos P1, P6 e P4 co cal vemos que proceso ten maior prioridade, que ven sendo o proceso P6 -con prioridade 25-. Así segue executándose P6 1 ciclo de CPU.
- Ciclo de CPU 4-Tempo de Chegada 3: Entra o proceso P5 na CPU, xa que agora en cola temos os procesos P1, P6, P4 e P5, dos cales o que posúe maior prioridade é o proceso P5 -con prioridade 30-. Entón execútase o proceso P5 1 ciclo de CPU expulsando o proceso P6 da súa execución.
- Ciclo de CPU 5-Tempo de Chegada 4: Agora temos en cola os procesos P1, 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 P1 -con prioridade 15-, 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 segue executándose P5 durante 1 ciclo de CPU.
- Ciclo de CPU 6-Tempo de Chegada 5: Nesta situación seguimos tendo os mesmos procesos en cola que no paso anterior máis un novo proceso: o proceso P2 con prioridade 10, co cal segue executándose P5 durante 1 ciclo de CPU e remata a súa execución.
- Ciclo de CPU 7-Tempo de Chegada 6: Agora quedan en cola os procesos P1, P6, P4, P3 e P2, máis un novo proceso que quere entrar en execución: o proceso P7 con prioridade 40. De todos estes procesos o que posúe maior prioridade é o proceso P7, co cal execútase o proceso P7 ata finalizar a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 14-Tempo de Chegada 13: Na cola quedan os procesos P1, P6, P4, P5, P3 e P2, sendo o proceso con maior prioridade o proceso P5 -con prioridade 30-. Este proceso executarase ata rematar a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 15-Tempo de Chegada 14: A continuación temos os en cola os procesos: P1, P6, P4, P3 e P2, entrando a executarse o proceso P6 que posúe maior prioridade -P6 posúe prioridade 25- ata que remate a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 19-Tempo de Chegada 18: Quedan en cola os procesos P1, P4, P3 e P2, co cal execútase o proceso P4 -con prioridade 20-, ata que remate a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 20-Tempo de Chegada 19 Procesos en cola: P1, P3 e P2. Entón execútase o proceso P1 -con prioridade 15-, ata que remate a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 23-Tempo de Chegada 22 Procesos en cola: P3 e P2. Entón execútase o proceso P2 -con prioridade 10-, ata que remate a súa execución pois non chega ningún outro proceso á cola da CPU.
- Ciclo de CPU 30-Tempo de Chegada 29 Soamente queda en cola o proceso P3. Entón execútase o proceso P3 -con prioridade 5-, ata que remate a súa execución pois non chega ningún outro proceso á cola da CPU.
--ricardofc 24 nov 2008