Občas se mi stává, že při nějaké náročnější operaci (načítání velkého obrázku, kopírování mnoha souborů...) se celý systém na chvíli zasekne. Moc mě to nevadí, ale přijde mi to záhadné. Priority jsou stejné (nice=0) a linux by měl umět čas procesoru rozdělit mezi všechny procesy i při 100% vytížení.
Linuxový scheduler se snaží "uhodnout", které procesy jsou interaktivní a které ne a pokud to uhodne blbě a usoudí, že ten proces, co kopíruje soubory, je interaktivní, tak ho začne upřednostňovat před ostatními.
V některých starých 2.6 jádrech se díky bugu v tomhle dal i celý systém vytuhnout trvale.
On an AMD Opteron 265 dual core system, RTLinux guarantees interrupt
latencies of no more than 5 microseconds with scheduling jitter of no more
than 8 microseconds even with Linux under heavy load. These industry-leading
times can be further reduced with FSMLabs timer advance and processor
reservation technologies (with processor reservation scheduling jitter is
limited to under 2 microseconds) http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&STORY=/www/story/09-12-2005/0004105504&EDATE=
FSMLabs RTLinuxPro and RTCoreBSD meet requirements for low-latency hard real-time responsiveness without sensitivity to application load for a wide range of CPU clock rates. Worst case interrupt latencies range from under 2 microseconds on AMD Opteron processors to 20 microseconds on low-power 100Mhz ARM9 devices http://www.embedded-computing.com/news/db/?3038
SOCORRO, N.M., BUSINESS WIRE -- NASD listed RTTimeSync(TM) from FSMLabs. RTTimeSync brings hard real-time technology to the financial markets listed clock synchronization time-stamp compliance solution eliminates clock-drift for both clusters and individual servers.
RTTimeSync provides precise timing solutions at near hardware speeds and offers the following compliance advantages:
hmm ten seminar uz je plnej, jak to teda je kdyz vlastnikm je Windriver...
Neni nekde srovnani hard real time systemu (rtlinux, qnx, vxworks, ardence, ...)?
btw myslite ze to co je citovano vyse zvladne i DOS pokud jde o nejakou trivialitu a neni nutne planovat nebo je nutne "planovat" vzdy - odlozit interupty na pozdeji?
Stromovej --- procesy tvoří strom, scheduler postupuje od kořene, a na každé úrovni přiřazuje čas spravedlivě. Má to výhodu, že když nějaký program udělá while (1) fork(), tak nezpomalí ostatní procesy.
U kopirovani se muze zasekavat ne kvuli zatezi procesoru, ale kvuli zatezi sbernice. Nevim, jak hodne soucasne planovace pocitaji se zatezi tohoto uzkeho hrdla, ale asi moc ne, zejmena kvuli DMA, kdy procesor do samotneho procesu nema co kecat.
jj to poznam. napr pri zasuvani a vysuvani optickej mechaniky to zasere celu zbernicu. SATA disky idu v pohode, ale PATA disk (ktory je na tom istom kabli ako DVD) nie. Ja by som ten disk aj dal na druhy kabel, ale mam len jeden radic. a zase kupovat nejaku kartu len kvoli tomu je zbytocne :)
Userspace je preemptivni ale s kernelspace je to mnohem slozitejsi. I s CONFIG_PREEMPT na to vubec nelze spolehat. To je duvod, proc jadro nesmi vyvijet cyklisti!
Mam uplne stejne problemy. Pri praci to nijak zasadne nevadi ale pokud napriklad otevru novou zalozku v FF, nacita se stranka, minimalizuji Eclipse nebo startuje nejaky program (jen nektery asi narocnejsi.) Zacne pocukavat myska nebo odlozeni docela trva a nasledne prekresleni je pomalejsi nez by melo byt. Nejsem puntickar ale trochu me tahle prkotina mrzi.
Teda to vypadá zajímavě, už se těším, až bude dostupný. Používám CFQ a CONFIG_HZ 1000 Hz, občas se stane, že X-kům trvá při přepínání oken dlouho, než se překreslí (i obyčejný aterm až 1,5 sekundy!). Nedělá to často, jen občas, ale stejně je to nepříjemný. Jestli to tedy je plánovačem, to nevím... ale nevím, co jiného z toho podezřívat. :-)
Jednu dobu jsem to taky zkoušel s 1000Hz no odezva při nezatíženém systému perfektní. Ale jak se začlo kopírovat nebo dělat cokoliv jiného tak ani se snížením priority jsem moc nezmohl, překreslení okna tak minuta, dvě. Doporučuji snížit tu frekvenci na 300 nebo 200Hz
"Porucha osobnosti" a "psychopatie" je totéž podle české psychiatrické terminologie. V západních zemích se termín "psychopatie" používá pouze pro asociální poruchu osobnosti, u nás pro všechny poruchy osobnosti.
kam potom podle ceske terminologie spadaji napr. hranicni poruchy osobnosti? Zrejme vubec neexistuji. Timto stylem tady budeme mit porad minimalne 30 roku zpozdeni :-(
Je to jeho vlastni algoritmus, nebo byl uz publikovan nekdy predtim? Protoze jestli je to jeho algoritmus, posunul operacni systemy obecne o dost dal. A ze to bylo zrovna v Linuxu, to je skvele.
Tento chlapik zije s planovacmi uz niekolko rokov.
Teoreticke principy akychkolvek pouzivanych planovacov su zrejme dobre opisane uz aspon 50 rokov. Lenze "akademicke" definicie planovacov su velmi zjednodusene a jednostranne.
V nedavnom rozhovore Ingo vysvetloval, ze navrhnut dobry planovac je omnoho tazsie nez "vymysliet" nejaky "zarucene dobry system". Planovace dneska sice vyuzivaju zname postupy, ale vacsinou kombinuju niekolko hladisk a niekolko principov naraz, a najviac zalezi na celkovom vyvazeni, aby sa co najviac prejavili kladne stranky jednotlivych algoritmov, a co najviac potlacili ich negativne stranky. Tu a tam sa pouzije nejaka pomocka alebo "tuning".
Preto je skor dolezite sledovat, ako sa ktory planovac sprava v skutocnej zatazi, a "tu a tam pritiahnut skrutku". Skratka ladit. Clovek, ktory toto robi, musi mat velke skusenosti, dlhodobo vypestovany "sluch" pre odozvy systemu. Az potom ma predstavu, ako sa ma vlastne planovac spravat v REALNOM systeme.
Aj preto Ingo vytvoril patch, ktory umoznuje menit nielen parametre planovaca, ale dokonca planovac samotny, za behu systemu! Iba takto sa totiz da porovnavat ich spravanie v realnej prevadzke. Bez rebootovania.
Planovace se daji menit za behu uz pradavno ( viz napr. man sched_setscheduler, http://ccrma.stanford.edu/planetccrma/man/man2/sched_setscheduler.2.html )
Parametry planovacu se daj menit za behu uz pradavno (/proc/...), jen soucasny O(1) ma tolik parametru ze v podstate nikdo nevi co jak a proc nastavit.
Jestli jsou 50 let teor. popsane planovace bez timeslicingu si nejsem jisty (ale naprosto to nevylucuji) - muzes uvest nejaky odkaz nebo zdroj?
Trosku jsem se tesil (i kdyz jsem v to moc nedoufal), ze se dozvim predevsim vysvetleni a technicke zajimavosti toho, jak planovac funguje (priznavam na jednom radku to tu je popsane a na nekolika dalsich jsou uvedeny dusledky), a ne tolik bulvaru okolo, tedy jak dlouho trval vyvoj a ze willy to zkousel a zda se mu to byt dobre.
Tim nechci mit nic za zle willymu, myslim ze Willy Tarrerau planovacum rozumi, ale lide kteri to jmeno nikdy neslyseli mohou chapat clanek jako "jo, aspon ze to nekdo vyzkousel".
Asi by take nebylo od cesty uvest, ze Con Kolivas je v podstate otcem cele myslenky CFS a na svem Staircase Deadline CPU scheduler, z jehoz zkusenosti CFS velmi silne vychazi, pracuje intenzivne jiz nekolik let. Podle informaci na www (napr. hned prvni odkaz clanku, http://kerneltrap.org/node/8059 - _velmi_ zajimave cteni) ma na CFS vetsi zasluhy nez Ingo Molnar. Cesta byla Conem objevena jiz davno - ale az ted se o ni zacina mluvit.
A ne, nechci napsat na root vlastni a lepsi clanek :)
Vzhledem k pohotovému a ojedinělému OS, jakým Windows bezesporu jsou, je obecně známo, že plánovač v tomto OS je nejlepším v celé množině OS na světě.
Již několik let se zabývám zkoumáním plánovače na systémech Windows. Například dokážu již dnes naplánovat, aby se mi vypnul počítač po dvou hodinách. Dokážu si naplánovat, aby se mi spustil spořič obrazovky a umím si naplánovat pravidelnou kontrolu mailů.
Jak vidíte jsem opravdu dobrý programátor - nemluvě o hackování panelů již jak ve Windows tak i v GNOME a zvládnu už konečne po roce usilovné práce i KDE.
Já jako nelepší OS považuji GNOME, protože linux stojí za prd a windows taky.
Ale zpět k vašemu dotazu. Windows má jedinečný plánovač - nenajdete ho v žádném jiném OS, přestože se jedná o sprostou kopii Mac OS X.
Ten plánovač se jmenuje Blue Screen a je opravdu obtížné jej hacknout, protože se jedná o jakýsi typ viru, který dokonale maskuje svoji činnost. Několik dní jsem odolával útokům viru Blue Screen a stejně se mi jej nepodařilo vymítit. Domnívám se, že tento vir je spouštěn právě oním plánovačem, ale ten asi používá díky analýze lidského faktoru jisté prvky umělé inteligence a pravděpodobnosti. Můžu však s přesností 100%, že plánovač spustí Blue Screen právě v okamžiku, kdy vás to nejvíce nasere.
Proto doporučuji nepoužívat produkty MS. Nikdy nevíte, jaký nový vir vám dodají.
Kdyby jste potřeboval hacknout GNOME panel, pomůžu velice rád.
Parodia pekna ale slaba.Ci chceme alebo nie aj windows je OS tak isto ako Apple ma svoj MacOS a kopec dalsich platforiem ma svoje operacne systemi.Mna by tiez zaujimalo, podrobne do hlbky (nejaky prehladny clanok,nechce sa mi hladat po nete), co pouzivaju windows a ako funguje ich planovac. Este z pohladu uzivatela je uplne jedno aky vymakany a ako pokrokovy je planovac ked realne nasadenie,fungovanie je biedne.Existuje kopec prikladov takychto technologii a to jak z free softu tak aj v komecnom softe.Trochu bokom, mne sa windowsacky planovac celkom pozdava,z uzivatelskeho hladiska (nechcem tu teraz rozoberat z Xka sa nedaju porovnat s winGUI ktore je takpovediac vrazene do kernelu atd.)
Na http://www.academicresourcecenter.net/ je mozne najit ProjectOZ. Tam je mozne si na "pomerne jednoduchem" OS vyzkouset, jak to cele funguje. Kernel ktery tam je funguje jako ten ve WinXP (nevidel jsem kod WinXP, takze nevim nakolik je to pravda).
Mno, pokud mě paměť neklame, ve Windows NT (2000, XP, ...) je použito preemptivní plánování "shortest job first" s předbíháním. Někdy bývá také označován jako Shortest-Remaining-Task-First. _Velmi_ zjednodušený popis některých plánovacích algoritmů najdete zde: http://www.fi.muni.cz/usr/staudek/vyuka/opsys/07_planovani.pdf
Zajímalo by mě jedno - jak je možné u interaktivních procesů, démonů apod. určit "shortest remaining task"? Není tohle teorie jakž takž platná v době sálovývh počítačů a výpočetních středisek?
Ono jestli se nepletu, tak pravy 'Shortest-remaining-task-first' algoritmus je ten nejefektivnejsi (matematicky dokazano). Nicmene jen teoreticky. Existovat samozrejme nemuze, ale pouziva se jako srovnavaci model pro ostatni (realizovatelne) algoritmy.
Btw. tak me napada, ze kdyby existoval, pak by se vsechny ulohy daly vyresit v temer nulovem case.. :)
Tady na rootu pred lety nekdo psal porovnani novinek z FreeBSD a Linuxu a byly tam vysvetleny dost low-level veci. Bylo to vice clanku, tak se zkus mrknout: http://www.root.cz/serialy/porovnani-systemu-linux-a-freebsd/
Bylo tam porovnani s widlackym zpracovanim ICQ, planovac nevim. Kazdopadne pekne cteni.
Jak tu nekdo zminoval, jde o SRTF, ktery je pro desktop daleko lepsi nez firstcome scheduler linuxu. Zajimalo by me jak se jednotlive schedulery projevuji v multiprocesorovem prostredi.
Mr. Murzim: nechcete jit prispivat na stranky zive? Tam byste byl mezi svými.
No aspoň by se vedle těch "zavedených termínů" mohl uvést aspoň jeden zavedený český překlad, existuje-li. Aspoň při první zmínce v textu. Ničemu by to neškodilo a naopak by přibylo těch, kteří by tomu rozuměli.
dobra, ale porad mi neni jasne proc by to meli delat?
anglickemu terminu kazdy rozumi,
cestina je jako tako naprosto bezvyznamna, ma slouzit jako komunikacni jazyk a je k pouziti. a ne ji opecovavat jako nejakou vec...
PS: jde na o TECHNICKOU rec.
jinak prusak anglictiny do cestiny take nemusim...
pretoze rbtree rozumie kazdy, ale Cerveno-cierne stromy, to je nieco co musim hodit do googla, aby som zistil, ze tym vlastne myslel autor zmienovane rbtree
A ještě lampo z VŠ, pokud to chceš překládat, tak to musíš vzít opisem. "Červená a černá" má v anglosaských (možná frankofonních) zemích ten význam jako u náš "černá a bílá" (tj. "opačné barvy").
Ja nevim. My se to ucili jako 'red-black strom', coz se mi docela libi a kupodivu to ani nepovazuji za amerikanizmus. 'Strom' je cesky nazev pro tuto datovou strukturu a 'red-black' je privlastek prevzaty z anglictiny. Ac mam cestinu rad, tak 'cerveno-cerny strom' se mi moc nelibi. Nejsme zvykli na definice a 'cerveno-cerny' povazujeme za barvu, zatimco 'red-black' se da mnohem snaze chapat jako oznaceni/druh vrcholu (zrejme v pocitaci nebudou cervene a cerne pametove bunky).
Samozrejme, ze pojmu 'prebarveni' se uz nevyhneme :)
A potom az budu potrebovat neco vic, tak zadam do googlu logicky black-white trees a budu namydleny, protoze neznam cizi realie a jde mi pouze o techniku. Dekuji pekne.
to me tak napada. kolik lidi asi plitvalo casem, kdyz si porovnavali, ze cerno-bily strom demonstrovany na prednasce se chova skutecne jako rb-tree ve skriptech...
takze se nabizi konspiracni teorie, ze je to cele jen pedagogicky podvod na studenty jak je donutit se na to podivat...
na stranke http://kernel.jakem.net/ sa da najst patch na uz existujuce scheduleri, ktore vie vytunovat podla pouzitia systemu. samotny scheduler sa nemeni, menia sa len jeho nastavenia v zavislosti od toho, co na systeme bezi.
Napadá mě otážečka. Proč neudělat procesové plánovače nastavitelné, jako je tomu například s vv plánovači. Jistě že to zní trochu podivně, ale zas by to mohlo být zajímavé. Mít možnost měnit za běhu plánovač procesů zní velmi lákavě, obzvláště, když se tu vynořily další dva.
Osobne me velmi prekvapila odezva a celkove velmi vyrovnany vykon MacOS X. Nevite nekdo detaily, proc tomu tak je - zaslechl jsem cosi o velmi dobre napsanych low-level ovladacich atp. Nebo je to prave planovacem?
Rekl bych, ze tam maji prepinani uloh po velmi malych kvantech, protoze "hruby" vykon neni nijak oslnivy, ale celkova odezva systemu je vyborna (napr. na 3 roky starem G5 se mi nikdy nezadrhla prehravana mp3 - ani pod jakoukoliv zatezi, coz se bohuzel u Linuxu obcas stane, u Win nevim).
Vite o tom nekdo neco?
P.S. pro majitele Macu doporucuji v terminalu prikaz latency - moc zajimave :)
Napr. u me ted:
minimum latency(usecs) 4 0
maximum latency(usecs) 56281 139
average latency(usecs) 54 1
exceeded threshold 0 0
Problém odezvy Linuxu je v nepreemptivním kernelu (po dobu běhu kernelu se provádí context switch jen na pár místech; CONFIG_PREEMPT mají distra vypnutý, protože dělá problémy). Navíc Linux neumí pracovat s prioritou IRQ, na rozdíl od NT. MacOS se prostě chová jako běžný systém (třeba NT). Zadrhávání MP3 je věcí popsaných konceptů, plus velikosti bufferu.
Zásadním problémem MacOS je použití mikrokernelu, díky kterému jde do kytek výkon threadů. Proto mají NT modifikovaný mikrokernel (se servery v kernel mode).
Používám Fedoru 6. Pokud zapnu AIGLX efekty začne obraz při zátěži trhat, zasekávat se. Přitom graf. karta je určitě dostatečná. Nepomohlo by nějaké lepší nastavení plánovače nebo priority nějáké služby?