Fins ara, estàvem programant els processos segons la seva hora d'arribada (en programació FCFS). Tanmateix, l'algoritme de programació SJF, programa els processos segons el seu temps d'explosió.
A la programació SJF, el procés amb el temps de ràfega més baix, entre la llista de processos disponibles a la cua preparada, es programarà a continuació.
Tanmateix, és molt difícil predir el temps d'explosió necessari per a un procés, per tant, aquest algorisme és molt difícil d'implementar al sistema.
Avantatges de SJF
- Rendiment màxim
- Mitjana mínima d'espera i temps de resposta
Desavantatges de SJF
- Pot patir el problema de la fam
- No es pot implementar perquè no es pot conèixer per endavant el temps de ràfega exacte d'un procés.
Hi ha diferents tècniques disponibles mitjançant les quals es pot determinar el temps d'explosió de la CPU del procés. Els parlarem més endavant amb detall.
llarg per encadenar
Exemple
A l'exemple següent, hi ha cinc llocs de treball anomenats P1, P2, P3, P4 i P5. La seva hora d'arribada i l'hora d'explosió es mostren a la taula següent.
PID | Temps d'arribada | Temps d'explosió | Temps de finalització | Temps de resposta | Temps d'espera |
---|---|---|---|---|---|
1 | 1 | 7 | 8 | 7 | 0 |
2 | 3 | 3 | 13 | 10 | 7 |
3 | 6 | 2 | 10 | 4 | 2 |
4 | 7 | 10 | 31 | 24 | 14 |
5 | 9 | 8 | 21 | 12 | 4 |
Ja que, No Process arriba al temps 0 per tant; hi haurà una ranura buida al diagrama de Gantt del temps 0 al 1 (el moment en què arriba el primer procés).
Segons l'algorisme, el sistema operatiu programa el procés que té el temps de ràfega més baix entre els processos disponibles a la cua preparada.
Fins ara, només tenim un procés a la cua a punt, per tant, el planificador ho programarà al processador sense importar quin sigui el temps d'explosió.
Això s'executarà fins a 8 unitats de temps. Fins aleshores tenim tres processos més arribats a la cua preparada, per tant, el planificador triarà el procés amb el temps de ràfega més baix.
mètode de cadena a java
Entre els processos que s'indiquen a la taula, el P3 s'executarà a continuació, ja que té el temps d'explosió més baix entre tots els processos disponibles.
Així és com seguirà el procediment el treball més curt primer (SJF) algorisme de programació.
Temps d'espera mitjà = 27/5