A Windows NT tulajdonságai • • • • • • •
Operációs rendszerek A Microsoft Windows NT 1 Bevezetés Felépítése Processzkezelés Ütemezés
Többfelhasználós Multitasking / multithreading Virtuális memória / memória védelem Az oprendszerrel szorosan integrált GUI SMP támogatás Platformfüggetlen (elvileg) Hálózati támogatás
2006. 05. 22.
Szigeti Szabolcs / Windows NT
Az NT története
Az NT története • Az elso használható verzió az NT 3.1-volt • Széleskörben a 3.51 kezdett terjedni • A siker fo oka a Windows 3.1-hez való hasonlóság felhasználói szinten • Az NT 4.0 foleg a grafikus felület megvalósításában és kinézetében különbözik a 3.51-tol • Windows2000 sokban különbözik • Windows XP inkább csak kinézetben fejlodés
• A DOS után valami igazira vágyott az IBM és a Microsoft • Megkezdték OS/2 fejlesztését • Windows 3 sikere miatt MS szakított az IBM-mel, és Windows kompatíbilis rendszert kezdett kifejleszteni
2006. 05. 22.
Szigeti Szabolcs / Windows NT
3
2006. 05. 22.
Szigeti Szabolcs / Windows NT
User mód
• A mikrokerneles és a monolitikus rendszerek keveréke • 3 különbözo alrendszert támogat (win32, posix, os/2 1.2) • Hardverfüggetlenség egy absztrakciós rétegen (HAL) keresztül
Szigeti Szabolcs / Windows NT
4
Az NT felépítése
Az NT felépítése
2006. 05. 22.
2
Rendszer
Service
Alrendszer
Felhasználói
processzek
processzek
processzek
processzek
Alrendszer DLL-ek Executive Device Kernel HAL Hardver 5
2006. 05. 22.
Szigeti Szabolcs / Windows NT
Grafikus alrendszer
Kernel mód 6
1
A rendszer processzek
A service processzek
• Olyan processzek, amelyek a rendszer muködéséhez elengedhetetlenek, pl. winlogon.exe vagy csrss.exe • Hasonló szerepekkel mint a UNIX init
2006. 05. 22.
• A különbözo service-ekhez tartozó folyamatok • Hasonlóan a UNIX daemon processzekhez
Szigeti Szabolcs / Windows NT
7
Az alrendszer processzek
8
• Minden, felhasználó által futtatható alkalmazás • Lehet: win32, win3.1, DOS, Posix, OS/2 • Új alrendszer esetén elindul az alrendszert kiszolgáló processzis. • win32 alrendszer kötelezo
Szigeti Szabolcs / Windows NT
9
2006. 05. 22.
A kernel mód
Szigeti Szabolcs / Windows NT
10
A kernel mód
• Executive:
• HAL:
– alap oprendszer szolgáltatások (memória managment, process, thread management, I/O, biztonsági szolgáltatások, IPC)
• Kernel:
– Hardverfüggetlen felületet biztosít az oprendszer többi részének
• Device driver: – file rendszer és device kezelési szolgáltatások
– alacsonyszintu szolgáltatások (ütemezés, kivétel, megszakítás, SMP kezelés)
2006. 05. 22.
Szigeti Szabolcs / Windows NT
A felhasználói processzek
• A natív NT szolgáltatások megfelelo alrendszer szolgáltatássá (win32, posix, os/2) való transzformációját segítik • A felhasználói processzek csak az alrendszer DLL-eken keresztül kommunikálnak, és bizonyos esetekben ebben részt vesznek az alrendszer processzek is. 2006. 05. 22.
2006. 05. 22.
Szigeti Szabolcs / Windows NT
• Grafikus rendszer: – Teljesítmény okok miatt lett kernel szintre hozva 11
2006. 05. 22.
Szigeti Szabolcs / Windows NT
12
2
Hordozhatóság
Processz kezelés
• Különbözo architektúrák: – – – – – –
• Minden NT processznek megfelel egy Executive processz • A megfelelo alrendszer párhuzamosan további adatokat tart nyilván • Legmagasabb egység a process (2000: job) • Processzen belüli egység a thread • Threaden belüli egység a fiber
Intel 486 + DEC Alpha - Win 2000 már nem PowerPC - már nem MIPS - már nem IA64 – kérdéses 64bites x86 - igen
• HAL különbözo minden platformon • Többi kód nagy része C-ben 2006. 05. 22.
Szigeti Szabolcs / Windows NT
13
2006. 05. 22.
Thread állapotok Ready - futásképes Standby - ez fog következonek futni Running - fut Waiting - várakozik valamire Transition - futásképes, de a kernel stack nincs memóriában • Terminated - befejezte futását Szigeti Szabolcs / Windows NT
• Prioritásvezérelt, preemptív ütemezés • Ütemezési egység: thread • A legmagasabb prioritású, futásképes thread fut (kivétel lehet SMP rendszerekben) • User és kernel szinten is lehet újraütemezés
15
2006. 05. 22.
Ütemezés
16
• A thread futása megszakadhat:
– 16-31 : real-time (nem változatja az NT) – 1-15 : normál –0 : rendszer
– ha feladja a futást, késobb azonnal futásképes lehet ( quantumja egyel csökkenni fog) – ha nagyobb prioritású thread futásképes lesz, késobb befejezheti idoszeletét – elfogy az idoszelete (quantum)
• Win32 prioritások: – process: real-time, magas, normál, idle – threadek prioritása ehhez képes állítódik Szigeti Szabolcs / Windows NT
Szigeti Szabolcs / Windows NT
Ütemezés
• 31 prioritási szint:
2006. 05. 22.
14
Ütemezés
• • • • •
2006. 05. 22.
Szigeti Szabolcs / Windows NT
– megszunik a thread
17
2006. 05. 22.
Szigeti Szabolcs / Windows NT
18
3
Prioritás növelés
A quantum
• Wait állapotból kilépéskor: függ a várakozás hosszától, és a várakozás típusától: utána quatumonként egyel csökken a prioritás, az alap prioritásig • GUI eseményre váráskor, de csak egy quantumideig • Régóta (3-4 s) ready állapotú threadeknek, egy quantumig 2006. 05. 22.
Szigeti Szabolcs / Windows NT
• Egy futásképes thread csak meghatározott ideig: quantum futhat • Hamarabb feladhatja a futást • A quatumértéke sok mindentol függ
19
2006. 05. 22.
Szigeti Szabolcs / Windows NT
20
A quantum kiszámítása
A quantum kiszámítása
• Induláskor egy thread 6 (NT workstation) vagy 36 (NT server) quatummal indul • Minden óra interrupt során a futó thread quantuma 3-mal csökken: NTworkstation esetén 2 óraütésig, server esetén 12-ig futhat egy thread
• Az órainterrupt gyakorisága rendszerfüggo:
2006. 05. 22.
2006. 05. 22.
Szigeti Szabolcs / Windows NT
21
– – – –
486: Pentium: Intel SMP: Alpha:
• (régi értékek)
A quantum kiszámítása
Szigeti Szabolcs / Windows NT
Szigeti Szabolcs / Windows NT
22
SMP specialitások
• NT workstation esetén az elotérben lévo process quantumja megnohet • A quantummegkétszerezodik, ha prioritás növelés történt • Ha egy thread kilép a wait állapotból, quatumja egyet csökken. Ha eléri a nullát, visszaáll eredeti helyzetbe 2006. 05. 22.
10ms 15ms 15ms 7.8ms
• Processzor affinitás: mely processzorokon futhat a thread. Beállítható • Két processzor: ideális, és következo
23
2006. 05. 22.
Szigeti Szabolcs / Windows NT
24
4
A thread kiválasztása a ready queu-ból SMP rendszerben
A processzor kiválasztása Ha van szabad processzor: 1. - ideális processzor 2. - következo processzor 3. - aktuális processzor (amin az ütemezo fut) Ha nincs szabad, de újraütemezheto van: 4. - ideális 5. - következo 6. - az elso, amin futhat 2006. 05. 22.
Szigeti Szabolcs / Windows NT
• • • •
25
Utoljára futott az adott processzron Az ideális processzora az adott processzor Több mint két quantumot várakozott Prioritása >= 24
2006. 05. 22.
Szigeti Szabolcs / Windows NT
26
Memória kezelés • Fo célok:
Operációs rendszerek
– Virtuális címek fizikai címekre leképezése – Virtuális memória kezelés (paging és swapping) – Virtuális és fizikai memória allokáció – Egyéb szolgáltatások (file mappelés, copy-onwrite, stb.)
A Microsoft Windows NT 2 Memóriakezelés
2006. 05. 22.
Memória manager szolgáltatásai • • • • • •
Szigeti Szabolcs / Windows NT
28
Memória mérete
Memória allokáció Shared memória Mappelt file-ok Virtuális memória kezelés Memória védelmi funkció Kernel szintu funkciók (device drivereknek)
2006. 05. 22.
Szigeti Szabolcs / Windows NT
29
• Több memória management paraméter függ a fizikai memória méretétol: – kicsi < 19M – közepes 20-32M – nagy >32 (wks) >64M (svr) • (Elavult értékek)
2006. 05. 22.
Szigeti Szabolcs / Windows NT
30
5
Memória foglalás
Memória foglalás
• Két lépésben:
• Egy lap a processzcímtartományában lehet:
– reserve – commit
• Reserve: virtuális címtartomány lefoglalása • Commit: virtuális memória lefoglalása
– szabad – reserved – commited
• Egy committed lap lehet: – privát – mappelt (section) - ekkor lehet shared
2006. 05. 22.
Szigeti Szabolcs / Windows NT
31
2006. 05. 22.
Szigeti Szabolcs / Windows NT
32
A két lépéses memória foglalás
Shared és mappelt memória
• Célja: hatékonyabb muködés • A processzelore lefoglalhat egybefüggo címtartományokat, de csak szükség esetén kell memóriát is foglalni • Így muködik pl. a thread user stack-je • Lefoglalt tartomány a lapméret többszöröse, és 64k-ra igazított
• Shared memória: két vagy több processz számára elérheto memória terület • Mappelt file: file tartalma memóriaterületként érheto el • Mindkettot a section objektumok valósítják meg
2006. 05. 22.
2006. 05. 22.
Szigeti Szabolcs / Windows NT
33
Section-ök
• Ha a mappelendo file nagyobb mint a processzcímtartománya, csak egy részét mappeli egy idoben: ez a view • Mapping használata:
– page file (shared memóriához) – normál file
– egyszeru I/O – DLL
• Shared, ha több processzhasználja egyszerre Szigeti Szabolcs / Windows NT
34
View és a file-mapping
• Egy section virtuális memória leképezése diszkre • Ez lehet:
2006. 05. 22.
Szigeti Szabolcs / Windows NT
– programbetöltés 35
2006. 05. 22.
Szigeti Szabolcs / Windows NT
36
6
Copy-on-Write
Heap
• Hatékonysági megfontolások • CoW lap esetén írási hozzáférésnél kizárás helyett a processza lap írható másolatát kapja • Mint pl.: UNIX fork/vfork
2006. 05. 22.
Szigeti Szabolcs / Windows NT
• Kisebb-nagyobb memóriaterületek lefoglalására • Minden processzalaphelyzetben rendelkezik egy 1M-ás heap-pel • Legtöbb Win32 hívás innen allokál memóriát • További heapeket hozhat létre 37
2006. 05. 22.
Rendszer memória
• Négy fo módszer:
– garantáltan fizikai memóriában található
– Kernel szintu adatstruktúrák csak kernel módban érhetok el – Minden processz saját virtuális címtartománnyal rendelkezik (kivéve shared memória) – Hardver megvalósított védelmi funkciók – Memória objektumok ellátása ACL-ekkel
• Pagelt (paged pool): – elképzelheto, hogy csak laphibával érheto el
Szigeti Szabolcs / Windows NT
38
Memóriavédelem
• Nem pagelt (non paged pool):
2006. 05. 22.
Szigeti Szabolcs / Windows NT
39
2006. 05. 22.
Memóriatérkép
Szigeti Szabolcs / Windows NT
40
Címtranszformáció
• Összesen 4G címtartomány:
• Kétszintu laptábla, méretek hardverfüggoek:
– 2G user (3G Enterprise Server esetén) – 2G kernel (1G) Processzenkénti user terület
– Intel: 10 bit laptábla directory index, 10 bit laptábla index, 12 bit byte index
00000000
7FFFFFFF 80000000
Kernel, executive, HAL Laptábla
C0000000 C0800000
2006. 05. 22.
FFFFFFFF
Cache, paged & non paged Szigeti Szabolcs / Windows NT
41
2006. 05. 22.
Szigeti Szabolcs / Windows NT
42
7
Objektumok az NT-ben • Az NT a legtöbb eroforrást objektumként kezeli:
Operációs Rendszerek
– – – – –
A Microsoft Windows NT 3 Objektumok Biztonság Device kezelés
Egységes felület az eroforrások kezelésére Biztonság (C2 eloírás) Különbözo kvóták Megnevezés Alrendszerek
2006. 05. 22.
Objektumok az NT-ben
• Primitív objektumok, alapveto szolgáltatások (pl. szinkronizálás) végrehajtására • Az Executive számára nyújtanak szolgáltatásokat • Egy Executive objektum több kernel objektumot foglal magába
– Executive object – Kernel object
Szigeti Szabolcs / Windows NT
45
2006. 05. 22.
Executive objektumok
Szigeti Szabolcs / Windows NT
46
Executive objektumok
• Ez executive objektumokat az környezeti alrendszerek használják saját objektumaik létrehozására • User szintrol elérhetoek • Az alrendszerek kiterjeszthetik az Executive objektumokat (pl. win32 named-pipe) • Bizonyos alrendszer nem viszi tovább az objektum-orientáltságot (pl. posix)
• • • • • • •
2006. 05. 22.
2006. 05. 22.
Szigeti Szabolcs / Windows NT
44
Kernel objektumok
• Két objektumtípus:
2006. 05. 22.
Szigeti Szabolcs / Windows NT
47
Object Directory Symbolic Link Process Thread Section File Port
• • • • • • • •
Access Token Event Semaphore Mutant Timer Queue Key Profile
Szigeti Szabolcs / Windows NT
48
8
Objektum típusok
Objektum típusok
• Object directory
• Thread
– hierarchikus elnevezés megvalósítására
– processzen belüli végrehajtható egység
• Symbolic link
• Section
– szimbolikus utalás más objektumra
– megosztott memória/file mapping
• Process
• File
– process virtuális memóriája és egyéb futáshoz szükséges információk 2006. 05. 22.
Szigeti Szabolcs / Windows NT
– file vagy I/O eszköz
49
2006. 05. 22.
Szigeti Szabolcs / Windows NT
Objektum típusok
Objektum típusok
• Port
• Semaphore
– processzek közti üzenettovábbításra
– szemafor
• Access token
• Mutant
– processz vagy thread biztonsági jellemzoi
– mutex
• Event
• Timer
– szinkronizációra vagy jelzésre
2006. 05. 22.
Szigeti Szabolcs / Windows NT
– idozítésre
51
2006. 05. 22.
Objektum típusok
52
• Fejléc és törzs • Fejléc
– I/O muveletkehez
– Object manager által kezelve – Hivatkozás az ot megnyitva tartó processzekre – Hivatkozás a típus objektumra
• Key – registry kulcs
• Profile
• Törzs
– processz futás statisztika készítéséhez
Szigeti Szabolcs / Windows NT
Szigeti Szabolcs / Windows NT
Objektum felépítése
• Queue
2006. 05. 22.
50
– A tulajdonló executive komponens által managelve 53
2006. 05. 22.
Szigeti Szabolcs / Windows NT
54
9
Standard fejlécek • • • • • • •
Általános objektum metódusok
Név - objektum neve (ha van) Directory - más objektumok tárolására Security leíró - ki és mit csinálhat vele Quota - a tulajdonosra számlázandó quota Számláló - hányszor van megnyitva Típus - mutató a típus objektumra Referencia számláló - kernel mód hivatkozás
2006. 05. 22.
Szigeti Szabolcs / Windows NT
55
• • • • • • •
Close - bezárás Duplicate - megosztás Query object - standard attr. lekérése Query security - biztonsági attr. lekérése Set security - biztonsági attr. beállítása Wait single - várakozás egy objektumra Wait multi - várakozás több objektumra
2006. 05. 22.
Típus objektumok
Név: process, event, stb. Pool type: paged/non-paged Default quota Access type: egedélyezezett hozzáférés típusok Access right map: r/w/e/a leképzése specifikusra Synchronization: lehet-e várakozni ezen? Methods: object manager által hívandó
2006. 05. 22.
Szigeti Szabolcs / Windows NT
57
• • • • • •
Open - ha a handle-t megnyitják Close - ha a handle-t bezárják Delete - mielott az OM törli az objektumot Query name - név lekérdezésekor Parse - név keresésekor Security - biztonsági beállítás
2006. 05. 22.
Objektum könyvtárak – – – – – – – – – – –
Szigeti Szabolcs / Windows NT
Szigeti Szabolcs / Windows NT
58
Szinkronizáció
\?? - MS-DOS device nevek (user szint) \BaseNamedObjects - alap típusok (user szint) \device - device-ok \driver - driverek \FileSystem - filerendszer driverek \KnownDlls - mappelt dll-ek \nls - NLS táblák \ObjectTypes - objektum tpusok \RPC Control - RPC portok \security - biztonsági alrendszer objektumai \windows - win32 alrendszer objektumai
2006. 05. 22.
56
Metódusok hívása
• Közös információ tárolására • Attribútumok: – – – – – – –
Szigeti Szabolcs / Windows NT
59
• Threadek várakozhatnak objektumokon • Egy objektum lehet signalled vagy notsignalled állapotban • Különbözo objektumoknál mást jelent a siganalled állapot
2006. 05. 22.
Szigeti Szabolcs / Windows NT
60
10
Signalled állapot
Biztonság • SRM - Security Reference Monitor
Object - signalled ha: - várakozó futhat Process - Utolsó thread kilép - minden Thread - Kilép - minden File - I/O megtörténik - mind Notify event - valaki beállítja - mind Sync event- valaki beállítja - egy, reset Semaphore- számláló = 0 - mind Timer - ido lejár - mind Mutex - valaki elengedi - egy 2006. 05. 22.
Szigeti Szabolcs / Windows NT
– objektumok ellenorzése, jogok kezelése
• LSA - Local security authority – Lokális policy-k ellenorzése, autentikáció stb.
• LSA policy database – LSA adatbázisa
• SAM - Security Accounts Manager – userek és groupok kezelése helyileg vagy domainben 61
2006. 05. 22.
Biztonság
Szigeti Szabolcs / Windows NT
62
Objektumok védelme • Security descriptor:
• SAM database
– Owner SID
– SAM adatbázisa
• tulajdonos security ID
• Logon process
– Group SID
– bejelentkezéseket kezelo processz
• elsodleges csoport SID (posix alrendszer)
– Discretionaly ACL (DACL)
• Ntwork logon
• ki, mit csinálhat
– távoli bejelentkezéseket kezelo service
– System ACL (SACL) • audit 2006. 05. 22.
Szigeti Szabolcs / Windows NT
63
2006. 05. 22.
Access token • • • • • •
– SID – Csoportok – Privilégiumok
• Öröklodik • Megfelelo jogokkal létrehozható Szigeti Szabolcs / Windows NT
64
Device driverek
• Process vagy thread biztonsági tulajdonságait leíró adatszerkezet:
2006. 05. 22.
Szigeti Szabolcs / Windows NT
65
Hardver: közvetlenül kezeli a hardvert Class driver: pl: diszk, CD, szalag stb. Port driver: pl: SCSI port kezeloje Miniport : ált. I/O kéréseket specifikussá File system: filerendszer szintut alacsonyra File system filter: filerendszer szintu feldolgozása, majd alacsonyra
2006. 05. 22.
Szigeti Szabolcs / Windows NT
66
11
NT I/O rendszer
CDROM
NTFS
FAT
file system CDROM class driver
Fault tolerant driver
port driver
Disk class
miniport driver
2006. 05. 22.
Szigeti Szabolcs / Windows NT
67
12