Līdz šim mēs plānojām procesus atbilstoši to ierašanās laikam (FCFS plānošanā). Tomēr SJF plānošanas algoritms plāno procesus atbilstoši to sērijveida laikam.
SJF plānošanā nākamais tiks ieplānots process ar viszemāko sērijveida izlaišanas laiku starp gatavības rindā pieejamo procesu sarakstu.
Tomēr ir ļoti grūti paredzēt procesam nepieciešamo pārrāvuma laiku, tāpēc šo algoritmu ir ļoti grūti ieviest sistēmā.
SJF priekšrocības
- Maksimālā caurlaidspēja
- Minimālais vidējais gaidīšanas un izpildes laiks
SJF trūkumi
- Var ciest ar bada problēmu
- Tas nav īstenojams, jo precīzu procesa sērijveida laiku nevar zināt iepriekš.
Ir pieejamas dažādas metodes, ar kurām var noteikt procesa CPU pārrāvuma laiku. Mēs tos sīkāk apspriedīsim vēlāk.
Piemērs
Nākamajā piemērā ir pieci darbi ar nosaukumu P1, P2, P3, P4 un P5. To ierašanās laiks un sērijveida uzņemšanas laiks ir norādīts tabulā zemāk.
java masīva kārtošana
PID | Ierašanās laiks | Pārraušanas laiks | Pabeigšanas laiks | Pagrieziena laiks | Gaidīšanas laiks |
---|---|---|---|---|---|
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 | divdesmitviens | 12 | 4 |
Tā kā neviens process neienāk 0. laikā, līdz ar to; būs tukša vieta Ganta diagramma no laika no 0 līdz 1 (laiks, kurā pienāk pirmais process).
Saskaņā ar algoritmu OS ieplāno procesu, kuram ir viszemākais sērijveida laiks starp gatavības rindā pieejamajiem procesiem.
Līdz šim mums ir tikai viens process gatavības rindā, tāpēc plānotājs to ieplānos procesoram neatkarīgi no tā sērijveida laika.
Tas tiks izpildīts līdz 8 laika vienībām. Līdz tam mums ir vēl trīs procesi, kas ir ieradušies gatavības rindā, tāpēc plānotājs izvēlēsies procesu ar mazāko sērijveida laiku.
uz stīgu metodi java
No tabulā norādītajiem procesiem P3 tiks izpildīts nākamais, jo tam ir viszemākais sērijveida laiks starp visiem pieejamajiem procesiem.
Tātad procedūra turpināsies vispirms īsākais darbs (SJF) plānošanas algoritms.
Vidējais gaidīšanas laiks = 27/5