Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

Többprocesszoros folyamatütemezés

Többprocesszoros folyamatütemezés

  • Lazán csatolt többprocesszoros rendszer

    • – minden processzornak saját memóriája és I/O csatornái vannak

    • – speciális funkcióval rendelkező processzorok (pl.: I/O processzorok)

    • – egy fő (master) processzor által vezérelt

  • Szorosan csatolt többprocesszoros rendszer

    • – a processzorok osztoznak a főmemórián

    • – operációs rendszer által vezérelt

Független párhuzamosság:

  • külön alkalmazás vagy job

  • nincs szinkronizáció

  • több, mint egy processzor használható

    • – az átlagos válaszidő így kisebb lesz

Durva-szemcsés párhuzamosság:

  • processzusok közötti gyenge szinkronizáció

  • egyprocesszoros multiprogramozott rendszereknél használatos

    • – kis változtatással multiprocesszoros rendszerek is támogatják

Közép-szemcsés párhuzamosság:

  • párhuzamos feldolgozás vagy multitaszking egy alkalmazáson belül

  • egy alkalmazás szálak összességéből áll, melyek általában gyakran kölcsönhatnak, kommunikálnak egymással

Finom-szemcsés párhuzamosság:

  • különösen nagy fokú párhuzamosságot igénylő alkalmazásoknál

  • speciális terület...

A processzusok processzorokhoz való rendelése

  • processzorok, mint közös erőforrások; a processzusok processzorokhoz való rendelése igény szerint történik

  • a processzusok véglegesen egy processzorhoz vannak jelölve

    • – dedikált rövid-idejű sor minden processzornak

    • – kevesebb „overhead”

    • – egyik processzor üresen járhat, míg a másik processzor elmaradásban van

  • globális sor: ütemezés minden elérhető processzor bevonásával

  • mester/szolga (Master/slave) architektúra

    • – a kulcsfontosságú kernelfüggvények mindig egy kiegészítő speciális processzoron futnak

    • – a mester felelős az ütemezésért

    • - a szolga szolgáltatáskérelmet küld a mesternek

    • – hátrányok: a mester hibája megbéníthatja a rendszert

  • egyenrangú architektúra

    • – operációs rendszer bármelyik processzoron futhat

    • – minden processzor önütemezést végez

    • – operációs rendszer bonyolultabbá válik:

      • meg kell bizonyosodni, hogy több processzor nem választja ki ugyanazt a processzust

Processzus ütemezés

  • egyszerű sor minden processzusnak

  • többszörös sor használata a prioritásokhoz

  • miden sor a közös processzorokhoz rendelve

  • speciális ütemezési elvek kevésbé fontosak több processzor esetén

Szálak ütemezése

  • egy alkalmazás olyan szálak gyűjteménye lehet, melyek együttműködve illetve konkurens módon hajtódnak végre ugyanazon a címtéren

  • külön processzoron futó szálak jelentősen növelik a teljesítményt

  • terhelés-megosztás (Load sharing)

    • – a processzusokat nem rendeljük külön-külön a processzorokhoz, globális sor alkalmazása

  • csoportos ütemezés

    • – összefüggő szálak futásának ütemezése úgy, hogy az egymással párhuzamosan dolgozó processzorokon egyidőben fussanak

  • ajánlott processzorhozzárendelés

    • – a szálak hozzárendelése egyedi processzorokhoz

  • dinamikus ütemezés

    • – a szálak számának változtatása a végrehajtás folyamata közben

Terhelés-megosztás

  • a terhelés egyformán van elosztva a processzorok között

  • nincs szükség központi ütemezőre

  • globális sor használata

Hátrányai:

  • a központi sorhoz kölcsönös kizárás kell

    • – torlódás léphet fel, ha több, mint egy processzor néz munka után egy időben

  • felfüggesztett szálak futtatásának folytatása kis valószínűséggel történik ugyanazon a processzoron

    • – gyorsítótár használata kevésbé hatékony

  • ha az összes szál a globális sorban van, egy program összes szálja nem szerezhet hozzáférést a processzorhoz egy időben

Csoportos ütemezés

  • egy egyszerű processzus szálainak szimultán ütemezése

  • hasznos az összes olyan alkalmazásnál, ahol a teljesítmény drasztikusan csökken, ha az alkalmazás valamelyik része nem fut

  • a szálakat gyakran kell egymáshoz szinkronizálni

Dinamikus ütemezés

  • a szálak számának dinamikus változtatása rendszereszközök segítségével

  • az operációs rendszer szervezi a processzusok betöltését

    • – üresen járó processzorok hozzárendelése processzusokhoz

    • – újonnan érkező processzusok kiosztása olyan processzorhoz, mely olyan job-ok által van használva, amelyek aktuálisan több processzort is használnak

    • – a kérés fenntartása, míg egy processzor elérhető nem lesz

    • – processzorok jobokhoz való rendelése FCFS alapon