Teljes anyag, lezárva 99. XII. 17-én.

Megjegyzések:

  1. Vizsga
    1. Összehasonlítva a többi vizsgáiddal, mennyire tartottad nehéznek az Operációs rendszerek II. vizsgát?

 

    1. Az Operációs rendszerek II. vizsgán számonkért anyag mennyire fedte le az előadáson elhangzott anyagot?
    1. Az Operációs rendszerek II. vizsgán megszerzett érdemjegy mennyire tükrözte a tényleges tudásodat?
    1. Az Operációs rendszerek II. vizsgára hány napot tanultál (1 nap kb. 10 óra tanulás)?

 

  1. Előadás
    1. Mekkora hányadára jártál be az Operációs rendszerek II. előadásnak?
    1. Összehasonlítva a többi tárggyal, mennyire tartottad az Operációs rendszerek II. előadás anyagát hasznosnak és érdekesnek a képzésed szempontjából?

 

    1. Mennyire volt jól ellátva az Operációs rendszerek II. előadás segédanyagokkal (jegyzet, óravázlat stb.)?
    1. Mennyire volt gyors ill. követhető az Operációs rendszerek II. előadás összehasonlítva a többi tárggyal?
    1. Mi az összbenyomásod az Operációs rendszerek II. előadásról? Előadás stílusa, az előadások struktúrája stb.
  1. UNIX operációs rendszer rövid története és jellemzői

Irányzat

Verziók

Példák

AT&T System X rendszerek

System V Release 4.2

Sun Solaris, AT&T System V

Berkley BSD X rendszerek (1992-ig)

BSD 4.4

SunOS, ULTRIX (Alpha), BSD386, FreeBSD

OSF rendszerek (1991)

OSF/1

DEC Didital UNIX, IBM AIX, HP-UX

POSIX
(IEEE szabvány)

 

Linux

 

    1. Jellemzők

 

    1. Előnyök

1999-9-3

1999-9-10

  1. Windows NT

Megjelenés ideje

Verzió szám
(belső név)

A verzió tulajdonságai, ill. újdonságai

1989.

Az NT tervezésének kezdte.

1993. július

NT 3.1.

Kompatibilis a WIN 3.1.-gyel;
16-bites operációs rendszer

1994. szeptember

NT 3.5
(Daytona )

Optimalizálják a rendszer méretét, és teljesítményét; hatékonyságnövelés.

1995. május

NT 3.51

Power PC architektúra támogatása.

1996. július

NT 4.0
(Shell Update Release – SUR)

Azonos külső (felhasználói interfész) a Windows 95-ös rendszerekkel. Megnövekedett hatékonyság: pl. a grafikus alrendszer, képernyőkezelő funkciók (a Win32-es alrendszer egyes részei) átkerültek felhasználói módból kernel módba.

    1. Elvárások
    1. Tervezői célkitűzések
    1. A Windows NT, a Windows 95, és a Windows 98 összehasonlítása

Tulajdonságok

NT

95/98

Multiprocesszoros környezet támogatása

*

-

Változó HW platform

*

+ (korlátozottan)

NTFS (biztonsági hozzáférés)

*

-

32 bites kód

*

+

Reentrens (több példányban, párhuzamosan futtatható) kód

*

-

16-bites (Windows 3.1-es) alkalmazások futtatása

*
(biztonságos)

+
(összeakadhatnak)

Megosztott memória elérésének korlátozása

csak az ér el aki megnyitja

mindenki elérheti

A rendszer adatstruktúráit nem érhetik el az applikációk

*

sok adatszerkezet elérhető

User módban nem írhatóak az operációs rendszer adatai

*

-

NT 5.0-ban várható újdonságok

Plug and Play képesség

-

+

Power management

-

+

Infrared támogatás

-

+

FAT32 könyvtárszerkezet támogatás

-

+

Minden Windows 3.1-es és DOS alkalmazás futtatása

-(nem is lesz)

*

 

 

  1. FOLYAMATOK A UNIX-BAN
    1. UNIX folyamatok
      1. Folyamatok memóriája
      1. Folyamatok párhuzamos végrehajtása
    1. A UNIX rendszer és a folyamatok kapcsolata

Operációs rendszer szolgáltatások a folyamatoknak, lehetőségek a perifériák kezelésére.

Az operációs rendszer belső magja, az ún. kernel, a következő négy működést valósítja meg:

 


 

 


 

1999-9-10-17

    1. Folyamatok futási környezete

Folyamatok logikai memóriaképe:

Memória védelme:

Rendszer környezet:

Felhasználói környezet:

Különböző módú programfuttatás:

 

Folyamat környezet

 

Felhasználói mód

alkalmazás

(csak a folyamat memória területe érhető el)

rendszerhívások, kivételkezelő

(folyamat és rendszer memória is elérhető)

Kernel mód

nem megengedett

megszakítás-kezelő, rendszer folyamatok

(csak a rendszer memória érhető el).

 

Rendszer környezet

 

 

 

 

    1. Megszakítások (interrupt)

Interruptot okozhat:

Az interrupt rutin által végzett tipikus műveletek:

  1. (végrehajtási mód váltása: user® kernel)
  2. Elmenti az aktuális processzor környezetet.
  3. IT kiváltó esemény azonosítása.
  4. IT kiszolgáló rutin meghatározása.
  5. IT rutin hívása.
  6. Környezet visszaállítása.
  7. (végrehajtási mód váltás: kernel ® user)
    1. Rendszerhívások

    1. Az ütemező hardver-támogatása: az óra-interrupt

A hardver óra adott időközönként megszakítást okoz.

Gyakorisága: tikk (óra-tikk, CPU-tikk): 10 ms (rendszerfüggő: HZ).

Az óramegszakítás-kezelő az alábbi fő feladatokat hajtja végre:

    1. Folyamatok állapot-átmeneti diagramja

Folyamat állapotainak változását keletkezése után.

 

1999-9-17

1999-9-24

  1. A folyamatok környezetének adatelemei

Minden adat, ami szükséges a folyamat újraindításához
Két adatstruktúrában tárolódnak:

Felhasználói címtartomány

    1. A u area

Processz-táblázatának (Process Table)

A user area elemei:

A hardver környezet (PCB) tartalmazza a CPU regisztereit:

 

    1. A proc struktúra

A proc struktúra elemei:

 

A processz-táblázat és egy folyamathoz tartozó u area

Processz-táblázat: Proc2 u area:

 

 

Az a stack, amit a folyamat akkor használ, amikor kernel módban fut, vagyis rendszerhívások módváltása után, ill. interruptok esetén.

MMU címtranszformációs táblázat

Az a táblázat, amiben az operációs rendszer számon tartja a folyamat által megnyitott fájlokat, ill. a fájlok eléréséhez szükséges információt.

      1. Felhasználói címtartomány

TEXT

 

Program kód terület

Statikus kódterület

Dinamikusan linkelt könyvtárak (DLL)

DATA

Adat terület

Inicializált adatok (BSS)

Nem inicializált adatok

Osztott elérésű adatok

Dinamikusan foglalt adatok (HEAP)

STACK

Veremtár

 

.1. ábra: Egy program logikai címtartományának felépítése

Operációs rendszer: logikai címeket fizikai címekké transzformálja:

  • Címtranszformációs tábla (per process region table)
  • CPU MMU egységének segítségével.
    1. Új folyamat indulása a UNIX-ban

A fork rendszerhívás – a processz generálás – lépései:

Új program betöltése: exec hívás. A folyamat a paraméterként megadott programot hajtja végre:

Példa a fork és az exec használatára:

if((result=fork())==0)

{

printf("GYERMEK VAGYOK");

exec("gyermek_kód",...);

}

else

{

if(result<0)

{

printf("HIBA");

/*hiba esetén negatív értéket ad vissza*/

}

else

{

printf("Anya vagyok. Gyermekem PID-je:%d", &result);

/*ha a visszatérési érték >0, írja ki*/

{

}

  1. SIGNAL-kezelés

A signal (jelzés) események kezelésére.

  • Aszinkron és szinkron események kezelése.
  • A megadott függvény vagy beépített funkció meghívása.

Konstansként definiált eseményazonosítók: SIGINT, SIGKILL, SIGSTOP.

    1. Események kezelése

Beépített (rendszer által megvalósított) funkciók:

  • abort

A folyamat befejeződik (kilép), és generál egy ún. core fájlt, ami tartalmazza a folyamat memóriaképét kilépéskor. Ezt elemezve esetleg meghatározhatjuk, hogy mi okozta a leállást.

  • exit

Kilép core fájl generálása nélkül.

  • ignore

Elveti az eseményt, nem veszi figyelembe. (Nem minden signal esetén lehetséges.)

  • stop

Felfüggeszti a folyamat futását.

  • continue

Folytatja a folyamat futását.

A felhasználó által definiált működés leírása a következőképpen történik:

    1. SIGNAL-ok ellenőrzése

A következő alkalmakkor ellenőrzi a UNIX a signal-ok érkezését:

    1. SIGNAL-források

A folyamatok egymásnak is küldhetnek signal-t, de ez a lehetőség korlátozott. Az operációs rendszer csak azonos UID-vel rendelkező folyamatok között engedi meg signal-ok küldését. Fontos, hogy a signal-ok kezelésénél a rendszer mindig a valós user ID-t veszi figyelembe.

A signal-ok forrásai lehetnek:

  • Exeption (kivétel) pl.: nullával való osztás, nem megengedett memória elérési kísérlet stb.
  • Másik folyamat.
  • A kernel küld egy signalt pl. I/O egység kezelésekor egy adott adatcsomag megérkezésekor.
  • Alarm érkezése.
  • Kvóta-túllépés.
  • Folyamatok kezelése. (A shell a háttérben futó folyamatok kezelésére signal-okat használ.)
    1. SIGNAL kezelése alvó folyamatok esetén

Az alvó (sleep állapotban levő) processzeket két csoportba soroljuk:

1999-9-24

1999-10-01

  1. A UNIX védelmi rendszere

Illetéktelen hozzáférés megakadályozása:

Jogosítványokon keresztül valósul meg.

    1. A UNIX védelmi rendszerének működése

Minden felhasználónak van egy azonosítója (UID).

A jogosítványok könnyebb kezeléséhez:

  • csoport (group) ID is (továbbiakban GID).

Fájl i-node:

  • fájl tulajdonosának jogosultságai,
  • fájl tulajdonosának csoportja jogosultságai,
  • az összes többi felhasználó jogosultságai.

Egy futó processznek két azonosítója, ID-je van:

  • hatásos UID (ill. GID):
    a védelmi rendszer fájlhozzáféréskor/eléréskor használja.
  • valós UID (GID):
    signal-ok kezelésekor vizsgálja a védelmi rendszer.

Processz elindul (alapeset):

  • elindító felhasználó jogaival fog rendelkezni, megkapja folyamatot elindító felhasználó UID-ját.
  • hatásos és valós UID megegyezik.

Hatásos UID megváltoztatása:

Kitüntetett felhasználó, a root (UID=0), aki minden jogosultsággal rendelkezik. A root számára minden fájl elérhető.

 

 

  1. FOLYAMATOK ÜTEMEZÉSE A UNIX-BAN

Ütemező a multiprogramozott operációs rendszer "lelke".

Ütemező algoritmus megválasztása meghatározza:

Tradicionális UNIX ütemezési algoritmus:

  • Az SVR3, ill. 3.1BSD UNIX rendszerek alkalmazták.
  • Néhány megoldás már idejétmúlt.
  • A mai UNIX rendszerek az algoritmus valamilyen továbbfejlesztett változatát használják.
    1. Az ütemezési algoritmussal szemben támasztott követelmények

A UNIX rendszer feltételezett felhasználása:

  • több felhasználós,
  • interaktív programok,
  • batch programok.

Követelmények:

Általános kritériumok:

    1. A UNIX-ütemezés rövid jellemzése

Prioritásos ütemezés, időben dinamikusan változó prioritással. Felhasználói, ill. kernel módban eltérő algoritmus.

Felhasználói módban az ütemezés preemptív:

A kernel módban az ütemezés szigorúan nem preemptív:

  • Kernel kódot végrehajtó folyamatot (pl. rendszerhívás, megszakítás-kezelés) nem lehet kényszeríteni, hogy lemondjon a CPU használatról egy nagyobb prioritású folyamat javára.

Átütemezés kernel módban:

  • önként lemond a futás jogáról (sleep rendszerhívást hajt végre).
  • folyamat visszatér kernel módból felhasználói módba.

A kernel kód reentrens!

Példa ami indokolja, hogy a kernel nem preemptív:

Láncolt lista egy közbülső elem lefűzése előtt

Láncolt lista egy közbülső elem lefűzése közben

    1. Folyamatok ütemezési prioritása
    2. 0

      legnagyobb prioritás

      KERNEL prioritások

      .

       

      .

       

      .

       

      49

       

      50

       

      FELHASZNÁLÓI prioritások

      .

       

      .

       

      .

       

      127

      legkisebb prioritás

       

        1. Prioritás meghatározása kernel módban
        2. Kernel módban a prioritás attól függ, hogy a rendszer milyen ok miatt hajtott végre sleep rendszerhívást, vagyis, hogy milyen eseményre várakozik. Emiatt a kernel prioritást szokták alvási prioritásnak is nevezni.

        3. Prioritás meghatározása felhasználói módban

Két fő tényező:

A nice szám a felhasználó által meghatározható érték, amivel kifejezheti, hogy mennyire fontos az általa indított folyamat.

A prioritás számításához négy paramétert használ a UNIX:

  • p_pri: aktuális ütemezési prioritás
  • p_usrpri: felhasználói módban érvényes prioritás
  • p_cpu: a CPU használat mértékére vonatkozó szám
  • p_nice: a felhasználó által futás elején adott nice szám

Az operációs rendszer a fenti paramétereket minden folyamat esetén külön-külön számon tartja.

 

Az ütemező a p_pri paraméterben tárolja a folyamat aktuális prioritását.

Felhasználói mód:

  • p_pri = p_usrpri

Kernel mód:

  • p_pri p_usrpri

A p_cpu paraméter a folyamat CPU használatára jellemző érték.

korrekciós faktor (KF) számítása:

KF: = 2*futásra kész folyamatok száma /
2* futásra kész folyamatok száma+1

p_cpu = p_cpu * KF

p_usrpri = P_USER+p_cpu/4+2*p_nice

 

futó folyamat

minden folyamat

minden interrupt

p_cpu := p_cpu +1

Megvizsgálja, van-e a futónál magasabb prioritású folyamat. Ha van, átütemez.

minden
10. interrupt

Round-Robin algoritmus: ha több azonos prioritású folyamat van a legmagasabb prioritású pozícióban, 10 óra-interrupt-onként váltja a futó folyamatot

minden
100. interrupt

 

  1. korrekciós faktor számítása
  2. p_cpu = p_cpu * KF
  3. p_usrpri = P_USER+p_cpu/4+2*p_nice

 

P_USER konstans, értéke a legkisebb felhasználói prioritás értékével egyezik meg, vagyis példánkban P_USER = 50.

A KF korrekciós faktor számításával a rendszer terhelését igyekszik figyelembe venni az ütemező.

Az ütemezési algoritmus, ill. a hozzá kötődő tevékenységek nem közvetlenül az interrupt-ban hajtódnak végre (call-out mechanizmus).

    1. Környezetváltás ütemezéskor

Nem preemptív ütemezés:

  • várakozik: sleep rendszerhívás.
  • kilép: exit rendszerhívást hajt végre.

Preemptív ütemezés:

    1. Adatszerkezetek folyamatok prioritásának tárolására

Dinamikus adatszerkezetek.

Az azonos prioritású futásra kész folyamatok:

  • láncolt listában.

Az adott prioritású folyamatok:

  • hash táblázatban.

 

A folyamatok prioritásának tárolása

 

    1. Példa az ütemezés számolására

p_cpu = p_cpu * KF = p_cpu * ˝

p_usrpri = P_USER+p_cpu/4+2*p_nice = 50 + p_cpu/4

 

A

B

C

 

p_pri

p_cpu

p_pri

p_cpu

p_pri

p_cpu

Lépés

Futó foly.

50

0

50

0

50

0

1

A

50

1

50

0

50

0

2

A

A

50

99

50

0

50

0

99

A

50+50/4

63

100/2

50

50

0

50

0

100

A

63

50

50

1

50

0

101

B

….

B

63

50

50

99

50

0

199

B

50+25/4

56

50/2

25

50+50/4

63

100/2

50

50

0

200

B

56

25

63

50

50

1

201

C

….

C

56

25

63

50

50

100

299

C

50+13/4

53

25/2

13

50+25/4

56

50/2

25

50+50/4

63

100/2

50

300

C

 

    1. A UNIX-ütemezés értékelése
    1. Call-out

A call-out mechanizmus egy adott tevékenység későbbi időpontban történő végrehajtása:

Ismétlődő feladatok (kernel funkciók) végrehajtása:

A megszakítás-kezelő nem közvetlenül hívja meg a call-out függvényeket, hanem beállít egy erre a célra rendszeresített jelzőbitet.

Dinamikus adatszerkezet a call-out függvények kezelésére:

      1. Call-out függvények láncolt listás ábrázolása
      2. Call-out függvények tárolása időkerékkel

 

 

1999-10-01

1999-10-06

  1. A UNIX FÁJLRENDSZER

UNIX File System (UFS):

    1. UFS jellemzők
    1. UFS felhasználói felület jellemzői
    1. A UNIX fájlrendszerben használat adatszerkezetek

i-node-szám (2bájt)

fájl neve (14 bájt)

6

.

5388

..

45

adat.dat

677

.titok.titkos

 

 

 

    1. i-node

Fájl létrehozásakor a fájl a létrehozó felhasználó hatásos user-ID-jét és group-ID-jét örökli.

Fájlrendszer méretének korlátja:

  • a logikai diszk mérete nem lehet nagyobb a fizikai diszk méreténél.

Fájl méretének korlátja:

  • a fájl mérete nem lehet nagyobb a logikai diszk méreténél.
    1. Fájlok kezelése

 

u area

 

 

Global File Descriptor Table

 

i-node Table

 

File Descriptor Table

 

 

 

 

 

 

read

 

 

read/write

 

 

 

write

 

 

eltolás

 

i-node

write

referencia szám=1

referencia szám=1

 

 

 

 

 

 

 

read/write

 

 

 

 

 

 

read

 

 

read/write

 

 

 

 

 

eltolás

 

i-node

 

 

 

 

referencia szám=1

 

referencia szám=1

 

 

 

 

 

 

 

 

A UNIX fájlkezelésre használt rendszerhívások:

    1. Standard csatornák

Új fájl nyitása:

Standard csatornák átirányítása:

  • fájl descriptor-t duplikálunk (átmásolunk dup() rendszerhívással).

Példa:

fd = fopen("r","myinput");
/*új fájl nyitása, fd=visszatérési szám*/

fclose(1); /*STDIN lezárása*/

dup(fd);
/*a "myinput FD-jét az elsõ szabad helyre másolja*/

    1. Adatszerkezetek és fájlrendszer leírók a lemezen
    2. Fájlrendszer a lemezen:

      1999-10-086, 1999-10-08

      1. A SUPER BLOCK

A SUPER BLOCK tartalma:

      1. Szabad adatblokkok tárolása
      2. Szabad adatblokkokra mutató tömbök láncolt listája
        Cél: gyors kiszolgálása a kéréseknek.

        Egy adatblokk 512 bájt * 2n nagyságú, ahol n tetszőleges egész szám. Általános az 1K-s blokkméret.

        következő szabad adat blokk mutatója

        super block

         

         

         

         

         

         

         

         

         

         

        83

         

         

         

         

         

         

         

        Szabad adatblokkok listája

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        szabad
        blokk

         

        szabad
        blokk

         

        szabad
        blokk

         

         

        adat blokkok területe a lemezen

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        Láncolt lista első eleme (83-as adat blokk)

         

         

        95

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        szabad
        blokk

         

        szabad
        blokk

         

        szabad
        blokk

         

        szabad
        blokk

         

        szabad
        blokk

         

        szabad
        blokk

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

      3. Az i-node-ok tárolása a rendszerben

Cél: gyors kiszolgálása a kéréseknek.

 

super block

i-node lista (lemezen)

 

szabad i-node-ok listája (super block)

f.

f.

f.

f.

sz

f.

sz

 

 

sz

sz

sz

sz

x

x

 

 

 

 

 

 

 

 

 

 

 

 

első szabad i-node

a lemezen

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

foglalt vagy super block-ban szerepelő i-node

 

    1. A UNIX fájlrendszer felhasználói interfésze

A UNIX fájlrendszer felhasználói felületének lehetőségei:

      1. Hard link

Egy fájl különböző nevekkel történő elérése.

ln /home/users/usr1/file /home/users/usr2/hardlink

/home/users/usr1

 

/home/users/usr2

43

.

 

67

.

23

..

 

88

..

92

file

 

59

adat.dat

91

titok.mese

 

92

hardlink

 

 

 

 

 

 

 

 

 

 

 

Hátrány:

      1. Szimbolikus link
      2. Hard link hibáinak kiküszöbölése. (4.2 BSD)

        ln -s /home/users/usr1/file /home/users/usr2/szimb_link

        /home/users/usr1

         

        /home/users/usr2

        43

        .

         

        67

        .

        23

        ..

         

        88

        ..

        92

        file

         

        59

        adat.dat

        91

        titok.mese

         

        -

        szimb_link: /home/users/usr1

         

         

         

         

         

         

         

         

         

         

      3. Pipe

A pipe (csatorna, csővezeték):

Kétféle pipe van:

  • elnevezett pipe: mknode(csatorna_név),
  • név nélküli pipe: pipe().
  1. Elosztott rendszerek

Elosztott rendszer:

Párhuzamos rendszerek típusai:

  • szorosan csatolt (vagy multiprocesszoros) rendszerek, illetve
  • lazán csatolt rendszerek.

Terminológia:

  • Elosztott rendszer: lazán csatolt rendszer.

Elosztott rendszerek típusai:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1. Elosztott rendszerek tulajdonságai

Elosztott rendszerek előnyei:

    1. Elosztott rendszerek operációs rendszerei

Hálózati operációs rendszer:

A felhasználó tudatában van a hardver elosztott voltának.

Pl.: rlogin, ftp.

Elosztott operációs rendszer:

A felhasználó nincs tudatában a hardver elosztott voltának.

Pl.: adatvándorlás, folyamatok vándorlása (data, process migration).

 

  1. ELOSZTOTT FÁJLRENDSZEREK
  2. Távoli csomópontokban elhelyezkedő fájlok elérése a helyi fájlokkal azonos interfészen keresztül.

    1. Elosztott fájlrendszerekkel szemben támasztott követelmények

lokális és távoli fájlok azonos eljárásokkal történő kezelése.

a fájlok neve nem hivatkozik fizikai elhelyezkedésükre.

  • Vándorlás átlátszósága:

a fájlok a rendszerben mozgathatók anélkül, hogy megváltozna az elnevezésük.

  • Méretezés átlátszósága (skálázhatóság):

a fájlrendszer méretezhető.

  • Hibatűrés:

egy komponensek hibája esetén képes tovább működni.

az összes fájl a rendszer minden belépési pontjáról elérhető.

a fájlok áthelyezhetők az egyik helyről a másikra a rendszer futása közben is.

    1. Elosztott fájlrendszerek megvalósítása
      1. Kliens-szerver modell
      2.  

         

         

         

      3. Kliens állapotának tárolása

Az elosztott fájlrendszer megvalósítása lehet:

  • állapotmentes, és
  • állapottárolós.
      1. Fájlok elnevezése elosztott fájlrendszerben

Az egyes csomópontokban az állománynevek tere lehet

  • uniform (egységes), ill.
  • nem uniform (nem egységes).

Uniform

Nem uniform

  1. A SUN Network File System (NFS)

Elosztott állományrendszer:

    1. A SUN NFS jellemző tulajdonságai

A SUN NFS felhasználói felületének lehetőségei a következők:

    1. A SUN NFS tervezőinek célkitűzései

 

Következmény: állapotmentes megvalósítás.

Előnye: egyszerű újraindíthatóság.

Hátránya: a szerver csak stabil állapotában válaszolhat a kliens kéréseire. (Nem használhat pl. cache-t.)

      1. A SUN NFS részei

Egymásra épülő protokollok halmaza.
(Számos az NFS-től független alkalmazás használja őket.)

A SUN NFS által használt protokollok a következők:

Definiálja, hogy a kliens és a szerver hogyan tudnak együttműködni. Pl.: get/setattrib(fájl), lookup(fájl_név), write(fájl), read(fájl)

A mount protokoll tipikus szolgáltatásai:
mount:
távoli fájlrendszer helyi fájlrendszerben történő befűzése,
unmount: kapcsolat megszüntetése,
dump: a fájlrendszerbe “fel-mount-olt” távoli fájlrendszerek kilistázása.

Egy működő SUN NFS rendszerben megtalálható szoftver komponensek:

Tipikus démon processzek:
biod:
blokkos adatátvitelt kezelő daemon.
mountd: mount-olással kapcsolatos kérdéseket elégíti ki.
nfsd: kérésekkel kapcsolatos kéréseket intézi.

  • NLM (Network Lock Manager).
  • NSM (Network Status Manager).

 

      1. XDR (EXtended Data Representation) protokoll

Az XDR protokoll:

 

 

Típus

Adat

XDR ábrázolás

Egész szám

0x123456

0x00

0x12

0x34

0x56

Három-elemű egészekből álló tömb

[tömb hossza]

0x00

0x00

0x00

0x03

4

0x00

0x00

0x00

0x04

2

0x00

0x00

0x00

0x02

-1

0xFF

0xFF

0xFF

0xFF

      1. Az RPC protokoll

Megbízható üzenettovábbítást valósít meg a kommunikáló partnerek között.

Az RPC protokollok rögzítik:

RPC típusai: Kliens folyamat várakozik-e az általa kért szolgáltatás végrehajtására:

  • szinkron,
  • aszinkron RPC protokoll.

SUN RPC protokoll:

  • szinkron
  • XDR protokollt.
      1. Az RPC protokoll működése

Az RPC-kérés felépítése:

XID

IRÁNY

RPC VERZIÓ

PRG AZONOSÍTÓ

PRG VERZIÓ

SZOLGÁLTATÁS

AZONOSÍTÁSI INFORMÁCIÓ

ADAT

RPC generálta egyedi azonosító.

  • IRÁNY:

Kérés vagy válasz.

  • RPC verzió:

Több RPC verzió létezik. (Az üzenetformátum verziófüggő.)

A szolgáltatás azonosítója. (Több szolgáltatás is használhat RPC-t.)

  • PRG verzió:

Az adott szolgáltatás verziója.

  • Azonosítási információ:

A küldő folyamat azonosítója. PL.: UNIX: PID.

Az üzenet adatrésze.

Az RPC-válasz felépítése:

XID

IRÁNY

STÁTUSZ

AZONOSÍTÁSI INFORMÁCIÓ

STÁTUSZ 2

ADAT

Megadja, hogy sikeres volt-e a kért szolgáltatás végrehajtása.

    1. A SUN NFS működése

  1. Virtuális fájlrendszer

A virtuális fájlrendszer (Virtual File System, VFS) a UNIX fájlrendszer (UNIX File System, UFS) továbbfejlesztése:

    1. Az UFS és VFS alatti fájlelérés összehasonlítása

VFS esetén a globális fájl-descriptor tábla tartalma kibővül:

Mutató az adott fájlrendszerben a fájl azonosítására szolgáló adatmezőre. Pl.: UFS-hez tartozó fájl esetén a v_data az i-node-ra mutat.

  • v_ops:

Az adott fájlrendszerben a fájl kezelésére szolgáló rutinok címeit tartalmazó táblázatra mutat. Minden ilyen táblázat felépítése azonos.

NFS esetén a fájlok azonosítása:

    1. Távoli fájlok elérése NFS használatával

  1. Az X Window rendszer

Grafikus kimenetű alkalmazások felhasználói felületének megjelenítése.

    1. Az X Window rendszer működése

Kliens-szerver modell használata.

A szerver kezeli az ún. grafikus munkahelyet, melynek részei:

A kliens egy grafikus kimenetű (általában interaktív) folyamat.

      1. Az X protokoll

A rendszer magja az X protokoll:

A protokoll kétirányú aszinkron kommunikációt tesz lehetővé.

Az üzenetek típusai a következők lehetnek:

A hálózati kommunikáció mérséklésére törekszik:

    1. Az X Window rendszer koncepciója

Alapvető elem a grafikus, ún. X munkahely:

      1. Ablakkezelés

A grafikus képernyő kezelése: ablakok létrehozása.

Az ablakok rendszere hierarchikus:

  • gyökér ablak,
  • leszármazott ablak.

Ablakok mozgatása:

      1. Bemeneti eszközök kezelése

Az eszközök állapotváltozásakor:
a szerver esemény üzenettel értesíti a klienst.

A bemeneti információ elosztása:

Pozicionáló eszköz kezelése:
ablak bal felső sarkától számított relatív koordinátákban m
ért információ.

Karakteres input:
a karakter-hozzárendelést a szerver végzi.

    1. Megjelenítő eszköz kezelése

Raszteres (képpontokból, pixelekből álló) grafikus terminál.

Az ablakok helyének kezelése:
a képernyő bal felső sarkától számolt derékszögű koordiná
ta rendszerben.

Az ablakok és rajzelemek elhelyezkedését képpontokban méri.

Rajzolás:

Színek használata:

      1. A kezelői felület elemei

Egy működő X rendszernek három fő eleme van:

1999-, 1999-

  1. A WINDOWS NT
    1. Operációs rendszerek felépítése
      1. Monolitikus kernel
      1. Réteg szerkezetű operációs rendszer

 

      1. Kliens-szerver modellre épülő operációs rendszer

Pl.: Mach operációs rendszer. UNIX daemon folyamatok

    1. Az NT felépítésének fő jellemzői
    1. Az NT objektum-orientált szemlélete

A Windows NT objektum-orientált szemléletben készült:

  • adatrejtés:
    Az operációs rendszer objektumai csak saját adataikat érhetik el.
  • interfész-használat:
    Az objektumok formális interfészt használnak egymás elérésére.
  • hierarchikus objektum szerkezet:
    kernel objektumok, executive objektumok.

A Windows NT nem valósítja meg a következő objektum-orientált tulajdonságokat:

  1. A WINDOWS NT FELÉPÍTÉSE
    1. HAL (Hardware Abstraction Layer)
    1. Kernel
    1. Device driver-ek

A device driver-ek (készülékmeghajtók) az I/O alrendszer és a hardver között teremtenek kapcsolatot.

Hardver elérés: HAL-rétegen keresztül. ("Hordozható" device driver-ek.)

A device driver-ek négy típusát különböztetjük meg:

Az NT ún. réteg szerkezetű device driver struktúrát használ.

      1. Réteg szerkezetű device driver struktúra

 

 

 

    1. Executive

Magasszintű szolgáltatásokat nyújtó alrendszereket megvalósítása.

Önálló részei:

Funkciói:

    1. Rendszer processzek
      1. Fontosabb rendszer folyamatok

A rendszer indításakor létrehozott folyamat, ami az applikációk elindításáért felelős.

Feladatai:

A felhasználók ki és beléptetését intéző folyamat.

Minden ún. SAS (Secure Attention Sequence) billentyű kombináció (alapesetben: CTRL-ALT-DEL) aktivizálja.

Beléptetéskor a uesr name és password kombinációt az önálló folyamatként futó Local Security Authentication Server-hez (LSASS) továbbítva ellenőrzi.

Ha az azonosítás sikeres, elindítja a USERINIT.EXE programot, ami beállítja a felhasználó által definiált környezetet, és elindítja a user által kért shell-t. (alapesetben: EXPLORER.EXE)

  • Service Controller:

A szolgáltatások indításáért és leállításáért felelős folyamat.

    1. Szolgáltatások

Szolgáltató folyamatok (kliens-szerver működés).Pl.:

Tulajdonságaik:

A szolgáltatások három elnevezése:

1999-11-5, 1999-11-12

 

    1. NTDLL.DLL

Dinamikusan linkelhető könyvtár (Dinamically Linked Library, -DLL).

  • Interfész a felhasználói módú folyamatok számára
  • Minden felhasználói objektum az NTDLL.DLL-en keresztül éri el a környezetét (pl. LPC).

Működés:

    1. Alrendszerek

Applikációk futtatása: alrendszerek segítségével:

  • Win32 (szükséges),
  • POSIX (opcionális),
  • OS/2 (opcionális).

Alrendszerek feladata:

  • Alkalmazások futtásához szükséges szolgáltatások nyújtsa.
  • Alkalmazások kontrollálása.

Az alkalmazások és az NT interfésze: alrendszer DLL
(programozói interface (API, Application Programming Interface).

      1. POSIX alrendszer

Szigorúan a POSIX 1003.1-es szabványban rögzített tulajdonságokat valósítja meg.

Lehetőség van:

Nincs lehetőség

      1. Win32 alrendszer

A Win32 alrendszer:

  • 32-bites alkalmazások,
  • 16-bites és
  • DOS-os alkalmazások futtatása.

Nélküle nem futhat az NT.

Az alrendszer egy része kernel módban fut. (WIN32K.SYS):

Grafikus eszközözök és a printer kezelése szabványos felületen történik:

 

Win32 API-hívások megvalósítása

Megvalósításuk helye szerint:

  • Az alrendszer DLL-ben:

Egyszerű funkcionalitású függvények, a végrehajtásukhoz nincs szükség a rendszer már részeinek elérésére.

A hívást ebben az esetben az alrendszer DLL továbbítja az NTDLL.DLL felé, ami az Executive réteg LPC szolgáltatását igénybe véve, eljut a Win32 alrendszerhez, ami a kérést teljesíti.

  • Az NT más kernel módban futó rétege valósítja meg a hívást:

A hívás ebben az esetben is az Executive réteghez kerül, ami továbbítja a megfelelő kernel réteg felé.

  1. A WINDOWS NT BELSŐ MECHANIZMUSAI

A következő rendszermechanizmusokkal foglalkozunk:

Kernel módú komponensek használják:

  • executive
  • kernel
  • device driver-ek
    1. Interrupt- és kivételkezelés

Az interruptok és a kivételek:
a CPU-t eltérítik
az utasítások normál végrehajtási sorrendjétől.

Forrás:

  • hardver,
  • vagy szoftver komponens.

Az NT trap (csapda) fogalma:

A processzor azon mechanizmusa , amelynek segítségével az egy grehajtás alatt levő szálat megállít egy interrupt vagy egy kivétel hatására.

Működés:

NT kernel trap-kezelő rutinja:
eldönti, melyik operációs rendszer komponens képes az interruptot vagy kivételt kiváltó eseményt lekezelni.

A trap-kezlő aktivizálódik a rendszer hívások végrehajtásakor:

 

A trap-kezelő működése

 

 

Trap kezelő

 

IT rutinok

 

 



IT

 

 

IT diszpécser

 

 

 

 

 

 

 

 

 

 

 




Rendszer szolgáltatás hívás

 

 

Rendszer szolgáltatás diszpécser

 

Rendszer szolgáltatások

 

 





Kivételek
(HW/SW)

 

 

 

Kivétel diszpécser

 

Kivétel kezelő rutinok




Virtuális memória kivételek

 

 

 

Virtuális memóriakezelő lapkezelője

 

 

Az interrupt-ok és a kivételek:
kezelésüket tekintve nagyon hasonló események.

Különbség az interrupt és a kivétel között:

 

Ellenpéldák:

      1. Az IT-k típusa és prioritásaik

A kezelhető IT-k száma processzorfüggő.

Operációs rendszer:

  • Az interrupt-okhoz prioritási szinteket (ún. Interrupt Request Level, -IRQL) rendel.

A párhuzamosan érkező interrupt-ok kiszolgálása:

7

Felső szint

6

Processzor – IT

5

Órajel

4

I/O-eszköz/Felső szint

3

I/O-eszköz

2

Késleltetett procedúrahívás

1

Aszinkron procedúrahívás

0

Alsó szint

 

IRQL-ek az Alpha processzornál

 

 

31

Felső szint

30

Tápfeszültség-kimaradás

29

Processzor – IT

28

Órajel

 

I/O-eszköz(n)

 

.

.

.

 

I/O-eszköz(2)

 

I/O-eszköz(1)

2

Késleltetett eljáráshívás

1

Aszinkron eljáráshívás

0

Alsó szint

IRQL-ek az Intel x86 processzoroknál

Az interrupt szintek használata:

      1. Kivételkezelés
    1. Objektumkezelés
    2. Szinkronizáció
      1. Kernel szinkronizáció
      2. Executive szinkronizáció
    3. Lokális eljáráshívás

A lokális eljáráshívás (Local Procedure Call -LPC):

Két példa az LPC-k használatára:

Az LPC az üzenetváltás három különböző formáját teszi lehetővé:

  1. MEMÓRIAKEZELÉS

A memóriakezelő feladatai:

Tulajdonságok:

  • 32-bites virtuális memóriakezelés.
  • A memóriát laponként (page) kezeli.

Többletszolgáltatások (hatékonyság növelése):

    1. A memóriakezelő felhasználói interfésze

A memóriakezelő szolgáltatásai a Win32 API-n keresztül elérhetők.
A memóriakezelő szolgáltatásai a felha
sználóknak:

    1. Memóriafoglalás

A memóriafoglalás két lépésben történik a Windows NT-ben:

  • reserve
    virtuális címtartomány lefoglalása
  • commit
    virtuális memória lefoglalása

Lehetőség a két lépés egy függvényhívásban történő végrehajtására.

A reserve művelet:

A commit művelet:

A két lépcsőben történő megvalósítás célja:

Példa: a szálak user stack-jének foglalás.

Kétlépéses memóriafoglalás nélkül:

 

    1. Osztott elérésű memória
    2.  

       

       

       

       

       

       

      C fordító (1 lap)

       

      C fordító (1 lap)

       

      C fordító (1 lap)

      C fordító (2 lap)

       

      C fordító (2 lap)

       

      C fordító (2 lap)

      C fordító (3 lap)

       

      C fordító (3 lap)

       

      C fordító (3 lap)

      I. process
      címtartománya (logikai memóriakép)

       

      Fizikai memória

      II. process
      címtartománya (logikai memóriakép)

       

      Osztott elérésű memória

       

       

    3. Memóriavédelem

    1. Copy-on-Write
    2.  

       

       

       

       

      1 lap (eredeti adat)

       

      1 lap (C-o-W)

       

      1 lap (eredeti adat)

      2 lap (eredeti adat)

       

      2 lap (C-o-W)

       

      2 lap (eredeti adat)

      3 lap (eredeti adat)

       

      3 lap (C-o-W)

       

      3 lap (eredeti adat)

      I. process
      címtartománya

      Fizikai memória

      II. process
      címtartománya

       

      Copy-on-write memórialapok írást megelőzően

       

       

       

       

       

       

       

       

       

       


      1 lap (eredeti adat)

       

      1 lap (C-O-W)

       

      1 lap (eredeti adat)


      2 lap (eredeti adat)

       

      2 lap (C-O-W)

       

      2 lap (módosított)


      3 lap (eredeti adat)

       

      3 lap (C-O-W)

       

      3 lap (eredeti adat)


      2 lap (másolat)

      I. process
      címtartománya

      Fizikai memória

      II. process
      címtartománya

       

      Copy-on-write memórialapok írást követően

    3. Memória foglalása
    4.  

    5. A memória mérete

00000000

 

alkalmazás kódja

globális változók

szálak stack területe

DLL

 

felhasználói

címtartomány

7FFFFFFF

 

 

80000000

 

 

 

kernel , executive

HAL

 

C0000000

 

 

 

processz lap tábla

rendszer

C0800000

 

címtartomány

 

rendszer cache

paged pool

nonpaged pool

 

FFFFFFFF

 

 

 

A logikai címtér felépítése

Az NT három memória méretkategóriát különböztet meg:

  • kicsi (small),
  • közepes (medium),
  • nagy (large).

méret kategória

 

x86

 

Alpha

kicsi

Ł 19 MB

Ł 31 MB

közepes

20-32 MB

nem használt

nagy

ł 32 MB (NT Workstation)

ł 64 MB (NT Workstation)

ł 32 MB (NT Workstation)

ł 64 MB (NT Workstation)

A fizikai memória mérete különböző memóriamodellek esetén

 

    1. Címtranszformáció

 

 

 

31

 

0 (LSB)

laptábla könyvtár index (PDI)

laptábla index
(PTI)

byte index
(BI)

x86: 10 bit
Alpha: 8 bit

x86: 10 bit
Alpha: 11 bit

x86: 12 bit
Alpha:
13 bit

virtuális memórialap szám

eltolás

 

A virtuális cím felépítése

 

 









A címtranszformáció menete x86-os processzorok esetén

 

  1. A WINDOWS NT FÁJLRENDSZERE (NTFS)
  2. NTFS: Windows NT File System

    1. Elvárások az NTFS-sel szemben
      1. Biztonság
      2. Minden állomány-hozzáféréskor elérési jogosultság ellenőrzés.

        NT általános objektumelérést ellenőrző biztonsági rendszere.

      3. Nagy diszkek kezelése

64 bites cluster-leíró használata.

Elméleti korlátok:

      1. Megbízható fájlrendszer

A megbízható fájlrendszer megvalósítása:

  • Transaction processing (műveletenkénti feldolgozás).
  • Redundáns tárolása a fontos adatoknak.

Redundáns tárolás

A rendszer duplikálja a fontos adatállományokat a lemezen.

A lemezen egymástól távoli régióiban tárolja a replikákat.

Transaction processing (műveletenkénti feldolgozás)

“Mindent vagy semmit” elvre épül.

Egy lemezművelet teljesen végrehajtódik.

Ha megszakad, a rendszer visszaállítja a fájlrendszer eredeti állapotát.

Mindig konzisztens fájlrendszer a lemezen.

Működés:

 

 

 

 

 

 

 

 

 

 

 

Egy lemezírási művelet kiszolgálása

  1. NTFS -> LFS : készítsen log rekordot.
  2. Az LFS írja a cache-ben lévő log fájlt.
  3. Az NTFS végrehajtja a kért utasítást, írja a (cache-ben lévő) fájlt.
  4. A CM üzen, hogy az írás befejeződött, minden adat megvan.
  5. Az LFS -> CM: milyen adatokat kell a cache-ből üríteni.
    (A megváltoztatott fájlt + log f
    ájlt.)
  6. A CM kiírja a lemezre a log fájlt.
  7. A CM kiírja a lemezre az adatokat, vagyis a megváltoztatott fájlt.

 

 

 

1

2

3

4

5

6

n-3

n-2

n-1

n.

újraindítási információ két példányban

Körkörösen íródó tömb.

Tranzakció <-> log rekord.

(újbóli elvégzéséhez ill. a visszavonáshoz szükséges információ)

A log fájl szerkezete

      1. Réteg szerkezetű device driver struktúra használata

Nagy fájl rendszerek tárolása:

  • több lemezen tárolt fájlrendszer (multivolume file system).

Az NT által támogatott hibatűrő adattárolási technikák:

A RAID a Redundant Array of Inexpensive Disks (olcsó lemezegységek redundáns tára) rövidítése. (Hibatűrő tárolás kommersz elemekkel).

    1. Az NTFS további előnyös tulajdonságai
    1. Az NTFS által használt adattípusok, adatszerkezetek

Volume (kötet):

A lemez egy logikai partíciója

Cluster:

Az adattárolás alapegysége. (Az NT csak clustereket tart nyilván.)

Logical Cluster Number (LCN):

Egy adatszerkezethez, pl. egy fájlhoz tartozó cluster-ek sorszáma.

Virtual Cluster Number (VCN):

A lemezen elhelyezkedő cluster-ek azonosítására szolgáló sorszám.

A lemezen tárolt adatszerkezetek elérése:

LCN:

0

1

2

n.

VCN:

6324

857243

9454

542

 

NTFS metadata:

Azon adatok a gyűjtőneve, amelyek egy fájlrendszer kezeléséhez, ill. a benne tárolt fájlok eléréshez szükségesek.

Ami a lemezen van, az fájl:

  • a volume-leíró, a boot információ, a hibás szektorok leírása, stb.

 

 

$Boot fájl

A rendszer indulásakor használt információ

$Bad sector

A hibás clusterek sorszáma (LCN)

$Bitmap

A clusterek foglaltsági térképe

$Logfile

A Log File Service által a lemeztranzakciók adminisztrálására használt fájl

$MFT

Master File Table

$MFT mirror

A Master File Table (részleges) biztonsági másolata

$Volume

A kötet leírását (típusát, fájlrendszer, stb.) tartalmazó fájl

$Attribute

A kötet tulajdonságait, attribútumait tartalmazó fájl

 

NTFS metadata információk

MFT (Master File Table):

A Master File Table (MFT) a fájlrendszerben tárolt fájlok leírása, elérésükhöz szükséges információ

Első 16 bejegyzést az operációs rendszer használja:

Utána felhasználói fájlok.

A könyvtárak leírása is egyszerű felhasználói fájlokban:

 

 

$ MFT

0.

$ MFT mirror

1.

$ Logfile

2.

$ Volume

3.

$ Attrib

4.

$...

15.

USER FILE1

16.

USER FILE2

17.

USER FILEn

n.

 

A Master File Table szerkezete

 

    1. Fájlokhoz tartozó adatok tárolása az NTFS-ben

Fájl: egymással összerendelt adatok (jellemzők, attribútumok) halmaza.

Attribútumok:

Attribútumoknak minden fájl esetén meghatározott értéke van.

    1. Megvalósítás

A fájlok az ún. file record-okban tárolódnak.

A file record:

Az MFT file record-ok sorozata.

Az MFT csak a file record első 1K-s darabját tartalmazza.

Lényegében az MFT egy 1K-s bejegyzéseket tartalmazó táblázat:

  • A táblázat minden bejegyzése egy-egy fájlt azonosít.
  • A fájl egyedi azonosítója az a sorszám, ami megmondja, hogy az MFT hányadik bejegyzése tartozik hozzá.
  • A bejegyzések minden fájlra vonatkozó információt tartalmaznak.
  • Szerkezetük nem kötött.
    1. File Record

Egy tipikus file record

Az attribútumok értékének tárolása:

  • rezidens és
  • nem rezidens módon.

Attól függ, hogy fizikailag hol helyezkedik el az attribútumot jellemző adathalmaz.

Rezidens tárolás:
közvetlenül az attribútum header után.

Nem rezidens tárolás:
az attribútum után csak egy hivatkozást találunk, hogy a lemez mely clustere tartalmazza az attribútum adatait.

      1. Rezidens tárolás
      2. Általános felépítés:

         

         

         

        attribútum (adat)

        fájl név header

        fájl név (adat)

        security header

        security (adat)

        Egy konkrét példa: (az adatelemek fölött az lefoglalt byte-ok száma látható)

         

        0…………..7

        8…………21

        22……….29

        30 …

        “RESIDENT”

        8h (offset)

        14h (Length)

        “MYFILE.DAT”

        “RESIDENT”

        8h (offset)

        25h (length)

         

        Attribútumok rezidens tárolása

         

      3. Nem rezidens tárolás

 

 

Standard infó

Fájl név

Biztonsági leíró

Adat

VCN

LCN

Num.

0

1344

4

4

2345

4

 

0

1

2

3

4

5

6

7

 

1344

1345

1346

1347

2345

2346

2347

2348

 

Adat attribútum nem rezidens tárolása

    1. Könyvtárak tárolása

Fájlok azonosítása:

  • Fájl referencia szám

 

63

 

47

 

0

Az MFT bejegyzést

hányszor használták

Fájl száma
(hányadik MFT bejegyzés)

 

      1. Rezidens tárolás

Standard infó

Fájl név

Biztonsági leíró

Index root

 

fájl1

subdir1

fájl3

referencia

referencia

referencia

időbélyeg

időbélyeg

időbélyeg

 

Könyvtár leírás rezidens tárolása

    1. Nem rezidens tárolás

 

Általános felépítés:

 

 

Header

File index

Root index tábla:
az index bufferekre mutató
pointer-ek


VCN - LCN megfeleltetése az index buffereknek

Bitmap:
Tárolja, mely fájl hivatkozások használtak az index bufferekben.

Konkrét példa:

 

“NONRESIDENT”

 

F7

 

F18

 

F22

 

VCN - LCN MAP

 

BITMAP

 

 

 

Könyvtár leírás tárolása -
Attribútumok nem rezidens tárolása

 

Könyvtárak indexelt tárolása:

    1. Fájlok elérése NTFS alatt

A lépések többségét csak a kötet (volume) rendszerindulás (boot-olás) utáni első elérésekor kell végrehajtani.

  1. A $Boot file elérése, amely rögzített helyen van.
  2. $MFT elérése. A $Boot tartalmazza az MFT kezdetének helyét. Az $MFT mindig az első MFT-rekordhoz tartozik, $MFTMirr a másodikhoz, $LogFile a harmadikhoz, stb.)
  3. $MFT ($MFTMirr) elérése, memóriába tárolása
  4. $LogFile és más meta-fájlok beolvasása
  5. A kötet (volume) rendszerindulás (boot-olás) utáni első elérésekor végrehajtja az ún. recovery műveletet.
    A recovery nem más, mind a fájlrendszer konzisztens állapotának ellenőrzése, szükség esetén annak helyreállítása. A log fájl alapján ellenőrzi a rendszer, hogy kell-e tranzakciót “visszagörgetni” vagy újra végrehajtani. Recovery után a lemez konzisztens állapotba kerül.
  6. A root “\” könyvtárhoz tartozó MFT-bejegyzés megkeresése, ill. a memóriában tárolása a későbbi elérések gyorsítása érdekében.
  7. A tényleges fájl-tranzakció végrehajtása. Természetesen a log fájl írása minden tranzakciónál folyamatosan történik.
    1. Fájl attribútumok

Standard információ

Fájl név ($FILENAME)

Biztonsági információ

  • Tulajdonos
  • Felhasználók elérési jogosultságai

Adat ($DATA)

  • adat fájl: "default unnamed data attribute" (név nélküli adat)
  • Több stream esetén néhány elnevezett adat attribútum
  • könyvtárnak nincs adat attribútuma

Index root , index

  • csak könyvtár leíró fájl esetén
  • idex attribútum a könyvtárbeli fájlok indexelésére
  • mindig rezidens

Attribútum lista

  • csak egynél több MFT bejegyzést használó fájlok esetén
  • a fájl attribútumainak leírása
      1. Fájl attribútumok elérése

Felhasználó:

  • Attribútumokat ír és olvas
  • Szimbolikusan ($NÉV) hivatkozik

Rendszer:

  • Sorba rendezi és sorban tárolja az attribútumokat
  1. FOLYAMATOK KEZELÉSE ÉS ÜTEMEZÉSE
    1. A Windows NT folyamatmodellje

Az NT folyamatmodellje:

A szál az az egység (entitás) az NT-ben, amit az ütemező kezel.

A szálak a következő komponensekből állnak:

Egy folyamathoz tartozó szálak:

  • közös virtuális címtartományt használnak.

Folyamatok:

  • külön címtartomány

Memóriaterületek:

Erőforrások:

A rendszer erőforrásainak védelme:




folyamat

virtuális memória leíró

virtuális memória leíró

virtuális memória leíró




elérési token

 

virtuális címtér leírás


handle táblázat

 

 

 


handle

objektum

handle

objektum

 

 

handle

 

objektum

 

 

 

 

 

 

 

 

 

 




szál

szál


szál

elérési token

 

A Windows NT folyamatmodellje

    1. Folyamatok kezelése a Windows NT-ben
      1. Windows NT executive

Folyamat leírás:

  • folyamatblokk (EPROCESS).
  • rendszer címterében.
  • folyamat-környezeti blokk (Process Environment Block, - PEB):
  • a folyamat címterében.
    (Felhasználói módban futó kód is megváltoztathatja.)

Szálak leírása:

  • executive szálblokk (ETHREAD).
  • szál-környezeti blokk (Thread Environment Block, - PEB):
  • a folyamat címterében.
    (Felhasználói módban futó kód is megváltoztathatja.)

 

      1. Win32 alrendszer

Folyamatleíró adatstruktúra: W32PROCESS.

 

 

 

Folyamatokhoz és szálakhoz tartozó adatstruktúra

    1. Folyamat létrehozása (CreateProcess)

Megvalósító komponensek::

  • A Win32 kliens-oldali könyvtárából a KERNEL32.DLL,
  • a Windows NT executive,
  • a Win32 alrendszer folyamat (CSRSS).

Windows NT:

  • Több környezeti alrendszer.
  • Az executive réteg processz objektumának kezelése
    (mindenki használhatja).
  • elválasztva a Win32 folyamat létrehozásától.

 

A Win32 CreateProcess hívásának főbb lépéseit:

  1. A processzen belül végrehajtandó image-fájl (.EXE) megnyitása.
  2. A Windows NT executive processz objektumának létrehozása.
  3. A kezdeti szál létrehozása.
  4. A Win32 értesítése az új processzről, azzal a céllal, hogy az felkészüljön az új processzre és szálra.
  5. A kezdeti szál végrehajtásának elindítása.
  6. Az újonan létrehozott processz és szál környezetben a címtér inicializálása (pl. a szükséges DLL-ek betöltése), majd a program végrehajtásának elkezdése.

Megjegyzések

    1. Szálak kezelése az NT-ben

Windows NT szál:

  • executive szál blokk (ETHREAD):
  • rendszer címtartományában található.
  • szál környezeti blokk:
  • a folyamat címtartományában.

Win32 alrendszer folyamata:

  • szál-leíró adatstruktúra .

 

 

Kernel szál blokk (KTHREAD)

Létrehozási és kilépési idők

Processz azonosító


Szál handle


Megszemélyesítési információ

LPC üzenetek leírása

Timer információ


 

Az executive szál blokk felépítése

 

Kernel szál blokk (KTHREAD):

  • Adatok, amire a kernelnek van szüksége a szálütemezéshez és szinkronizációhoz.
    1. Szál létrehozása (CreateThread)

Szál életciklusának kezdete:

 

CreateThread hívás hatása a KERNEL32.DLL:

  1. A CreateThread egy felhasználói módú stack-et hoz létre a szál részére, a folyamat címterében.
  2. A CreateThread beállítja a kezdeti értékeket a szál hardver kapcsolataihoz.
  3. Az NtCreateThread függvény hívására kerül sor, ami az executive szál objektumát hozza létre. Az ide tartozó lépések sorozata kernel módban hajtódik végre, a Windows NT executive-ján és kernelén belül.
  4. A CreateThread értesíti a Win32 alrendszert az új szálról, amire az alrendszer különböző beállításokat eszközöl az új szál részére.
  5. A szál összetett elérési címe (handle) és azonosítója (amik a 3. lépésben lettek generálva) visszaadódik a hívónak.
  6. A szál olyan állapotba került, amire már be lehet ütemezni a végrehajtását.
  1. Szálak ütemezése

A Windows NT ütemezése:

  • Prioritásos preemptív (kiszorító) ütemezés.
  • Mindig a legmagasabb prioritású futtatható szál fut.
  • Megkötés: a futást azok a processzorok korlátozhatják, amelyeken a szál futása meg van engedve.
  • Processzor-affinitás:
    egy szál melyik processzoron futhat.
    1. A kvantum

Időszelet kvantum (quantum):

Kvantum lejárta után ellenőrzi az NT:

A kvantumok értéke szálanként változhat.

Preemptív ütemezés:

    1. A Windows NT ütemezés megvalósítása
    1. Szál ütemezése
      1. Egy szál állapotai
      2.  

         

         







         




         


         

         

        Egy szál állapotai a Windows NT-ben

         

         

         

      3. A processzor affinitás
      4. A processzor kiválasztása
  1. BIZTONSÁGI ALRENDSZER
    1. Biztonsági szolgáltatások

A biztonsági szolgáltatások és alapvető tulajdonságaik:

    1. A biztonsági alrendszer komponensei

A Windows NT biztonságát megvalósító komponensek a következők:

SRM-LSA folyamatok kommunikációja:

  • helyi eljáráshívás (LPC), dedikált csatorna induláskor.

    1. Az objektumok védelme

Az objektumvédelem:

A Windows NT védhető objektumai:

      1. Objektumvédelem alapja

Felhasználók azonosítása:

  • hitelesített logon.

Egy objektumhoz tartozó handle megnyitása:

      1. Objektumok leírása

A védett objektumok:

 

A biztonsági leíróadatok:

ACL felépítése:

  • header
  • Access Control Enty (bejegyzés)

ACL ellenőrzés:

      1. Elérési tokenek

Objektum elérést kezdeményező folyamatok, ill. szálak.

Elérési token (access token):

  • Egy processz vagy egy szál biztonsági adatai:
  • biztonsági azonosító,
  • azon csoportok listáját, amelyeknek a felhasználó a tagja,
  • a megengedett és letiltott privilégiumok listáját.

Elérési token:

Folyamatok:

Logon:

      1. Megszemélyesítés

Szálaknak szintén lehet saját elérési tokenjük:

    1. A biztonsági auditálás

Objektumkezelő elérési ellenőrzésének eredménye:

A Win32-es alkalmazások:

  • léteznek auditálási eseményeket generáló API függvények.
  • A kernel mód:
    • mindig generálhat auditálási eseményt.
  • Felhasználói mód:
    • SeAuditPrivilege privilégiummal.

Rosszindulatú felhasználói módú program:

  • nem tudja elrontani a biztonsági naplózást.

 




 

      1. Az auditálási rekordok kezelése
    1. A logon

A logon (bejelentkezés):

      1. WinLogon feladatai
      1. WinLogon működése

 

 

 


 

 

 

A logon folyamatban résztvevő rendszer komponensek

 

      1. A WinLogon-inicializálás

Rendszer inicializálás:

  • A rendszer "feláll": A WinLogon megszerzi a vezérlést.

Létrehoz és megnyit három desktop-ot:

A WinLogon desktop:

  • biztonságos,
  • csak a WinLogon képes elérni.

A másik két desktop:

WinLogon desktop aktív:

  • csak a WinLogon érheti el az adatait.

Védett műveletek:

 

Inicializálás:

  1. A WINDOWS 2000

1998. október 28 Microsoft Windows NT 5.0 → Windows 2000:

  • A 32-bites Microsoft operációs rendszerek (Windows 95, Windows 98) vonal Microsoft lezárva. (?!)

Windows 2000:

  • 32-bites Microsoft operációs rendszerek + Windows NT
  • Felépítés: Windows NT
  • NT 4.0 kiterjesztése
  • Új szolgáltatások: Windows 98

Windows 2000 négy változata:

A Windows 2000 Professional

A Windows 2000 Server

Windows 2000 Advanced Server

  • Igazi hálózati operációs rendszer (nem a klasszikus értelemben).
  • Hálózatkezelési funkciókat támogatása.
  • Négy párhuzamos processzor kezelése.
  • Nagy fizikai memória kezelése.
  • Terhelés kiegyensúlyozás a processzorok között.

Windows 2000 Datacenter Server

    1. A Windows 2000 új tulajdonságai

Aktív címtár (Active Directory):

NT-hálózatok adminisztrálása és kezelése:

  • Felhasználók felvétele, jogosultságok definiálása.
  • Hierarchikus fa struktúra a felhasználók és felhasználói csoportok számára.

Hálózati erőforrások egyszerű kezelése:

Programozható, API-n keresztül elérhető.

Elosztott biztonsági kiterjesztések:

Titkosítás:

Biztonsági konfigurációs editor:

  • Biztonsági konfigurációs editor (Security Configuration Editor)
  • Egyetlen alkalmazás az NT-alapú biztonsági adminisztrálásához

 

NTFS bővítések:

NTFS 5:

Microsoft Szoftver Installátor:

IntelliMirror:

Lehetőségek:

 

Job objektum:

  • Processzek csoportjának egységként kezelése.
  • UNIX származási fa struktúrájának pótlása.

 

Plug and Play:

A Windows 2000 fejlesztések:

Az operációs rendszer a következő szolgáltatásokkal támogatja a Plug and Play használatát:

A 64-bites szervezés

  • 1997: Windows NT-nek lesz 64-bites változata.

Processzor-architektúrák:

Alpha 28:
Gigabájtig lehet a memóriát címezni (fizikai memória).

Logikai címtartomány:
64-bites processznek legalább 512 Gigabájt.

Fejlesztés:
64-bites API - Win64.