A Kempelen Farkas Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerű felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

3.3. 3.3.3. Ütemezés többprocesszoros rendszerekben

Az előző részben az egyprocesszoros rendszerekben történő ütemezés kérdéseivel foglalkoztunk. Napjainkban azonban egyre gyakoribbak az olyan, több processzort tartalmazó – szorosan csatolt – rendszerek, ahol igényként merül fel, hogy a futásra kész folyamatok a rendszer bármelyik szabad processzorán elindulhassanak, és így a feladatok elvégzése minél rövidebb időt igényeljen, illetve a rendszeren belül egyenletes terheléselosztást biztosítsunk a processzorok között.

A többprocesszoros rendszerekben történő processzorütemezés értelemszerűen bonyolultabb feladat az egyprocesszoros esetnél. Az előzőekhez hasonlóan itt sem létezik „legjobb” megoldás, azonban a korábban tárgyalt elvek és sajátságok az esetek egy részében itt is alapvetően igazak lesznek.

Különbséget kell tennünk heterogén és homogén rendszerek processzor-ütemezése között. A heterogén rendszerekre az jellemző, hogy a rendszerbe épített CPU-k különbözőek lehetnek nemcsak méret, sebesség, felépítés, funkció stb. tekintetében, hanem például az utasításkészlet szempontjából is. Ilyen esetekben a lefordított folyamatok kötötten, csak a nekik megfelelő gépi utasításkészlettel rendelkező processzoro(ko)n lesznek képesek futni.

Hasonlóképpen csak bizonyos processzorokon indíthatók el azok a folyamatok, amelyek valamilyen speciális, az adott processzorhoz belső buszon keresztül csatlakoztatott eszköz használatát igénylik. Ez mind homogén, mind pedig heterogén rendszereknél kötöttséget jelent.

A homogén rendszereknél, tehát ahol a beépített CPU-k funkcionalitás szempontjából egyformák, általában nagyobb szabadságunk van az ütemezésnél. A futásra kész folyamatok a rendszer bármelyik szabad processzorán elindulhatnak. Alapvető cél a terheléselosztás biztosítása, tehát ahelyett, hogy a futásra kész folyamatok CPU-khoz rendelt külön sorokban várakoznának (és így könnyen előfordulhatna, hogy egy CPU tétlenül áll, míg egy másik futásra kész sorában több folyamat is várakozik), célszerű közös várakozási sort (sorokat) létrehozni, ahonnan mindegyik processzor veheti a rajta következőként futó folyamatot.

A közös várakozási sor(ok)on alapvetően kétféle ütemezési megközelítést alkalmazhatunk. Szimmetrikus multiprocesszoros rendszerekben minden egyes CPU saját külön ütemező algoritmust futtat, amely a közös sorból választ. A sorok hibamentes megosztott használatához pedig biztosítani kell a hozzáférésre vonatkozó kölcsönös kizárást.

Az aszimmetrikus multiprocesszoros rendszerek megkerülik ezt a problémát azzal, hogy egyetlen ütemező fut egy kiválasztott processzoron és ez az egyetlen ütemező osztja szét a feladatokat a szabad CPU-k között. Értelemszerűen ez a master-slave felépítés sokkal egyszerűbb adathozzáférést eredményez.