:: FCFS (First Come First Served) - pierwszy na wejsciu, pierwszy na wyjsciu

Procesor obslugluje kolejno nadchodzace procesy, jeden po drugim. Dopoki nie skonczy wykonywac jednego, nie moze zaczac kolejnego. Jest to najprostszy algorytm, no i najmniej efektywny w wiekszosci przypadkow.

 

:: SJF preemptive (Shortest Job First) - najpierw najkrotsze zadanie z wywlaszczaniem

Procesor wykonuje proces z kolejki, ktory zajmie mu najmniejsza ilosc czasu. Jesli w trakcie wykonywania pojawi sie proces o krotszym czasie wykonania niz aktualnie wykonywany, to aktualny zostaje wstrzymany i na jego miejsce trafia ten z kolejki. Po jego zakonczeniu znow jest wznawiany poprzedni proces. Takie postepowanie mogloby doprowadzic do tego, ze jakis dluzszy proces musialby czekac niekiedy bardzo dlugo na wykonanie, gdyz stale moglyby sie pojawiac krotsze od niego procesy. Dlatego stosuje sie technike "postarzania". Polega ona na zwiekszaniu co jakis czas priorytetu procesu, az w koncu wymusza sie jego wykonanie, bez wzgledu na jego czas. Jest to jeden z najskuteczniejszych algorytmow.

 

:: SJF non-preemptive (Shortest Job First) - najpierw najkrotsze zadanie bez wywlaszczen

Ten sam algorytm co powyzej z ta roznica, ze proces wykonywany nie moze byc wywlaszczony, czyli nie moze zostac wstrzymane jego wykonanie. Raz wziety proces wykonuje sie do konca.

 

:: RR (Round Robin) - rotacyjny

Algorytm rotacyjny polega na tym, ze kazdemu procesowi z kolejki przydzielany jest jakis ustalony kwant czasu. Procesor bierze pierwsze zadanie z kolejki i wykonuje je przez jednostke czasu. Nastepnie wstrzymuje jego wykonanie i bierze kolejne i wykonuje je przez ta sama jednostke czasu. Gdy dojdzie do konca kolejki to wraca na poczatek i algorytm sie powtarza. Latwo sie domyslic, ze niektore zadania moga wykonac sie w jednej jednostce czasu, a inne potrzebuja ich kilka. Dlatego tez odpowiednie dobranie kwantu czasu ma dla tego algorytmu wielkie znaczenie.