Citat:
mv.:
mislim da nisam bio dovoljno jasan. znam šta je tss. i ne, ne diskutujemo o hardverskim arhitekturama, ali bar ti dobro znaš da je arhitektura i njeno poznavanje presudno u pisanju bilo kakvog sistemskog softvera, a ne operativnog sistema.
zanima me šta uslovljava promenu procesa u određenom intervalu vremena? interupt? ako je interupt, koji, kakav / šta ga pravi?
E pa meni se čini da jesi bio dovoljno jasan i da sam ja ispravno odgovorio.
Naime, onaj koji pravi scheduler može izabrati bilo kakav algoritam, čak i algoritam koji ne zavisi direktno od vremena.
Postoje i FIFO/FCFS scheduleri koji su povoljni za realtime aplikacije, a one se mogu lako implementirati bez ikakvog oslanjanja na vreme. Takođe, moguće je napraviti schedulere koji će procese prebacivati zbog nekih potpuno drugih aktivnosti (npr. čekanje na obradu IO zahteva, semafori bez vremena itd.)
Takođe, svaki algoritam za scheduler se može implementirati nezavisno od hardverske platforme (vidi OSKit u okviru Flux projekta, na
http://www.cs.utah.edu/flux/), ili Linux scheduler algoritme. Stoga sam i naglasio da je ovo diskusija
samo o TSS-u i IA32.
Takođe sam ti dao i nagoveštaj šta zapravo treba da pogledaš na IA32 arhitekturi ukoliko želiš da scheduler baziraš na vremenu: PIT -- Programmable Interval Timer. On ti obezbeđuje prekide (interapte) sa određenim vremenskim razmakom, ali ovo nema nikakve veze sa schedulerima, osim što se tiče konkretne implementacije na IA32. Čak sam pomenuo i gde možeš pogledati jednostavnu implementaciju svega ovoga.
U redu, možda sam preterao sa opštim odgovorom, ali ne želim da se misli da je jedini scheduler algoritam koji postoji RR (round-robin) i njegovi derivati, i da se deljenje vremena može obaviti samo na taj način. Moguće je da ti nijednog trenutka to i nisi mislio, ali neko sa strane ko čita ove poruke može steći takav utisak.
Nadam se da je od pomoći.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.