Dr. Galambos Gábor Operációs rendszerek általános elmélete 20112011-2012
Tartalom 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Bevezeté Bevezetés Az operá operáció ciós rendszerek tö törté rténete Az operá á ció ó s rendszerek szerkezete oper ci Az operá operáció ciós rendszerek felü felületei Memó Memóriaszervezé riaszervezés Virtuá Virtuális memó memóriaria-kezelé kezelés Folyamatok szervezé szervezése Ütemezé é s temez Folyamatok interakció interakciói Megszakí Megszakítások, I/O kezelé kezelés Készü szülékek kezelé kezelése Állomá llományok kezelé kezelése Hibakezelé Hibakezelés, megbí megbízható zhatóság, vé védelem Rendszerszerkeszté Rendszerszerkesztés, rendszerkö rendszerkönyvelé nyvelés 2
1
1. Bevezetés OR né nélkü lküli szá számítógép olyan mint a vezetı vezetı nélkü lküli busz: Mi tö törté rténik a buszon, ha nincs vezetı vezetı, és a „nyers erı erı” dönti el a menetirá menetirányt? Mi tö törté rténik a szá számítógépen, ha nincs OR, és mindenkinek önmagá nmagának kell gondoskodnia az erı erıforrá források biztosí biztosításáról? Készí szíthetı thetı-e univerzá univerzális operá operáció ciós rendszer? Funkció Funkciók tekinteté tekintetében a szö szövegszerkesztı vegszerkesztı és az OR hasonló hasonló elvek alapjá alapján kezelhetı kezelhetı. 3
Az operációs rendszer határai Problé Probléma: a hardver elemek kó kódolt formá formában tá tároljá rolják az adatokat, és ezek kö közvetlen felhaszná felhasználása nehé nehéz. Ezé Ezért a hardver elemeket el kell lá látni olyan szoftverekkel, amelyek az informá információ ció kinyeré kinyerését megkö megkönnyí nnyítik. hardver
+
erı erıforrá forrás
szoftver
=
Szá Számítógépes rendszer
fizikai logikai rendszerprogramok 4
2
A rendszerprogramok tí típusai: • • • •
Fordí Fordítók (compilerek (compilerek,, interpreterek) interpreterek) Szerkesztı Szerkesztık (linkerek (linkerek)) A rendszer ellenı ellenırzé rzését vé végzı gzı programok Hibakezelı Hibakezelı programok
5
Mit tekintsü tekintsünk az OR ré részé szének? A teljes szá számítási kö környezetet (fordí (fordító, szerkesztı szerkesztı, stb… stb…) Csak erı erısen korlá korlátozott ré részé szét (ami mindvé mindvégig a memó memóriá riában helyezkedik el: Kernel) A mi szemlé szemléletü letünk szerint: az OR a hardver kö környezet és a felhaszná á l ó i kö ö rnyezet kö ö z ö tt helyezkedik el. (ké felhaszn k k (két ré része van: hardver interface, felhaszná felhasználói interface) Másik fajta kö közelí zelítés: a „vas” vas” a hardver a szoftver az OR Problé Probléma: ha pl. a szorzá szorzás nem „huzalozott” huzalozott”, hanem program való valósítja meg. Olcsó Olcsó a hardver, ezé ezért hardver úton való valósítanak meg szoftver 6 funkció funkciót. (pl. memó memória kiosztá kiosztás)
3
Felhaszná Felhasználói kö környezet
Operá Operáció ciós rendszer
Szá Számítógépes rendszer 7
Az operációs rendszerek feladatai Elsı Elsıdleges feladata szervezni az erı erıforrá forrásokat. Ez ké két fı fı céllal tö törté rténik: Kényelmes haszná használat (haté (hatékonysá konyság, alakí alakítható thatóság) Ellenı ı rzö ö tt kiosztá á s (hibá á s programok eseté Ellen rz kioszt (hib esetén, nem megengedett mő mőveletek vé végrehajtá grehajtása eseté esetén, kö közös erı erıforrá források kezelé kezelése eseté esetén.) Emellett haté hatékony és igazsá igazságos legyen!
8
4
Szá Számos kiegé kiegészí szítı feladat: • • •
A felhaszná felhasználói interface (Parancsinterface (Parancsinterface,, Programinterface) Programinterface) Memó Memóriakezelé riakezelés – cseré cserélés (swapping (swapping)) Programok szervezé szervezése (ha 1 CPU) • Egy program fut egy adott idı idıben a memó memóriá riában a befejezé befejezésig • Több program futá futásáról kell gondoskodni
• • • • • •
Készü szülékkezelé kkezelés + megszakí megszakítások Állomá llománykezelé nykezelés ElemElem- és csomagkezelé csomagkezelés (Job and Session Managment) Managment) Hibakezelé Hibakezelés (Hardver hibá hibák , Szoftver hibá hibák) Megbí Megbízható zhatóság és vé védelem Felü ü gyelet é s elszá á Fel elsz molá molás 9
2. Az OR-k története Középpontban: a hardware fejlı fejlıdése, és azok haté hatékony üzemelteté zemeltetésére kidolgozott OROR-k kö közötti kö kölcsö lcsönhatá nhatás áll. 1. Élet operá operáció ciós rendszer né nélkü lkül Elı Elıszö ször egy induló induló címet adunk be az adatoknak Majd egy sor kapcsoló kapcsoló beá beállí llítása Egy gomb lenyomá lenyomásával bejuttatjuk az adatokat a gé gépbe Ezt a mő mőveletsort addig ismé ismételjü teljük, amí amíg az összes programlé programlépést és az adatokat is be nem juttattuk a szá számítógép memó memóriá riájába. Az adatok kiolvasá kiolvasása is hasonló hasonló. Egy ilyen jellegő jellegő munka eseté esetén a programozó programozó teljes ellenı ellenırzé rzés alatt tartotta a gé gépet: egy idı idıszakra igé igényelte a gé gépet, és egyedü egyedül haszná használta ezidı ezidı alatt. Ezt nevezzü nevezzük open shop rendszernek. 10
5
A helyzeten elı elıszö ször az egyszerő egyszerő I/O ké készü szülékek csatlakoztatá csatlakoztatása segí í tett: í r ó g é p, lyukszalagos ké é szü ü l é kek, lyukká á seg k sz lyukk rtyá rtyás I/O I/O-rendszer Közben a programozá programozás is fejlı fejlıdött. Kö Következmé vetkezmény: Fordí Fordító programok (assembler) Szerkesztı Szerkesztı (linker) linker) programok
Elsı Elsı rendszerprogramok 11
Egy assembler program futtatá futtatásához szü szüksé kséges lé lépések, egy kártya I/OI/O-val rendelkezı rendelkezı gépen:
1. 2. 3. 4.
Töltsü ltsük be a betö betöltı ltı (loader) programot. Töltsü ltsük be az assembler programot. Olvassuk be a programot. Fordí Fordítsuk le a programot és ké készí szítsü tsünk outputot ká kártyá rtyákra a lefordí lefordított gé gépi kó kódú utasí utasítássorozatró ssorozatról. (cé (célprogram) 5. Töltsü ltsük be ismé ismét a loadert. 6. Olvassuk be a cé célprogramot. 7. Olvassuk be a programkö programkönyvtá nyvtár megfelelı megfelelı elemeit. 8. Olvassuk be a szerkesztı szerkesztı programot. 9. Szerkesszü Szerkesszük össze a futtatható futtatható programot a cé célprogrambó lprogramból és a programkö programkönyvtá nyvtár szü szüksé kséges elemeibı elemeibıl, majd ké készí szítsü tsünk lyukká lyukkártyá rtyás outputot errı errıl. 10. Töltsü ltsük be újra a loadert. 11. Töltsü ltsük be a futtatható futtatható programot. 12. Futtassuk le a programot. 12
6
Jelentı Jelentıs javulá javulás
Mágnesszalagos tá tároló rolók
Gyorsabb feldolgozá feldolgozás
Programok egé egész sora vá várakozott Operá Operátor
Még mindig jelentı jelentıs a holtidı holtidı
Automatizá Automatizálni kellene az operá operátor munká munkáj13át 13
Supervisor programok és I/OI/O-rendszerek Input/Output System supervisor program (1953(1953-54 ) Az IBM alkalmazó alkalmazók a GM szakembereivel együ együtt dolgoztá dolgozták ki. (IBM 701) SHARE Operating System (SOS) SHARE felhaszná felhasználói csoport specifiká specifikáció ciója + IBM Több funkció funkció: supervisori feladatok + I/O kezelé kezelés + assembly fordí fordító. FORTRAN Monitor System (FMS) GM + North American Aviation (IBM 701). Alkalmas magasszintő magasszintő programnyelven megí megírt programok feldolgozá feldolgozására. 14
7
A supervisor programok jó jó haté hatékonysá konysággal mő mőködtek mindaddig, amí amíg valamilyen szabá szabálytalan dolog be nem kö következett. Problé Probléma: A programok – elsı elsısorban mé méreteik miatt – nem voltak alkalmasak a hibá hibák felfedezé felfedezésére, azok elhá elhárítására, vagy csak erı erısen korlá korlátozott szá számban kezelté kezelték az ilyen eseteket.
15
Szalagos és lemezes operá operáció ciós rendszerek Mágnesszalagok megjelenése
Egyre ső sőrőbben haszná használtá lták ezeket a há hátté ttértá rtároló rolókat adatok tá tárolá rolására
„fontos” fontos” szalagok
„kevé kevésbé sbé fontos” fontos” szalagok
(Állandó llandóan a szg.szg.-hez kötve)
(Csak ha szü szüksé kség volt rá rájuk)
Szalagos operá operáció ciós rendszerek (TOS) 16
8
Mágnesszalagot viszonylag rö rövid idı idı utá után felvá felváltja a má mágnesdob. A má mágnesdob mő mőködési elve. A má mágnesdob elı elınye: gyors elé elérés, nagyobb adattá adattárolá rolási kapacitá kapacitás. Az új hardverelem új kezelé kezelési techniká technikákat kö követelt: Megjelent a rezidens loader (ez tö tölti be az OROR-t, a felhaszná felhasználói programokat, és elı elıkészí szíti azokat a futá futásra.) A fenti feladatok ellá ellátása utá után átadta a vezé vezérlé rlést az OR egy má másik részé szének. Ez csak akkor lehet, ha nagyobb mennyisé mennyiségő operatí operatív memó memória áll rendelkezé rendelkezésre. 17
Ahhoz, hogy az új programokat haté hatékonyan tudjá tudják haszná használni, szü szüksé kség volt olyan utasí utasításokra, amelyek megmondtá megmondták az ORORnek, nek, hogy a vé végrehajtá grehajtás sorá során milyen erı erıforrá forrásokat alkalmaznak a progamok. progamok. A parancsokat a Job Vezé Vezérlı rlı Nyelv (Job Control Language = JCL) segí segítsé tségével írtá rták le. A feldolgozá feldolgozás sorá során egy új program futá futásának elı elıkészí szítéséhez az OR elı ı szö ö r betö ö ltö ö tt egy speciá á lis rendszerszubrutint, el sz bet lt speci rendszer értelmezte a JCL utasí utasításokat, megtette a szü szüksé kséges lé lépéseket.
18
9
Az I/O készü szülékekk szá száma jelentı jelentısen megnı megnıtt, ezé ezért a DOS OR I/O Ellenı Ellenırzı rzı Rendszere (I/O Control System = IOCS) jelentı jelentısen feljavult: A kü különbö nbözı készü szülékek kezelé kezelésével, tá támogatá mogatásával szubrutinok egé egész sora foglalkozott.
A mő mőködés szempontjá szempontjából fontos rutinok állandó llandóan a memó memóriá riában maradtak. Ezek a mő ő k ö d é s szempontjá á b ó l kritikus ké é szü ü l é m szempontj k sz keket támogattá mogatták. Ez az OR rezidens része. Más ké készü szülékek kezelé kezeléséhez a rutinokat csak akkor illesztetté illesztették a programokhoz, ha azokra szü szüksé kség volt. Ez az OR tranziens része.
19
A DOS OROR-ket már a gyá gyártó rtó cégek ké készí szítetté tették. Mindenki arra törekedett, hogy a sajá saját maga által épített „vas” vas” lehetı lehetıségeit a legjobban kihaszná kihasználja.
Nem tö törekedtek olyan OR elemek kidolgozá kidolgozására, amelyek változtaltoztatás nélkü lkül átvihetı tvihetık lettek volna má más gé gépekre. Géptí ptípus
OR
Honeywell 1800
ADMIRAL
UNIVAC 1107
EXEC 1
Control Data
SCOPE
Burroughs 5000
Master Control
IBM 7090
IBSYS 20
10
Egy assembler program futtatá futtatásához szü szüksé kséges lé lépések, egy DOS OROR-rel rendelkezı rendelkezı gépen:
1. A JCL feldolgozó feldolgozó program megvizsgá megvizsgálja a JCLJCL-ben leí leírt 2. 3. 4. 5. 6.
parancsokat. A JCL parancsoknak megfelelı megfelelıen az OR betö betölti és elindí elindítja az assembler fordí fordító programot. Az assembler beolvassa az input programot. Elı Elıállí llít egy olyan cé célprogramot (object (object modul), amely mé még tartalmaz feloldatlan referenciá referenciákat, és ezt a „félké lkész” sz” programot ideiglenesen má mágneslemezre helyezi el. Követve a JCL parancsait a szerkesztı szerkesztı kerü kerül betö betölté ltésre és végrehajtá grehajtásra azé azért, hogy a megfelelı megfelelı szubrutinokat a célprogrammal összeszerkessze. Az elké elkészü szült futtatható futtatható programot betö betölti az OR a memó memóriá riába, és a program – mint elké elkészü szült felhaszná felhasználói program – végrehajtó grehajtódik. 21
Multiprogramozá Multiprogramozás batchben Soros kö kötegelt feldolgozá feldolgozási rendszer Többprogramos kö kötegelt rendszer Az elsı elsı ilyen OR a Master Control Program (MCP) volt. Ké Két új elvet haszná használ: Virtuá Virtuális memó memóriakezelé riakezelés elve Prioritá Prioritások haszná használata A tö többprogramos batch rendszerek legismertebb ké képviselı pviselıi az OS/360 az IBM 360360-as szá számítógépekre alkalmazott ké két vá változat: OS/MFT OS/MVT Tová További újítás: a spool technika. technika. 22
11
Idı Idıosztá osztásos rendszerek (time (time sharing) sharing) A kö kötegelt feldolgozá feldolgozásná snál: A kö közvetlen ellenı ellenırzé rzésre nincs lehetı lehetıség A holtidı holtidı is igen nagy Gyors má mágneslemezegysé gneslemezegységek jobb kihaszná kihasználása: nem csak spool techniká technikára haszná használtá lták, hanem a rendszerprogramok nagy ré része is lemezen van.
A programok gyorsan aktivá aktiválható lhatók.
Ha csak né néhány JCL utasí utasítást kell javí javítani, akkor azt interaktí interaktív terminá terminálró lról megteheti a programozó programozó. (Interaktí (Interaktív feldolgozá feldolgozás) 23
Problé Probléma: A kö kötegelt feldolgozá feldolgozás sorá során egyszerre tö több program van a memó memóriá riában, de vezé vezérlé rlésátadá tadás csak ún. „megá megállá llási pontokon” pontokon” való valósulhatott meg a programok kö között. Ennek az az eredmé é nye, hogy egyes programok percekig (vagy aká eredm akár órákig) is futottak megá megállá llás né nélkü lkül. Az interaktí interaktív technika ezt nem engedhette meg.
Kialakul az idı idıosztá osztásos (time (time sharing) sharing) üzemmó zemmód: egy óra mé méri a legutolsó legutolsó vezé vezérlé rlésátadá tadás óta eltelt idı idıt, és azonnali vezé vezérlé rlésátadá tadást hajt vé végre, ha az idı idıszelet lejá lejár. A vezé vezérlé rlés átadó tadódik a vá várakozó rakozó programok egyiké egyikére, és az éppen megszakí megszakított program vá várakozni ké kényszerü nyszerül.
24
12
Az ilyen rendszerek fé fénykora a 6060-as 7070-es évekre esett. Korai ké képviselı pviselıi: Compatible Timesharing System (CTSS): DEC PDPPDP-1 Darthmouth Timesharing System (DTSS): General Electric IBM TS/360TS/360-as rendszere Egyre tö több programozó programozó akarta kihaszná kihasználni az interaktivitá interaktivitás nyú nyújtotta lehetı lehetıségeket. Ez azt eredmé eredményezte, hogy a rendszer egyre tö több idı idıt tö töltö ltött azzal, hogy a programok kö között ideide-oda kapcsolt. A té tényleges munká munkára egyre kevesebb idı ı jutott. id Új, gondosabban kifejlesztett supervisor programra volt szü szüksé kség: 25
MIT, AT&T, GE kö közös fejleszté fejlesztése: MULTICS Több új gondolat: szegmentá szegmentált virtuá virtuális memó memória hierarchikus filerendszer megalkottá megalkották a ké készü szülékfü kfüggetlen I/O fogalmá fogalmát alkalmaztá á k az I/O á tirá á nyí í t á s mó ó dszeré alkalmazt tir ny m dszerét haté hatékony felhaszná felhasználói interface Legnagyobb elı elınye: magasszintő magasszintő programnyelven íródott (PL/I), ezé ezért kö könnyen fejleszthetı fejleszthetı.
26
13
A UNIX operá operáció ciós rendszer MULTICS tapasztalatai – Thompson új, egyfelhaszná egyfelhasználós OR : UNIX.
és
Ritchie, Ritchie,
1970.
Felhaszná Felhasználói ké kényelem Egyszerő Egyszerő, haté hatékony hierarchikus felé felépítéső filefile-rendszer, amelyhez egy jó ). jól kezelhetı kezelhetı parancsinterpreter kapcsoló kapcsolódott (shell (shell). A filerendszer az I/O ké készü szülékeket speciá speciális állomá llományké nyként kezelte, A shell a parancsai által gyá gyártott outputokat ké képes volt átirá tirányí nyítani bármelyik állomá llományba vagy ké készü szülékbe. Ugyanilyen rugalmassá rugalmasság az input kivá kiválasztá lasztására is. Elsı Elsı változatai egyfelhaszná egyfelhasználós rendszerké rendszerként mő mőködtek, de képesek voltak egyidejő egyidejőleg tö több program futtatá futtatására is. (folyamatok vagy processprocess-ek) ek)
27
Az elsı elsı változatot PL/IPL/I-ben írtá rták, de ez nem volt implementá implementálható lható PDP szá számítógépekre. Richie: Richie: fejlesszü fejlesszünk ki egy új nyelvet. Megalkottá Megalkották a C programprogramnyelvet, majd az egé egész UNIXUNIX-ot átírtá rták CC-re. Javí Javításra szokatlan megoldá megoldás: kiadtá kiadták a kí kísérleti rendszert az egyetemeknek forrá forrásprogramokkal együ együtt. A kutató kutatók és a hallgató hallgatók kö között gyorsan né népszerő pszerő lett a kö könnyen alakí alakítható tható rendszer. Szá Számos vá változat jö jött lé létre. A legné legnépszerő pszerőbb: Berkley UNIX. A UNIX lett az elsı elsı olyan OR, amely a hardvertı hardvertıl fü függetlenü ggetlenül terjedhetett. Ezzel a UNIX lett az elsı elsı hordozható hordozható OR. 28
14
Absztrakt és virtuá virtuális gé gépek ’6060-as évek vé vége – Egyesü Egyesült Államok – MULTICS fejleszté fejlesztése Euró Európa – Eindhoveni Egyetem – Edgar Dijsktra vezeté vezetésével kidolgozzá kidolgozzák a T.H.E. OROR-t. A T.H. E. újdonsá jdonsága: Interaktí Interaktív folyamatok kezelé kezelésében (holtpont, szinkronizá szinkronizáció ció) A rendszer hierarchikus felé felépítése (kü (különbö nbözı szintek – az alsó alsó két szint egy ún. absztrakt gé gépet szolgá szolgáltatott. Az absztrakt gé gépek megvaló megvalósítása úgy tö törté rtént, hogy a rendszer komponenseit szintekre bontottá bontották. Az egyes szintek csak a velü velük szomszé szomszédos szintekkel tartottá tartották a kapcsolatot. 29
0.szint
Eljá Eljárás vezé vezérlé rlése, megszakí megszakítások kezelé kezelése
1.szint
Virtuá Virtuális memó memóriakezelé riakezelés
2.szint
Felhaszná Felhasználói konzol kezelé kezelése (user (user interface)
3.szint 4.szint 5.szint
I/O kezelé kezelése Felhaszná Felhasználói programok Az operá operátor
A T.H.E.T.H.E.-n definiá definiált struktú struktúra 30
15
A rendszer hierarchikus felé felépítését tö több OR fejleszté fejlesztése sorá során is alkalmaztá alkalmazták. Legismertebbek: TENEX: olyan filerendszert is magá magába foglaló foglaló absztrakt gé gépet szolgá á ltatott, amely megengedte minden felhaszná á l ó nak egyidı szolg felhaszn egyidıben több process futtatá futtatását, és biztosí biztosította a virtuá virtuális memó memóriá riát. IBM CP/CMS (Control (Control Program / Conversational Monitor System): Olyan OR ké készí szítése, amely az IBM minden fejleszté fejlesztési munká á j á t tá á mogatja. Ehhez kellett a virtuá á lis gé é p koncepció munk t virtu g koncepciója.
31
OROR-ek kis szá számítógépekre A hardware elemek ára (é (és mé mérete) rohamos csö csökken. Különbö nbözı kategó kategóriá riák a szá számítógépek kö között: mini, mikro, szemé személyi szá számítógépek. Kezdetben a „kisgé kisgépek” pek” a nagyobb tá társaik felé felépítésének filozó filozófiá fiáját követté vették, majd fokozatosan önálló lló irá irányban fejlı fejlıdtek tová tovább. Ugyanez figyelhetı figyelhetı meg az OROR-kné knél is: A kisgé kisgépek az egyfelhaszná egyfelhasználós rendszerek irá irányá nyába indultak el. (Ké (Késıbb alakultak ki ebben a kategó kategóriá riában a tö többfelhaszná bbfelhasználós rendszerek.) DECDEC-PDP: megszakí megszakítások, kö közvetlen memó memóriací riacímzé mzés a gyors I/O ké készü szülékek szá számára. IBM 1800: 16 bites CPU, győ győjtı jtıregiszterek, indexregiszterek. 32
16
Ahogy csö csökkentek a mé méretek és az árak, úgy nı nıtt az igé igény a tö többfelbbfelhaszná használós rendszerek irá iránt: PDPPDP-110 – TOPS OR: a time sharing sző szőkített vá változata. PDPPDP-11 – RTRT-11 OR: speciá speciális multiprogramozá multiprogramozás két programmal. Megjelennek a nyomtatott áramkö ramkörök, a mé méretek és az árak tová további csö csökkené kkenésével a mikroprocesszorok bonyolultsá bonyolultsága is egyre nıtt. 6060-as évek vé vége: zsebszá zsebszámoló mológépek megjelené megjelenése. Kalkulá Kalkulátorok fejlı fejlıdése: bennü bennük a chipek egyre bonyolultabbak, nehezen kezelhetı kezelhetıek: új elveken mő mőködı, általá ltalános cé célú processzorra volt szü szüksé kség: INTEL: 4004, 8008, 8080, Zilog: Zilog: ZZ-80, Motorola: 6800. 33
A memó memóriá riák mé méreté retének és árának csö csökkené kkenése: Megszü Megszülettek a mikroszá á m í t ó g é pek (SINCLAIR, COMMODORE, APPLE II, mikrosz WANG, …, IBM) A mikroszá mikroszámítógépes hardver nagyon gyorsan fejlı fejlıdött, de a rendszerszoftver ezekre a gé gépekre soká sokáig ké késett: Kezdetben egyszerő egyszerő loadereket haszná használtak, amelyet ROMROM-ban helyeztek el. Az elsı elsı OR (Gary (Gary Kildall) Kildall) – CP/M: egyfelhaszná egyfelhasználós OR (INTEL 8008) SCPSCP-DOS (INTEL 80868086-ra) MSMS-DOS (’ (’9090-es évek eleje, Microsoft Corporation) Megjelentek a Windows kü különbö nbözı generá generáció ciói. (Ezek má már tö több felhaszná felhasználós rendszerek igé igényes felhaszná felhasználói felü felülettel.) 34
17
A UNIX hosszú hosszú ideig nem volt alkalmazható alkalmazható mikroszá mikroszámítógépes környezetbe, mé mégis erı erıs hatá hatást gyakorolt az OROR-k fejlı fejlıdésére: az MSMS-DOS vá változataiban egyre gyakrabban lehetett talá találkozniolyan elemekkel, amelyek elı elıszö ször a UNIXUNIX-ban jelentek meg (pl. hierarchikus filerendszer, I/O átirá tirányí nyítás). Új irá irány: 19701970-ben a Xerox Corporation új fejlesztı fejlesztı központot hozott lé létre (Palo Alto Research Center), amely új felhaszná felhasználói felü felületet kí kínált az ALTO gé gépéhez: az ikonokat, amelyek kezelé kezelése az egé egérrel tö törté rtént. Munkaá Munkaállomá llomáské sként haszná használtá lták. Ez a fejleszté fejlesztési irá irány „szü szülte” lte” az APPLEAPPLE-Machintosht és a Sunt. Az egyfelhaszná egyfelhasználós munkaá munkaállomá llomások - új tí típusú pusú OR kifejleszté kifejlesztése megszü megszületett a nyitott OR gondolata: a kö középpontban ké kényelem és nem az ellenı ellenırzé rzés áll. Az OR szolgá szolgáltatá ltatást nyú nyújt. Eltő Eltőnik az éles hatá határ az OR és a 35 felhaszná felhasználói programok kö között.
Hálózatok és osztott rendszerek A kü különbö nbözı szá számítógépek összekapcsolá sszekapcsolásának gondolata nagyon régi. Már a ’6060-as években is ké készí szítettek adattová adattovábbí bbításra alkalmas készü szülékeket, amelyekkel szá számítógépek vá váltak összekapcsolhasszekapcsolhatóvá. Az elsı elsı hálózatot az USA Vé Védelmi Miniszté Minisztériumá riumának megbí megbízásából hozta lé létre a Department of Advanced Research Project ARPANET né néven. Minden gé gépnek sajá saját OROR-e volt. A kommuniká kommunikáció ció speciá speciális I/O tevé tevékenysé kenység. Az adatá adatátvitelhez ismerni kellett a tá távoli gé gép adatformá adatformátumá tumát Rendelkezni kellett speciá speciális jogokkal Megengedte a tá távoli gé gépek interaktí interaktív felhaszná felhasználását is. 36
18
Az elsı elsı olyan OROR-t, amely a há hálózatot az erı erıforrá források egysé egységes rendszereké rendszereként kezelte Millstein készí szítette 19771977-ben. Ebbı Ebbıl fejlı fejlıdtek ki a há hálózati operá operáció ciós rendszerek, amelyek a következı vetkezı elveken mő mőködnek: Az összekapcsolt gé gépek mindegyike önálló lló OROR-rel rendelkezik. Minden szá számítógépnek van sajá saját – loká lokális – felhaszná felhasználója, de az egyes felhaszná felhasználók szá számára a tö többi szá számítógép erı erıforrá forrásai is rendelkezé rendelkezésre állnak. Ezé Ezért egy felhaszná felhasználónak lehetı lehetısége van arra, hogy bejelentkezzen távoli gé gépekre is, és ott azok erı erıforrá forrásait haszná használja, ill. adatokat mozgasson gé gépek kö között. A fenti elvekre épülı OROR-k alapfelé alapfelépítésükben nem kü különbö nböznek a klasszikus OROR-ktı ktıl. (Novell (Novell--NetWare) NetWare) 37
Más elveken mő mőködnek az un. osztott operá operáció ciós rendszerek: Úgy lá látjá tják, mintha egyetlen gé gép állna remdelkezé remdelkezésre, sre, de a rendszer ténylegesen tö több processzort vagy gé gépet tartalmaz. A felhaszná felhasználó az erı erıforrá forrásokat úgy tudja kezelni, mint a sajá saját gépének bá á rmely erı ı forrá á s á t. (Sem a futó ó programok sem a b er forr fut felhaszná felhasználó nem tudja, hogy fizikailag hol talá található lható az erı erıforrá forrás.) Az ilyen OR egyik legnagyobb elı elınye a sebessé sebességnö gnövekedé vekedés. Ebben van a problé probléma is: a kü különbö nbözı sebessé sebességő processzorok miatt az algoritmusokat pá párhuzamosí rhuzamosítani kell, és a processzorok mőködésének ütemezé temezése is bonyolult. 38
19
3. Az OR-k szerkezete Nincs olyan struktú struktúra, amely egyé egyértelmő rtelmően jobb a tö többiné bbinél! De a fıbb szempontok, amelyeket a legtö legtöbb OROR-nél figyelembe kell venni: 1. Forrá Forráskó skódok szervezé szervezése 2. Társzervezé rszervezés 3. Végrehajtá grehajtási struktú struktúrák a) Klasszikus szervezé szervezés b) Rendszereljá Rendszereljárások alkalmazá alkalmazása c) Nyitott kö környezetek 4. Komponensek interakció interakciója a) Korlá Korlát né nélkü lküli interakció interakció b) Modulok elkü elkülönítése c) Absztrakt gé gépek d) Virtuá Virtuális gé gépek 5. Adaptá Adaptálható lhatóság 39
Forrá Forráskó skódok szervezé szervezése OR összeá sszeállí llítása forrá forráskó skódú elemekbı elemekbıl: az alkalmazott eljá eljárás azonos az egyé egyéb nagymé nagymérető rető software rendszerekné rendszereknél haszná használatos eljá eljárásokkal: Forrásnyelvő modulokat készítünk, amelyekbıl egy fordító program segítségével gépi kódú (object) modulokat állítunk elı, Melyekbıl elemeket szerkesztünk úgy össze, hogy futtatható (load) modulokká álljanak össze Egy OR szá számos futtatható futtatható modult tartalmaz, melyek valamilyen másodlagos tá tároló rolón helyezkednek el. 40
20
Szempontok, melyeket egy OR tervezé tervezésekor mindenké mindenképpen érdemes figyelembe venni: Egy eljá eljárás ne legyen ké két oldalná oldalnál hosszabb – áttekinthetı ttekinthetıség Az egy egysé egységbe tartozó tartozó forrá forráskó skódot és adatot kezeljü kezeljünk együ együtt. Egy modul a lehetı lehetı legkevesebb má más modullal kerü kerüljö ljön kapcsolatba – függetlensé ggetlenség elve. A modulok kö közötti kapcsolat tartá tartásához egyszerő egyszerő, áttekinthetı ttekinthetı interfaceinterface-ket haszná használjunk. Úgy ké készí szítsü tsük el a modulokat, hogy egy szü szüksé kséges vá változtatá ltoztatás a lehetı lehetı legkevesebb modulra gyakoroljon hatá hatást. A fenti szabá szabályok nem OR specifikusak. Minden nagyobb felhaszfelhasználói rendszerné rendszernél is hasonló hasonló elveket kell kö követni. 41
Az OROR-k eseté esetén komolyan „egyensú egyensúlyoznunk” lyoznunk” kell az összefogott kódolá dolás és a haté hatékonysá konyság kö között. Az OR haté hatékonysá konyságát nagymé nagymérté rtékben befolyá befolyásolja, hogy: milyen nyelven íródtak! Soká Sokáig tartotta magá magát az a né nézet, hogy jó jó OROR-t csak assembly nyelnyelven lehet írni. Okai: Egy OROR-nek a fizikai erı erıforrá forrásokat ellenı ellenırzé rzés alatt kell tartani. Regiszterek és má más speciá speciális memó memóriahelyek tartalmá tartalmát ismerni kell. Problé Probléma: mindezek egy magasszintő magasszintő nyelven megí megírt program futtatható ó modulja szá á m á ra tiltott elé é r é s ő helyen vannak. futtathat sz el A helyzet a 90’ 90’-es évek sorá során vá változott meg. 42
21
Okai: A hardver eszkö eszközök nagymé nagymérté rtékő fejlı fejlıdése: nagyobb memó memóriaterü riaterü-let, let, sokkal nagyobb sebessé sebesség. Így a hosszabb fordí í t á si idı ı é s a redundá á ns fordí í t á s nem akadá ford id redund ford akadály. Több olyan magasszintő magasszintő programnyelv ké készü szült, amelyeket kifejezetten OROR-k fejleszté fejlesztésére kí kívántak haszná használni. Ezek az un. Rendszer implementá implementáló nyelvek (System Implementation Language: Language: SIL) Egy magasszintő magasszintő programnyelven megí megírt OR „plattformplattformfüggetlen” ggetlen”: minden olyan gé gépen haszná használható lható, amely rendelkezik a nyelvhez fordí fordító programmal. Így az ilyen OR „hordozható hordozhatóvá” válik. A nagyobb haté hatékonysá konyság elé elérése érdeké rdekében mé mégis jobb, ha bizonyos részeket tová továbbra is assemblyben írunk. 43
Rendszerpé Rendszerpéldá ldák I. Kis rendszerek Jól illusztrá illusztrálható lható a CP/MCP/M-mel. Ré Részei: Basic Disc Operation System (BDOS) vé végzi az ellenı ellenırzé rzésté stés és a filefile-szervezé szervezést. Basic Input/Output System (BIOS) a ké készü szülékek kezelé kezelésért felelı felelıs. Consol Command Processor (CCP)feladata a kapcsolattartá kapcsolattartás a felhaszná felhasználóval. Az alkotó alkotóelemek teljesen elté eltérı helyen vannak eltá eltárolva, és elté eltérı módon haszná használjuk ezeket: BDOS kb. 1000 soros és PL/MPL/M-ben íródott BIOS modulokra bontva kb. 22-3000 sor, assemblyben írtá rták (Installá (Installáláskor vá változhat) CCP kb. 500 soros. 44
22
Rendszerpé Rendszerpéldá ldák II. Nagy rendszerek UNIX. A Berkley UNIX „törzsé rzsét” egy kb. 100 állomá llománybó nyból álló lló forrá forráskó skódú rendszer alkotja, amely kö közel 35 000 CC-kódú sorbó sorból áll. Egy tipikus programá programállomá llomány né néhány szá száz sor hosszú hosszú, és né néhány tová további eljá eljárást alkalmaz. A UNIX forrá forrásmodulok kb. 100 definí definíció ciót haszná használnak. A megszakí megszakítások kezelé kezeléséhez a Berkley UNIX a VAX gé gép assembly prgramjá prgramját haszná használja: Egy ilyen modul kb. 1000 sor hosszú hosszú, és ez az egyetlen olyan ré rész, amely nem CC-ben íródott.
45
Társzervezé rszervezés OR Rezidens rész
Tranziens rész
Állandó llandóan a fı fıtárban van. (Fontos komponensek, szolszolgáltatá ltatások) sok)
Elegendı Elegendı akkor betö betölteni, ha szü szüksé kség van rá rájuk. (Kevé (Kevésbé sbé fontos komponensek)
A legkritikusabb ré részeket tartartalmazó talmazó részé szét nukleusnak nukleusnak vagy kernelnek kernelnek nevezzü nevezzük.
Ide tartoznak a parancsinterparancsinterface elemei és a filekezelı filekezelı rendszer egyes ré részei
A memó memória meghatá meghatározott ré részé szén helyezkedik el. (legala (legala-csonyabb címzé mzéső rész)
Azokra a terü területekre tö töltjü ltjük be, amelyek éppen rendelkezé rendelkezésre állnak. Sokszor áthelyezhetı thelyezhetıknek kell lenniü ) lenniük (b (bázis cí cím, relatí relatív cí cím 46
23
Mind a rezidens mind a tranziens komponenseket tö több folyamat is haszná használhatja (termé (természetesen felvá felváltva). A tranziens elemek un. dinamikus kö könyvtá nyvtárakban helyezik el (DLL, SHL). Néhány esetben a memó memória cí címezhetı mezhetı részé szének egy tartomá tartománya un. memó memóriá riába ágyazott (memory (memory mapped) mapped) I/O ré részé szére van fenntartva. A memó memóriá riának mindazon ré részeit, amelyeken az OR ré részei helyezkednek el, minden felhaszná felhasználói programtó programtól vé védeni kell. Amikor ez a terü ü let ö sszefü ü ggı ı , a vé é delem egyszerő ő bb. ter sszef gg v egyszer Megadunk né néhány memó memóriaté riatérké rképet. Egyes esetekben ké két lehetı lehetıséget mutatunk be: A fizikai memó memória beosztá beosztását mutatjuk be. A virtuá virtuális memó memóriá riát adjuk meg. 47
Rendszerpé Rendszerpéldá ldák I. OS/MVT A rendszer az IBM S/360 architektú architektúrájára épült. Ez a felé felépítés a memó memória felosztá felosztását a kü különbö nbözı funkció funkciók (felhaszná (felhasználói program fut, vagy OROR-beli program fut). Kö Között nem támogatj, mogatj, ezé ezért a címzé mzési terü területek azonosak. A maximá maximálisan cí címezhetı mezhetı terü terület 16Mbyte, egy jellegzete installá installáció ció kb. 2Mbyte2Mbyte-t foglal el. Az egy taskon belü belül futó futó program szá számára az egé egész munkaterü munkaterület látható tható (16 Mbyte). Ha egy program a rendelkezé rendelkezésére álló lló terü területrı letrıl „ki akar cí címezni” mezni”, akkor memó memóriavé riavédelem mő mőködésbe lé lép. Az OS/MFT felé felépítése hasonló hasonló az MVT felé felépítéséhez, az egyetlen elté eltérés az, hogy a taskok mérete nem vá változtatható ltoztatható. 48
24
Tranziens terü terület
2M
Task 2.
Task 1. Rendszerkontroll Tranziens terü terület Nukleus
0M 49
Rendszerpé Rendszerpéldá ldák II. UNIX A UNIX a memó memória felosztá felosztását virtuá virtuális memó memóriaria-techniká technikák alkalmazá alkalmazásával oldja meg: mindig csak annyi informá információ ciót tart a fıtárban, amennyire szü szüksé ksége van. Ezé Ezért a fizikailag rendelkezé rendelkezésre álló lló memó memória tartalma gyorsan vá változik. A felhaszná felhasználói programok által elé elérhetı rhetı (virtuá (virtuális) cí címzé mzési terü ü letet program, adaté s veremterü ü letekre oszthatjuk. Ilyenkor ter program adat veremter az OR és az általa kezelt adatok nem lá látszanak. A legtö legtöbb UNIX verzió verzióban nincs kö közös cí címezhetı mezhetı memó memóriaterü riaterület a kü különbö nbözı futó futó programok szá számára. Az OR parancskezelı parancskezelı programja a felhaszná felhasználó programokkal azonos felté feltételekkel rendelkezik.
50
25
Veremterü Veremterület
Adatterü Adatterület
Programterü Programterület 0M Virtuá Virtuális folyamatszervezé folyamatszervezés UNIX alatt
51
A UNIX alatt az OR rezidens ré része által lá látott memó memóriaterü riaterület akkora, mint maga a kernel. A kernelbe tartozó tartozó összes forrá forrásmodul egy load modulba van szerkesztve. Mé Mérete elé elérheti a 22-300 000 bytebyte-t is. A load modul ré részei rezidenské rezidensként helyezkednek el a virtuá virtuális memó memóriá riában. A kernelben talá található lható eljá eljárások akkor aktivizá aktivizálódnak, amikor egy felhaszná felhasználó program meghí meghívja a rendszernek ezt a ré részé szét, vagy valamilyen megszakí megszakítás kö következik be.
52
26
Rezidens OR terü területe 0M Virtuá Virtuális rendszerkezelé rendszerkezelés UNIX alatt
53
Rendszerpé Rendszerpéldá ldák III. CP/M Nem haszná használ speciá speciális memó memóriaté riatérké rképet, a CPU által cí címezhetı mezhetı terü terület (max (max.. 64 Kbyte) mindig rendelkezé rendelkezésre ál, ezé ezért a virtuá virtuális és a fizikai memó memória kezelé kezelése megegyezik. Két rezidens komponens helyezkedik el a memó memória felsı felsı részé szében: a BIOS és a BDOS. A BIOS mé mérete vá változhat, de a kettı kettı együ együttes mé mérete < 10 Kbyte. Ehhez a ré részhez tartozik egy kismé kismérető rető veremterü veremterület, amelyet az OR haszná használ fel. A legalsó ó 256 Kbyten talá á lható ó k a a rendszeradatok és a legals Kbyte tal lhat pufferterü pufferterületek Itt helyezik el az aktuá aktuális parancssort, a visszaté visszatérési cí címeket, és az indí indítási cí címeket is. A CCP az OR tranziens ré része. Csak akkor tö töltı ltıdik be, ha szü szüksé kség van rá rá. Helye a BDOS alatt van, helyigé helyigénye kb. 2Kbyte, legalacsonyabb betö ö lté é si cí í me 100.A felhaszná bet lt c felhasználói programok 256256-tól tö töltı ltıdnek be. Ha egy felhaszná felhasználói programnak szü szüksé ksége van a tranziens 54 terü területre, akkor azt felhaszná felhasználhatja.
27
BIOS
64Kbyte
BDOS CCP
54 Kbyte
Felhaszná Felhasználói programok és adatok
256 byte
Ellenı Ellenırzé rzési terü terület
0
Virtuá Virtuális rendszerkezelé rendszerkezelés CP/M alatt
55
Rendszerpé Rendszerpéldá ldák IV. MSMS-DOS Az elsı elsı MSMS-DOS rendszerek a 64 KbyteKbyte-s cí címzé mzési lehetı lehetıséggel rendelkezı rendelkezı INTEL 80868086-os processzorá processzorára lettek fejlesztve. Mivel a maximá maximálisan rendelkezé rendelkezésre álló lló memó memória 1Mbyte, ezé ezért a processzor 64Kbyte64Kbyte-s blokkokra osztva kezeli a memó memóriá riát. Az IBM PCPC-k a magasabb memó memóriaterü riaterületen helyezik el a videomemó videomemóriá riát és a ROMROM-ban tárolt rendszerprogramokat. A rezidens terü területen van tá tárolva az OR a parancs interpreter egy részé szével. A parancskezelı parancskezelı tranziens ré része a rendelkezé rendelkezésre álló lló szabad terü terület legmagasabb cí címére kerü kerül. (Ez a felhaszná felhasználói programok által felü felülírható rható.) A felhaszná felhasználói programok ré részé szére kb. 600 Kbyte áll rendelkezé rendelkezésre., amit 64Kbyte64Kbyte-s lapokra bontva lá lát a processzor. A programterü ü let alsó ó 256 byten van a kommuniká programter als byte kommunikáció ciós terü terület. 56
28
BIOS és egyé egyéb ROM prgk
1 Mbyte
Video és grafikus memó memória Tranziens parancskezelı parancskezelı Felhaszná Felhasználói veremterü veremterület
640 Kbyte
Felhaszná Felhasználói adatok Felhaszná Felhasználói program Rezidens OR terü terület
1536 byte 0
Kommuniká Kommunikáció ciós terü terület Fizikai tá tárfelosztá rfelosztás MSMS-DOS alatt
57
64 Kbyte Rezidens OR terü terület Tranziens parancskezelı parancskezelı 0 64 Kbyte Felhaszná Felhasználói veremterü veremterület 256 Kbyte Felhaszná Felhasználói adatok 0 Virtuá Virtuális tá tárfelosztá rfelosztás MSMS-DOS alatt
58
29
Végrehajtá grehajtási struktú struktúrák
Az OR programjait vé végrehajtható grehajtható egysé egységekben tá tároljuk. Ezeket az egysé egységeket speciá speciális „kívánsá nságok” gok” aktivizá aktivizáljá lják. Ezek lehetnek rendszerhí rendszerhívások vagy megszakí megszakítások. Egy OR program rendelkezhet elı elıjogokkal: rendszer regiszterekregiszterekhez férhet hozzá hozzá vagy elé elérhet olyan memó memóriaterü riaterületeket, amelyekamelyekhez a felhaszná felhasználói programok nem fé férhetnek hozzá hozzá.
Áttekintjü ttekintjük azokat a vé végrehajtá grehajtási struktú struktúrákat, amelyek a fejlı fejlıdés sorá során kialakultak.
59
Klasszikus szervezé szervezés Az OROR-t úgy tekintjü tekintjük, mint szubrutinoknak egy olyan győ győjtemé jteményé nyét, amelyeket azé azért futtatunk le, hogy a rendszer különbö nbözı erı erıforrá forrásait kezeljü kezeljük. Magukat a szubrutinokat rendszerhí rendszerhívásokkal vagy egyé egyéb speciá speciális kí kívánsá nságokkal (pl. megszakí megszakítás) aktivizá aktivizálhatjuk. A legtö legtöbb szubrutin teljesen befejezi a munká munkáját mielı mielıtt visszaadja a vezé vezérlé rlést a hí hívó programnak. Néhány rutin azonban indí indíthat egy I/O - mőveletet, amelyek aztá aztán a felhaszná felhasználói programok futá futása alatt hajtó hajtódnak vé végre. Az OR programok egy ré része csak akkor indí indítható tható el, ha a felhaszná felhasználói programok futá futását felfü felfüggesztjü ggesztjük, mí míg má másokkal egyidejő egyidejőleg futhatnak a felhaszná felhasználói programok. Bizonyos felté feltételek mellett a szá számítógépben ún. megszakí megszakítások generá generálódnak (pl. tú túlcsordulá lcsordulás, IO mő mővelet). 60
30
Rendszereljá Rendszereljárások alkalmazá alkalmazása Azokat a rendszerprogramokat, amelyek akkor futnak, amikor felhaszná felhasználói programok is vé végrehajtá grehajtás alatt vannak, ugyanú ugyanúgy kezelhetjü kezelhetjük, mint magukat a felhaszná felhasználói eljá eljárásokat.(Ilyen pl. egy output kü küldé ldése nyomtató nyomtatóra.) Ezek nem igé igényelnek speciá speciális techniká technikát. Ugyanú Ugyanúgy kezelhetı kezelhetık, mint egy felhaszná felhasználói program. Az ilyen eljá eljárásokat rendszereljá rendszereljárásoknak nevezzü nevezzük. Egy rendszereljá rendszereljárás OR szolgá szolgáltatá ltatásokat nyú nyújt, de úgy kezeljü kezeljük, mint egy felhaszná felhasználói eljá eljárást. Az azonossá azonosság mellett bizonyos elté eltérések is jelentkeznek: Magasabb prioritá prioritás Mentesü Mentesülhetnek né néhány szabá szabályozá lyozás (pl.: swapping) swapping) aló alól. A rendszereljá rendszereljárások alkalmazá alkalmazása csö csökkentheti az OR tervezé tervezése sorá során fellé fellépı hibá hibákat, így nö növelhetı velhetı a megbí megbízható zhatóság. Nincs szü szüksé kségük felesleges elı elıjogokra, és az esetlegesen fellé fellépı hibá hibák sem okozhatnak „rendszerroncsolá rendszerroncsolást” st” (pl. UNIX, VMS) 61
Nyitott kö környezetek A legtö legtöbb OROR-t úgy tervezté tervezték, hogy tiszta és merev hatá határokat hú húztak a felhaszná felhasználói software és az OR kö közé. Ez az OROR-beli programok szá számára egyré egyrészt elı elıjogokkal já járt, másré srészt az OR programok olyan helyen tö töltı ltıdtek be a memó memóririába, ba, amelyek a felhaszná felhasználói programok szá számára elé elérhetetlenek. Ez a fajta szé szétvá tválasztá lasztás egy tö többfelhaszná bbfelhasználós rendszer eseté esetén teljesen indokolt. ( hiba eseté esetén helyrehozhatatlan ká károk keletkezhetnek az ORben vagy a tö ö bbi futó ó programban is.) OR t fut Egyfelhaszná Egyfelhasználós rendszerekné rendszereknél azonban ez a szé szétvá tválasztá lasztás nem szü ü ksé é gszerő ő . sz ks gszer 62
31
Megszü Megszületett a nyitott OR gondolata. Egy ilyen rendszerben Az OR programjait úgy tekintjü tekintjük, mint eljá eljárások összessé sszességét. Nem különbö nböztetjü ztetjük meg ezeket egyé egyéb felhaszná felhasználói programoktó programoktól. A felhaszná felhasználó szabadon ad hozzá hozzá – vagy vesz el – eljá eljárásokat a rendszer elemeihez.
63
A nyitott rendszer egyik speciá speciális formá formája a UNIX által is kezelt klienskliens-szerver kapcsolat. Egy ilyen rendszerben a az OR csak kö közvetí zvetít a felhaszná felhasználói folyamatok kö között. A felhaszná felhasználónak lehetı lehetısége van arra, hogy megí megírjon egyegy-egy programot mind a szerveren (szerver folyamat) mind a kliens gépen (kliens folyamat), majd rö rögzí gzítse a ké két folyamat kö között az informá információ ciócsere mó módjá dját. Ez az un. protokoll, pl. TCP/IP. Az OROR-nek csak az a feladata, hogy a ké két folyamat kö között vezé vezérelje az informá á ció ó cseré é t. inform ci cser A rendszer nagy elı elınye, hogy a ké két folyamatnak nem kell okvetlenü okvetlenül egy gé gépen futnia, és mé még az sem felté feltétel, hogy a ké két gépnek azonos OROR-je legyen.
64
32
Komponensek interakció interakciója Az OROR-k eseté esetében kü különbö nbözı eljá eljárások hí hívható vhatók má más eljá eljárások által, adatokat kaphatnak má más programoktó programoktól és adatokat adhatnak át. Ha ezt korlá korlátozá tozás né nélkü lkül tesszü tesszük, akkor ez a rendszer megbí megbízhatatzhatatlansá lanságához vezethet. (Nem lehet behatá behatárolni a rendszer azon részeit, amelyekre a vá változá ltozás hatá hatást gyakorolhat.) Ezé Ezért nagyobb rendszerekben szabá szabályozzá lyozzák az egyes ré részek interinterakció akcióját. Az interakció interakció kezelé kezelésének leggyakoribb vá változatai: Korlá Korlát né nélkü lküli interakció interakció Modulok elkü elkülönítése Absztrakt gé gépek Virtuá Virtuális gé gépek KliensKliens-szerver interakció interakció. 65
Adaptá Adaptálható lhatóság Amikor egy OROR-t elké elkészí szítünk, akkor mindig gondolnunk kell arra, hogy a ké késıbbiek sorá során vá változtatnunk kell a rendszer egyes részein, vagy új modulokkal kell azt kiegé kiegészí szítenü tenünk. Elı Elıfordulhat, hogy a szá számítógép konfigurá konfiguráció ciója vá változik meg, és az OROR-t ehhez kell igazí igazítani. Ilyenkor nagyon kellemetlen lenne, ha az egé egész rendszert újra kellene fordí fordítani. Ezé Ezért a rendszert ré részrendszerekre bontjuk. Ehhez az OROR-k egy ré részé szénél az ún. „blokkblokk-építés” techniká technikáját haszná használjá lják. Egy ilyen rendszerné rendszernél a felhaszná felhasználó válogatja ki, hogy mely komponenseket akarja beé beépíteni a rendszerbe. A modulokat kü különkülön fordí fordítjuk le és ha valamelyikben vá változá ltozás van, csak azt a modult kell újrafordí jrafordítani. 66
33
4. Az OR-k felületei Egy szá számítógépes rendszer haté hatékonysá konyságát – és elfogadottsá elfogadottságát – nagymé nagymérté rtékben befolyá befolyásolja, hogy milyen mó módon tartja a kapcsolatot a felhaszná á l ó kkal. felhaszn A kommuniká kommunikáció ció irá irányai: a felhaszná felhasználó jelez a rendszernek, ha szolgá szolgáltatá ltatást igé igényel a rendszer kü küld informá információ ciót, ha a teljesí teljesítésrı srıl. A kapcsolattartá kapcsolattartás mó módja: közvetlen (interaktí (interaktív terminá terminálon) közvetett (programokbó (programokból adjuk a szolgá szolgáltatá ltatás igé igénylé nylését) 67
Az OROR-nek azt a komponensé komponensét, amely a felhaszná felhasználóval tö törté rténı kapcsolattartá kapcsolattartásért felelı felelıs felhaszná felhasználói interfaceinterface-nek nevezzü nevezzük. Két fı fı része van: Parancs interface: interface: magas szintő szintő kommuniká kommunikáció ciót tesz lehetı lehetıvé a felhaszná felhasználó és az OR kö között, irá irányí nyítja a programok futá futását. Program interface: interface: kezeli a futó futó programokra, tartja a kapcsolatot a programok, a rendszer által ellenı ellenırzö rzött erı erıforrá források és a szolgá szolgáltatá ltatások kö között. A felhaszná felhasználói interface ké két komponense kapcsolatban áll egymá egymással: a parancs interface is rendszerprogam által implementá implementálható lható. a program interface „segí segítsé tségül hí hívhatja” vhatja” a parancs interfaceinterface-t. programok elı elıállí llíthatnak parancsokat, amelyeket aztá aztán átadnak a parancs interfacenek tová á bbi feldolgozá á sra. interface tov feldolgoz 68
34
A parancs interface Bármilyen formá formában is jelenik meg egy parancs interface, mindig szü ü ksé é g van a kommuniká sz ks kommunikáció cióhoz egy nyelvre. A felhaszná felhasználói parancsokat a gé gépirá pirányá nyába a parancsnyelv (Command Language) Language) kö közvetí zvetíti, Az OR által visszaadott informá információ ciót a válasznyelv (Response Language) Language) segí segítsé tségével fordí fordítjuk le.
A parancsnyelv tí típusai JobJob-control nyelv Interaktí Interaktív parancsnyelv 69
// PROBA // COMP // SYSPRINT // SYSLIN
JOB
(1023,20,47),PRTY=3,MSGLEVEL=3, CLASS=A EXEC PGM=IEYFORT,PARM=‘ PGM=IEYFORT,PARM=‘SOURCE’ SOURCE’ DD SYSOUT=A DD DSNAME=SYSL,DISP=OLD, DCB=(RECFM=FB,LRECL=80,BLKSIZE=1600) DD *
// SYSIN … itt jö jöttek a forrá forrásprogram ká kártyá rtyái, amelyeket egy /* ká kártyá rtyával zárunk le. … // EDIT EXEC PGM=FORTLINK,COND=(4,LT,C) // SYSPRINT DD SYSOUT=A // SYSLIN DD DSNAME=*.SYSLIN,DISP=OLD // SYSLIB DD DSNAME=SYSLIB.FORTLIB,DISP=OLD // FT03F001 DD SYSOUT=A, DCB=(RECFM=FA,BLKSIZE=133) // FT05F001 DD DSNAME=SYSIN // EDIT.SYSIN DD * A program adatká adatkártyá rtyái /*
Példa jobjob-control nyelvre
70
35
Interaktí Interaktív parancsnyelv Típusai: streamstream-orientá orientált: lt: parancsokat dolgotunk fel soronké soronként (CP/M, MSMSDOS) menő menővezé vezérelt: relt: a felhaszná felhasználó a rendszer által felkí felkínált lehetı lehetıségek közül vá választ. ikonvezé ikonvezérelt: az OR funkció funkciói stilizá stilizált ábrá brák segí segítsé tségével választható laszthatók. A rendszertı rendszertıl fü függı ggı szolgá szolgáltatá ltatások nagymé nagymérté rtékben fü függnek a környezettı rnyezettıl, mé mégis vannak olyan parancstí parancstípusok, amelyek minden parancsnyelvben szerepelnek: könyvtá nyvtár elemeinek listá listázása állomá llományok má másolá solása, átnevezé tnevezése, tö törlé rlése szerkesztı szerkesztı programok futtatá futtatása informá információ ciók listá listázása a rendszerrı rendszerrıl és a felhaszná felhasználói kö környezetrı rnyezetrıl. 71
IBM JCL: // RENAME // SYSPRINT // SYS1 // VOL1
EXEC DD DD DD
PGM=IEHPROGM SYSOUT=A UNIT=3330, VOLSER=SYS001 DISP=OLD, UNIT=3300, VOL=SER=SZALAG // SYSIN DD * RENAME DSNAME=r DSNAME=réginé ginév, VOL=SER=SZALAG NEWNAME=ú NEWNAME=újné jnév /*
VMS: RENAME
/OLDNAME=r /OLDNAME=réginé ginév
/NEWNAME=ú /NEWNAME=újné jnév
MSDOS: RENAME
réginé ginév újné jnév
UNIX: mv
réginé ginév újné jnév
Példa az állomá llományok átnevezé tnevezésére kü különbö nbözı parancsnyelvekben72
36
Egy parancs felé felépítése: parancskó parancskód
<paramé <paraméter1> <paramé <paraméter2> …
A paramé paraméterek tí típusai: pozí í cioná á lis poz cion kulcsszavas Paramé Paraméterek kezelé kezelésének megkö megkönnyí nnyítése: rövidí vidítések parancskiegé parancskiegészí szítések szabad helykijelö helykijelölések (wild (wild card) card) „kierı kierıszakolt” szakolt” végrehajtá grehajtás („ („Are you sure? sure?”) parancsá parancsállomá llományok sző szőrık 73
A vá válasznyelvek A vá válasznyelv segí segítsé tségével az OR informá információ ciót szolgá szolgáltat a felhaszná á l ó szá á m á ra. Lehetsé é ges informá á ció ó k: felhaszn sz Lehets inform ci Promt üzenet Kisegí Kisegítı (help) help) üzenetek Elı Elırehaladá rehaladási üzenetek Befejezé Befejezést jelzı jelzı üzenetek
74
37
Program interface (PI) Feladata: a futó futó programok szá számára nyú nyújt szolgá szolgáltatá ltatásokat, és azokazokkal kommuniká kommunikál. Vé Végigkí gigkíséri a programokat a vé végrehajtá grehajtásuk sorá során: Felelı Felelıs a programok betö betölté ltéséért éért (á (áthelyezhetı thelyezhetıség) A program futá futása alatt fogadja a rendszer szolgá szolgáltatá ltatásaira és az erı erıforrá források igé igénybevé nybevételé telére vonatkozó vonatkozó igé igényeket, és tová továbbí bbítja az erı erıforrá forrás kezelı kezelıhöz. A program befejezé befejezésekor figyeli, hogy azok szabá szabályosan fejezı fejezıdtekdtek-e be, vagy hibakó hibakódot kell kiadni. Rendszerszolgá Rendszerszolgáltatá ltatások, amelyeket rendszerhí rendszerhívások segí segítsé tségével hajt vé végre.
75
A rendszerhí rendszerhívások tí típusai: bemenetbemenet-kimenet (read (read / write / open …) könyvtá nyvtárkezelé rkezelés (dir (dir / rd / md / ln …) folyamatok kezelé kezelése (fork (fork / kill …) készü szülékek kezelé kezelése (enable (enable / disable …) memó memória kezelé kezelése ( swap / allocate / free …) megszakí megszakítások kezelé kezelése (IRQ kezelé kezelés) idı idıkezelé kezelés (date (date / time / at / cron …) jogosultsá jogosultságok kezelé kezelése (owner (owner / group / exe …)
76
38
Felhaszná Felhasználói interface Programinterface
Parancsinterface
Programok betö betölté ltése Erı Erıforrá források ellenı ellenırzé rzése
Parancsnyelv
Válasznyelv
Batch feldolgozá feldolgozás:
JCL
Interaktí Interaktív parancsnyelv:
Streamorientá Streamorientált
rendszerszolgá rendszerszolgáltatá ltatások biztosí biztosítása
Menü Menüvezé vezérelt Ikonvezé Ikonvezérelt
Összefoglaló sszefoglaló táblá blázat a felhaszná felhasználói interface felé felépítésére
77
5. Memóriaszervezés A fejlı fejlıdésnek újabb lö lökést a tö többfelhaszná bbfelhasználós rendszerek megjemegjelené lenése adott: a drá drága erı erıforrá forrást meg kellett osztani a konkurens folyamatok kö között. Ezé Ezért kü külön ré részrendszert fejlesztettek ki az OROR-n belü belül: memó memóriariaszervezı szervezı (Memory Management Unit = MMU). A memó memóriakezelé riakezelés há három ré részproblé szprobléma kezelé kezelését rejti magá magában: Memó Memóriaalloká riaallokáció ció Az igé igényelt memó memóriá riát gyorsan kell biztosí biztosítani Csak akkor alloká allokálunk, ha az szü szüksé kséges Ha nincs szü szüksé kség a terü területre, akkor azt azonnal felszabadí felszabadítjuk Áthelyezé thelyezés (cí (címré mrészek, cí címek mó módosí dosítása) Memó Memóriavé riavédelem 78
39
5.1 Memó Memóriaalloká riaallokáció ció Memó Memóriaalloká riaallokáció cióról akkor beszé beszélünk, amikor egy folyamat szá számára a memó memória egy meghatá meghatározott, összefü sszefüggı ggı részé szét lefoglaljuk. Külön kell vizsgá vizsgálni az alloká allokáció ciót egyfelhaszná egyfelhasználós rendszerekné rendszereknél, többfelhaszná bbfelhasználós rendszerekné rendszereknél Egyfelhaszná Egyfelhasználós rendszerekné rendszereknél az alloká allokáció ció egyszerő egyszerő, mert a memó ó riá á ban elhelyezkedı ı egyetlen program a teljes memó mem ri elhelyezked memóriá riát igé igénybe veheti, kivé kivéve azt a ré részt, amelyben az OR foglal el. A felhaszná felhasználás korlá korlátait jelentı jelentı hatá határcí rcímeket vagy a CPU meghatá meghatározott regisztereiben vagy az alsó alsó memó memóriaterü riaterület elı elıre definiá definiált cí címein tá tároljuk. Az utasí utasításokat – az összehasonlí sszehasonlítás utá után – csak akkor hajtjuk vé végre, ha nem lé lép fel címzé mzési hiba. hiba. 79
Alloká Allokáció ció többfelhaszná bbfelhasználós rendszerekben A fizikai memó memória felosztá felosztásának ké két mó módja van (az (az OR hajtja végre): gre): •
•
Statikus memó memória definí definíció cióról akkor beszé beszélünk, nk, ha az alloká allokálható lható blokkok méreté retét és szá számát akkor rögzí gzítjü tjük, amikor az OROR-t generá generáljuk. ljuk. (A blokkok szá száma soha sem változik.) ltozik.) Partí Partíció ciók. Dinamikus memó memória definí definíció ció eseté esetén az OR a blokkok szá számát és méreté retét akkor hatá határozza meg, amikor egy igé igényt ki akar elé elégíteni. teni. Régió ó k . Szé é tdaraboltsá á g problé é m á ja! ! gi Sz tdarabolts probl ja
Attó Attól fü függı ggıen, hogy egy feldolgozá feldolgozás alatt álló lló folyamat futá futás kö közben foglalhatfoglalhat-e le újabb terü területeket, ké két straté stratégia lehetsé lehetséges: Statikus alloká allokáció ció (a program betö betölté ltéskor, indí indításakor) Dinamikus alloká allokáció ció (futá (futás kö közben is lehetı lehetıség újabb terü területek lefoglalá lefoglalására, ha szü szüksé kséges) 80
40
A dinamikus alloká allokáció ció haté hatékonysá konyságát ké két té tényezı nyezı befolyá befolyásolhatja: a jó jól megvá megválasztott adatstruktú adatstruktúra kevesebb helyigé helyigényő nyő és gyorsabb adminisztrá adminisztráció ciót eredmé eredményez: bit té térké rképet akkor haszná használunk, ha a memó memória egyenlı egyenlı mérető rető blokkokra van osztva. Egy blokkhoz egy bitet rendelü rendelünk a foglaltsá foglaltság jelzé jelzésére. Memó Memóriaellenı riaellenırzı rzı blokkokkal vá változó ltozó hosszú hosszúságú blokkokat kezelü kezelünk. Ez lehetı lehetıséget ad tö több memó memóriablokk összekapcsolá á s á ra is. (Mindig tartalmazza a tí í pust, a hosszat sszekapcsol t és a pointert. Két tí típus: FMCB = Free Memory Control Block AMCB = Allocated Memory Control Block. Block. az alloká allokálást haté hatékonyan vé végzı gzı alloká allokáció ciós algoritmus jobb helykihaszná helykihasználást eredmé eredményez 81
Szabad terü terület 1. Folyamat Szabad terü terület Szabad terü terület 0110011100
2. Folyamat
Szabad terü terület Szabad terü terület Példa bitbit-térké rkép alkalmazá alkalmazására
82
41
FMCB Hossz Pointer AMCB Hossz Pointer FMCB Hossz Pointer FMCB Hossz Pointer AMCB Hossz Pointer FMCB Hossz Pointer AMCB Hossz Pointer AMCB Hossz Pointer FMCB Hossz Pointer AMCB Hossz NIL FMCB Hossz NIL Példa Memó Memória ellenı ellenırzı rzı blokkok alkalmazá alkalmazására
83
Alloká Allokáció ciós straté stratégiá giák dinamikus alloká allokáláshoz Elsı Elsı Illeszté Illesztés (First (First Fit): Az elsı elsı FMCBFMCB-tıl indulva megvizsgá megvizsgál minden szabad blokkot és az elsı elsı olyan blokkot vá választja, amely megfelel az igé igényelt mé méretnek. Gyors, de egy idı idı utá után összegyő sszegyőlnek a kicsi „maradvá maradvány” ny” blokkok, amikkel má már nem tudunk mit kezdeni. Következı vetkezı Illeszté Illesztés (Next (Next Fit): Az elı elızı egyszerő egyszerősített vá változata, csak itt új keresé keresést mindig ott kezdü kezdünk az FMCB blokkok kö között, ahol az elı elızıt abbahagytuk. Egy kicsit rosszabbul viselkedik, mint az FF. Legjobb illeszté illesztés (Best Fit): Az elı elızı kettı kettı nem veszi figyelembe a blokk tényleges mé méreté retét. Ez az algoritmus bejá bejárja az összes blokkot, megjegyzi azt, amelyikhez a legjobban illeszkedik az igé igény. (azaz a legkevesebb felhaszná felhasználatlan terü terület marad) Legrosszabb illeszté illesztés (Worst (Worst Fit): Megfordí Megfordítja az elı elızı szabá szabályt. Ha nagyobb szabad hely marad, nagyobb az esé esély, hogy ké késıbb fel tudjuk haszná használni. 84
42
Átrendezé trendezés, tö tömörítés Az elı elızı algoritmusok alkalmazá alkalmazása sorá során tö többszö bbször elı elıfordulhat, hogy kismé kismérető rető blokkok maradnak a memó memóriá riában elszó elszórtan elhelyezkedve. Célszerő lszerő lehet ezeket a jobb felhaszná felhasználható lhatóság érdeké rdekében idı őjteni” idıszakonké szakonként „összegy „összegyő jteni” egy nagyobb blokkban. Azokná Azoknál a rendszerekné rendszereknél, amelyek a dinamikus áthelyezé thelyezést támogatjá mogatják, lehetı lehetıség van egy ilyenfajta tö tömörítésre. Ha tö tömörítést alkalmazunk, akkor periodikusan kell vé végrehajtani és a tö tömörítés alatt minden olyan folyamatot fel kell fü függeszteni, amely fü függ az adott folyamatokhoz tartozó tartozó programok relatí relatív helyzeté helyzetétıl. (pl.: I/OI/O-mőveletek) 85
5.2 Áthelyezé thelyezési mó módszerek A tö többfelhaszná bbfelhasználós rendszerek általá ltalában megengedik, hogy a programok kü különbö nbözı idı idıpontokban tö törté rténı végrehajtá grehajtásakor azokat a memó memória kü különbö nbözı terü területeire tö töltsü ltsük be. Az ismé ismételt betö betölté ltésekkor a helyes cí címré mrészek kialakí kialakítása alapvetı alapvetı követelmé vetelmény. Azt az eljá eljárást, amely a programot úgy mó módosí dosítja, hogy az az új helyre betö betöltve is helyesen fut, áthelyezé thelyezésnek nevezzü nevezzük. Attó Attól fü függı ggıen, hogy az áthelyezé thelyezés a betö betölté ltéshez viszonyí viszonyítva mikor törté rténik, ké két tí típust kü különbö nböztetü ztetünk meg: Statikus áthelyezé thelyezés: ha a betö betölté ltéssel egyidı egyidıben vagy elı elıtte tö törté rténik. Dinamikus áthelyezé thelyezés: a program futá futása kö közben is vé végrehajtható grehajtható. 86
43
5.2.1. Áthelyezé thelyezés software úton Akkor haszná használjuk, ha meghatá meghatározható rozható, hogy mely hivatkozá hivatkozásokat kell megvá megváltoztatni, és megadható megadható a vá változtatá ltoztatások mó módja is. A hivatkozá hivatkozások azonosí azonosítását az áthelyezé thelyezési kö könyvtá nyvtárban adjuk meg. Rendkí Rendkívül idı idıigé igényes, ré részletes kiegé kiegészí szítı informá információ ciókat igé igényel. Az egyszer áthelyezett program tö többé bbé nem mozdí mozdítható tható ugyanazon futá futás sorá során. Ez az áthelyezé thelyezési technika statikus áthelyezé thelyezést eredmé eredményez.
87
… 870 872 874 …
LOAD MUL
3214 134
GOTO
2537 4000
Áthelyezhetı thelyezhetı tárgykó rgykód
… LOAD 7214 4134 4872 MUL 4874 GOTO 6537
4870
…
Áthelyezé thelyezés software úton
88
44
5.2.2. Áthelyezé thelyezés bá báziscí ziscímekkel Enné Ennél a mó módszerné dszernél a bá báziscí ziscímek haszná használata hardvertá hardvertámogatá mogatás útjá tján való valósul. Az OR a betö betöltö ltött program bá báziscí ziscímét elhelyezi egy bá báziszisregiszterben, amely vonatkozá vonatkozási alapké alapként szolgá szolgál majd. A té tényleges cí címeket úgy szá számítjuk ki, hogy a bá bázisregiszter tartalmá tartalmát az utasí utasítás cí címré mrészé széhez hozzá hozzáadjuk. A mó módszer lehetı lehetıséget ad dinamikus áthelyezé thelyezésre, mert elegendı elegendı a program áthelyezé thelyezése sorá során a bá bázisregiszter tartalmá tartalmát átírni. Elı Elıszö ször az IBM/360IBM/360-nál haszná használtá lták. Mivel a legnagyobb cí címezhetı mezhetı cím 4K volt, ezé ezért minden 4K nagysá nagyságrendő grendő blokk kü külön bázisregiszterrel rendelkezett. 89
5.2.3. Áthelyezé thelyezés relatí relatív cí címzé mzéssel A bá báziscí ziscímek alkalmazá alkalmazásának egy má másik mó módja. Az utasí utasítás szá számlá mlálót (PC = Program Counter) Counter) haszná használjuk fel bá bázis regiszterregiszterként. ( „lebegı lebegı bázis regiszter” regiszter”) A té tényleges cí címeket most úgy szá számoljuk ki, hogy az utasí utasítás szá számlá mláló tartalmá tartalmát adjuk hozzá hozzá a vé végrehajtandó grehajtandó utasí utasítás megfelelı megfelelı címré mrészé széhez. Lehetı Lehetıvé teszi az ún. helyfü helyfüggetlen kó kódok kialakí kialakítását. A PDPPDP-1111-n haszná használtá lták elı elıszö ször.
90
45
5.2.4. Áthelyezé thelyezés áthelyezé thelyezési regiszterek haszná használatá latával A bá bázisregiszter technika egyik lehetsé lehetséges javí javítását kapjuk, ha áthelyezé thelyezési regisztert alkalmazunk. Ekkor e regiszter tartalmá tartalmát mindig hozzá hozzáadjuk a vé végrehajtá grehajtás elı elıtt az utasí í t á s cí í mré é szé é hez. utas c mr sz A relatí relatív cí címzé mzéssel szemben itt az áthelyezé thelyezési regiszter tartalma mindig állandó ó marad, amí í g a programot ismé lland am ismét át nem helyeztü helyeztük. Az áthelyezé thelyezési regiszter alkalmazá alkalmazása leegyszerő leegyszerősíti az áthelyezé thelyezést: ha a programot úgy tervezzü tervezzük, hogy a 00-s cí címre tö töltjü ltjük be, akkor minden áthelyezé thelyezés egyszerő egyszerően vé végrehajtható grehajtható, ha azzal egyidı egyidıben az áthelyezé thelyezési regiszterbe a program új kezdı kezdıcímét tö töltjü ltjük. 91
A korai egyfelhaszná egyfelhasználós rendszerek kö központi memó memóriá riája viszonylag kicsi volt. Egy nagyobb program futtatá futtatása csak úgy volt lehetsé lehetséges, ha a programot megkí í s é reltü ü k kisebb egysé é gekre bontani. megk relt egys overlay-ek A technika alapgondolata: daraboljuk szé szét a programot olyan részekre, amelyek nem interferá interferálnak egymá egymással, és az egymá egymástó stól független programré programrészekhez rendeljü rendeljük hozzá hozzá ugyanazt a memó memóriariaszeletet. overlay szegmens Napjainkban a memó memóriá riák ára drasztikusan csö csökkent, így nagyobb operatí í v tá á rakat alkalmazhatunk, ami tö ö bbnyire feleslegessé operat t t feleslegessé teszi ezt a techniká technikát. 92
46
5.3. Memó Memóriavé riavédelem Az alloká allokáció ciónak a legtö legtöbb esetben csak akkor van értelme, ha összekapcsoljuk valamilyen vé védelemmel. Védelemnek lé é teznie kell, hogy a programok ne érjé l rjék el azokat a terü területeket, amelyeket az alloká allokáció ció sorá során nem kaptak meg. Típusai: • •
Egyfelhaszná Egyfelhasználós rendszerek Többfelhaszná bbfelhasználós rendszerek
93
Egyfelhaszná Egyfelhasználós rendszerek Néhány OR nem tartalmaz semmilyen hardware biztosí biztosítékot a nem alloká allokált terü területek elé elérésének védelmé delmére. re. Itt a baj azonban nem lesz olyan nagy, nagy, mert csak egyetlen programra lesz kihatá kihatással. ssal. Mégis van egy program, amely kitü kitüntetett szerepet játszik: tszik: ez az OR (vagy (vagy annak a memó memóriá riában lévı része). sze). A védelmet hatá határcí rcím és/vagy hatá határregiszter alkalmazá alkalmazásával oldjá oldják meg.
94
47
Többfelhaszn bbfelhasznáálós rendszerek: rendszerek:
Az egyfelhaszná egyfelhasználós rendszerekné rendszereknél alkalmazott hatá határregiszterek jó irá irányt mutat ahhoz, hogy minden ré régió gió szá számára alkalmazzunk külön hatá határregisztert vagy alsó alsó- és felsı felsı regiszterpá regiszterpárt, amelyek egyé egyértelmő rtelmően kijelö kijelölik a ré régió gió aktuá aktuális hatá határait. Egy má másik lehetı lehetıség az, ha a regiszter pá párban bá bázis érté rtéket és blokkszé blokkszélessé lességet adunk meg.
95
6. Virtuálismemória-kezelés A megoldandó megoldandó problé probléma: A gé é pi kó ó dra tö g k törté rténı fordí fordítás sorá során a fordí fordító (compiler) compiler) program olyan cí címeket generá generál az utasí utasításoknak és az adatoknak, amelyeket a rendelkezé rendelkezésre álló lló hardware segí segítsé tsé-gével elvileg el tud érni. (Ha a CPU cí címregisztere 1 byte hosszú hosszú, akkor az elé elérhetı rhetı legmagasabb cím 255.) Ha a fizikailag megcí megcímezhetı mezhetı terü terület kisebb, mint a fordí fordításkor elvileg rendelkezé rendelkezésre álló lló legmagasabb cí cím (azaz a virtuá virtuálisan rendelkezé rendelkezésünkre álló lló terü terület), akkor a programok futá futása sorá során gondoskodni kell a fordí fordítás sorá során kialakí kialakított virtuá virtuális cí címek átalakí talakításáról olyan fizikai cí címekké mekké, amelyek té ténylegesen rendelkezé rendelkezésre állnak a fı fıtárban. A megvaló megvalósítás sorá során a program egy ré része van csak a fı fıtárban, - amelyre hivatkozunk - a tö többi há hátté ttértá rtáron helyezkedik el. Az OR feladata az, hogy megoldja a programré programrészek automatikus cseré cseréjét a kellı kellı idı idıpillanatban. 96
48
A virtuá virtuális memó memóriakezelé riakezelés azt az illú illúzió ziót nyú nyújtja a felhaszná felhasználónak, mintha a virtuá virtuálisan cí címezhetı mezhetı terü terület mindig a rendelkezé rendelkezésre állna fizikailag is. Ezé Ezért a programokban specifiká specifikált virtuá virtuális cí címeket az OR a hivatkozá hivatkozás pillanatá pillanatában át tudja alakí alakítani olyan fizikai cí címekké mekké, amelyek a fı ı t á rban rendelkezé é sre á llnak. f rendelkez Így a virtuá virtuális cí címeket a fordí fordítás sorá során úgy tudjuk megvá megválasztani, ahogy az a fordí fordítónak ké kényelmes, a fizikai cí címek pedig mindig az OROR-hez illeszkednek. A mó módszer elı elınyei: A virtuá virtuális és a fizikai cí címek elkü elkülönülnek egymá egymástó stól: bá bárhogyan változnak meg a fizikai cí címezhetı mezhetıség hatá határai, a virtuá virtuális cí címek nem vá á ltoznak. v A memó memóriavé riavédelem kö könnyebben szervezhetı szervezhetı. 97
6.1. Memó Memória áthelyezé thelyezési techniká technikák 6.1.1. Áthelyezé thelyezési tá táblá blázat haszná használata Inká Inkább elvi jellegő jellegő. A mó módszer lé lényege: a virtuá virtuális cí címzé mzési terü terület és a fizikai cí címzé mzési terü terület kö közé egy transzformá transzformáció ciós tá tábla kerü kerül, amelynek segí segítsé tségével az aktuá aktuális áthelyezé thelyezéseket megoldjuk. Haszná Használjuk a kö következı vetkezı jelö jelöléseket: VKC: virtuá virtuális kezdı kezdıcím (a fordí fordító adja a program elsı elsı utasí utasításának.) .) nak FKC: fizikai kezdı kezdıcím (a program aktuá aktuális futá futásakor a betö betölté ltési kezdı kezdıcím.) A VKCVKC-t ill. a z FKCFKC-t szoká szokás bá báziscí ziscímeknek is nevezni. 98
49
A fordí fordítás sorá során a virtuá virtuális címzé mzési terü területet a fordí fordító blokkokra osztja, osztja, amelyek lehetnek változó ltozó hosszú hosszúságúak. ak. Minden „virtuá virtuális” lis” blokkhoz hozzá hozzárendelü rendelünk egy vele azonos mérető rető fizikai blokkot. blokkot. A két blokk közötti transzformá transzformáció ciós szabá szabályt az Áthelyezé thelyezési Táblá blázat segí segítsé tségével írjuk le. Ebben minden blokkhoz hozzá hozzárendelü rendelünk egy blokk leí leíró vektort, vektort, amely tartalmazza a VKCVKC-t, az FKCFKC-t és a blokk méreté retét. A gyakorlati vé végrehajtá grehajtás: Amikor a programban valamilyen virtuá virtuális cí címre tö törté rténik hivatkozá hivatkozás, akkor a hardware elı elıszö ször megkeresi azt a blokk leí leíró vektort, amely a szó szóban forgó forgó virtuá virtuális cí címet tartalmazza. Ahhoz, hogy megkapjuk a cí í m relatí í v c relat helyé helyét a virtuá virtuális blokkon belü belül, ki kell vonni az érté rtékébıl a virtuá virtuális blokk bá bázis cí címét. Ezt a cí címet adjuk hozzá hozzá a fizikai blokk bá bázis cí címéhez és megkapjuk a keresett fizikai cí címet. 99
Virtuális Cím
Virtuális Címzési Terület
-
VKC
+
FKC Méret
Fizikai Cím
Fizikai Címzési Terület
Áthelyezési Táblázat
Virtuá Virtuálismemó lismemóriaria-kezelé kezelés áthelyezé thelyezési tá táblá blázattal
100
50
Következmé vetkezmény: ha a fizikailag rendelkezé rendelkezésre álló lló memó memória egyik szelete nem szerepel egyetlen blokkleí blokkleíró vektorban sem, akkor ez a terü terület fenntartható fenntartható az OR szá számára. Az eljá eljárás tová tovább finomí finomítható tható akkor ha a program logikailag összetartozó ó r é szeit (fı ı program, szubrutinok, adatstruktú sszetartoz (f adatstruktúrák) kü külön szegmenské szegmensként kezeljü kezeljük. A szegmenseken belü belüli terü területeknek összefü sszefüggı ggınek kell lenni. Ezé Ezért egy szegmens kezelhetı kezelhetı egy virtuá virtuális blokknak, amely egy egysé egységben vihetı vihetı áll a fizikai cí címzé mzési tartomá tartományba. A szegmentá szegmentálás elve csak akkor alkalmazhatjuk, ha az OR támogatja a vá változó ltozó hosszú hosszúságú virtuá virtuális blokkok kezelé kezelését.
101
6.1.2. Leké Leképezé pezési regiszterek Ez az eljá eljárás akkor haszná használható lható jól, ha a virtuá virtuális cí címzé mzési terü terület korlá korlátozott szá számú blokkra osztható osztható. Virtuá Virtuális Cí Címzé mzési Terü Terület
Méret
FKC
0
--
120
0
--
100
0
--
80
20
60
12
0
18
40
20
20
Fizikai Cí Címzé mzési Terü Terület 200
80 60
60
40
40
20
20
0
0
Leké Leképezé pezési regiszterek
Virtuá Virtuálismemó lismemóriaria-kezelé kezelés leké leképezé pezési regiszterekkel
102
51
Problé Problémák a korá korábbi ké két mó módszerné dszernél: A vá változó ltozó hosszú hosszúságú blokkok mozgatá mozgatása miatt a fizikai memó memóriá riában „maradé é k ” blokkok keletkezhetnek, amelyeket nem lehet felmarad felhaszná használni. lni. Ilyen speciá speciális regiszter csak korlá korlátozott szá számban áll rendelkezé rendelkezésre, ezé ezért, ha a virtuá virtuálisan cí címezhetı mezhetı terü terület nagy, akkor a mozgatható mozgatható blokkok is viszonylag nagyok. Így, ha az aktuá aktuális blokk mé mérete kicsi, akkor az elvesztett terü terület nagy lesz. Megoldá Megoldás: mozgassunk kismé kismérető rető, fix hosszú hosszúságú blokkokat!
103
6.1.3. Lapozá Lapozási technika A virtuá virtuális címzé mzési terü terület fix hosszú hosszúságú, lapoknak nevezett blokkokra van bontva. bontva. Minden laphoz egy lapszá lapszámot rendelü rendelünk. nk. Egy címet a virtuá virtuális memó memóriá riában lapszá lapszámmal és a lapon belü belüli eltolá eltolási címmel hatá határozunk meg. A virtuá virtuális memó memóriací riacímek leké leképezé pezése a fıtárban tárolt lapozá lapozási tábla segí segítsé tségével törté rténik. nik. A fizikai memó memória is blokkokra van osztva, osztva, és azok mérete megegyezik a lapok méreté retével. vel. Ezeket a blokkokat képlapoknak nevezzü nevezzük. A képlapokhoz is egy azonosí azonosítószá szám tartozik. tartozik. A lapleí lapleíró blokk tová tovább egyszerő egyszerősödik: dik: elegendı elegendı tárolni a lap azonosí azonosítóját és a laphoz rendelt képlap azonosí azonosítószá számát.
104
52
A virtuá virtuális cí címek leké leképezé pezése: Egy adott virtuá virtuális cí címet az OR lapszá lapszámra és eltolá eltolási cí címre bont. A CPU a lapleí lapleíró regiszteré regiszterének segí segítsé tségével megkeresi a lapozá lapozási táblá blát. A tá táblá blában megkeresi a lap azonosí azonosítóját. A ké képlapplap-azonosí azonosító és az eltolá eltolási cí cím segí segítsé tségével kiszá kiszámítja a fizikai cí í met. c
105
Virtuális Címzési Terület
Fizikai memória
18
19
20
7
13
18
19
20
15
16
17
6
8
15
16
17
12
13
14
5
17
4
9
12
13
14
3
8
9
10
11
6
7
8
3
4
5
0
1
2
9
10
11
6
7
8
2
0
3
4
5
1
5
0
19
0
1
2
Lapozási Tábla
Virtuá Virtuálismemó lismemóriaria-kezelé kezelés lapokra bontá bontással
106
53
6.2 Virtuá Virtuálismemó lismemória - kezelé kezelés A legtö legtöbb OR eseté esetében a rendelkezé rendelkezésre álló lló fıtár nem elegendı elegendıen nagy ahhoz, hogy az összes aktí aktív folyamat egyidejő egyidejőleg a memó memóriá riában tartó tartózkodhasson. Ezé Ezért gondoskodnunk kell arró arról, hogy a megfelelı megfelelı idı idıben az inakinaktív folyamatokat a fı fıtárbó rból eltá eltávolí volíthassuk és helyü helyükbe újakat hozhozhassunk be. Az átmenetileg kipakolt folyamatokat há hátté ttértá rtároló rolón helyezzü helyezzük el. Egy nagymé nagymérető rető program lehet, hogy egyedü egyedül sem fé fér el a memó memóriá riában és ezé ezért kisebb ré részekre kell bontani. A lapozá lapozási technika ezeket a problé problémákat megoldja, ha kiegé kiegészí szítjük egy olyan swap eljá eljárással, ssal, mely automatikusan elvé elvégzi a progprogramok cseré cseréjét, gondoskodva a szü szüksé kséges kö környezeti vá változó ltozók menté mentésérıl is. 107
Ezt a feladatot vé végzi el a Virtuá Virtuális Memó Memória Rendszer (VMR). A ma haszná használatos techniká technikák alapvetı alapvetıen ké két ré részbı szbıl állnak: Az elsı elsı fázisban egy memó memóriaá riaáthelyezé thelyezést kísérelnek meg végrehajtani tö több lé lépcsı pcsıben, majd – ha a megfelelı megfelelı blokk nem érhetı rhetı el az operatí operatív memó memóriá rián belü belül, akkor – a VMR lapot cseré cserél.
108
54
Elsı Elsı fázis: Memó Memóriaá riaáthelyezé thelyezés Ha a keresett lap a fı fıtárban van, akkor az algoritmus vé vége. Ellenkezı Ellenkezı esetben: a virtuá virtuális cí címet felbontjuk lapszá lapszámra és eltolá eltolási cí címre, megkeressü megkeressük a lapleí lapleíró vektort. Ezt elı elıszö ször a cache memó memóriá riában tesszü tesszük, majd a fı fıtárban keresü keresünk. A CPU regiszterei segí segítsé tségével meghatá meghatározzuk a keresett virtuá virtuális cím helyé helyét a memó memóriá riában. Ha a lap nincs a fı fıtárban, akkor elı elıszö ször meghatá meghatározzuk a lap helyé helyét a há hátté ttértá rtároló rolón, majd megkí megkíséreljü reljük betö betölteni a memó memória egy szabad lapjá lapjába. Sajnos elı elıfordulhat, hogy nincs szabad lap és ekkor valamelyik lapot le kell cseré cserélni. Ez általá ltalában software eszkö eszközökkel tö törté rténik. 109
Második fá fázis: Laphiba. Ha az OR nem talá találja azt a lapot, amelyben a mő mővelet végrehajtá grehajtásához szü szüksé kséges cí cím helyezkedik el, akkor vezé vezérlé rlésátadá tadást elı elıidé idézı laphiba megszakí megszakítás lé lép fö föl. Ez a megszakí megszakítás elté eltér az általá ltalános megszakí megszakításoktó soktól. Itt ugyanis a megszakí megszakítás egy mő mővelet kö közepé zepén lé lép fel. Ezé Ezért speciá speciális regisztereket kell haszná használni! A laphiba megszakí megszakítást kezelı kezelı algoritmus nagyon bonyolult. Ezé Ezért – ha a laphiba ső sőrőn lé lép fel, akkor – az OR haté hatékonysá konysága lecsö lecsökkenhet. A cé cél az, hogy ezt a jelensé jelenséget lehetı lehetıleg kerü kerüljü ljük el. Lé Lényegé nyegében ké két célt tő tőzhetü zhetünk ki: Korlá Korlátozzuk a laphiba megszakí megszakítások elı elıfordulá fordulásainak szá számát. Olyan lapkezelé lapkezelési techniká technikát alkalmazunk, amely a lehetı lehetı leggyorleggyorsabban adja vissza a vezé vezérlé rlést a megszakí megszakítás hí hívása utá után. 110
55
Regiszterek tartalmának elmentése Lap helyének meghatározása a másodlagos tárolón A lap képe a fıtárban?
Lap kiválasztása lapcseréhez Módosított lap?
Írjuk vissza a lapot Töltsük be az új lapot Írjuk át a lapkezelı táblát Visszatérés a megszakításból
111
Virtuá Virtuálismemó lismemória - kezelé kezelés techniká technikái Négy alapproblé alapprobléma megoldá megoldására koncentrá koncentrálnak: Betö Betölté ltési problé probléma (Mikor?) Elhelyezé Elhelyezési problé probléma (Hová (Hová?) Helyettesí Helyettesítési problé probléma (Melyik lapot kell eltá eltávolí volítani?) Straté é giá á k: Strat gi Legré Legrégebben haszná használt lap (Least (Least Recently Used) Used) Legritká Legritkábban haszná használt lapok (Least (Least Frequently Used) Used) FIFO Kombiná Kombinált mó módszer Módosí dosított lapok kezelé kezelése (Mikor kell visszaí visszaírni?) Lokalitá Lokalitás elve! (Belady (Belady 1966) 112
56
6.3 A má másodlagos tá tárak kezelé kezelése Azokat a lapokat, amelyeknek nem kell állandó llandóan a fı fıtárban lenni hátté ttértá rtároló rolón helyezzü helyezzük el. Az OROR-nek kell gondoskodni arró arról, hogy a kellı kellı idı idıben a lehetı lehetı leggyorsabban a lapok a fı fıtárba kerü kerüljenek Ezt ké kétfé tféleké leképpen tudjuk elé elérni: Gyors hardware eszkö eszközöket haszná használunk Megfelelı Megfelelı adatstruktú adatstruktúrát alkalmazunk
113
Hardver eszkö eszközök haszná használata: Nagy rendszerek eseté esetében gyakran alkalmazott hardware megolmegoldás az, hogy kü külön író-olvasó olvasó fejeket mő mőködtetnek sá sávonké vonként. Kisebb rendszerekné rendszereknél a lapok tá tárolá rolására azokat a mágneslegneslemezeket haszná használjá lják, amelyeken az állomá llományokat egyé egyébké bként is tároljuk. Különbö nbözı módszerek tá tárolá rolási struktú struktúrákra: A virtuá virtuális cí címzé mzéssel egysé egységesen kezelhetı kezelhetı terü területeket a másodlasodlagos tároló ó n is folytonosan elhelyezkedı ı terü ü leteken tá á roljuk. rol elhelyezked ter t Csak a logikailag egybetartozó egybetartozó lapokat kezeljü kezeljük egysé egységesen.
114
57
6.4 Szegmentá Szegmentált virtuá virtuális memó memória A programok logikai egysé egységeinek kü külön szegmensekbe osztá osztása tová további lehetı lehetıségeket nyú nyújt. Amikor egy eljá eljárást vagy adatstruktú adatstruktúrát egy szegmenské szegmensként kezelü kezelünk, akkor erre – egy adott idı idıszakon belü belül – egysé egységes egé egészké szként hivatkozhatunk. A lapokra bontá bontást és a szegmentá szegmentálást együ együttesen alkalmazzá alkalmazzák: elı elıszö ször a programokat logikailag szegmensekre bontjá bontják, majd az egyes szegmenseket osztjá osztják lapokra. Annak a rendszernek, amely egy ilyen vegyes eljá eljárást haszná használ, kétszintő tszintő átviteli techniká technikát kell alkalmazni. Minden egyes folyamathoz a fı fıtárban egy szegmenstá szegmenstáblá blát rendelü rendelünk hozzá hozzá. Ez egy vektor, amelynek minden sora egy szegmensleí szegmensleíró vektort tartalmaz. A hardwarehardware-t is általá ltalában kiegé kiegészí szítik egy szegmenstá szegmenstábla regiszterrel, regiszterrel, amely a CPUCPU-ban helyezkedik el és az aktuá aktuálisan haszná használt szegmens kezdı kezdıcímét és mé méreté retét tartalmazza. 115
Virtuá Virtuális Cí Cím
Szegmens Tá Tábla Sz.T.Bá Sz.T.Báziscí ziscím
Sz.Sorszá Sz.Sorszám
Sz.T. Sz.T. Mé Méret
Lapsorszá Lapsorszám
Eltolá Eltolási cí cím
+ T.Bá T.Báziscí ziscím
T. Mé Méret
Hozzá Hozzáférés
Jelenlé Jelenlét
Szegmensleí Szegmensleíró Vektor
+ Lapké Lapképsorszá psorszá m
Jelenlé Jelenlét
Módosí dosítás
Hivatkozá Hivatkozás
Lapleí Lapleíró Vektor Fizikai Cí Cím Sz.T.Bá Sz.T.Báziscí ziscím
Sz.T. Sz.T. Mé Méret
Fizikai cí cím kiszá kiszámítása szegmentá szegmentált virtuá virtuális cí címzé mzés eseté esetében 116
58
7. Folyamatok szervezé szervezése Azokat a tevé tevékenysé kenységeket, geket, amelyeket egy program végrehajt, grehajt, folyamatoknak (processzeknek) processzeknek) nevezü nevezünk. nk. A folyamat egy akt aktíív fogalom
(Program
Folyamat)
Egy CPU eseté esetén a vezé vezérlé rlés mindig egy folyamat az aktí aktív., ezé ezért az ilyen vezé vezérlé rlés sorá során szekvenci szekvenciáálisan szervezett folyamatokr folyamatokról beszé beszélünk. Multiprogramozá ultiprogramozás eseté esetében, ben, az az erı erıforrá források EFEF-i egyidejő egyidejőleg több folyamat között is felosztá felosztásra kerü kerülhetnek. lhetnek. Ekkor közbeé zbeékelt folyamatokró folyamatokról beszé beszélünk. Ahhoz, hogy a tevé tevékenysé kenységek jó jól szervezhetı szervezhetık legyenek formá formálisan definiá definiálni kell azokat. Ezé Ezért egy adatstruktú adatstruktúrát rendelü rendelünk a tevé tevékenysé kenységhez: ez a folyamatellenı folyamatellenırzı rzı blokk (PCB) 117
Erı Erıforrá források Mindig szükség van rájuk (CPU, operatív memória)
Felhasználásuk idıben dinamikusan változik
Az erı erıforrá források nagy ré része olyan, hogy egy idı idıben csak egy folyamat tudja ezeket haszná használni. Ezé Ezért, ha egy haszná használatban lé lévı erı erıforrá forrásra egy má másik tevé tevékenysé kenységnek is szü szüksé ksége van, akkor annak vá várakoznia kell. Ezé Ezért egy vé végrehajtá grehajtás alatt lé lévı folyamat felvá felváltva van futó futó ill. várakozó rakozó állapotban. A futó futó folyamat teljes egé egészé szében haszná használja a CPUCPU-t. Ezé Ezért a várokozó rokozó állapotba kerü kerüléskor gondoskodni kell a felfü felfüggesztendı ggesztendı folyamathoz tartozó ó informá á ció ó k megı ı rzé é s é r ı l. tartoz inform ci meg rz Az elmentett informá információ ciót környezetnek, rnyezetnek, a mő mőveletet kapcsolá kapcsolásnak nevezzü nevezzük. 118
59
7.1 A tevé tevékenysé kenység leí leírása A folyamatok jellemzı jellemzıinek leí leírására a PCBPCB-t haszná használjuk. tartalmazza a folyamat legfontosabb jellemzı jellemzıit:
Ez
folyamat neve (kü (külsı lsı név, belsı belsı név) folyamat állapota (vagy egy direkt kó kód, vagy pointer) folyamat kö környezete felhaszná felhasznált memó memória folyamatprioritá folyamatprioritás szü szüksé kséges erı erıforrá források összefü sszefüggé ggések leí leírása elszá elszámolá molási informá információ ciók
119
7.2 A tevé tevékenysé kenységek és az erı erıforrá források kapcsolata Ahhoz, hogy egy folyamat a szá számára kijelö kijelölt tevé tevékenysé kenységeket vé végre tudja hajtani, szü szüksé ksége van erı erıforrá forrásokra. Az erı erıforrá források tí típusai I.: Fizikai erı erıforrá források (hardver elemek, állomá llományok) Logikai erı erıforrá források (szoftver elemek)
120
60
Az erı erıforrá források tí típusai II.: Ismé Ismételten felhaszná felhasználható lható: ezeket a folyamat nem rombolja le. Ide tartoznak általá ltalában az olyan erı erıforrá források, amelyeket egy idı idıpontban csak egy folyamat haszná használhat (pl. a memó memória egy adott ré része, nyomtató nyomtató). Ezeket az rıforrá forrásokat sorosan újrajrafelhaszná felhasználható lhatónak nevezzü nevezzük. Másik csoportba tartoznak az állomá llományok. Ezek megosztható megoszthatók esetenké esetenként tö több folyamat kö között is. Megsző Megszőnı (az OR lerombolja). Biztosí Biztosítani kall azt, hogy azok a folyamatok, amelyek ilyen erı erıforrá forrásokat haszná használnak, kö kölcsö lcsönösen kizá kizárjá rják egymá egymást.
121
Két speciá speciális erı erıforrá forrás: a CPU és a memó memória. ria. Közvetlen érjü rjük el ıket, rendszerhí rendszerhívások né nélkü lkül. Minden tevé tevékenysé kenységnek szü szüksé kségük van rá rájuk. Más erı erıforrá források: Nem rendelkeznek a fenti tulajdonsá tulajdonságokkal Rendszerhí Rendszerhívások segí segítsé tségével hajtjuk vé végre Az ütemezé temezés problé problémája itt is fenná fennáll (holtpont, vá várakozá rakozási sor) 122
61
Ha egy erı erıforrá forrás az igé igénybejelenté nybejelentés idı idıpontjá pontjában nem áll rendelkezé rendelkezésre, akkor az igé igénylı nylı folyamatnak vá várakoznia kell. A vá várakozá rakozás kezelé kezelését az OR úgy vé végzi, hogy a vá várakozó rakozó folyamat által igé igényelt erı erıforrá forráshoz egy rekordot rendel, amelyet egy várakozá rakozási sorba helyez el. A vá várakozá rakozási sorbó sorból az un. ütemezé temezési technika segí segítsé tségével emeli ki a soron kö következı vetkezı elemet. (Ez lehet egy egyszerő egyszerő FIFO, vagy valamilyen má más eljá eljárás.) Egy folyamat hozzá hozzáfőzéssel kerü kerül a sorba.
123
Várakozó rakozó sor Pointer
Pointer
Pointer
NIL
PCB1
PCB2
PCB3
PCBn
Várakozó rakozó sor elı elıállí llítása PCBPCB-n belü belüli mutató mutatóval.
124
62
Várakozó rakozó sor
Pointer
Pointer
Pointer
Pointer
PCB1
PCB2
PCB3
PCBn
Várakozó rakozó sor elı elıállí llítása elvá elválasztott pointerekkel.
125
7.3. A folyamatok állapotai Egy aktí aktív folyamatnak ké két elsı elsıdleges állapota van: végrehajtá grehajtás alatt van, várakozik. A vá várakozó rakozó folyamat ké kétfé tféle lehet: csak a CPUCPU-ra vá vár (futá (futáské skész folyamatok), a CPU mellett má más erı erıforrá forrásra is vá várakozik (blokkolt folyamatok). Egy tevé tevékenysé kenység az általá ltalános esetben a ready állapotbó llapotból indul. Amikor rá á kerü ü l a sor, akkor hozzá á rendeljü ü k a CPUr ker hozz rendelj CPU-t, így átkerü tkerül végrehajtá grehajtási állapotba.
126
63
Folyamatok lehetséges alapállapotai
Ready r in ha s e m Ti
g
Running
Blokkolt
127
Folyamatok állapotdiagramja kiegészítı állapotokkal
Ready
Kezdeti
Felf. ready
Running
Végállap.
Blokkolt
Felfügg. blokkolt
128
64
Tevékenység állapotok egyszerősített idıbeni lefutása egy multiprogramozási rendszerben
P1
Végrehajtási
Blokkolt
P2
Blokkolt
Készenléti
Végrehajtási
Blokkolt
P3
Készenléti
Végrehajtási
Blokkolt
Készenléti
P4
Blokkolt
Készenléti
Készenléti
Végrehajtási
129
Tevékenység állapotok tényleges idıbeni lefutása egy multiprogramozási rendszerben
P1
Végrehajtási
P2 P3
Blokkolt
Készenléti
P4 OR
Blokkolt
Végreh
Blokkolt
Készenléti
Blokkolt
Késze. Vé.
Készenléti
Készenléti
Készenléti
Készenléti
Végrehajtási
Blokkolt
Blokkolt
K Végrehajtási
Készenléti
Készenléti
Készenléti
Készenléti
Végrehajtási
Végrehajtási
Készenléti
Körny.átáll.
130
65
7.4. Kö Környezetá rnyezetátállí llítás Ha a tevé tevékenysé kenységek multiprogramozható multiprogramozható rendszerben futnak, akkor idı idırıl-idı idıre át kell adniuk a CPUCPU-t má más folyamatok szá számára. Ilyenkor a kü különbö nbözı regiszterekben, stá státusztusz-flagekben, stá státusztuszszavakban, vermekben, cí címterü mterületeken tá tárolt informá információ ciókat meg kell ırizni, hogy ké késıbb ismé ismét felhaszná felhasználhassuk azokat. A megı megırzö rzött informá információ ciók jelentik a folyamat kö környezeté rnyezetét, az informá á ció ó k cseré é je jelenti a k ö rnyezetá á t á llí í t á st. inform ci cser rnyezet ll Egyszerő ő esetekben a kö ö rnyezetá Egyszer k rnyezetátállí llítás a a folyamat egy meghatá meghatározott pontjá pontján kö következik be, bonyolult esetekben a program futá futását valamilyen elı elıre nem lá látható tható okbó okból fel kell függeszteni. Az átállí llítást vé végzı gzı eljá eljárásnak gondoskodni kell arró arról, hogy az elmentett informá információ ciók pontosan kerü kerüljenek vissza akkor, amikor a hozzá hozzájuk tartozó tartozó folyamatot ismé ismét aktivizá aktivizáljuk. 131
7.5. Folyamatvezé Folyamatvezérlı rlı mőveletek Statikus folyamatkezelé folyamatkezelés: A korai multiprogramozá multiprogramozású rendszerekben (T.H.E.) az egyidı egyidıben jelen lé lévı folyamatok szá számát maximalizá maximalizáltá lták. Ezé Ezért a PCBPCB-k tá tárolá rolására fix hosszú hosszúságú terü területre volt szü szüksé kség, így azok mindig a memó memóriá riában helyezkedtek el. Az ilyen szervezé szervezésné snél az egyszer aktivizá aktivizált folyamatokat sosem szakí szakítottá tották meg, és ezek új folyamatokat nem generá generáltak. Dinamikus folyamatkezelé folyamatkezelés: lehetı lehetıvé teszi, hogy folyamatokat állí llítsunk elı elı és szü szüntessü ntessünk meg. Ilyenkor elı elıfordulhat, hogy egy futó futó folyamat új folyamatot állí llít elı elı (UNIX). Az elı elıállí llított folyamat vagy ugyanolyan jogokkal rendelkezik, mint az elı elıállí llító vagy csak korlá korlátozott lehetı lehetıségei vannak. A generá generált folyamatok általá ltalában hierarchiá hierarchiába rendezettek (” (”szü szülı-gyerek” gyerek” kapcsolat). 132
66
Folyamatvezé Folyamatvezérlı rlı mőveletek: Folyamatok elı elıállí llítása Folyamatok megszü megszünteté ntetése Attribú Attribútumok olvasá olvasása és megvá megváltoztatá ltoztatása Folyamatok felfü felfüggeszté ggesztése és újraindí jraindítása
133
7.5.1. Folyamat elı elıállí llítás Általá ltalában egy folyamatfolyamat-elı elıállí llító rendszerhí rendszerhívással aktivizá aktivizálható lható, és szorosan illeszkedik a hierarchiá hierarchiába. A futtatá futtatásra elı elıkészí szített folyamat elı elıállí llítása sorá során a kö következı vetkezı mőveleteket vé végezzü gezzük: A PCB elı elıállí llítása. Memó Memóriaterü riaterület alloká allokálása a program és az adatok szá számára. A program betö betölté ltése a futtatá futtatáshoz. Kezdeti paramé paramétereket, forrá forráskorlá skorlátokat hozzá hozzárendeljü rendeljük a folyamatfolyamathoz Az indí indításhoz szü szüksé kséges forrá források alloká allokálása. PCB beá beállí llítása az indí indításhoz. 134
67
7.5.2. Folyamatok megszü megszünteté ntetése Egy folyamat megszü megszünteté ntetésére kü különbö nbözı okokbó okokból kerü kerülhet sor: Önmaga igé igényelt normá normális befejezé befejezést. Végrehajtá grehajtása sorá során valamilyen „nem azonosí azonosítható” tható” hiba keletkekeletkezett. zett. Operá Operátori parancs megszakí megszakította a folyamatot. A lé létrehozó trehozó folyamat ért vé véget (normá (normálisan vagy abnormá abnormálisan). Egy kitü kitüntetett folyamat ké kényszerí nyszerítette ki a befejezé befejezést. Maga a megszü megszünteté ntetés egy folyamatmegszü folyamatmegszünteté ntetés rendszerhí rendszerhívással aktivizá aktivizálható lható.
135
A folyamat megszü megszünteté ntetésének lé lépései: Távolí volítsuk el a PCBPCB-t az aktuá aktuális állapotá llapotának megfelelı megfelelı sorbó sorból és oldjuk fel azokat a kö kötéseket, amelyek ıt valamelyik má másik sorhoz láncoltá ncolták (logikailag kiemeljü kiemeljük a sorbó sorból). Szü Szüntessü ntessünk meg minden „gyermek” gyermek” folyamatot, amelyet az aktuá á lis tevé é kenysé é g á llí í tott elı ı aktu tev kenys ll el . Szabadí Szabadítsuk fel az alloká allokált memó memóriá riát és minden má más lekö lekötött erı erıforrá forrást. Szabadí Szabadítsuk fel a PCBPCB-t.
136
68
7.5.3. Attribú Attribútumok olvasá olvasása és megvá megváltoztatá ltoztatása Amikor mő mőveleteket hajtunk vé végre egy folyamaton, akkor gyakran elı elıfordulhat, hogy adatokat akarunk kiolvasni a PCBPCBbıl, vagy bizonyos érté rtékeket akarunk megvá megváltoztatni. A kis rendszerekben a PCB a folyamat által elé elérhetı rhetı címterü mterületen belü belül helyezkedik el, ezé ezért a vá változtatá ltoztatásokat kö közvetlenü zvetlenül vé végre lehet hajtani. Ha a PCB kö közvetlenü zvetlenül nem érhetı rhetı el, akkor egy PCBPCB-olvasá olvasás (readPCB) ) rendszerhí í v á st alkalmaz az OR. Ilyenkor a teljes read PCB rendszerh PCB egy – a cí címterü mterületen belü belüli – pufferba töltı ltıdik, és a változtatá ltoztatások így hajtható hajthatók vé végre. Más esetekben csak egyes mezı mezık (informá (információ ciók) érté rtéke kerü kerül a címterü mterületen belü belülre (aktuá (aktuális állapot, prioritá prioritás, elhaszná elhasznált CPU idı idı), és a vá változtatá ltoztatások vé végrehajtá grehajtása utá után visszaí visszaírjuk az informá információ ciót. 137
7.5.4. Felfü Felfüggeszté ggesztés és újraindí jraindítás Egyes OROR-k megengedik, hogy egy folyamat sajá sajátmagá tmagát – vagy az általa ellenı ellenırzö rzött folyamatok valamelyiké valamelyikét – felfü felfüggessze egy felfü felfüggeszté ggesztés (suspend) suspend) rendszerparancs segí segítsé tségével. Ilyen igé igény akkor keletkezik, ha a folyamatnak vá várakoznia kell egy másik folyamat eredmé eredményé nyére, valamilyen megszakí megszakítás kö következik be vagy egy idı idıpontra vá várunk a folytatá folytatáshoz. Az így felfü felfüggesztett folyamatot az OR figyeli, és az elı elıírt felté é telek teljesü ü l é sekor az ” alvó” ó” folyamatot felé é breszti egy felt teljes alv fel újraindí jraindítási (wake up) up) rendszerutasí rendszerutasítással.
138
69
8. Az ütemezé temezés A szá számítógépnek meg kell osztania a korlá korlátozottan rendelkezé rendelkezésre álló ó erı ı forrá á sait a folyamatok kö ö z ö tt. ll er forr k Az OR egyik legfontosabb feladata az, hogy korrekt és haté hatékony módon gondoskodjon az erı erıforrá források kiosztá kiosztásáról az igé igénylı nylı folyamatok kö között. Azt a mő mőveletet, amely meghatá meghatározza a sorrendet az újrafelhaszná jrafelhasználható lható erı erıforrá források igé igénybevé nybevételé telére, és kivá kiválasztja ezekbı ezekbıl az aktuá aktuális folyamatot, ütemezé temezésnek nevezzü nevezzük. Az erı erıforrá források kö között kiemelkedı kiemelkedı helyet foglal el a CPU és az operatí í v memó ó ria. operat mem Az ezeké ezekért folytatott verseny rendkí rendkívül kié kiélezett, megszerzé megszerzésüket nehezí nehezíti, hogy a folyamatok ismé ismételten nem folyamodnak értü rtük, futá futásuk alatt mindvé mindvégig felté feltételezik, hogy a rendelkezé rendelkezésükre állnak. 139
Az OR ütemezé temezési straté stratégiá giája nagymé nagymérté rtékben fü függ attó attól, hogy mikor szerez tudomá tudomást a folyamat vá várható rható EF igé igényeirı nyeirıl és hogyan kell azokat kiszolgá kiszolgálni. Ebbı Ebbıl a szempontbó szempontból a folyamatokat kategó kategóriá riákra fogjuk osztani: A batchbatch-folyamatok egy jobjob-ban foglalnak helyet, amelyet mind a felhaszná felhasználó, mind az OR egysé egységes egé egészké szként kezel. Végrehajtá grehajtásuk általá ltalában hosszú hosszú idı idıt vesz igé igénybe, és ez idı idı alatt a felhaszná felhasználó egyszer sem lé lép kapcsolatba a futó futó folyamatokkal. Interaktí Interaktív folyamatok interaktí interaktív terminá terminálró lról kü küldö ldött felhaszná felhasználói igé igényeket elé elégítenek ki. (rö (rövid lefutá lefutás, felhaszná felhasználói parancs) RealReal-time folyamatok eseté esetében a folyamat a rendszeren kí kívül zajlik le, az OR ezt ellenı ellenırzi és irá irányí nyítja. A vé végrehajtá grehajtásra erı erısen behatá behatárolt idı idı áll rendelkezé rendelkezésre. 140
70
Az egyes kategó kategóriá riákra vonatkozó vonatkozó ütemezé temezési straté stratégiá giákat tová tovább oszthatjuk: A hosszú hosszútávú ütemezé temezési straté stratégiá giák helyezkednek el a legmagasabb szinten. Ilyenkor a cé cél az, hogy az OR ellenı ellenırizze azt a sorrendet, amelyben a folyamatok a rendszerbe jutnak. A kö középtá ptávú ütemezé temezési straté stratégiá giák az elı elıállí llított folyamatok kö közül választjá lasztják ki azokat, amelyek jelö jelöltek lehetnek a CPU aktí aktív haszná használatá latához. A kö középtá ptávú ütemezé temezés sorá során az operatí operatív memó memória kiosztá kiosztása a cé cél. A rö rövidtá vidtávú ütemezé temezés helyezkedik el a legalacsonyabb szinten. Ez a mő mővelet hatá határozza meg, hogy hogyan rendeljü rendeljük hozzá hozzá a CPUCPU-hoz az aktí aktív állomá llománybó nyból a folyamatokat. 141
8.1. Ütemezé temezési cé célok A felhaszná felhasznált ütemezé temezési straté stratégiá giák nagymé nagymérté rtékben fü függnek attó attól, hogy milyen cé célt tő tőzünk ki elsı elsıdlegesen: Átereszté teresztés: a lehetı lehetı legtö legtöbb munká munkát vé végezzü gezzük el adott idı idı alatt Átfutá tfutás: a lehetı lehetı leggyorsabban befejezni a munká munkát Válasz: kiszolgá kiszolgálás a legrö legrövidebb idı idın belü belül Korrektsé Korrektség: azonos jellemzı jellemzıjő jobjob-okat korrekt mó módon ütemezni Konzisztencia: kiszá kiszámítható tható módon Forrá Források kezelé kezelése: kiegyenlí kiegyenlítetten, folyamatosan 142
71
Ahhoz, hogy „jó” straté stratégiá giát tudjunk a kitő kitőzött cé célok megvaló megvalósításához szolgá szolgáltatni, a rendszerbe érkezı rkezı folyamatokat kategó kategóriá riákba sorolhatjuk. Ezt bizonyos alapadatok ismereté ismeretében tudjuk megtenni: A folyamat kategó ó riá á ja. kateg ri A folyamat prioritá prioritása. Becsü Becsült futá futási idı idı és a szü szüksé kséges erı erıforrá források. Kapcsolat egy interaktí interaktív terminá terminállal. I/O - igé igények és azok gyakorisá gyakorisága. A kiszolgá kiszolgálásra mennyi ideje vá várakozik a folyamat. Az ütemezé temezési straté stratégiá giák „jóságának” nak” megí megítélésére kü különbö nbözı speciá speciális paramé paramétereket mé mérünk: Várakozá rakozási idı idı (W). Várakozá rakozási sor hossza (S). Várakozá rakozási há hányadok (W / (W+S)). 143
Két lehetı lehetıség van a straté stratégia „jóságának” nak” megí megítélésére: LegrosszabbLegrosszabb- eset vizsgá vizsgálat: azt hatá határozzuk meg, hogy a lehetı lehetı legrosszabb esetben milyen távol kerü kerültü ltünk az elmé elméleti optimum érté rtéktı ktıl. Há Hátrá tránya, hogy nem adja meg a pontos érté rtéket a futtatá futtatáshoz, csak egy olyan felsı felsı becslé becslést szolgá szolgáltat, amely tö többnyire csak nagyon szé szélsı lsıséges esetben kö következik be. Átlagostlagos-elté eltérés vizsgá vizsgálat: azt mondja meg, hogy a mé mért érté rtékek statisztikai jellemzı jellemzıi mennyire té térnek el az optimá optimális érté rtékek statisztikai mé mérté rtékeitı keitıl. Ebben az esetben szü szüksé kségünk van a mé mért paramé paraméterek statisztikai eloszlá eloszlásának ismereté ismeretére. A leggyakrabban mé mért jellemzı jellemzık: várható rható érté rték, szó szórás, variancia. 144
72
8.2. Né Néhány fontos jellemzı jellemzı
1. Prioritá Prioritások
2.
3.
A folyamatokhoz rendelt mé mérıszá szám a tö többiekhez viszonyí viszonyított relatí relatív fontossá fontosságot adja meg. Statikus prioritá prioritás: ha a kezdetben kapott prioritá prioritási érté rték a folyamat élettartama alatt nem vá változik meg. Dinamikus prioritá prioritás: ha a prioritá prioritás aktuá aktuális érté rtéke a stá státuszá tuszának alakulá alakulásával idı idıben vá változik. Megszakí Megszakítható thatóság Az ütemezé temezési straté stratégia olyan, hogy nem engedi meg a megszakí megszakítást. A straté stratégia olyan, hogy megengedi a megszakí megszakítást. Az önkö nköltsé ltség Ilyenkor figyelembe vesszü vesszük a folyamatok kicseré kicserélésére haszná használt idı idıt. 145
8.3. Batch folyamatok ütemezé temezése Amikor egy rendszer batch üzemmó zemmódban kezel egy jobot, jobot, akkor a felhaszná felhasználó a job elkü elküldé ldésével egyidejő egyidejőleg minden informá információ ciót és végrehajtá á si utasí í t á st a rendszer tudomá á s á ra hoz. grehajt utas tudom Attó Attól a pillanattó pillanattól kezdve, hogy a job a rendszerbe kerü került, a felhaszná felhasználónak nincs lehetı lehetısége kapcsolatba lé lépni vele. A batch jobok egyik fontos paramé paramétere a job becsü becsült futá futási ideje, amely egyben korlá korlátké tként is szolgá szolgál a rendszer szá számára. A batch jobok eseté esetében a felhaszná felhasználók által leginká leginkább elvá elvárt cé cél az, hogy az általuk elkü elküldö ldött job a lehetı lehetı leghamarabb átfusson a rendszeren. 146
73
8.3.1. Hosszú Hosszútávú ütemezé temezés A kezdeti prioritá prioritás, a felhaszná felhasználó által adott becslé becslések jó jó lehetı lehetıségegeket adnak az OR szá számára, hogy szignifiká szignifikáns dö dönté ntéseket hozzon má már ezen a szinten is. Az általá ltalános eljá eljárás a kö következı vetkezı: A jobokat egy kö közbü zbülsı lsı tárolá rolási terü területrı letrıl (spool (spool terü terület) input sosorokba állí llítjuk a megadott paramé paraméterek alapjá alapján. Minden jobjob-oszosztálynak egy input sor áll rendelkezé rendelkezésére. A rendszer initiator elnevezé elnevezéső folyamatai vizsgá vizsgáljá lják az input sorokat, és akkor vá választjá lasztják ki vé végrehajtá grehajtásra a jobot, jobot, ha az elsı elsı stepje szá számára az összes igé igényelt erı erıforrá forrás a rendelkezé rendelkezésre áll. Ekkor az erı erıforrá forrásokat hozzá hozzárendeli a stephez, stephez, és megkezdı megkezdıdik a végrehajtá grehajtás. Amikor a folyamat vé végrehajtá grehajtása megindul, akkor egy idı idızítıt (timert) timert) állí llít be a rendszer, ezzel biztosí biztosítva, hogy a tervezett futá futási idı idıt ne lé lépje tú túl a job. 147
8.3.2. Kö Középtá ptávú ütemezé temezés Általá ltalában nem tekintjü tekintjük kü külön lé lépésnek, mivel a jobokat akkor rendeljü rendeljük a memó memóriá riához, amikor minden erı erıforrá forrás a rendelrendelkezé kezésünkre áll és a vé végrehajtá grehajtás is azonnal megindul. Általá ltalában a jobok addig maradnak a memó memóriá riában, amí amíg be nem fejezı fejezıdnek.
148
74
8.3.3. Rö Rövidtá vidtávú ütemezé temezés
Ha az operatí operatív memó memória felszabadul, akkor a ké készenlé szenlétben lé lévı folyamatok kö közül vá válogatunk. Ha egy folyamat beindult, akkor mindaddig folytató folytatódik, amí amíg a következı vetkezı esemé események valamelyike be nem kö következik: A folyamat vé végeté getér. A folyamat önké nként felfü felfüggeszti magá magát. I/O I/O-utasí utasításra van szü szüksé ksége, vagy olyan szolgá szolgáltatá ltatást ké kér, amely vá várakozá rakozást igé igényel. Magasabb prioritá prioritású folyamat miatt megszakí megszakítás kö következik be.
149
A rö rövid tá távú ütemezé temezés straté stratégiá giái: FirstFirst-In FirstFirst-Out (FIFO) straté stratégia: az egyik leggyakrabban haszná használt batch vezé vezérlı rlı eljá eljárás. Minden jobnak azonos prioritá prioritást biztosí biztosítunk. A beé beérkezé rkezés sorrendjé sorrendjében lesznek vé végrehajtva. Shortest Job Next (SJN): elı elınyben ré részesí szesíti azokat a jobokat, jobokat, amelyeknek rö vé rövidebb a becsü becsült végrehajtá grehajtási ideje. Hátrá tránya: „éhenhal „éhenhaláási” si” jelensé jelenség. Egyik legismertebb technika a statikus prioritá prioritással rendelkezı rendelkezı eljá eljárások kö közül. A dinamikus prioritá prioritási straté stratégiá giák: a jobok „öreged „öregedéésével” vel” egyidejő egyidejőleg vá változtatjá ltoztatják a prioritá prioritást. Így elı elıbbbb-utó utóbb minden job végrehajtá grehajtásra kerü kerül. Shortest Remaining Time Next (SRTN): a megszakí megszakításos rendszerekben ső az egyik sőrőn haszná használt techniká technikák kö közül legismertebb. Mindig az a job kerü kerül vissza, amelyiknek a legkevesebb megmaradt ideje van. 150
75
8.4 Interaktí Interaktív folyamatok ütemezé temezése Az interaktí interaktív folyamatok olyan tevé tevékenysé kenységeket hajtanak vé végre, amelyeket interaktí interaktív terminá terminál mellett ülı felhaszná felhasználók kö követelnek meg. Az interaktí interaktív folyamatok eseté esetében az a problé probléma, hogy a folyamat beindí beindításakor általá ltalában semmit sem tudunk az igé igényelt forrá forrásokró sokról. Ennek az a kö következmé vetkezménye, hogy az ilyen tí típusú pusú folyamatokat az indulá indulás pillanatá pillanatában azonosan kezeljü kezeljük. Amennyiben a folyamat má már fut, a mú múltbeli viselkedé viselkedésükbı kbıl pró próbálunk informá információ cióhoz jutni ahhoz, hogy a jö jövıbeli igé igényeiket becsü becsülni tudjuk. A legfontosabb cé cél: az interaktí interaktív felhaszná felhasználó gyors és kö következetes választ vá vár az ütemezı temezıtıl minden egyes igé igényé nyének teljesí teljesítésekor. A hosszú hosszútávú ütemezé temezésnek itt nincs nagy jelentı jelentısége: egy újonnan létrehozott folyamatot ugyanis normá normális kö körülmé lmények kö között azonnal elfogadunk. 151
Mivel a legfontosabb az, hogy az ütemezı temezı gyors vá választ tudjon adni a jelentkezı jelentkezı igé igények kielé kielégítésekor, ezé ezért a diszpé diszpécser programnak biztosí biztosítania kell azt, hogy a CPU hozzá hozzáférhetı rhetı legyen minden process szá számára és a vá váltá ltásnak is olyan ső sőrőnek kell lennie, hogy egyetlen folyamat se vá á rakozzon hosszú v hosszú ideig a kiszolgá kiszolgálásra. Az ilyen tí típusú pusú ütemezé temezési feladatokat az ún. idı idıszeletek elvé elvének felhaszná felhasználásával vé végzi az ütemezı temezı program. Ennek lé lényege az, hogy minden folyamat arra az idı idıre, amikor aktí aktívvá vvá válik, kap egy idı idıszeletet a kiszolgá kiszolgálásra. Ha felhaszná felhasználta a rendelkezé rendelkezésre álló lló idı idıt, akkor felfü felfüggesztjü ggesztjük a futá futást és átadjuk a helyet a kö következı vetkezı folyamatnak. Az, hogy mekkora idı idıt biztosí biztosítunk egy folyamat szá számára, az fü függ a tekintett tevé tevékenysé kenység jellemzı jellemzıitı itıl. 152
76
8.4.1.Kö 8.4.1.Középtá ptávú ütemezé temezés A kö központi tá tár idı idıszeleté szeletének kiosztá kiosztásáért áért a középtá ptávú ütemezé temezés a felelı felelıs. A rendelkezé rendelkezésre bocsá bocsátott idı idı általá ltalában né néhány má másodperc és 11-2 perc kö között vá változik. 8.4.2. Rö Rövidtá vidtávú ütemezé temezés A CPU idı idıszeleté szeletének kiosztá kiosztását a rö rövidtá vidtávú ütemezé temezés segí segítsé tségével végezzü gezzük. A biztosí biztosított idı idıszelet nagysá nagyságrendje általá ltalában 100 millimillisecundumtó secundumtól né néhány má másodpercig terjed. A folyamatokat vagy prioritá prioritás alapjá alapján vá választjuk vagy egyszerő egyszerően a ké készenlé szenléti sorban elfoglalt helyü helyük hatá határozza meg a belé belépések sorrendjé sorrendjét. 153
Rövidtá vidtávú ütemezé temezési straté stratégiá giák Körkö rkörös ütemezé temezés eseté esetén a ké készenlé szenléti állapotban lé lévı folyamatok PCBPCB-it egy egyszerő egyszerő sorba fő főzzü zzük fel. Minden folyamathoz egy rögzí gzített idı idıszelet tartozik. Amikor a CPU felszabadul, akkor a sor elejé elején lé lévı folyamatot vá választjuk ki futá futásra. Amint az felhaszná felhasználta a rendelkezé rendelkezésére bocsá bocsátott idı idıt, megszakí megszakítjuk és a sor vé végére állí llítjuk. Prioritá Prioritásos mó módszerek eseté esetén a folyamatok prioritá prioritásuk szerint vanvannak csoportokba sorolva. A csoportokon belü belül általá ltalában kö körkö rkörös ütemezé temezést alkalmazunk. A prioritá prioritásos eljá eljárások egyik jellemzı jellemzıje, hogy a kü különbö nbözı prioritá prioritásokhoz különbö nbözı idı idıszeleteket rendelü rendelünk. Általá ltalános szabá szabály, hogy az alacsonyabb prioritá prioritású folyamatokhoz nagyobb idı idıszeletet rendelü rendelünk. („ („igazsá igazságossá gosság elve” elve”) 154
77
Néhány prioritá prioritási straté stratégia Öregí regítési technika alkalmazá alkalmazása: a folyamatfolyamat-sorokat idı idıszakonké szakonként felü felülvizsgá lvizsgáljuk. Megnö Megnöveljü veljük a prioritá prioritását azoknak a folyamatokfolyamatoknak, nak, amelyekre az elmú elmúlt idı idıszakban nem kerü került vezé vezérlé rlés. Visszacsatolá Visszacsatolás: az éppen befejezett folyamat átkerü tkerül egy alacsoalacsonyabb prioritá prioritású szintre. Önzı nzı ütemezé temezési technika: (Kleinrock) Kleinrock) azokat a folyamatokat részesí szesíti elı elınyben, amelyeket má már elfogadtunk a feldolgozá feldolgozásra. „Tisztessé Tisztességes kiosztá kiosztás” módszere: az egyes osztá osztályokhoz rendelü rendelünk egyenlı egyenlı mennyisé mennyiségő CPU idı idıt az osztá osztályban elhelyezkedı elhelyezkedı folyamatok szá számától fü függetlenü ggetlenül. Ezutá Ezután az eljá eljárás úgy osztja a prioritá prioritásokat a csoportokhoz, hogy az alacsony CPU idı idıvel rendelkezı rendelkezı folyamatok magas prioritá prioritást kapjanak. 155
9. Konkurens folyamatok interakció interakciói A CPU és az operatí operatív memó memória csak ké két kitü kitüntetett erı erıforrá forrás. Az ütemezé temezés sorá során a tö többi rendelkezé rendelkezésre álló lló forrá forrás felhaszná felhasználható lhatósága limitá limitálva van. Emellett a folyamatok sem fü függetlenek egymá egymástó stól. Az interakció interakció jelensé jelenségét általá ltalánosan vizsgá vizsgálva ké két tí típust különbö nbözteztetünk meg: Akaratlan: Az erı erıforrá források osztott haszná használata eseté esetén Akaratlagos: a kommuniká kommunikáció cióból eredı eredı interakció interakció eseté esetén A kü különbö nbözı típusú pusú interakció interakciók kü különbö nbözı problé problémákhoz vezethevezethenek: nek: Holtpont Kölcsö lcsönös kizá kizárás 156
78
9.1. A holtpont Egyré Egyrészt akkor fordulhat elı elı az ütemezé temezés sorá során, ha a folyamatok egy adott halmazá halmazában minden egyes elem lekö leköt né néhány erı erıforrá forrást és ugyanakkor vá várakozik is né néhányra. Ha ilyen esetben a folyamatok egy ré része olyan erı erıforrá forrásokra vá várakozik, amelyet mások lefoglalnak, akkor a tevé tevékenysé kenységek „megmerevedhetnek” megmerevedhetnek”. („útkeresztez ıdés”!) „útkeresztezı Holtpont keletkezhet kommuniká kommunikáció ció eseté esetén is: ha a folyamatok egymá egymás informá információ cióira vá várnak, mikö miközben nem tudnak elı elırehaladni sajá saját feldolgozá feldolgozásukban. Különösen nehé nehéz felfedezni a holtpontot osztott kö környezetben. Nagyon kevé kevés OR garantá garantálja, hogy az ütemezé temezés sorá során holtpont nem fordulhat elı elı. A megbí megbízható zható megoldá megoldás rendkí rendkívül drá drága. 157
9.1.1 A holtpont bekö bekövetkezé vetkezésének felté feltételei (Coffman (Coffman,, 1971): Kölcsö lcsönös kizá kizárás Erı Erıforrá források lefoglalá lefoglalása Megszakí Megszakítás nem megengedett Visszaté Visszatérı igé igények Ezeknek a felté feltételeknek egyidejő egyidejőleg kell fenná fennállni! Így az egyik lehetsé lehetséges mó módszer a holtpont elleni vé védelemhez, hogy ezt az egyidejő egyidejőséget igyekszü igyekszünk kikü kiküszö szöbölni.
158
79
9.1.2. A holtpont megelı megelızésének lehetsé lehetséges straté stratégiá giái Holtpont megelı megelızése: célja, hogy úgy ütemezzü temezzük a kü különbö nbözı erı erıforrá forrásokat, hogy a holtpont bekö bekövetkezé vetkezésének felté feltételei kö közül legalá legalább egy ne teljesü teljesüljö ljön. (OR(OR-k tervezé tervezésénél!) Holtpont elkerü elkerülése: megkí megkíséreli azt biztosí biztosítani, hogy sohase alloká allokáljuk a forrá forrásokat oly mó módon, hogy a rendszer „bizonytalan” bizonytalan” állapotba kerü kerüljö ljön. Holtpont érzé rzékelé kelése: a bekö bekövetkezett holtpont detektá detektálása nem könnyő nnyő feladat! Holtpont megszü megszünteté ntetése: ha a holtpontot valamilyen mó módon érzé rzékeltü keltük, akkor az OR egyik legfontosabb feladata a vá várakozá rakozási kör valamilyen mó módon tö törté rténı lerombolá lerombolása. 159
9.2. A kö kölcsö lcsönös kizá kizárás Egyes erı erıforrá források – termé természetü szetükné knél fogva – olyan tulajdonsá tulajdonságúak, hogy egy adott idı idıpillanatban csak egy tevé tevékenysé kenység szá számára állnak rendelkezé rendelkezésre. Ha tehá tehát egy ilyen EF éppen haszná használatban van, akkor az érte jelentkezı jelentkezı újabb folyamatoknak vá várakozni kell. Ha egyidı egyidıben tö több igé igény is érkezik, akkor az OR felelı felelıs azé azért , hogy a kiosztá kiosztás korrekt és haté hatékony legyen. A konkurens folyamatok által igé igényelt forrá forrásokat ké két csoportra osztjuk: A rendszer által ellenı ellenırzö rzött forrá források (CPU, memó memória, I/O I/O-készü szülékek és állomá llományok) A felhaszná felhasználó által ellenı ellenırzö rzött forrá források (osztott elé elérés) 160
80
9.3 Folyamatok kö közötti kommuniká kommunikáció ció (Interprocess communication IPC) Amennyiben egy folyamatban azt tervezzü tervezzük, hogy kooperá kooperálni akarunk má más folyamatokkal, akkor lé létre kell hozni egy kö közös terü ü letet (taskot taskot), ), hogy az informá á ció ó cseré é t megkö ö nnyí í tsü ü k. ter ( inform ci cser megk nny ts A tevé tevékenysé kenységek kö közötti kommuniká kommunikáció ció egyre nagyobb szerepet kap. Az alá alábbi modellek kö közül valamelyiket be kell építeni: Többszö bbszörös hozzá hozzáféréső memó memóriakezelé riakezelés Üzenetá zenetátadá tadás techniká technikája (lassabb, mé mégis szé szélesebb ská skálán haszná használjuk.) .) juk 161
9.3.1. Az üzenetá zenetátadá tadással kapcsolatos problé problémák. Szinkronizá Szinkronizálás: a kommuniká kommunikáció ciónak a legegyszerő legegyszerőbb formá formája, amikor egyetlen bit informá információ ciót cseré cserél ké két folyamat. Esemé Esemény bekö bekövetkezé vetkezésérıl tá tájékoztat, vagy tudatja, hogy a vé végrehajtá grehajtásban egy bizonyos pontig eljutott A szinkronizá szinkronizáció ciónak ké két tí típusá pusát kü különbö nböztetjü ztetjük meg: A folyamat „alszik” alszik” A folyamat a felfü felfüggeszté ggesztés állapotá llapotában van, mert egy jelre várakozik. Közvetlen kommuniká kommunikáció ció üzenetek kü küldé ldésével és fogadá fogadásával (A folyamatok kö közötti kö közvetlen informá információ ciócseré cserének leggyakrabban alkalmazott mó módja. Üzenetkü zenetküldı ldı: send, send, üzenetfogadó zenetfogadó: receive) receive) Közvetlen kommuniká kommunikáció ció csatorna haszná használattal (write, write, read, read, pipe) pipe) Közvetett kommuniká kommunikáció ció (mailbox) mailbox) 162
81
10. Megszakí Megszakítások, I/O - kezelé kezelés Megszakí Megszakításokkal segí segíthetjü thetjük a ké készü szülékek kezelé kezelését, jobb kihaszná kihasználásukat. Hardware megszakí megszakítás Software megszakí megszakítás (folyamat által vezé vezérelt) Ahhoz, hogy vissza tudjunk té térni a felfü felfüggesztett folyamathoz, a környezetet meg kell jegyeznü jegyeznünk! Ha tö többfé bbféle megszakí megszakítás lehetsé lehetséges egy idı idıben, akkor a helyzet bonyoló ó dik. bonyol
Bármilyen megszakí megszakítás tö törté rténik, az alapkoncepció alapkoncepció változatlan: Mentsü Mentsük el a vé végrehajtá grehajtási cí címet. Mentsü Mentsük el a stá státuszinformá tuszinformáció ciókat. Adjuk át a vezé vezérlé rlést a megszakí megszakítás-kezelı kezelınek 163
10.1 A megszakí megszakítások tí típusai A szá számítógépek nem mindig rendelkeznek az összes ilyen megszakí megszakítástí stípussal. A leggyakrabban elı elıforduló forduló megszakí megszakítások: Megszakí Megszakítás I/OI/O-mővelet befejezé befejezése miatt Riadó Riadó-megszakí megszakítás TimerTimer-megszakí megszakítás ProgramhibaProgramhiba-megszakí megszakítás Rendszermegszakí Rendszer megszakítás Készü szülékhibakhiba-megszakí megszakítás
Minden rendszer szerves része.
164
82
Ha a megszakí megszakításokat má más szempontok szerint osztá osztályozzuk: Folyamatbefejezé Folyamatbefejezési (pl.: I/O, timer) timer) Szolgá Szolgáltatá ltatásigé sigénylı nylı (rendszer, riadó riadó) Hibakezelé Hibakezelési (program, hardware)
165
10.2 Megszakí Megszakítások rendezé rendezése, maszkolá maszkolás Minden olyan rendszer, amely megszakí megszakításokat kezel, egyes típusokat elı ı nyben ré é szesí í t. el r szes Erre akkor van szü szüksé kség, ha ké két megszakí megszakításjel érkezik egyszerre. Egyiknek prioritá prioritással kell rendelkezni. Ilyenkor a megszakí megszakítások vagy sorosan vagy egymá egymásba ágyazva hajtó hajtódnak vé végre Idı Idınké nként elı elıfordulhat, hogy bizonyos megszakí megszakításokat nem akarunk engedé engedélyezni. Ilyenkor megszakí megszakítás maszkolá maszkolást haszná használunk.
166
83
A megszakí megszakítás-maszkolá maszkolás techniká technikái: Megszakí Megszakítás-maszkolá maszkolási regiszter: ilyenkor a regiszterben egyegy-egy bit van egy megszakí í t á shoz (vagy egy megszakí í t á scsoporthoz) megszak megszak rendelve. Prioritá Prioritási szint beá beállí llítása a programstá programstátusztusz-szó szóban. Ilyenkor csak azokat a megszakí megszakításokat fogadjuk el, amelyek e szint felett vannak. Ehhez a megszakí megszakításokhoz prioritá prioritási szinteket kell rendelni) Nem minden megszakí megszakítás maszkolható maszkolható. Pl. rendszermegszakí rendszermegszakítások ilyenek.
167
10.3 Input és output ké készü szülékek kezelé kezelése A szá számítógépek rendelkeznek azzal a lehetı lehetıséggel, hogy ké képesek ellenı ellenırizni és kommuniká kommunikálni azokkal a ké készü szülékekkel, amelyekkel össze vannak kö kötve. A kezdeti idı idıszakban: I/O– I/O–készü szülékekké kekként „testreszabott” testreszabott” utasí utasításokat építettek be a gé gépi kó kódú utasí utasítások kö közé. Ez ma má már a kapcsolható ó perifé é riá á k nagy szá á ma miatt nem alkalmazható ó . kapcsolhat perif ri sz alkalmazhat Ma: I/O - interface techniká technikát alkalmaznak. Enné Ennél a techniká technikánál a készü regisztereken keresztü érik el. (Minden szülékeket keresztül készü szülékregiszterhez egy egé egész szá számot rendelü rendelünk, amely cí címkeké mkeként haszná használható lható. Ezt a szá számot csatornaszá csatornaszámnak (portszá (portszámnak) nevezzü nevezzük.
168
84
Mivel a regiszterekben cí címeket tá tárolunk, ezé ezért ezekkel cí címeket lehet elfoglalni a memó memóriá riában. Ez az I/O terü terület, amely általá ltalában kü különbö nbözik az egyé egyéb memó memóriariaterü területektı letektıl (De lehet velü velük kö közös is: ilyenkor beszé beszélünk memó memóriá riába ágyazott – memory mapped – I/OI/O-ról). Ebben az esetben nincs szü szüksé kség kü külön I/O utasí utasításokra, hanem memó ó riá á ba í r ó olvasó ó utasí í t á sokat alkalmazunk a ké mem ri olvas utas készü szülékregiszkregiszterekbe tö törté rténı írásrasra-olvasá olvasásra. Fontos elı elınye ennek a techniká technikának, hogy az adattranszfer mő mőveletek mellett aritmetikai és logikai mő mőveletek is vé végezhetı gezhetık a tartalmakon. A mó módszer há hátrá tránya viszont az, hogy a terü terület nem élvezi a speciá speciális utasí utasítások vé védelmé delmét, így a vé véletlen hibá hibák való valószí színősége megnı megnı. 169
Attó Attól fü függı ggıen, hogy milyen az I/O ké készü szülék tí típusa a ké készü szülékek kezelé kezelésére kü különbö nbözı straté stratégiá giákat alkalmazunk:
Egyszerő Egyszerő I/O – straté stratégia vagy programozott straté stratégia (kis(kis- vagy közepes mé mérető rető szá számítógépekkel): az I/O mő mőveleteket arra haszná használjuk, hogy az átvinni szá szándé ndékozott informá információ ció egy egysé egységét a ké készü szülékre átvigyü tvigyük (vagy onnan áthozzuk).
170
85
Blokk átvitel (kis(kis- ill. kö közepes szá számítógépekné peknél): olyan készü szülékekné keknél haszná használjuk, amelyek ké képesek blokkokat is fogadni nagy átviteli sebessé sebesség mellett. (Ilyenek a má mágneslemezek.) Ilyenkor az I/O inteface szerepé é t egy I/O controller tö szerep tölti be, amely elegendı elegendı tárterü rterülettel és logikai áramkö ramkörrel rendelkezik ahhoz, hogy az egé egész átviendı tviendı blokk mozgá mozgását ellenı ellenırizni tudja. Ilyenkor a controller kö közvetlen kapcsolatban van a memó memóriá riával. Ezt nevezik kö ö zvetlen elé é r é si techniká á nak (Direct Access Memory = k el technik DMA)
171
I/O – processzorok haszná használata (nagy szgszg-ken): ken): Ilyenkor a szá á m í t ó g é pek egy speciá á lis cé é l ú processzorral vannak felszerelve, sz speci c amely alkalmas utasí utasításokat adhat a kö közvetlen I/O mő mőveletekhez. Általá ltalában ké készü szülékcsoportonké kcsoportonként processzort.
haszná használunk
egy
ilyen
A processzorok felé felépítése olyan, hogy csak korlá korlátozott szá számú utasí utasítást „értenek „értenek meg” meg”, de azokat nagy sebessé sebességgel hajtjá hajtják vé végre. Szá Számos olyan ké készü szülék van, amely az átvitt adatok tá tárolá rolására átmeneti terü területet haszná használ fel, mielı mielıtt azokat a memó memóriá riában véglegesen elhelyezi. Egy jellemzı jellemzı példa a billentyő billentyőzet kezelé kezelése: itt a ké készü szülékrı krıl érkezı rkezı jel egy átmeneti pufferbe kerü kerül, és a ké készü szülék azonnal ké készen áll a következı vetkezı karakter fogadá fogadására. 172
86
Az I/O mő mőveletek vé végrehajtá grehajtásakor a rendszernek tudni kell, hogy egy új adatá adatátvitel elı elıtt a ké készü szülék rendelkezé rendelkezésre állll-e az adatá adatátvitelre. Egyszerő Egyszerőbb ké készü szülékek eseté esetén ezt a ké készü szülékvá kválasztá lasztás techniká technikájával példá á k meg (device device polling). ). Ilyenkor a CPU idı ı nké é nt ld ( polling id nk megvizsgá megvizsgálja a stá státuszé tuszérté rtékeket annak eldö eldönté ntésére, hogy az aktuá aktuális I/O mő mővelet befejezı befejezıdötttt-e. Ez az eljá eljárás nem haté hatékony. A má másik technika az I/O befejezé befejezési megszakí megszakítás, amikor a mő mővelet befejezé befejezése utá után egy megszakí megszakítás jelet kü küldü ldünk az OR szá számára.
173
10.4 Órák és idı idızítık Az órák és a kü különbö nbözı idı idızítık (timerek) lé lényegé nyegében hardware és software mechanizmusok az idı idı mérésére. A hardware órák legtö legtöbbje: há hálózati óra. A programozható programozható órák: egy szá számlá mláló regiszterrel rendelkeznek, amelynek tartalma meghatá meghatározott idı idıközönké nként csö csökkenthetı kkenthetı. Amikor a tartalma zé zérus lesz, akkor egy megszakí megszakítás generá generálódik. Az órák meghajtá meghajtása az óra ütemek segí segítsé tségével tö törté rténik. Az óra ütem egy jel, amelyet vagy rö rögzí gzített vagy vá változó ltozó idı idıszakonké szakonként bocsá bocsát ki a hardware óra. Azt az idı idıintervallumot, amely ké két egymá egymást kö követı vetı ütem kö között eltelik, az óra felbontá felbontásának nevezzü nevezzük. 174
87
A timerek segí segítsé tségével szá számos OR – felhaszná felhasználó – igé igény kelé kelégíthetı thetı: A napi idı idı kezelé kezelése (napi óra, dá dátum) Rendszerfolyamatok figyelé figyelése (idı (idıtúllé llépési intervallum) Folyamatok felfü felfüggeszté ggesztése egy megadott idı idıszakra Folyamat indí indítása egy meghatá meghatározott idı idıpont bekö bekövetkezé vetkezésekor Elı Elıfordulhat az, hogy az idı idızítıhöz rendelt szolgá szolgáltatá ltatást meg kell szakí szakítani. (Aktí (Aktív-e a folyamat? Ellenı Ellenırizni kell!) Mivel egy multiprogramozható multiprogramozható környezetben egyidı egyidıben tö több megmegmegszakí megszakítás is érkezhet, – és ezeket a lehetı lehetı leggyorsabban ki kell elé elégíteni – ezé ezért nem lehetsé lehetséges, hogy minden megszakí megszakításigé sigényhez külön órát rendeljü rendeljünk. 175
Ilyenkor a beé beérkezı rkezı igé igényeket egy idı idızítı sorba (timer queue) queue) helyezzü helyezzük el. Egy ilyen elemnek tartalmaznia kell: Pointert a sor kö következı vetkezı elemé elemére. Idı Idıparamé paraméter érté rtéket. Az idı idıponthoz rendelt folyamat PCB – jének címét. Pointert a megkí megkívánt mő mőveletet vé végzı gzı eljá eljárás elejé elejére. Az igé igény tí típusá pusát.
176
88
A sorban az elemeket a megjelö megjelölt idı idıparamé paraméter szerint nö növekvı vekvı sorrendben helyezzü ü k el. helyezz Minden olyan megvizsgá megvizsgáljuk elemné elemnél, ahol mőveleteket.
idı idıpontban, amikor a való valós idı idıt tová továbblé bbléptetjü ptetjük, a sorban elhelyezett elemeket, és minden olyan a beá beállí llított idı idıt tú túllé lléptü ptük, vé végrehajtjuk a kijelö kijelölt
Mivel az igé igényelt idı idıpontok mindig az aktuá aktuális idı idıpontra vonatkoznak, ezé ezért sarkalatos ké kérdé rdés, hogy hogyan tudjuk megoldani – az aktuá aktuális idı idıpont vá változá ltozásával egyidejő egyidejőleg – az idı idızítı sor elemeiben elhelyezett idı idıpontok aktualizá aktualizálását. Ugyancsak érdekes ké kérdé rdés, hogy egy má már lé létezı tezı idı idı–sorhoz hogyan csatolunk új elemet, ill. hogyan tö törlü rlünk abbó abból elemet.
177
11. Ké Készü szülékek kezelé kezelése Az OR szolgá szolgáltatá ltatásai kö közül az egyik legjelentı legjelentısebb az a tá támogatá mogatás, amelyet a rendszer az I/O I/O-készü szülékek kezelé kezelése sorá során vé végez. A korai rendszerekné rendszereknél ez nem volt szá számottevı mottevı. A mai tö többfelhaszná bbfelhasználós OROR-k eseté esetében: minden ké készü szülék teljes ellenı ellenırzé rzése a rendszeren belü belül tö törté rténik. Emellett az OROR-nek kell figyelni: A I/OI/O-készü szülékekre vá várakozó rakozó folyamatokat Az egyes befejezé befejezéseket Ütemeznie kell a soron kö következı vetkezı I/O I/O-mőveletet Végre kell hajtania a kü különbö nbözı olyan vá változá ltozásokat, amelyeket az I/O O esemé é nyek okoznak. I/ esem Ezt a feladatot – minden egyes I/O ké készü szülékre – a készü szülékmeghajtó kmeghajtó program (device driver) vé végzi. 178
89
11.1. Az I/O - készü szülékek jellemzı jellemzıi Az I/O I/O-készü szülékeket alapvetı alapvetıen há három csoportba oszthatjuk: Tároló roló típusú pusú készü szülékek Mágneses tí típusú pusú készü szülékek (má (mágnesszalagok, má mágnesgneskazettá kazetták, má mágneslemezek ) Optikai tá tároló rolók Terminá Terminálok RSRS-232 soros interfaceinterface-szel Memó Memóriá riába beá beágyazott ké képernyı pernyı segí segítsé tségével kapcsoló kapcsolódnak Billentyő Billentyőzet, egé egér Nyomtató Nyomtatók Tős Tintasugaras Lézer 179
11.2 Készü szülékmeghajtó kmeghajtók Az OROR-k legtö legtöbbjé bbjében azok az utasí utasítások, amelyek egy adott tí típusú pusú I/O I/O-készü szülék elé elérésével, annak ellenı ellenırzé rzésével foglalkoznak, egy programegysé programegységben vannak összegyő sszegyőjtve, amelyet készü szülékmeghajtó kmeghajtónak nevezü nevezünk. Az OROR-nek azt a részé szét, amely a teljes I/OI/O-kezelé kezelést tartalmazza I/O részrendszernek nevezzü nevezzük. Az OROR-k ké kétfé tféleké leképpen kezelik a meghajtó meghajtókat: A meghajtó ó k a kernel ré é szei meghajt r A meghajtó ó k fü ü ggetlen modulokké meghajt f modulokként csatlakoznak a rendszerhez. Szabvá Szabványos csatlakozá csatlakozási felü felület eseté esetén haszná használható lhatók az un. készü szülékfü kfüggetlen meghajtó meghajtók. (pl. UNIX, amely karaktertí karaktertípusú pusú és blokktí blokktípusú pusú készü szülékeket ismer. 180
90
11.3 InterfaceInterface-ek és jellemzı jellemzıik A ké készü szülék és a szá számítógépes rendszer tö többi ré része kö között a kapcsolatot az I/O interface szolgá szolgáltatja. Tí Típusai: Soros és pá párhuzamos interface, I/O controller Képes kö közvetlen memó memória (DMA) elé eléréső adatá adatátvitelre. Támogatja azt, hogy egy logikai ké készü szülékhez tö több fizikai egysé egység is tartozhat. Támogatja az átlapolt mő mőveletek alkalmazá alkalmazását (lemezen keresé keresés kö közben egy má másik meghajtó meghajtó adatokat ír nyomtató nyomtatóra.)
I/O processzorok (csatorná (csatornák). (sajá (saját gé gépi kó kódú nyelve van. A csatornaprogram megnyitá megnyitása egy start I/O – SIO – utasí utasítással törté rténik. A csatornaprogram csatornacsatorna-parancsokkal – channel command word – kommuniká kommunikál) 181
11.4 Programozá Programozási techniká technikák driverek írásához Bármilyen techniká technikát haszná használunk a meghajtó meghajtók programozá programozására a készü szülékekhez rendelt adatokat egy I/O control blokkba kell elhelyezni. A helyzetet az bonyolí bonyolítja, hogy miné minél haté hatékonyabban akarjuk kezelni a ké készü szülékeket, anná annál tö több adatot kell tá tárolnunk a control blokkban. Ettı Ettıl viszont az algoritmusok is bonyolultabbá bonyolultabbá válnak. Néhány lehetsé lehetséges adatot sorolunk fel a kö következı vetkezıkben a control blokkban tá tárolható rolható adatok kö közül: készü szülék né név, ~ cí cím, ~ tí típus, csatorna szá szám, ~ cí cím, megszakí megszakítási vektor cime, cime, megszakí megszakítás kezelı kezelı címe, open, open, close, close, start, cancel szubrutin cí címe, puffer cí címek, ~ mé méretek… retek… 182
91
Techniká Technikák A polling technika (egyszerő (egyszerő környezetben, egyfelhaszná egyfelhasználós ORORekné eknél) Az OR mindig megszó megszólítja az adott ké készü szüléket mielı mielıtt a következı vetkezı I/O I/O-utasí utasítást kiadná kiadná! Megszakí Megszakítási technika (tö (többfelhaszná bbfelhasználós rendszerek is) Ké Készü szülék megszakí megszakítás kezelı kezelıt kell beé beépíteni a meghajtó meghajtó programba. Pufferek alkalmazá alkalmazása • Blokktechnika (karakter tí I/O Blokk-pufferelé pufferelési típusú pusú I/Okészü szülékekné keknél) • Körkö rkörös lista („ („győ győrőpuffer” puffer”) • Kettı Kettıs pufferezé pufferezési technika (egy ké készü szülékkezelı kkezelı szubrutinnak több optimalizá á l á si felté é telt kell kielé é g í teni.) optimaliz felt kiel Cache haszná á lata haszn • HardwareHardware-cache • SoftwareSoftware-cache 183
11.5 A meghajtó meghajtók ré részfeladatai Elı Elıkészü szület az I/O I/O-mőveletre
• Fel kell sorolni azokat a paramé paramétereket, amelyekkel a meghajtó meghajtót mőködtetni akarjuk. (Ezek egy ré része az OROR-hez, hez, maá maásik része a ké készü szülékhez kapcsoló kapcsolódik.)
Az I/OI/O-mővelet megindí megindítása
• Engedé Engedélyezzü lyezzük a megszakí megszakítást az adott ké készü szülék szá számára. Innentı Innentıl mindent a megszakí megszakítás kezelı kezelı végez el. • Speciá Speciális start inputinput-output (SIO) utasí utasítás kerü kerül kiadá kiadásra. Ekkor az I/O parancs pontosan tartalmazza azokat a paramé paramétereket, amelyekkel a SIO vé végre tudja hajtani az I/OI/O-t. 184
92
Megszakí Megszakítás szolgá szolgáltatá ltatások
• A megszakí megszakítás vé végrehajtá grehajtásához az informá információ ciók az I/O kontrollkontroll-
blokbó blokból kapható kaphatók meg. Fontos, hogy a megszakí megszakításkezelı skezelınek a vezé é rlé é s á tvé é tele elı ı tt a kö ö rnyezet megı ı rzé é s é r ı l gondoskodnia vez rl tv el k meg rz kell.
Hibaé Hibaérzé rzékelé kelés és – elhá elhárítás
• Különbö nbözı készü szülékekné keknél kü különbö nbözı – tipikus – hibá hibák
fordulhatnak elı elı. • A keletkezett hibá hibák elhá elhárítása is nagyon vá változatos lehet. (Csak hibajelzé hibajelzéstı stıl a hiba teljes felgö felgöngyö ngyölítéséig.)
185
I/OI/O-mővelet lezá lezárása
• A vezé vezérlé rlés visszaadá visszaadása elı elıtt né néhány tisztogatá tisztogatási feladatot el
kell vé végezni. (hibakó (hibakód beá beállí llítás, ké készü szülék foglaltsá foglaltság átállí llítása, megszakí megszakítások feloldá feloldása, stb.)
I/OI/O-mővelet megszakí megszakítása • Sőrőn elı elıforduló forduló lehetı lehetıség (papí (papír begyő begyőrıdése). • Karakter títípusú pusú mőveletné veletnél egyszerő egyszerően visszaté visszatérünk a hí hívó folyamathoz. • Blokktí Blokktípusú pusú mőveletekné veleteknél megkí megkíséreljü reljük visszaá visszaállí llítani a mővelet megkezdé megkezdése elı elıtti állapotot. • A kö környezet visszaá visszaállí llításáról mindké mindkét esetben gondoskodni kell. 186
93
11.6 I/O - ütemezé temezés Egyfelhaszná Egyfelhasználós rendszerekné rendszereknél ez nagyon egyszerő egyszerő. Többfelhaszná bbfelhasználós rendszerekné rendszereknél bonyolultabb: I/O I/O-sorba állí llítjuk, mely strukturá strukturálisan lehet:
az
igé igényeket
Egyszerő Egyszerő I/O I/O-sor Többszö bbszörös I/O I/O-sor (ké (készü szülékenké kenként kü külön sor) A ké készü szülékütemezé temezés techniká technikái: FIFO (a legelterjedtebb technika) Prioritá Prioritásokon alapuló alapuló straté stratégia (Real(Real-time rendszerekben) A legrö legrövidebb keresé keresési idı idı alapjá alapján mő mőködı eljá eljárás (má (mágnesgneslemezek eseté esetében) 187
12. Állomá llományok kezelé kezelése A modern OROR-ek egyik legfontosabb feladata a felhaszná felhasználók által összegyő sszegyőjtö jtött informá információ ciók megbí megbízható zható tárolá rolása. Azokat az összegyő sszegyőjtö jtött informá információ ciókat, amelyeket hosszú hosszú ideig tárolunk és tö több felhaszná felhasználó szá számára is hozzá hozzáférhetı rhetıvé teszü teszünk, informá információ ciós rendszernek (file system) system) nevezzü nevezzük. A filerendszerek egymá egymástó stól elkü elkülönülı informá információ ciós egysé egységeit állomá llományoknak (file) nevezzü nevezzük. Az állomá llományok tö többnyire azonos tulajdonsá tulajdonságú kisebb logikai egysé egységekbı gekbıl – ún. rekordokbó rekordokból – állnak, amelyek mezı mezıkbı kbıl épülnek fel.
188
94
Az OROR-en belü belül az állomá llományok kezelé kezelésével az állomá llománykezelı nykezelı (file manager) manager) foglalkozik. Fı feladata, hogy megfelelı megfelelı mőveleteket szolgá szolgáltasson a programoknak és a felhaszná á l ó knak ahhoz, hogy az állomá felhaszn llományokban tárolt informá információ ciókat ké kényelmesen tudjá tudják feldolgozni. (informá (információ ciók kiolvasá kiolvasása, mó módosí dosítás, bı bıvítés, tö törlé rlés) Fontos, hogy a tá tárolt adatokat milyen gyorsan tudjuk elé elérni. Ezé Ezért az OROR-k lehetı lehetıségeket biztosí biztosítanak arra, hogy az állomá llományok rekordjait meghatá meghatározott sorrendben lehessen elé elérni. Ezt az indexelé indexelés segí segítsé tségével érik el. Fizikailag az informá információ ciós rendszerek há hátté ttértá rtároló rolókon helyezkednek el. Az állomá llományok általá ltalában fizikailag tö több egysé egységen helyezkednek el. Néha mé még az sem biztosí biztosított, hogy az egy állomá llományhoz tartozó tartozó összes rekord ugyanazon az egysé egységen talá található lható. 189
Egy informá információ ciós rendszerhez hozzá hozzátartozik, hogy a benne elhelyezett állomá llományokró nyokról ún. „leí leíró” informá információ ciókat tartalmaz. Pl.: állomá llomány neve, rekord hossza, blokkolá blokkolási mé méret, tulajdonos, hozzá hozzáférési lehetı lehetıségek, verzió verzió, history… history… Ezeket együ együttesen állomá llományleí nyleíróknak (file descriptor) descriptor) nevezzü nevezzük. A descriptorokat a modern OROR-k speciá speciális állomá llományokba, könyvtá nyvtárakba győ győjtik. 190
95
12.1 A kö kötet fogalma és szerkezete Az állomá llományokat há hátté ttértá rtároló rolókon helyezzü helyezzük el. Az egy fizikai egysé egységen elhelyezkedı elhelyezkedı állomá llományokat kötetnek (volume) volume) nevezzü nevezzük. Különbsé nbséget kell tenni logikai és fizikai kö kötet kö között: Az azonos tí típusú pusú rekordok összessé sszessége alkotja a logikai kö kötetet. tetet. A logikai kö kötet egy tá tároló rolóegysé egységen elhelyezkedı elhelyezkedı részé szét fizikai kötetnek nevezzü nevezzük. Az egy fizikai egysé egységen elhelyezkedı elhelyezkedı informá információ ciók könyvtá nyvtárakra és állomá llományokra osztható oszthatók. A kö könyvtá nyvtárak „katalogizá katalogizáljá lják” az állomá llományokat. Általá ltalában a fizikai kö kötet legalacsonyabb sorszá sorszámú sávjain helyezkedik el (má (mágneslemezrı gneslemezrıl beszé beszélünk). Az állomá llományokat hátté ttértá rtároló rolókon helyezzü helyezzük el. 191
Mivel a kö kötetek cseré cserélhetı lhetık, ezé ezért az azonosí azonosításukró sukról gondoskodni kell. Az azonosí azonosításra szolgá szolgáló mezı mezık a kötetleí tetleíró informá információ ciók: A kö kötet neve Hozzá Hozzáférési informá információ ciók Az informá információ ciós rendszerek kó kódja A kö könyvtá nyvtár helye a kö köteten Az állomá llományokat tartalmazó tartalmazó terü terület kezdı kezdıcíme Az alloká allokáció ciós informá információ ciók helye a kö köteten
192
96
12.2 Állomá llományok szervezé szervezése A kö köteteken talá található lható terü területek legnagyobb ré része a felhaszná felhasználói állomá llományok ré részé szére van fenntartva. Az állomá llományok adatai a kö köteten blokkokban helyezkednek el. A blokkok helyé helyének megvá megválasztá lasztása dö döntı ntıen befolyá befolyásolja azt, hogy milyen gyorsan és ké kényelmesen érhetjü rhetjük el adatainkat. Feladatok egy állomá llomány tá tárolá rolása sorá során: Új állomá llomány lé létrehozá trehozása Meglé Meglévı állomá llomány kiterjeszté kiterjesztése Tároló roló terü terület felszabadí felszabadítása
193
Tárolá rolási mó módszerek: Egyszerő Egyszerő, folytonos tá tárolá rolás Folytonos tá tárolá rolás kiterjeszté kiterjesztési lehetı lehetıséggel Láncolt blokkolá blokkolás Indexelt blokkolá blokkolás
194
97
12.2.1. Egyszerő Egyszerő, folytonos tá tárolá rolás A mó módszer lé lényege: az állomá llományok elhelyezé elhelyezéséhez szü szüksé kséges blokkok fizikailag folytonosan helyezkednek el. A mó módszer elı elınyei: nyei: Nagyon egyszerő egyszerő kezelni. Ké Két informá információ cióra van szü szüksé kségünk: a kezdı kezdı blokk cí címére és az állomá llomány mé méreté retére. Az állomá llomány rekordjainak vé véletlen elé elérése nagyon haté hatékony: az állomá llomány rekordjai jó jól csoportosí csoportosítható thatók, ezé ezért kö könnyen mozgatható ó k é s egyszerő ő en cí í mezhetı ı k. mozgathat egyszer c mezhet A mó módszer hátrá trányai: nyai: Az állomá llomány csak abban az esetben bı bıvíthetı thetı, ha – valamilyen véletlen szerencse folytá folytán – a bı bıvítéshez rendelkezé rendelkezésre áll szomszé szomszédos szabad terü terület. A szé szétdaraboltsá tdaraboltság itt is fellé felléphet. Idı Idırıl idı idıre újra kell szervezni az állomá llományokat. 195
4. Állomá llomány
Descr. Descr. 4. SZABAD
SZABAD 3. Állomá llomány 2. Állomá llomány
Állomá llomány Állomá llomány kezdete mérete
Descr. Descr. 3. Descr. Descr. 2. SZABAD Descr. Descr. 1.
SZABAD 1. Állomá llomány
Állomá llományleí nyleíró vektor
Egyszerő Egyszerő, folytonos tá tárolá rolás 196
98
12.2.2. Folytonos elhelyezé elhelyezés, kiterjeszté kiterjesztésekkel Az elı elızı módszer ké kézenfekvı zenfekvı kiterjeszté kiterjesztése egy olyan lehetı lehetıség, amikor a folytonosan elhelyezett állomá llományhoz – abban az esetben, ha nem áll rendelkezé rendelkezésre megfelelı megfelelı nagysá nagyságú terü terület – fizikailag különálló lló részeken csatolunk újabb elemeket. Ezeket kiterjeszté kiterjesztéseknek nevezzü nevezzük. A kiterjeszté kiterjesztésekre akkor van szü szüksé kség, ha a meglé meglévı állomá llományokat új rekordokkal bı bıvítjü tjük, vagy ha új állomá llomány elı elıállí llításakor – a szé szétdaraboltsá tdaraboltság – miatt nincs elegendı elegendı hely a folytonos alloká allokálásra. A kiterjeszté kiterjesztések kü különálló lló bejegyzé bejegyzéské sként szerepelnek a kö könyvnyvtárakban.
197
12.2.3. Blokkolt szervezé szervezés Az állomá llományok kezelé kezelésének egy má másik alternatí alternatívája az, hogy a tárolá roláshoz szü szüksé kséges terü területet blokkokba szervezzü szervezzük. Ez lehetı lehetıséget ad arra, hogy kö könnyen alloká allokáljunk és szabadí szabadítsunk fel terü ü letet, de bonyolultabbá á teszi az adminisztrá á ció ó ter bonyolultabb adminisztr ci t, hiszen az állomá llományhoz tartozó tartozó minden blokkot kü külön kell kezelni. A mó módszer nagy elı elınye, hogy a szé szétdaraboltsá tdaraboltság nem lé lép fel és nincs szü szüksé kség speciá speciális állomá llománytö nytömörítı programokra sem. Alapvetı Alapvetıen ké két techniká technikát haszná használunk: Blokkolt lá láncolá ncolás: az azonos állomá llományokhoz tartozó tartozó blokkok egy láncolt lista formá formájában vannak összefő sszefőzve. Indexelt szervezé szervezés: a blokkokban tá tárolt rekordokhoz indexeket rendelü ü nk é s ezeket mó ó dosí í tjuk az állomá rendel m dos llományban bekö bekövetkezett változá ltozásoknak megfelelı megfelelıen. 198
99
A blokkolt lá láncolá ncolás Az adatblokkokbó adatblokkokból levá leválasztunk egy lá láncolá ncolási informá információ ciókat tartalmazó tartalmazó részt. (header (header blokk) Ebben ké kétirá tirányú nyú felfő felfőzést tá tárolhatunk az állomá llományhoz tartozó tartozó következı ı ill. megelı ı z ı blokkra. (Kü ü l ö n lá á ncoljuk a szabad vetkez megel (K l blokkokat.) Az állomá llományok alloká allokáció ciós paramé paramétereit egy tö tömbben helyezzü helyezzük el. Amelynek egy elemé eleméhez pointert rendelü rendelünk. Ez a pointer az állomá llományt tartalmazó tartalmazó elsı elsı blokkra mutat. A mó módszer elı elınye: az adatblokkok tartalma kö könnyen elemezhetı elemezhetı a könyvtá nyvtár ismerete né nélkü lkül is, hiszen egyetlen adatblokk megtalá megtalálása bejá bejárható rhatóvá teszi az egé egész állomá llományt. A mó módszer há hátrá tránya: egyedü egyedül a szekvenciá szekvenciális elé elérést tá támogatja haté hatékonyan. 199
Lemezes tá tárolá rolás eseté esetén az OR tá támogatja a vé véletlen elé elérést is, ezé ezért más techniká technikát haszná használ ilyenkor az OR: Az MSMS-DOS a lá láncolá ncolási informá információ ciókat kiemeli egy FAT (File (File Allocation Table) Table) tá táblá blába. Ha egy adatblokk a lá láncolt állomá llomány ré része, akkor a hozzá hozzá tartozó tartozó FAT elem a lá láncban egy pointert tartalmaz a kö következı vetkezı blokkra. Az informá információ ciók elé elérését meggyorsí meggyorsítja, ha a FAT a memó memóriá riában helyezhetı helyezhetı el. A mó módszer elı elınye: nye: blokkcsoportok mozgatható mozgathatók egyszerre az állomá llományok kö között. Egyszerő Egyszerő a kö könyvtá nyvtári bejegyzé bejegyzés is. A mó módszer há hátrá tránya: nya: a vé véletlenszerő letlenszerő elé elérés csak hosszú hosszú keresé keresés utá után való valósítható tható meg, és – abban az esetben, ha a FAT nincs a memó memóriá riában – nehé nehézkes is. 200
100
Indexelt szervezé szervezés Ahhoz, hogy a blokkolt szervezé szervezés elı elınyeit mind a soros mind a véletlen elé elérés eseté esetén élvezni tudjuk, szü szüksé kség van arra, hogy az állomá llományokat tartalmazó tartalmazó blokkok cí címeit – a blokkoktó blokkoktól teljesen különvá nválasztva – egy rekordban tá tároljuk. Az indexet minden állomá llomány eseté esetében az állomá llományleí nyleíró blokk részeké szeként tá tároljuk. Kis állomá llományok eseté esetében az összes blokkot a kö könyvtá nyvtárban helyezzü helyezzük el. Mivel az állomá llományleí nyleíró méreté retét korlá korlátoznunk kell, ezé ezért max. max. 12 blokknak a cí címét tá tárolhatjuk a kö könyvtá nyvtárban. Ha tová további blokkokat kell az állomá llományhoz rendelni, akkor egy közbü ü lsı ı blokkot lefoglalunk az alatta levı zb ls levı blokkok indexeinek a tárolá rolására. (Tová (További né néhány szá száz cí cím tá tárolá rolására alkalmas.) 201
12.3 Kö Könyvtá nyvtárak szervezé szervezése Az állomá llományok kezelé kezelése erı erısen tá támaszkodik egy speciá speciális szerkezető szerkezető leí leíró állomá llományra, amelyet kö könyvtá nyvtárnak nevezü nevezünk. A kö könyvtá nyvtárak a kö köteten talá található lható állomá llományok jellemzı jellemzıit írjá rják le. Minden állomá llományhoz hozzá hozzá kell rendelni egy nevet, amely az elé elérést megkö ö nnyí í ti. megk nny Az OR a megadott né név alapjá alapján keres, ezé ezért a né névnek olyannak kell lennie, hogy az alapjá alapján az azonosí azonosítás kö könnyen elvé elvégezhetı gezhetı legyen. Az állomá llományok nevé nevével kapcsolatos tudnivaló tudnivalók: Egyszerő Egyszerő karaktersorozat (pl.: ASCII) Különbö nbözı OROR-k, kü különbö nbözı szabá szabályok A né névnek rö rövidnek, informatí informatívnak kell lennie Állomá llománynevek hossza Az állomá llománynevekben felhaszná felhasználható lható karakterek (korlá (korlátozá tozások!) 202
101
Az állomá llományokat ké két ré részre osztjuk: Az egyik ré részben foglalnak helyet az un. leí leíró informá információ ciók, a má másik ré részben helyezkednek el az állomá llomány rekordjai. A leí leíró informá információ ciók az OROR-tıl függı ggıen elté eltérıek lehetnek, azonban néhány alapinformá alapinformáció ciót mindenké mindenképpen tartalmazniuk kell. (pl. állomá llomány neve, cí címe, mé mérete, szervezé szervezése, stb.) A leí leíró informá információ ciók kü különálló lló könyvtá nyvtárakban helyezik el. Ezek olyan egyszerő egyszerő könyvtá nyvtárak, amelyek szá számára összefü sszefüggı ggıen alloká allokálunk fix hosszú hosszúságban lemezterü lemezterületet. A kö rt né könnyebb kezelhetı kezelhetıség kedvéé kedvéért néhány OR szé szétbontja az állomá llományleí nyleíró rekordokat: a UNIX eseté esetében az állomá llományleí nyleíró rekord csak az állomá llomány nevé nevét és egy pointert tartalmaz. A pointer egy un. informá információ ciós csomó csomópontra (i-node) node) mutat, ahol az állomá á nyra vonatkozó ó tová á bbi informá á ció ó k talá á llom vonatkoz tov inform ci tal lható lhatók. Ez – az ábrá brán is kö követhetı vethetı módon – lehetı lehetıséget ad arra, hogy má másmás né névvel (alias (alias né név, link) is hivatkozhatunk ugyanarra a fizikai állomá llományra. 203
A legelterjedtebb kö könyvtá nyvtárkezelé rkezelési techniká technikák 12.3.1. Egyszerő Egyszerő könyvtá nyvtárak Kötetenké tetenként egyetlen kö könyvtá nyvtárat haszná használunk, amely állomá llományonké nyonként tartalmazza a leí leíró informá információ ciókat. A kö könyvtá nyvtárrendszer kezelé kezelése egyszerő egyszerő, hiszen egyetlen kö könyvtá nyvtárunk van csak. A mó módszer há hátrá trányai: A leí leíró rekordok szá száma nagyon megnı megnıhet, aminek az lesz a következmé vetkezménye, hogy megnö megnövekszenek a keresé keresésisi- és az elé elérésisiidı ı k is. id Nehé Nehéz tová továbbá bbá állomá llománycsoportokat lé létrehozni felhaszná felhasználók szá számára. Egy kö könyvtá nyvtár magá magában rejti annak veszé veszélyé lyét, hogy hosszú hosszú állomá llományneveket kell haszná használnunk a kü külsı lsı azonosí azonosításhoz, amely ismé ismét nehezebb helyzet elé elé állí llítja az OROR-t. 204
102
12.3.2. Felhaszná Felhasználói kö könyvtá nyvtárak Ha tö több felhaszná felhasználó haszná használhatja ugyanazt a kö kötetet, nem kí kívánatos, hogy egymá egymás állomá llományait korlá korlátozá tozás né nélkü lkül haszná használhassá lhassák. A hozzá hozzáférések korlá korlátozható tozhatók azá azáltal, hogy tiltjuk az írást és / vagy olvasá olvasást má más felhaszná felhasználók szá számára. A má másik problé probléma az, hogy tö több felhaszná felhasználó eseté esetén kö könnyebben fordulhat elı ı , hogy ugyanazt a nevet haszná á lja ké é t el haszn k kü különbö nbözı felhaszná felhasználó. ún. minı minısített nevek haszná használata (a nevek kiterjeszté kiterjesztésébe kell beí beírni a felhaszná felhasználó nevé nevét vagy azonosí azonosítóját) Felhaszná speciá állomá definiá Felhasználónké nként egy speciális llományt definiálása (kataló (katalógus), amely azokat az állomá llományneveket tartalmazza, amelyek a megadott felhaszná felhasználóhoz tartoznak.
205
Könyvtá nyvtár-1
Könyvtá nyvtár-2
i-csomó csomópontok
Fizikai állomá llományok
206
103
A tö többfelhaszná bbfelhasználós rendszerekben a leggyakrabban haszná használt technika az, hogy a felhaszná felhasználó definiá definiálásával egy idı idıben kijelö kijelölünk szá számára egy sajá saját (home (home)) könyvtá nyvtárat, rat, amely mintegy „vonatkoztatá vonatkoztatási pontké pontként” nt” szolgá szolgálhat az állomá llományok eltá eltárolá rolásához.
207
12.3.3. Hierarchikus kö könyvtá nyvtárak A sajá saját kö könyvtá nyvtárak rugalmassá rugalmassága nagymé nagymérté rtékben kiterjeszthetı kiterjeszthetı, ha a felhaszná felhasználónak lehetı lehetısége van szabadon definiá definiálni kö könyvtá nyvtárakat az állomá llománycsoportjai szá számára. A technika lé lényege: Létezik egy állomá llományok.
fı fıkönyvtá nyvtár,
amelynek
elemei
kezdetben
az
Amikor szü szüksé kségünk van arra, hogy a felhaszná felhasználókat szé szétvá tválasszuk, akkor egy)kö önyvtá egy-egy új bejegyzé bejegyzést (al (al)k nyvtárké rként nevezhetü nevezhetünk meg, amelyben elhelyezhetjü elhelyezhetjük a felhaszná felhasználó állomá llományait. Ebben az alkö alkönyvtá nyvtárban ismé ismét lehetı lehetıséget biztosí biztosítunk újabb (al)k önyvtá al)kö nyvtárak lé létrehozá trehozására, ezá ezáltal kijelö kijelölve egy hierarchikus szerkezetet. A rendszerben egy állomá llományt – a kö könyvtá nyvtárak sorozatá sorozatával definiá definiált – úttal (path) path) érhetjü rhetjük el. 208
104
A lé létrejö trejött hierarchia nagyon mé mély lehet, ilyenkor elı elıfordulhat, hogy az út megadá á sa bonyolult. megad Ezé Ezért bevezetté bevezették az un. aktuá aktuális kö könyvtá nyvtár (current (current directory) directory) fogalmá fogalmát. (Ez az a kö könyvtá nyvtár, amelyben a felhaszná felhasználó a parancs kiadá kiadásakor „tartó tartózkodik” zkodik”.) Így lehetı lehetıség van arra, hogy az útvonalat az aktuá aktuális kö könyvtá nyvtárhoz viszonyí viszonyítva adjuk meg. Kialakult a teljes (abszolú (abszolút) vagy a viszonylagos (relatí (relatív) út megadá megadásának techniká technikája.
209
12.4 Mő Mőveletek állomá llományokon Állomá llományok elé elérése: (megnyitá (megnyitás - open, open, keresé keresés - seek, seek, olvasá olvasás read, read, írás - write, write, lezá lezárás - close) close) Terü Területszervezé letszervezés: (állomá llományok elı elıállí llítása - create, create, tö törlé rlése - delete, delete, meglé meglévı állomá llományok bı bıvítése új rekordokkal - extend ill. rekordok tö törlé rlése meglé meglévı állomá llományokbó nyokból - truncate) truncate) Kiegé Kiegészí szítı mőveletek: (állomá llományné nynév megvá megváltoztatá ltoztatása – rename, rename, megvá megváltoztatni az állomá llomány tulajdonosá tulajdonosát, elé elérési korlá korlátait és típusá pusát, alias nevek) Kötetkezelé tetkezelés: (kö (köteteket fizikailag eltá eltávolí volítani, vagy helyettesí helyettesíteni)
210
105
13. Hibakezelé Hibakezelés, megbí megbízható zhatóság, vé védelem Ha egy OR tervezé tervezésénél és elké elkészí szítésénél nem kellene ezekre a feladatokra is figyelemmel lenni, akkor az egé egész rendszer sokkal egyszerő egyszerőbb lenne, mint a vé végsı gsı megoldá megoldás. E há három feladat az OROR-k méltá ltánytalanul há hátté ttérbe szorul.
mindennapos
vizsgá vizsgálatá latánál
Ha ezeket a feladatokat nem oldja meg jó jól egy OR, akkor a rendszer szolgá á ltatá á sai bizonytalanok lesznek, nem tudjuk szolg ltat biztosí biztosítani a haté hatékony és gyors kiszolgá kiszolgálást. Ennek az lesz a kö következmé vetkezménye, hogy elveszik a bizalom az OR irá iránt és a felhaszná felhasználók elfordulnak a rendszertı rendszertıl.
211
13.1 Hibakezelé Hibakezelés Amikor egy hiba keletkezik a rendszerben, akkor errı errıl tudomá tudomást kell szereznie egyré egyrészt az operá operátornak (vagy a felhaszná felhasználónak), másré é szt a futó ó tevé é kenysé é gnek (programnak, folyamatnak) is. sr fut tev kenys A hibá hibák elsı elsıdleges jelzé jelzése a visszaté visszatérési (return (return)) kó kóddal tö törté rténik. Emellett hibaü hibaüzenetet is kel kü küldeni az operá operátori konzolra vagy a felhaszná felhasználói terminá terminálra. A hibaü hibaüzenetek formá formája, idı idızítése nagyon fontos a hiba elhá elhárítása szempontjá szempontjából. Szü Szüksé kség lehet tová további adminisztrá adminisztráció cióra is: az OROR-k erre a cé célra egy hiba (error (error)) log állomá llományt haszná használnak, amelybe bejegyzik a hiba idı idıpontjá pontját, kó kódjá dját, üzeneté zenetét és a process belsı belsı azonosí azonosítóját. Ha egyszerre tö több hiba lé lép fel, akkor egy hibaü hibaüzenet sorban helyezi el a rendszer az üzeneteket. 212
106
13.1.1. Ké Készü szülékhibá khibák kezelé kezelése Az I/O – készü szülékeken vé végrehajtott mő mőveletek sorá során fellé fellépı tipikus hibá hibák kö közé tartozik: Az ellenı ellenırzı rzı összeg (control (control--summa) summa) hibá hibája a má mágneses adathordozó adathordozókná knál A paritá paritás hibá hibák egyszerő egyszerő átvitelekné tviteleknél Nyomtatá Nyomtatásokná soknál fellé fellépı különbö nbözı hibá hibák
213
Az I/O – készü szülékeket kezelı kezelı meghajtó meghajtóknak egyetlen feladata van: sikeresen vé végrehajtani a kitő kitőzött mő mőveletet. Következmé vetkezmény: a fellé fellépı hibá hibák kezelé kezelését teljes egé egészé szében áthá thárítjá tják a felhaszná felhasználóra. Az OROR-nek ügyelnie kell arra, hogy az azonos tí típusú pusú hibá hibákat, azonos hibakó hibakóddal jelezze. (pl.: not ready.) ready.) Permanens ké készü szülék hiba eseté esetén az OR fı fı feladata az, hogy beszü beszüntesse a tová további munká munkát, és leá leállí llítsa a futó futó folyamatokat (shut (shut down). Mágneses ké készü szülékekné keknél az adathordozó adathordozó rétegen bekö bekövetkezett hibá hibák elhá elhárításának ké két speciá speciális techniká technikája van: • Az adathordozó adathordozóról felhaszná felhasználási tá táblá blát (bad (bad track table) table) készí szítünk. • „Rossz” Rossz” állomá llományokat alloká allokálunk a hibá hibás terü területre. (.BAD állomá á ny) llom 214
107
13.1.2. Programhibá Programhibák kezelé kezelése Felhaszná Felhasználói programok futá futása kö közben is elı elıfordulhatnak hibá hibák. Pl.: nullá nullával való való osztá osztás, érvé rvénytelen memó memóriací riacímre tö törté rténı hivatkozá hivatkozás. Ilyenkor a hibá hibákat ké kétfé tféleké leképpen kezelhetjü kezelhetjük le: Befejezzü Befejezzük a program futá futását. (Ilyenkor a rendszer kö közli a megszakí megszakítás oká okát) Hibakezelı Hibakezelı szubrutint indí indítunk el. (Lá (Lásd a kö következı vetkezı ábrá brát.)
215
Program
1.
OR megszakításkezelı 4. 2. Hibakezelı Hibakezelı 3. 1.
Programhiba jelentkezik a felhasználói program futása során.
2.
Az OR megszakításkezelı szubrutinja átadja a vezérlést a hibakezelı eljárásnak.
3.
A hibakezelı lefut és visszaadja a vezérlést a megszakításkezelınek.
4.
A megszakításkezelı visszaadja a vezérlést a megszakított folyamatnak.
Megszakító szubrutin alkalmazása programhiba kezelésére
216
108
13.1.3. A filefile-rendszer hibá hibáinak kezelé kezelése Amennyiben valamilyen hiba keletkezik egy lemezegysé lemezegységen, akkor következmé vetkezményké nyként hibá hibák lé léphetnek fel a filefile-rendszerben vagy a könyvtá nyvtárban. Mivel a filefile-rendszerek alapvetı alapvetı fontossá fontosságúak az OROR-ekné eknél, ezé ezért az állomá llománykezelı nykezelı szubrutinoknak fel kell ismerni azokat a hibá hibákat, amelyeknek ilyen – nem kí kívánatos – következmé vetkezményei lehetnek és el kell kerü kerülni a filefile-rendszer „beszennyezé beszennyezését”. A filefile-rendszer egysé egységének a megı megırzé rzése kü különösen fontos. (file(filerendszer ellenı ellenırzı rzı program) Egy filefile-rendszer vizsgá vizsgálatá latával kapcsolatban há három feladatunk lehet: Ellenı Ellenırizzü rizzük a filefile-rendszer érvé rvényessé nyességét Állí í tsuk helyre a rendszer integritá ll integritását. Készí szítsü tsünk a rendszerrı rendszerrıl backupot vagy tö töltsü ltsük vissza a rendszert. 217
13.2 Megbí Megbízható zhatóság Egy OR megbí megbízható zható, ha haszná használható lható és korrekt marad akkor is, ha hardware problé é m á k é s/vagy software hibá probl hibák lé lépnek fel. Egy OR biztonsá biztonságos, gos, ha haszná használható lható, korrekt és titkos marad akkor is, ha hardware problé problémák, software hibá hibák lé lépnek fel és szá szándé ndékos külsı lsı támadá madások érik a rendszert. Nincs olyan technika, amely minden kö körülmé lmények kö között garantá garantálná lná a tö tökéletes megbí megbízható zhatóságot és biztonsá biztonságot. A cé cél: olyan straté stratégiá giát tudjunk nyú nyújtani, amely nagy való valószí színőséggel biztosí biztosítja szá számunkra a sikert. Problé Probléma: miné minél nagyobb biztonsá biztonságra tö törekszü rekszünk, anná annál magasabmagasabbak lesznek a hardware kié kiépítésének kö költsé ltségei és egyre drá drágább softwaresoftware-eket kell kifejlesztenü kifejlesztenünk az üzemelteté zemeltetéshez 218
109
A megbí megbízható zhatóságot veszé veszélyeztetı lyeztetı hibá hibák A lehetsé lehetséges hibá hibák tí típusai: Tervezé Tervezési hibá hibák Konstrukció Konstrukciós hibá hibák Mőködési hibá hibák A hardware elemekné elemeknél mindhá mindhárom hiba fellé felléphet: Az alkatré alkatrész elhaszná elhasználódik – idı idıszakos majd teljes meghibá meghibásodá sodás Feszü Feszültsé ltség kiesé kiesés Azokat a rendszereket, amelyek az így fellé fellépı hibá hibák ellené ellenére is biztonsá biztonságosan mő mőködnek, hibatő hibatőrı rendszereknek nevezzü nevezzük.
219
A software nem haszná használódik el, de a tervezé tervezési és a konstrukció konstrukciós hibá hibák sokkal való valószí színőbbek. (pl.: egy program nem fogad el bizonyos input adatokat vagy nem ismer fel érvé rvénytelen inputot. Legfontosabb feladat: feladat: egy hiba nem befolyá befolyásolhat má más folyamatokat. (a hiba korlá korlátozá tozása) Ha a hiba fellé fellépett, cé célszerő lszerő arra koncentrá koncentrálni erı erıinket, hogy hogyan tudunk a leggyorsabban megszabadulni tı tıle. Egyes kutató kutatók szerint (Wulf (Wulf,, 1975) e feladat sokszor fontosabb, mint a megelı megelızés.
220
110
Siewiorek (1984) tí tíz olyan fontos lé lépést definiá definiált, amelyet el kell végezni egy hiba sorá során: Korlá Korlátozá tozás Érzé rzékelé kelés Kisző Kiszőrés Ismé Ismétlé tlés Diagnó Diagnózis Átkonfigurá tkonfigurálás Visszaá Visszaállí llítás Újraindí jraindítás Javí Javítás Beilleszté Beillesztés 221
HardwareHardware-megoldá megoldások a hibá hibák megelı megelızésére: Memó Memóriavé riavédelem: egy folyamat csak haszná használhassa, amelyekre engedé engedélye van.
azokat
a
cí címeket
Timerek segí segítsé tségével megszakí megszakíthatjuk azokat a folyamatokat, amelyek tú túllé llépté pték a szá számukra engedé engedélyezett idı idıkorlá korlátokat. Adattorzulá Adattorzulások kisző kiszőrése: paritá paritás bit, ellenı ellenırzı rzı összeg. Szü Szünetmentes tá tápegysé pegység (UPS) Hardware redundancia olyan rendszerek eseté esetében, amelyek különösen megkö megkövetelik a biztonsá biztonságos mő mőködést. SoftwareSoftware-megoldá megoldások a hibá hibák megelı megelızésére : Defenzí Defenzív programozá programozás: egy programnak mindig ellenı ellenıriznie kell a fogadott adatokat, sohasem szabad megbí megbízni azok helyessé helyességében. 222
111
Az elı elızı oldal pontjaihoz esetleg ré részletek.
223
RÉSZLETEK!!!!
13.3 Vé Védelem
Belsı Belsı védelem: az OR ré részé szére Csak jogosult szemé személy legyen ké képes belé belépni a rendszerbe. (azonosí (azonosítás!) Több felhaszná felhasználó által haszná használt adatokat csak ellenı ellenırzö rzött mó módon lehessen elé elérni. (á (állomá llományok teljes elkü elkülönítése, olvasá olvasásisi-, írásisi- és végrehajtá grehajtási engedé engedélyezettsé lyezettség.) Kommuniká Kommunikáció ciós adatvé adatvédelem (há (hálózatokná zatoknál) Külsı lsı védelem Fizikai vé védelem – külsı lsı hatá hatások ellen Mőveletekre vonatkozó vonatkozó védelem – teljes adatmenté adatmentés Jogi vé védelem 224
112
14. Rendszerkezelé Rendszerkezelés, rendszerkö rendszerkönyvelé nyvelés Ez magá magába foglalja: az OR generá generálását egy rendelkezé rendelkezésre álló lló hardware konfigurá konfiguráció cióra, az OR betö betölthetı lthetı formá formában tö törté rténı installá installálását egy tetszı tetszıleges adathordozó adathordozón, az OR betö betölté ltését egy tetszı tetszıleges tí típusú pusú adathordozó adathordozóról az elsı elsıdleges tá tárterü rterületre, az OR leá leállí llítását (shut (shut down), down), az OR „tuningolá tuningolását” egy adott kö környezethez a nagyobb haté hatékonysá konyság elé elérésének érdeké rdekében, az OR erı felhaszná feldolgozá erıforrá forrásai felhasználásának feldolgozását, adminisztrá adminisztrálását. 225
14.1 Rendszergenerá Rendszergenerálás Az OR egyik fontos feladat az, hogy tá támogassa a rendszer elı ı á llí í t á st. el ll Ennek sorá során az adott OR egy olyan vá változatá ltozatát ké készí szítjü tjük el, amely a rendelkezé rendelkezésre álló lló hardware lehetı lehetıségeit a legjobban kihaszná kihasználja. A rendszer elı elıállí llítása mindig attó attól fü függ, hogy az OROR-nek mely ré részei változtatható ltoztathatók. Ilyen pé példá ldául: CPUCPU-k szá száma, tí típusa Memó ó ria mé é rete Mem m Standard ké készü szülékek tí típusai, logikai nevei, cí címei, paramé paraméterei Rendszer Kontrol Blokk mé mérete Felhaszná Felhasználók max. max. szá száma Készü szülékek max. max. szá száma Alkalmazni kí kívánt karakter kó kód tí típusa 226
113
14.1.1. A telepí telepítés tí típusai A. Ha a rendszer forrá forrásnyelven áll rendelkezé rendelkezésre:
Szü Szüksé kségünk van egy fordí fordítóprogramra (assembler) Ennek segí í tsé é g é vel le kell fordí seg ts fordítani a forrá forrásmodulokat A lefordí lefordított modulokat szerkeszteni kell
Elı Elınye: az így elı elıállí llított OR pontosan a kí kívánt paramé paramétereket tartalmazza. Hátrá tránya: az OR generá generálása nagyon hosszú hosszú ideig tarthat.
227
B. Ha az OROR-t leí leíró táblá blázatok valamilyen formá formában rendelkezé rendelkezésre állnak, akkor elkerü elkerülhetjü lhetjük a fordí fordítást.
Ilyenkor a rendszerrendszer-specifikumokat leí leíró paramé paramétereket táblá blázatban tá tároljuk Ezeket egy szerkeszté szerkesztési lé lépésben kell a má már lefordí lefordítottan rendelkezé rendelkezésünkre álló lló többi modulhoz kapcsolni.
Elı Elınye: a telepí telepítési idı idı alaposan lecsö lecsökken. Hátrá tránya: romlik a rendszer alkalmazkodó alkalmazkodó képessé pessége. C. Az elı elızı tová tovább finomí finomítható tható azá azáltal, hogy konfigurá konfigurálási lehetı lehetıséget biztosí biztosítunk a telepí telepítéshez.
dinamikus 228
114
14.1.2. A telepí telepítés mó módszerei Az esetek legnagyobb ré részé szében az OROR-t úgy szá szállí llítjá tják, hogy levá leválasztanak ró róla egy betö betölthetı lthetı változatot, ami lé lényegé nyegében fü független a hardvertı hardvertıl. Ha ezt a „sző szőkített” tett” változatot betö betöltjü ltjük, akkor ennek segí segítsé tségével felé felépíthetjü thetjük az OROR-t. Elté Eltérı módszereket alkalmazunk attó attól fü függı ggıen, hogy Batch eljá eljárás kereté keretében, vagy Interaktí Interaktív eljá eljárást haszná használva telepí telepítjü tjük az OROR-t.
229
OR telepí telepítés batch eljá eljárással Batch eljá eljárás eseté esetén: Az OR rendelkezik valamilyen kommuniká kommunikáció ciós lehetı lehetıséggel (nyelvvel), amelyet a telepí í t é s sorá á n haszná á l. telep sor haszn Nincs általá ltalános szabá szabály. UNIX eseté esetében az eljá eljárást a jegyzetben megtalá megtalálhatjuk.
230
115
OR telepí telepítés interaktí interaktív eljá eljárással Interaktí Interaktív eljá eljárás alkalmazá alkalmazásakor: Az OR egy interaktí interaktív nyelvvel rendelkezik, amely megkö megköveteli, hogy a konzol ké képernyı pernyıre kií kiírt ké kérdé rdést egyszerő egyszerő formá formában megvá megválaszoljuk. A megadott vá válaszok fü függvé ggvényé nyében az OR egy batch állomá llományt generá generál. Ez általá ltalában menü menüvezé vezérelt mó módon tö törté rténik. Így azok a felhaszná felhasználók is telepí telepíteni tudjá tudják a rendszert, akik nem olyan já járatosak az ilyen munká munkában.
231
14.2 Rendszerbetö Rendszerbetölté ltés
Hideg start:
A kis rendszerek mindig így indulnak. Az OR ilyenkor mindent „elfelejt” elfelejt”, ami az újra betö betölté ltés elı elıtt tö törté rtént. Az inicializá inicializáló eljá eljárás mindig ugyanazokat a lé lépéseket hajtja vé végre.
Meleg start:
a rendszer felhaszná felhasználja azokat az informá információ ciókat, amelyeket a korá korábbi állapotokbó llapotokból megı megırzö rzött. - A rendszer betö betölté ltés kö következı vetkezı fontos fá fázisa: az önkonfigurá nkonfiguráció ció. - Majd: a filefile-rendszer ellenı ellenırzé rzése. se. (Rendszerindí (Rendszerindítási diagnosztika)
232
116
14.3. Rendszerleá Rendszerleállí llítás Abban az esetben, ha egy MSMS-DOS tí típusú pusú OR áramkimaradá ramkimaradás miatt leá leáll, akkor a felhaszná felhasználókat nem éri nagyon nagy vesztesé veszteség, hiszen csak annak veszik el adata, akinek a programja éppen a memó memóriá riában volt. A tö többfelhaszná bbfelhasználós rendszerekné rendszereknél a helyzet má már sokkal kedvezı kedvezıtlenebb: maga a filefile-rendszer is szennyezı szennyezıdhet, ha nem szabá szabályos rendszerleé rendszerleépítést hajtottunk vé végre. Ezé Ezért figyelmeztet szá számos OR arra, hogy a shutdown parancs kiadá kiadása elı elıtt a felhaszná felhasználó egy logoff parancs segí segítsé tségével lé lépjen ki a rendszerbı rendszerbıl. Szabá Szabályos leá leállá llás eseté esetén a felhaszná felhasználónak kö követni kell a rendszer üzeneteit. Szabá Szabálytalan befejezé befejezés eseté esetén is a legtö legtöbb rendszer ké képes arra, hogy adatok ás programok menté mentésével felké felkészü szüljö ljön egy szabá szabályos leá leállá llásra, de elı elıfordulhat az is, hogy a hiba elhá elhárítása az operá operátorra marad. 233
14.4. Rendszertuningolá Rendszertuningolás Az egyfelhaszná egyfelhasználós rendszerekné rendszereknél haté hatékonysá konysági problé problémákkal nem talá találkozunk. A rendszer kihaszná kihasználtsá ltságát mindig az éppen futó futó egyetlen programmal kapcsolatos feladatok hatá határozzá rozzák meg. Nagy, tö többfelhaszná bbfelhasználós rendszereket nagykapacitá nagykapacitású szá számítógépeken futtatunk. Ha az ilyen gé gépek nincsenek jó jól kihaszná kihasználva, akkor az általá ltalában az OR hibá hibája. Amikor a rendszer haté hatékonysá konyságát akarjuk megnö megnövelni, akkor tunningolá tunningolásró sról beszé beszélünk.
234
117
Néhány ok, ami lelassí lelassíthatja a rendszert:
CPU kihasználtság Átfordulási idı Készülék kihasználtság
Várakozási idı különbözı készülékekre
Válasz idı interaktív környezetben
Processz ütemezés Lapozás kezelése
I/O-készülékek kezelése
235
14.5. Rendszerkö Rendszerkönyvelé nyvelés
A tö többfelhaszná bbfelhasználós rendszereknek szá számos elszá elszámolá molási, kö könyvelé nyvelési feladata van. Az elszá elszámolá molási informá információ ciók kezelé kezelése az OR haszná használatá latának fontos része. Informá Információ ciókat kell tá tárolnunk arró arról, hogy az egyes felhaszná felhasználók a rendszer erı erıforrá forrásait milyen mé mérté rtékben veszik igé igénybe. (elszá (elszámolá molási informá információ ciók) Mennyisé Mennyiségi korlá korlátokat kell felá felállí llítanunk arra, hogy az egyes erı erıforrá forrásokat mely felhaszná felhasználók, meddig vehetik igé igénybe.
236
118
Korlá Korlátozható tozható terü területek: Felhaszná Felhasználható lható mágneslemez terü terület. CPU idı idı igé igénybevé nybevétel jobonké jobonként. nt. I/O I/O-mőveletek max. max. szá száma. Nyomtatható Nyomtatható sorok max. max. szá száma. Futtatható Futtatható jobok max. max. szá száma.
237
15. Osztott operá operáció ciós rendszerek
A szá számítógépek kapacitá kapacitásának talá talán legsző legszőkebb keresztmetszete a központi vezé é rlı ı egysé é g. vez rl egys Így ké kézenfekvı zenfekvı az a gondolat, hogy haszná használjunk tö több processzort a rendszer haté hatékonysá konyságának megnö megnövelé velése érdeké rdekében. Kezdetben csak ké két processzort haszná használtak és – a sok új problé probléma ellené ellenére – a haté hatékonysá konyság nö növekedé vekedése olyan mé mérté rtékő volt, hogy a többprocesszoros rendszerek igen gyorsan terjedni kezdtek. Ma szá számos olyan tö többprocesszoros rendszert ismerü ismerünk, amelyben CPUk tucatjai dolgoznak együ ü tt. CPU egy A processzorok a legkü legkülönbö nbözıbb mó módon kapcsolható kapcsolhatók össze. 238
119
A processzorok összekapcsolá sszekapcsolásának egyik mó módja az, hogy: fü független egyprocesszoros szá számítógépes rendszereket kö kötünk össze. Az összekö sszekötött gé gépeket há hálózatnak (network (network)) nevezzü nevezzük. Attó Attól fü függı ggıen, hogy mekkora a fizikai tá távolsá volság a gé gépek kö között, beszé beszélhetü lhetünk: Kis tá távolsá volságú vagy loká lokális há hálózatró zatról (LAN (LAN)) (né (néhány szá száz m) Nagy tá távolsá volságú (WAN) WAN) há hálózatró zatról (aká (akár az egé egész Fö Földet is bebehálózhatjá zhatják) Mind a tö többprocesszoros rendszerekné rendszereknél, mind a kü különbö nbözı hálózatokná zatoknál minden egyes processzor felelı felelıs a rendszerben futó futó egy folyamaté folyamatért.
239
Ha bizonyos tevé tevékenysé kenységek felü felügyeleté gyeletét meg kell osztanunk processzorok egy csoportja kö között, akkor aká akár az egé egész rendszert elı elınyö nyösebb egysé egységes egé egészké szként kezelni. Az így lé létrejö trejött rendszert osztott szá számítógépes rendszernek nevezzü nevezzük. (kö (közös feladatok) A forrá források kö közös kezelé kezelésére alkalmas OROR-t Osztott Operá Operáció ciós Rendszernek (OOR) nevezzü ü k. nevezz Egy OOR telepí telepítésének lehetı lehetıségei: Az OOR együ együttesen kezeli a rendszerben lé lévı összes processzort. Az OOROOR-t a „klasszikus” klasszikus” OROR-k fö fölé helyezzü helyezzük.
240
120
Az osztott szá számítógépes rendszer elı elınyei: Humá Humán kommuniká kommunikáció cióra alkalmas rendszert tudunk kifejleszteni, amelyben az egyes felhaszná felhasználók ké kényelmesen tudnak üzeneteket váltani egymá egymással elektronikus levelezé levelezési rendszerek (e(e-mail) segí í tsé é g é vel. seg ts Erı Erıforrá források megosztá megosztását tudjuk elé elérni oly mó módon, hogy a különbö nbözı helyszí helyszíneken rendelkezé rendelkezésre álló lló erı erıforrá forrásokat át tudjuk csoportosí csoportosítani egymá egymás kö között. (fizikai(fizikai-, logikai EFEF-k) Növelhetjü velhetjük a rendszer megbí megbízható zhatóságát azá azáltal, hogy a tö több processzor mellett az egyes hardware elemekbı elemekbıl is tö több áll rendelkezé é s ü nkre. (meghibá á sodá á s!) rendelkez (meghib sod Kiegyensú Kiegyensúlyozott terhelé terhelést érhetü rhetünk el azá azáltal, hogy tö több CPU áll rendelkezé rendelkezésre, és így egy adott pillanatban azt a processzort tudjuk mindig megterhelni, amelyné amelynél a legkisebb a való valószí színősége annak, hogy tú túl lesz terhelve a kö következı vetkezı idı idıszakban. 241
15.1. OROR-ek többprocesszoros kö környezetben A tö többprocesszoros kö környezetben a szá számítógépes rendszerhez kettı kettı vagy enné ennél tö több CPU tartozik. A rendszerben elhelyezkedı elhelyezkedı memó memóriaegysé riaegységek kü különbö nbözı módon kapcsoló kapcsolódhatnak a processzorokhoz: vagy kizá kizárólagos alapon egy memó memóriaegysé riaegységet egy processzorhoz rendeljü rendeljük hozzá hozzá (kö (könnyen kezelhetı kezelhetı, de kö költsé ltséges), vagy a memó memóriaegysé riaegységet megosztjuk a processzorok kö között: elı elıfordulhat, hogy a memó memóriá riát olyan folyamatok kö között kell felosztani, amelyek má más-más processzorokhoz tartoznak.
242
121
Ezé Ezért a tö többprocesszoros folyamatok speciá speciális kommuniká kommunikáció ciós lehetı ı s é gei az alá á bbiak: lehet al kapcsolattartá kapcsolattartás az osztott memó memóriá riákkal, üzenetek tová továbbí bbítása, az elsı elsı kettı kettı kombiná kombináció ciója. Az ilyen rendszerek egyik legnagyobb problé problémája: az egyenletes terhelé terhelés biztosí biztosítása az egyes CPUCPU-k szá számára.
243
15.2 OROR-ek hálózatokon Hálózat akkor jö jön lé létre, ha ké két - vagy tö több – fizikailag kü különálló lló szá számítógépet kommuniká kommunikáció ciós vonallal összekö sszekötünk azzal a cé céllal, hogy üzeneteket, vagy adatokat tová továbbí bbítsunk. A há hálózatoknak azokat a helyeit, ahol az egyes szá számítógépek elheelhelyezkednek, lyezkednek, helyszí helyszínnek nevezzü nevezzük. A helyszí helyszínen elhelyezkedı elhelyezkedı szá számítógép neve host. host. A há hálózati kö környezetben ké kétfé tféle mó módon installá installálhatunk OROR-t: Hálózati kommuniká kommunikáció cióra alkalmas OROR-t telepí telepítünk a má már meglé meglévı OR „fölé”. é”. Ezt a rendszert szoká szokásos há hálózati OROR-nek nevezni. Osztott OROR-t installá installálunk a há hálózat minden gé gépén. Ez az ún. osztott OR. Itt a fı fı kérdé rdés az, hogy miké miképpen tudjuk biztosí biztosítani a kommunikommunikáció ciós helyszí helyszínek kö között a megbí megbízható zható és gyors adatá adatátvitelt. (szinte mindig szü szüksé kséges, hogy a meglé meglévı hardware elemek hatá hatásfoká sfokát software elemekkel javí javítsuk) 244
122
Hálózati topoló topológiá giák
Sugaras összekötés
Győrős összekötés
Teljes összekötés
245
Az adatkommuniká adatkommunikáció ció hét szintje: (ISO szabvá szabvány, 1983, OSI) Minden osztott OROR-nek tartalmaznia kell a né négy legalsó legalsó szintet:
1. FIZIKAI SZINT: SZINT: az elektronikus és a fizikai összekö sszekötteté ttetést alapozza meg ahhoz, hogy az átvitel vé végrehajtható grehajtható legyen.
2. ADATÖ ADATÖSSZEKÖ SSZEKÖTTETÉ TTETÉSI SZINT: SZINT: az adatok kü különálló lló bitjeit szervezi csomagokba. (á (általá ltalában hibakezelı hibakezelıvel)
3. HÁLÓZATI SZINT: SZINT: a csomagok szá számára biztosí biztosítja a célállomá llomáshoz vezetı vezetı utat.
4. ÁTVITELI SZINT: SZINT: a kimenı kimenı üzeneteket csomagokba szervezi és feldolgozza a bejö bejövı adatokat 246
123
Nem kö kötelezı telezı, inká inkább a felhaszná felhasználó kényelmé nyelmét szolgá szolgáljá lják:
5. BEJELENTKEZÉ BEJELENTKEZÉSI SZINT: logikai kapcsolatot biztosí biztosít 6. ÁTADÁ TADÁSI SZINT: az adatok szemantiká szemantikáját kezeli 7. APPLIKÁ APPLIKÁCIÓ CIÓS SZINT: specifikus felhaszná felhasználói programok eseté esetén gondoskodik a megfelelı megfelelı hálózati interfaceinterface-ekrı ekrıl.
247
15.3. Osztott OROR-ek szervezé szervezése Ha egy há hálózati OR rendelkezik a memó memória osztott felhaszná felhasználásának lehetı lehetıségével, akkor az elsı elsıdleges problé probléma az, hogy hova helyezzü helyezzük el magá magát az OROR-t. Ennek há három fı fı típusa lé létezik: KÖZPONTOSÍ ZPONTOSÍTOTT: a teljes memó memóriá riában helyezkedik el.
OR
egy
helyszí helyszínen
egy
OSZTOTT: az OROR-t ré részekre bontjuk és az egyes ré részeket különbö nbözı helyszí helyszíneken tá tároljuk. MÁSOLAGOS: az OR teljes egé egészé szét – vagy annak csak egy ré részé szét – egyegy-egy pé példá ldányban tö több helyen tá tároljuk. 248
124
Többprocesszoros kö környezetben: Kérdé rdés: melyik processzoron kell futni a folyamatnak? Válasz: mastermaster-slave rendszer. Kérdé rdés: hol tá tároljam?” roljam?” (csak átjá tjárható rható átjá tjárható rható rendszerekné rendszereknél) Válasz: egy olyan osztott filefile-rendszert biztosí biztosítsunk a felhaszná felhasználóknak, nak, amely virtuá virtuális, egysé egységes és amelyben az állomá llományok elé elérhetı rhetık ané anélkü lkül, hogy a felhaszná felhasználó bármit tudna annak elhelyezé elhelyezésérıl. (elhelyezé é stı ı l fü ü ggetlen neveket adni!) (elhelyez st f Az osztott filefile-rendszerek má másik jellemzı jellemzı tulajdonsá tulajdonsága, hogy a haté hatékonysá konyság érdeké rdekében a rendszer esetenké esetenként tö több má másolatot tá tárolhat a filefile-rendszer egyes ré részeibı szeibıl a kü különbö nbözı helyszí helyszíneken. 249
A tö többfelhaszná bbfelhasználós rendszereknek tá támogatni kell azt a lehetı lehetıséget, hogy mozgatni tudjá tudják a folyamatokat a rendszer kü különbö nbözı helyszí helyszínei kö között. Erre a kö következı vetkezı okok miatt lehet szü szüksé kség: Haté Hatékony erı erıforrá forrás-elé elérés: Abban az esetben haszná használjuk, amikor nincs lehetı lehetıség arra, hogy – a helyhez kö kötöttsé ttség miatt – a folyamathoz kö közeli erı erıforrá forrást vá válasszunk. Ilyenkor a folyamatot mozgatjuk a helyszí helyszínek kö között az erı erıforrá forrás kö közelé zelébe. Terhelé Terhelés kiegyensú kiegyensúlyozá lyozás: Ha a há hálózatban lé lévı CPUCPU-k kö közül néhány tú túlterhelt, mí míg má mások kevé kevésbé sbé kihaszná kihasználtak, akkor átirá tirányí nyíthatunk folyamatokat má más CPUCPU-hoz. TaskTask-kényszer: nyszer: Egy folyamat lehet egymá egymással együ együttmő ttmőködı folyamatok ré része. Ilyenkor elı elıfordulhat, hogy a csoport tagjainak egyidı egyidıben kell futni. Ez csak úgy érhetı rhetı el, ha kü különbö nbözı helyszí helyszíneken elhelyezkedı elhelyezkedı CPUCPU-kon futtatjuk ezeket a folyamatokat. 250
125
VÉGE
251
126