Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

scheduler

[es] :: Kernel i OS programiranje :: scheduler

[ Pregleda: 5014 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mv.
Marko Vujovic
Herceg Novi

Član broj: 7302
Poruke: 8
*.cg.yu

Sajt: www.stileproject.com


Profil

icon scheduler13.01.2003. u 19:54 - pre 258 meseci
zanima me princip rada schedulera na x86 arhitekturi. poželjna su low-level objašnjenja, i/ili objašnjenje na primjeru, npr. linuxu.
 
Odgovor na temu

mv.
Marko Vujovic
Herceg Novi

Član broj: 7302
Poruke: 8
*.cg.yu

Sajt: www.stileproject.com


Profil

icon Re: scheduler13.01.2003. u 19:56 - pre 258 meseci
i da, da napomenem mislim na scheduler koji mijenja procese, da se neko ne prevari...
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: scheduler14.01.2003. u 10:38 - pre 258 meseci
Pa, x86 nema gotovo ništa naročito za raspoređivanje procesa (Intel terminologija ,,task'').

Sve što IA32 obezbeđuje (IA32 pošto tek od 80386 postoji) je TSS -- Task State Segment. To je naročita struktura koja sadrži stanje procesa: stanje svih registara procesora. I to je sve. Ona omogućava da se izvršavanje procesa nastavi pomoću odgovarajuće JMP, CALL ili RET instrukcije (možda ima još neki način, ko će se sad setiti; sve je podrobno opisano u Intelovoj dokumentaciji).

Ostalo zavisi od dodatnih uređaja (PIT, PIC) i nije naročito za IA32 arhitekturu.

Primer kako jednostavan round-robin scheduler se može implementirati na IA32 sam pisao ranije, i može se pogledati na http://alas.matf.bg.ac.yu/~mm01142/racunarstvo/programiranje

Ako nešto nije jasno, pogledaj i maturski rad (ima dva odeljka o scheduleru: jedan sa algoritmima, i drugi gde je kratko opisan kod), a svakako i pitaj na ovom forumu.


Napomena:
Svakako se nadam da ovaj forum neće otići u diskusiju o hardverskim arhitekturama, ili još gore, o hardverskoj arhitekturi IA32.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

mv.
Marko Vujovic
Herceg Novi

Član broj: 7302
Poruke: 8
*.cg.yu

Sajt: www.stileproject.com


Profil

icon Re: scheduler14.01.2003. u 16:42 - pre 258 meseci
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?
 
Odgovor na temu

Nikola Krivokapic
Beograd

Član broj: 7267
Poruke: 49
*.cg.yu



Profil

icon Re: scheduler14.01.2003. u 23:13 - pre 258 meseci
Kod linuxa je sustina ovo:proces ima svoje određeno vrijeme u jednoj epohi(linux vrijeme CPU-a djeli na epohe),svaki proces ima različitu dužinu trajanja tog qvantuma i kad se ona završi na totalno low levelu je taj CPU-ov timer interupt,poslije cega se invocira scheduler() sistemski poziv,koji bira sledeci proces iz liste TASK_RUNNING procesa,prema prioritetu koje moze i user postaviti.Timer interupt je implementiran pomocu PIT-a,linux ga postavlja na irq 0.
Ovo je suština zanimaju li te neki detalji,ako sam nešto pogriješio reci.
VANDIT
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-2.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: scheduler15.01.2003. u 03:13 - pre 258 meseci
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.
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.salonica.access.acn.gr

Jabber: techx@elitesecurity.org


Profil

icon Re: scheduler17.05.2003. u 04:00 - pre 254 meseci
Mislim da i Linux (pa i vecina oslanih *NIX-a) i Win NT koriste priority queue za rasporedjivanje procesa (scheduler). Pravila su veoma jasna: proces sa najnizim prioritetom (nisam siguran ali mislim da ih u Win NT-u ima ukupno 30 i nesto, s tim da su prvih 15 kernel initiated, ako se varam neka me neko ispravi) se salje na obradu prvi. U slucaju da su redu postoji vise procesa sa istim prioritetom, selekcija se vrsi na osnovu round-robin algoritma, koji opet zavisi od interapta ...
Dakle, jasno je da u multi-tasking (i multi-user) OS-ovima mora da postoji pre-emtive algoritam za rasporedjivanje kako procesa tako i memorije (virtualne pogotovo). Susta suprotnost je recimo implementacija print spooler-a, u kojoj je glavni adut FIFO, odnosno FCFS.
If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: scheduler

[ Pregleda: 5014 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.