Pri učení na skúšku som narazil na (long-term, short-term) CPU schedulling. Chcem sa spýtať ako si ho mám fyzicky predstaviť. Napríklad úlohov dispečera je vybrať z READY-QUEUE proces, ktorému bude práve pridelený procesor. Čo je dispečer? Je to jeden z procesov? Alebo je to nejaký HW obvod? Ak je to proces tak potom ako môže fungovať keď by musel sám seba schedulovať? A ak zobereme niektoré nepreemptívne plánovacie algoritmy náchylné na starvation, tak by sa ani nemusel dostať k slovu...
Ja viem len o SOS (Stvaba operacnych systemov) na FIIT
Dispecer -to je SW casti planovaca procesov... Ide o system zabezpecujuci prepinanie kontextu na konkretnom jadre
Podla mna long term scheduling bude planovanie offline. T.j naplanujem si prepinania procesov pred nabehom systemu...
short term bude asi online..
odkazem ta asi na pracu svojho studenta
Michal Praženka: Analýza plánovačov v Linuxe (baklarska praca)
Evidencne cislo: FEI-5402-20499
Fakulta Elektrotechniky a informatiky, STU v Bratislave
Termin odovzdania: 14.5.2010
(pracu si pozriem, ale najskor az po skuske)
mnikdy to nebude bezat presne stanoveny cas, resp. takmer nikdy.. Prekazkou je atomicke operacie(v user space) a BKL resp. niektore spinloocky(v jadre).
Pocas nich nie je moznost prepnut kontext, aj ked dojde prerusenie od PIC/APIC resp. Intel 8254
tie chupy maju same neprsnosti dorucovania
obstarozna 8254 ma toleranciu +/- 4 700 nanosekund
a moderne APIC-y maju beyne toleranciu nepresnosti +/- 3944 nanaoskenud...
Cize uz v HW je tragicka nepresnost pre SW RTLinuxPro (dnes tusim pod nazvom WindRiver Linux), ktory garantuje nepresnost casovacov vratenie prepnutia kontextu max 48 nanosekund...
To sa riesi empirickymi korekciami, ci inymi zdrojmi hodim...
ci dokonca pocitanim tikov CPU hodin na jadre, ktore sa nepusta do C-stavov a nerobi nic ine...