Windows NT® InternalsWindows NT® Internals
Paolo Cremonesi
2
Testo consigliatoTesto consigliato
F. Avery Bishop, “Inside Windows NT”, Microsoft Press
http://www.ntinternals.com
3
ObiettiviObiettivi
Spiegare l’architettura interna di Windows NT 4
Alcune indicazioni su Windows NT 5(Windows 2000)
Pre-requisitiFamiliarità con i concetti base dei sistemi
operativiNon sono necessarie conoscenze su Windows
NT e sulla programmazione sotto MS Windows
4
IntroduzioneIntroduzione
Sistema operativo Windows NTprogetto nato nel 1989preemptivereentrantvirtual memorymulti piattaformaparzialmente compatibile con DOS e Win3.1parzialmente compatibile con OS2 e Posix
5
Estensioni in Windows 2000Estensioni in Windows 2000
Plug and play Job object indirizzamento a 64 bit
6
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
7
Windows NT Key System FilesWindows NT Key System Files
NTOSKRNL.EXE NTKRNLMP.EXE UPTOMP.EXE HAL.DLL NTDLL.DLL XyzDriver.SYS
8
Windows NT Key System FilesWindows NT Key System Files
NTOSKRNL.EXE\WINNT\SYSTEM32\ Windows NT executive e kernel
NTKRNLMP.EXEVersione multi-processore (MP)
dell’executive e del kernel
La procedura di installazione sostituisce (overlays) NTOSKRNL.EXE con questo file nei sistemi MP
9
Windows NT Key System FilesWindows NT Key System Files
UPTOMP.EXE\NTRESKIT\Strumento per convertire un’installazione
mono-processore in una multi-processore XXXDRIVER.SYS
\WINNT\SYSTEM32\DRIVERS\Una sola versione indipendentemente
dall’HAL
10
Windows NT Key System FilesWindows NT Key System Files
HAL.DLL\WINNT\SYSTEM32\Hardware Abstraction LayerSul CD di installazione i file si chiamano
HALXXX.DLLVersioni diverse per le diverse schede madriLa procedura di installazione seleziona l’HAL
appropriato e lo copia com HAL.DLL
11
Device drivers
Win32User,GDI
VirtualMemory
Processes& Threads
SecurityCache
ManagerI/O Manager
Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)
ReplicatorAlerter
Service Controller
WinLogon RPC
EnvironmentSubsystems
UserApplication
Subsystem DLLs
POSIX
OS/2
SessionManager
System Processes Services Applications
Filesystems Object management / Executive RTL
Kernel
Hardware Abstraction Layer (HAL)
EventLogger
UserMode
SystemThreads
KernelMode
Executive API
Win32
NTDLL.DLL
NTOSKRNL.EXE
12
Windows NT VersionsWindows NT Versions
Build numbersIncrementato ogni volta che i sorgenti sono
ricompilati Service packs
Packages di nuovi .EXEs, .DLLs.Risolvere bug, fornire nuove funzionalitàNon cambiano il build number
Free vs. Checked buildFree = “retail”, Checked = “debug”
13
Programmi | Strumenti Programmi | Strumenti di amministrazione | di amministrazione | Windows NT DiagnosticsWindows NT Diagnostics
Windows NT VersionsWindows NT Versions
14
Packaging del prodottoPackaging del prodotto
Windows NT Workstation versione desktop, ha tutte le funzionalitàlicenza per 2 CPU
Windows NT Serverfunzionalità per server networkinglicenza per 4 CPU
Windows NT Server Enterprise Editionlicenza per 8 CPU3GB di spazio di indirizzamentosoftware aggiuntivo
15
Packaging del prodottoPackaging del prodotto
Il kernel e i driver sono gli stessi
16
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
17
Processi e ThreadsProcessi e Threads
Cosa è un processo?Un’istanza di un programma in esecuzioneun processo si crea per eseguire un
programmaavviare un’applicazione crea un processoL’argomento principale all’API
CreateProcess è il nome del file immagine (eseguibile)
18
Processi e ThreadsProcessi e Threads
Cosa è un thread?Un contesto di esecuzione all’interno di un
processoL’argomento principale all’API CreateThread
è il nome di una funzione (entry point)Tutti i thread in un processo condividono lo
stesso spazio di indirizzamento
19
Processi e ThreadsProcessi e Threads
Ogni processo all’avvio è composto da un solo threadIl thread corrisponde all’esecuzione della
funzione “main”ll thread può creare altri thread nello stesso
processoIl thread può creare altri processi
20
Per-processPer-processaddress spaceaddress space
System wide Address SpaceSystem wide Address Space
ThreadThreadThreadThread
ThreadThread
Processi e ThreadsProcessi e Threads
Per-processPer-processaddress spaceaddress space
ThreadThread
ThreadThread
21
00000000
7FFFFFFF
FFFFFFFF
Univoco per ogni processo, accessibile in modo user
System wide, accessibile in modo kernel
Per process, accessibile in modo kernel
80000000
Application codeGlobals
Per-thread stacksDLL code
Kernel and ExecutiveHAL, Boot drivers
System cache, paged pool, non-paged pool
Process page tables, hyperspace
4GB Virtual Address Space4GB Virtual Address Space
22
Kernel ModeKernel Mode
Componenti critiche per le prestazioniAccesso diretto all’hardwareAccesso diretto ai dati di altri thread/processiNessun context/switch (tranne per lo
scheduling) Protezione del sistema operativo
dall’utente Filosofa object/oriented
Ma è scritto in C, non in C++
23
Kernel Mode Vs. User ModeKernel Mode Vs. User Mode
Stato del processore Controlla l’accesso alla memoria
Ogni pagina ha un tag che indica il modo richiesto per leggere o scrivere
Protegge il sistema dall’utenteProtegge l’utente da se stessoLe pagine di codice hanno tag “no write in any
mode” Controlla la possibilità di eseguire
istruzioni privilegiate
24
Kernel Mode Vs. User ModeKernel Mode Vs. User Mode
Una astrazione di Windows NTIntel: Ring 0, Ring 3 Power PC: “supervisor” e “user”
Proprietà associate ai threadI thread possono cambiare da user a kernel
e viceversaLa modalità non influenza lo scheduling
25
ComponentiComponenti Access modeAccess mode
Applicazioni User
Subsystem processes User
Executive Kernel
Kernel Kernel
Drivers Kernel
HAL Kernel
Kernel Mode Vs. User ModeKernel Mode Vs. User Mode
26
Entrare in “kernel mode”Entrare in “kernel mode”
Il codice è eseguito in kernel mode per:Richiesta da parte di un thread in user
modeInterrupt da dispositivi esterniThread “dedicati” in kernel mode
27
Entrare in “kernel mode”Entrare in “kernel mode”
Richiesta da parte di un thread in user modeattraverso il “system service dispatch”il codice in kernel mode code viene eseguito
nel contesto del thread
28
Entrare in “kernel mode”Entrare in “kernel mode”
Interrupt da dispositivi esterniInterrupt (come tutte le eccezioni) sono
gestiti in kernel modeL’interrupt dispatcher di Windows NT invoca
la interrupt service routine (ISR)La ISR viene eseguita nel contesto della
thread interrotto (“arbitrary thread context”)La ISR speso richiede l’esecuzione di una
Deferred Procedure Call (DPC), anche essa in kernel mode
29
Entrare in “kernel mode”Entrare in “kernel mode”
Thread “dedicati” in kernel modeAlcuni thread di sistema sono sempre in
kernel mode (la maggior parte nel processo “System”)
Scheduling e preemption sono analoghi come per ogni altro thread
30
Accounting del tempo di kernelAccounting del tempo di kernel
Processor Time = tempo totale di occupazione della CPUelapsed real time - idle time
Processor Time = User Time + Privileged Time
Privileged Time = tempo passato in kernel mode
Il Privileged Time comprende:Interrupt Time, DPC TimeAltri kernel-mode time (nessun contatore)
31
Accounting del tempo di kernelAccounting del tempo di kernel
Programmi | Strumenti di amministrazione | Performance Monitor
32
Interrupt dispatch routine
•Disabilita gli interrupt•Registra lo stato della CPU•Maschera gli interrupt dello stesso livello•Trova e chiama la ISR appropriata•Ripristina lo stato della macchina
Comunica al device di fermare gli interr.
Interroga lo stato del device, etc.
Richiede una DPC
Ritorna al chiamante
Interrupt service routine
interrupt !
user or kernel mode
kernel mode Nessun thread o process context switch!
Interrupt DispatchingInterrupt Dispatching
33
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
34
Device drivers
Win32User,GDI
VirtualMemory
Processes& Threads
SecurityCache
ManagerI/O Manager
Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)
ReplicatorAlerter
Service Controller
WinLogon RPC
EnvironmentSubsystems
UserApplication
Subsystem DLLs
POSIX
OS/2
SessionManager
System Processes Services Applications
Filesystems Object management / Executive RTL
Kernel
Hardware Abstraction Layer (HAL)
EventLogger
UserMode
SystemThreads
KernelMode
Executive API
Win32
NTDLL.DLL
35
Windows NT ExecutiveWindows NT Executive
Strato superiore di NTOSKRNL.EXE Fornisce servizi OS generici
Processi, thread, gestione della memoria, I/O, comunicazione tra processi, sincronizzazione, sicurezza
Per lo più è in C (portabile!)
36
Windows NT ExecutiveWindows NT Executive
Esporta funzioni (servizi) che possono essere invocate da API in user modeAd esempio,
Win32 ReadFile -> executive NtReadFile Gira in kernel mode La maggior parte delle API non sono
documentateUtilizzate dagli sviluppatori di sotto-sistemi
37
Windows NT Executive:Windows NT Executive:5 componenti5 componenti
Process e thread managercrea e termina thread e processile funzioni sono implementate in realtà nel
kernelquesto executive aggiunge alcune funzionalità
ed estende la semantica degli oggetti del kernel
Virtual memory managerimplementa il meccanismo di memoria virtualefornisce il supporto alla I/O cache
38
Windows NT Executive:Windows NT Executive:5 componenti5 componenti
Security reference monitorgestisce le politiche di sicurezza sul computer
localecontrolla le risorse del sistema operativo
I/O systemimplementa funzioni di I/O device-independentindividua i device driver appropriati
Cache managercache delle pagine lette più di recente, read
ahead, write back
39
Windows NT Executive:Windows NT Executive:funzioni di supportofunzioni di supporto
Object managecrea, gestisce e rimuove gli oggetti
dell’executivegestisce le strutture dati astratte che
rappresentano risorse come processi, thread, ecc.
LPCottimizzazione del RPC (Remore Procedure Call)gestisce la comunicazione tra client/server su
uno stesso computer
40
Windows NT Executive:Windows NT Executive:funzioni di supportofunzioni di supporto
Common runtime librarygestione di stringhefunzioni algebricheconversione di tipi
Gestione della memoriaallocazione/de-allocazione di memoria
paginata e nonmeccanismi di sincronizzazionesemafori
41
Windows NT KernelWindows NT Kernel
Le operazioni più importante del kernel:determinare come il sistema operativo usa il
processore garantire un uso prudente (fairness)
isolare l’executive dall’architettura Lo strato inferiore in NTOSKRNL.EXE Maschera le differenze tra diverse
architetturex86 vs. Alpha vs., etc.
42
Machine Independent CMachine Independent C
AssemblerAssembler
Machine Dep. CMachine Dep. C
Windows NT KernelWindows NT Kernel
Dimensioni: Codice: 60k su Intel 80% indipendente
dalla macchina Non è un
“microkernel”
43
Windows NT KernelWindows NT Kernel
Funzioni principaliException trap e interrupt dispatchingPrimitive di sincronizzazione OS (MP e UP)Gestione dello scheduling e del context
switching dei threadGeneriche operazioni di waitFornisce gli oggetti base che sono usati
dall’executive e (alcuni) esportati in user mode
44
Windows NT KernelWindows NT Kernel
Il kernel differisce dall’executive Non è mai paginato dalla memoria La sua esecuzione non è mai interrotta
da altre threadad eccezione delle ISR
Non verifica mai la correttezza dei parametri di chi chiama le sue funzioni
Non implementare politiche di gestionetranne per il thread scheduling
45
Windows NT KernelWindows NT Kernel
Il kernel implementa dei semplici oggetti (kernel object)
Molti oggetti dell’executive incapsulano uno o più kernel object
46
Windows NT Kernel: Windows NT Kernel: supporto hardwaresupporto hardware
Isolare (assieme all’HAL) l’executive dall’architetturathread context switchinggestione della cachegestione del TLB
47
Windows NT Kernel vs. HALWindows NT Kernel vs. HAL
Kernelfunzioni specifiche di un’architettura
HALfunzioni che possono essere diverse su
macchine diverse all’interno della stessa architettura
48
HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer
Un file binario caricato separatamente (HAL.DLL)
Scopo:Isolare (astrarre) Kernel e Executive da
dettagli specifici di una piattaformaPresentare un modello di architettura
uniforme per facilitare lo sviluppo dei driver
49
HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer
HAL maschera:dispositivi di I/O specifici del sistema (bus,
DMA, ... )meccanismi di cache coherency e di
flushing, orologi di sistemasupporto SMP, programmazione degli
interrupt HAL contiene alcune subroutines per
Executive e Kernel
50
HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer
Windows NT comprende HAL per alcune architetture:PC-compatibili, DEC Alpha, Power PCI produttori di hardware possono fornire altri
HAL
51
HalGetBusDataHalGetBusDataByOffsetHalAssignSlotResourcesHalSetBusDataHalSetBusDataByOffsetHalTranslateBusAddressHalGetInterruptVectorHalGetAdapterREAD_REGISTER_ULONG WRITE_PORT_UCHAR
Routine HAL di esempioRoutine HAL di esempio
HAL - Hardware Abstraction HAL - Hardware Abstraction LayerLayer
52
Convenzioni di nome:Convenzioni di nome:KernelKernel e e HALHAL
Kernel
Ke: Kernel Ki: Kernel internal
(not available outside the kernel)
HAL
Hal: Hardware Abstraction Layer
READ_, WRITE_: I/O port and register access
53
Convenzioni di nome:Convenzioni di nome:ExecutiveExecutive
Ex: General executive routine
Ob: Object management
Exp: Executive private (not exported)
Io: I/O subsystem Cc: Cache manager Se: Security
Mm: Memory management
Ps: Process structure Rtl: Run Time
Library Lsa: Security
Authentication FsRtl: File System
Run Time Lib Zw: File access, etc.
54
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
55
User processUser process
I “processi” in user mode possono essere classificati in:Service processSpecial system support processEnvironment subsystemsUser applications
56
User processUser process
Service processsono l’equivalente dei daemon UnixEvent Logger, IIS, ...
Special system support processProcessi di sistema che non sono eseguiti
come serviziLogon process, session manager, ...
57
User processUser process
Environment subsystemespongono i servizi nativi del sistema
operativo, forniscono una “personalità”Win32, Posix 1.x, OS/2 1.2
User applicationWin32Windows 3.1MS-DOSPosix 1.xOS/2 1.2 (modo console)
58
Environment SubsystemsEnvironment Subsystems
Espone le API “native”Estende le funzionalità native di Windows
NT Due parti
Subsystem DLL Convertono le API documentate in API native
Environment Subsystem Process Mantengono lo stato dei processi “utente” Implementano alcune API aggiuntive
59
Environment SubsystemsEnvironment Subsystems
Tre ambienti forniti con Windows NT:Win32
speciale, Windows NT non può funzionare senza
Posix 1.x solo lo standard, senza componenti opzionali
OS/2 supporto solo per applicazioni carattere
Non sono forniti strumenti e documentazione per estendere i sottosistemi
60
Environment SubsystemsEnvironment Subsystems
Ciascun subsystem fornisce l’accesso ad un sotto insieme ad un diverso sotto insieme dei servizi di Windows NT
Le applicazioni di un subsystem possono fare cose “proibite” ad applicazioni di altri subsystemAd esempio, Fork è disponibile solo nel
subsystem Posix
61
Environment SubsystemsEnvironment Subsystems
Le applicazioni devono essere linkate per un particolare subsystem
Quando l’applicazione (.EXE) è eseguita, il codice di creazione dei processi esamina il tipo di subsystem nell’header del file, per poter notificare all’appropriato subsystem del nuovo processo
62
Environment SubsystemsEnvironment Subsystems
Le applicazioni utente non accedono direttamente ai servizi nativi del sistema operativo, ma passano attraverso una o più subsystem librerie dinamiche (DLL)
Le subsystem DLL traducono una funzione documentata nell’appropriata chiamata non documentatala DLL Win32 implementa le Win32 APIla DLL Posix implementa le Posix 1003.1 API
63
Environment Subsystems:Environment Subsystems:Applicazioni MS-DOSApplicazioni MS-DOS
NTVDM (NT Virtual Dos Machine)emula un processore Intel 486 con MS-DOS
Binari sono compatibili suIntel, DEC Alpha, Power PC, MIPS 4000
Ogni applicazione DOS è eseguita in una NTVDM separatapreemptive multitaskingl’eventuale crash di un’applicazione no
influenza le altre
64
Environment Subsystems:Environment Subsystems:Applicazioni MS-DOSApplicazioni MS-DOS
La NTVDM ha tre threadDue thread sono usati per gestire
l’ambiente della NTVDMUn thread esegue l’applicazione
(single thread application) La NTVDM non è un subsystem
si appoggia al Win32 subsystem Non tutte le applicazioni DOS sono
supportate
65
Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16
Applicazioni per Windows 3.x WOW machine (Win16-on-Win32) Si appoggia a NTVDM (Win16 NTVDM) Non è un vero subsystem
Si appoggia a Win32 I binari sono compatibili su tutti i sistemi
che supportano NTVDM
66
Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16
La Win16 NTVDM ha tre threadDue thread sono usati per gestire
l’ambiente della NTVDMUn thread esegue tutte le applicazione
Win16 Non sono preemptive multitasking
Non tutte le applicazioni Win16 sono supportate
67
Environment Subsystems:Environment Subsystems:Applicazioni Win16Applicazioni Win16
Win16 NTVDM separate Se un’applicazione va in crash non influenza
le altre Preemptive multitasking
Richiedono più RAM Non si possono eseguire applicazioni che
usano shared data invece di OLE (Object Linking and Embeding) e DDL (Dinamic Data Exchange)
68
Environment Subsystems:Environment Subsystems:Applicazioni PosixApplicazioni Posix
Portable Operating System Interface for Compting Environment (standard UNIX)
Richiede almeno una partizione NTFS I sorgenti sono portabili su tutte le
piattaforme Le applicazioni POSIX sono eseguite
ciascuna in uno spazio indirizzi separato
69
Environment Subsystems:Environment Subsystems:Applicazioni OS/2Applicazioni OS/2
Solo applicazioni carattereE’ disponibile un add-on per applicazioni OS/2
1.x graficheNessun supporto per versioni successive
Solo su piattaforme IntelAlcune applicazioni OS/2 (real mode
application) possono essere eseguite sotto DOS (NTVDM)
Spazio di indirizzamento privato per ogni applicazione
70
Environment Subsystems:Environment Subsystems:Applicazioni Win32Applicazioni Win32
Le applicazioni sono sorgente-compatibili su tutte le architetture
Dato che parte del subsystem è sempre in kernel mode, le applicazioni Win32 sono le più veloci
71
Environment Subsystems:Environment Subsystems:Win32Win32
Essenziale al funzionamento di Windows NT
Le componenti principali sonoenvironment subsystem processkernel mode device driver
72
Environment Subsystems:Environment Subsystems:Win32Win32
Win32 Environment Subsystem Processfinestre consolecreazione/eliminazione di processi e threadparte della Virtual DOS Machine (VDM) per il
supporto parziale di applicazioni DOS a 16 bit
funzioni di utilità di vario tipoGetTempFile, DefineDosDevice, ExitWindowsEx, ...
73
Environment Subsystems:Environment Subsystems:Win32Win32
Kernel Mode Win32 Device Drivergestore delle finestre (Windows manager)
gestisce gli eventi associati alle finestre (mouse, tastiera, resize, ecc.)
Graphical Device Interface (GDI) una libreria di funzioni per i dispositivi di output grafici
generici (funzioni per line, testo, ecc.)
insieme di device driver per la grafica (video e stampanti)
parecchie subsystem DLL traducono le Win32 API nelle appropriate chiamate a
NTOSKRNL.EXE e WIN32K.SYS
74
NTDLL.DLLNTDLL.DLL
Speciale libreria si sistema di supporto alle subsystem DLL
Contiene due tipi di funzioniFunzioni di interfaccia tra le subsystem DLL
e i servizi dell’executiveFunzioni di supporto aggiuntive
75
NTDLL.DLLNTDLL.DLL
Funzioni di interfaccia tra le subsystem DLL e i servizi dell’executiveNell’executive ci sono più di 200 funzioni
NtCreateFile, NtSetEvent, …
NTDLL contiene entry point con lo stesso nome
Il codice nell’entry point causa la transizione in kernel mode per poter invocare la corrispondente funzione in NTOSKRNL.EXE
76
NTDLL.DLLNTDLL.DLL
Funzioni di supporto aggiuntiveFunzione per il caricamento degli eseguibiliGestore dello heapGestore dell’Asynchronous Procedure Call
(ASP)...
77
OS/2Win32
POSIX
Environment Subsystems
UserApplication
Subsystem DLL
Win32User/GDI
UserMode
Executive
Device Drivers Kernel
Hardware Abstraction Layer (HAL)
KernelMode
Systemand ServerProcesses
NTDLL.DLL
Environment SubsystemsEnvironment SubsystemsComponentsComponents
Subsystem process (Win32: CSRSS.EXE)
API DLL (Win32: KERNEL32.DLL, GDI32.DLL, USER32.DLL, ...)
Kernel-mode extension to executiveWin32 only: WIN32K.SYS
78
Windows NT Simplified Windows NT Simplified Architecture (3.52)Architecture (3.52)
OS/2OS/2 Win32Win32 POSIXPOSIX
Environment SubsystemsEnvironment Subsystems
UserUserModeMode
KernelKernelModeMode
SystemSystemand Serverand ServerProcessesProcesses
ExecutiveExecutive
Device DriversDevice Drivers KernelKernel
Hardware Abstraction Layer (HAL)Hardware Abstraction Layer (HAL)
LPCLPC
UserUserApplicationApplication
Subsystem DLLSubsystem DLL11 22
Most Win32 Kernel APIsAll other Win32 APIs, including User and GDI APIs22
11
NTDLL.DLLNTDLL.DLL
79
OS/2OS/2Win32Win32
POSIXPOSIX
Environment SubsystemsEnvironment Subsystems
Win32Win32User/GDIUser/GDI
UserUserModeMode
ExecutiveExecutive
Device DriversDevice Drivers KernelKernel
Hardware Abstraction Layer (HAL)Hardware Abstraction Layer (HAL)
KernelKernelModeMode
SystemSystemand Serverand ServerProcessesProcesses
11 3322
UserUserApplicationApplication
Subsystem DLLSubsystem DLL
LPCLPC
Most Win32 Kernel APIsMost Win32 User and GDI APIsA few Win32 APIs33
2211
NTDLL.DLLNTDLL.DLL
Windows NT Simplified Windows NT Simplified Architecture (4.0)Architecture (4.0)
80
Ruolo (semplificato) del Win32 Ruolo (semplificato) del Win32 Subsystem ProcessSubsystem Process
Creazione e eliminazione dei processi Creazione e eliminazione dei thread Nome dei file temporanei Lettere dei dischi Controlli di sicurezza per il file system Gestione grafica delle applicazioni console (a
carattere) Parziale supporto per le applicazioni DOS a 16-
bit (NTVDM.EXE) NLS (National Local Service)
81
call WriteFile(…)
call NtWriteFilereturn to caller
do the operationreturn to caller
Int 2Ereturn to caller
call NtWriteFiledismiss interrupt
Win32 application
WriteFile in KERNEL32.DLL
NtWriteFilein NTDLL.DLL
KiSystemServicein NTOSKRNL.EXE
NtWriteFilein NTOSKRNL.EXE
Chiamare le Win32 Kernel APIChiamare le Win32 Kernel API
Win32-specific
used by all subsystems
software interrupt
U
K
82
Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine
Esaminare cosa è importato/esportato in un .EXE dall’ OSIn Explorer, cliccare con il pulsante destro
del mouse sull’EXE o DLL, poi scegliere “quick view” o “View Dependencies” (Dependency Walker tool nel ResKit SDK)
O utilizzare LINK /DUMP /EXPORTS /IMPORTS
83
Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine
Guardare gli “import” di \WINNT\SYSTEM32\NOTEPAD.EXE
Guardare gli import/export di KERNEL32.DLLLa maggior parte delle funzioni esportate
sono chiamate Win32 documentate
84
Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine
Guardare gli import/export di NTDLL.DLLNessuno degli export è documentatoAlcune sono simili alle stesse funzioni
esportate da NTOSKRNL.EXE, documentate nel DDK
85
Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine
Guardare gli import/export di NTOSKRNL.EXECirca 1000 simboli esportatiCirca 300 delle funzioni esportate sono
documentate nel DDK Chiamabili solo in kernel mode
86
Esaminare i simboli nei file Esaminare i simboli nei file immagineimmagine
Guardare tutti i simboli globali in NTOSKRNL.EXEDefiniti in \support\symbols\xxx\debug\exe\
ntoskrnl.dbgIl “Quick viewer” non li visualizzaUtilizzare il Kernel DebuggerCirca 4000 simboliGli export di NTOSKRNL.EXE sono un sotto
insieme di questa lista
87
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
88
Windows NT Object ManagerWindows NT Object Manager
Componente esecutiva per gestire gli oggetti sistemaGli oggetti sono strutture dati con dei nomiGli oggetti gestiti comprendono i Win32
Kernel objects, ma non i Win32 User o GDI objects
L’object manager implementa gli handle che permettono la gestione degli oggetti in user mode
89
Windows NT Object ManagerWindows NT Object Manager
L’object manager non è usato per tutte le strutture dati di is not used Windows NTSono quelle strutture che devono essere
condivise, identificate da un nome o esportate in user mode
Alcune strutture dati sono chiamate “oggetti” ma non sono gestite dall’object manager (ad es. oggetti DPC)
90
Navigare nell’ Object ManagerNavigare nell’ Object Manager
WINOBJ.EXE dal MSSDK (\mssdk\bin\winnt\winobj.exe)
od da www.ntinternals.com
91
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
92
Device driverDevice driver
Interfaccia tra il sistema di I/O e l’hardware
Tipicamente scritti in C/C++grazie all’HAL e al Kernel i sorgenti sono
portabili su architetture diverse
93
Win32appliation
Win32 API DLLusermode
VDMVirtual Dvc Drvr
video port driver
Executiveand
Kernel
DOS/Win16 app.
kernelmode
GDI calls
ReadFile,WriteFile,DeviceIoControl,ecc.
videominiport
KDD
parallelportKDD
Kernel DeviceDriver (KDD)
Kernel DeviceDriver
(possibly app-specific)
User- And Kernel-Mode DriversUser- And Kernel-Mode Driversin Windows NT 4.0in Windows NT 4.0
Win32Subsystem(WIN32K.SYS)
displaydriver
spooler
printerdriver
GDI (graphics engine)
NT Executive Services
94
Kernel-Mode Device DriversKernel-Mode Device Drivers
Moduli caricabili separatamente (drivername.SYS)Linked come dei .EXELinked a NTOSKRNL.EXE e HAL.DLL
Definiti nel file di “registry”La stessa area dei servizi Win32 (t.b.d.)
Si possono visualizzare i driver caricati con PSTAT.EXE o DRIVERS.EXE
95
Kernel-Mode Device DriverKernel-Mode Device Driver
Hanno una struttura gerarchica Sono classificati in base al tipo
HardwareFile systemFilterNetwork redirectorMiniportWIN32K.SYS
96
Kernel-Mode Device DriverKernel-Mode Device Driver
97
Kernel-Mode Device DriverKernel-Mode Device Driver
Hardware device driverSi interfacciano direttamente con l’HAL per
gestire l’I/O di dispositivi fisici (disco, rete, ecc.)
File system device driverAccettano richieste di I/O associate ad un
file system e le trasformano in richieste di I/O per uno specifico dispositivo
98
Kernel-Mode Device DriverKernel-Mode Device Driver
Filter driverdisk mirror e encryptionricevono una richiesta di I/O, operano sui
dati, e la passano al livello successivo Network redirector
sempre orientato a richieste di I/O di file system
trasmette richieste di I/O a macchine remote e viceversa
99
Kernel-Mode Device DriverKernel-Mode Device Driver
Miniport driverad esempio, i driver SCSIlinkati al driver miniport generico
WIN32K.SYS driverdriver legati all’ambiente Win32
100
File System: Virtual CacheFile System: Virtual Cache
Condivisa da tutti i file systems (locali e remoti, HD e CD)
La cache è applicata a tutti i fileCompresi i metadata del file system
Virtual cacheUsa il meccanismo standard della memoria
virtuale di Windows NT
101
Cached File OperationsCached File Operations
102
Cached File OperationsCached File Operations
Aprire un file:Trovare una view disponibileMappare i primi 256 KB del file nella view
Leggere o scrivere un cached file:Remappare se necessario la parte di file che
interessa nella cacheCopiare i dati tra applicazione e cacheL’I/O effettivo è eseguito dal meccanismo di
gestione della memoria virtuale (paging)
103
ProcessProcessaddressaddressspacespace
SystemSystemaddressaddressspacespace
FileFile
Cached File OperationsCached File Operations
104
Funzioni e controllo della cacheFunzioni e controllo della cache
“Read ahead” automatico e asincronoEseguito da un thread di sistema separato per
il “Readahead”Per default 64 KB di readaheadI dati successivi da leggere sono ipotizzati
sulla base delle precedenti 3 lettureDei suggerimenti per il “Readahead” possono
essere forniti a CreateFile: FILE_FLAG_SEQUENTIAL esegue 192 KB di
readahead FILE_FLAG_RANDOM_ACCESS disabilita il read ahead
105
Funzioni e controllo della cacheFunzioni e controllo della cache
Write-back, non write-throughIl numero di “dirty page” controlla la
scrittura sistemi piccoli: Physical Pages / 8; sistemi medi: Physical Pages / 4; sistemi grandi: somma le due precedenti
Il thread “Lazy writer” accoda 1/4 delle “dirty page” ogni secondo per permettere di separare il thread “Write Behind” (NB: il “Lazy writer” non scrive su disco)
106
Funzioni e controllo della cacheFunzioni e controllo della cache
La politica “write back” può essere modificata in CreateFile tramite il flag FILE_FLAG_WRITE_THROUGHOppure si può esplicitamente forzare la
scrittura su disco com FlushFileBuffers
107
Funzioni e controllo della cacheFunzioni e controllo della cache
La cache può essere disabilitata per un singolo fileCreateFile con FILE_FLAG_NO_BUFFERINGRichiede che read/write siano fatte per
settoriI buffer devono essere allineati in memoria
per settori
108
Memoria virtualeMemoria virtuale
Windows NT non LRUNon usa lo “usage bit” che praticamente ogni
architettura mette a disposizione per segnare una pagina di memoria utilizzata
Usa una FIFO modificataFIFO: la soluzione peggiore!La pagina selezionata viene messa in un’altra
FIFO (standby list)Se la pagina e usata ancora, viene spostata dalla
standby list di nuovo nel working setSi comporta male sotto stress
109
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
110
System ThreadsSystem Threads
Routine interne che richiedono un thread context
Drivers o Executive possono creare system threadsSono sempre eseguiti in kernel modeSolitamente associati con il processo
“System” Ma possono essere associati ad altri processi
Sono preemptible (a meno che non alzino un IRQL superiore o uguale a 2)
111
System ThreadsSystem Threads
Kernel mode API:PsCreateSystemThreadPsTerminateSystemThreadKeSetBasePriorityThreadKeSetPriorityThread
112
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
113
Process-Based Windows NT Process-Based Windows NT CodeCode
“Pezzi” di Windows NT che sono contenuti in eseguibili (.EXE) separati e vengono eseguiti in processi distintiAvviati dal sistemaNon sono legati al login utente
Hanno un contesto di processo completo
114
Process-Based Windows NT Process-Based Windows NT CodeCode
Sono di tre tipi:Environment Subsystems (già descritti)Win32 ServicesProcessi di system startup
115
Gerarchia di creazione dei Gerarchia di creazione dei processiprocessi
TLIST.EXE (dal resource kit) TLIST /t mostra la gerarchia dei processi Un processo genitore può terminare
dopo aver creato dei processi figli TLIST in questo cosa non mostra il
processo che è terminato (come PS in Unix)EXPLORER.EXE è avviato da USERINIT.EXE,
che poi termina
116
Gerarchia di creazione dei Gerarchia di creazione dei processiprocessi
117
Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services
Applicazioni (.EXE) Win32 che sono eseguite indipendentemente dall’utente che ha fatto loginSono avviate al boot o al logon Sopravvivono al logoffSono definite mediante l’API CreateService
(attraverso il Control Panel)Tipicamente non interagiscono con il desktop
Ottengono i parametri di avvio dal file di registro Gli errori sono loggati nel Windows NT Event Log
118
Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services
Utilizzano una forma di IPC per comunicare con i client
Tipicamente i servizi fanno uso dei meccanismi di sicurezza di Windows NT
Possono essere gestiti in modo remoto (start, stop, configurazione)
Il Server Manager permette il controllo remoto dei servizi
Il servizio non necessita di nessuna codice particolare per essere gestito in modo remoto
119
Process-Based Windows NT Process-Based Windows NT Code: Win32 ServicesCode: Win32 Services
Utilizzare SRVANY.EXE, SC.EXE, SRVINSTW.EXE, INSTSRV.EXE nel resource kit
Esempi di servizi built-in in WindowsSchedule service (avvio manuale), Event
Log, Remote Access Server, IIS.
120
ServiceController
Vita di un servizioVita di un servizioInstallazione: l’applicazione di setup comunica al Service Controller Manager (SCM) dell’esistenza del servizio
CreateService
ServiceProcesses
ControlPanel
Gestione: il Control Panel può avviare/fermare il servizio e cambiare i parametri di avvio
Boot/inizializzazione: il SCM legge dal Registry le informazioni sul servizio e l’avvia come richiesto
SetupApplication
Registry
121
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
Processi separati caricati o avviati al boot (non come servizi o environment subsystems)
Il loro nome non è nel registry“Hardwired” nel code sorgente del kernel
La maggior parte sono eseguibili Win32, uno (SMSS) è un “native image”
122
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
Idle: process id 0Parte dell’immagine di sistemaOspita i thread che sono idleNon è un vero processo o un threadSpesso è indicato come “System Process”
123
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
System: process id 2Parte dell’immagine di sistemaOspita i thread definiti nel kernelNon è un vero processo o threadIl thread 0 (routine di nome
Phase1Initialization) lancia il primo vero processo (SMSS.EXE)
124
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
SMSS.EXE: Session ManagerIl primo processo creatoPrende i parametri da
\Registry\Machine\System\CurrentControlSet\Control\Session Manager
Lancia dei sottosistemi (CSRSS.EXE) e WINLOGON.EXE
125
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
WINLOGON.EXE: Logon processPresenta il primo prompt di login
(“enter username and password”)Lancia SERVICES.EXE, LSASS.EXE, e
NDDEAGNT.EXEQuando qualcuno esegue un login, lancia
USERINIT.EXE
126
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
SERVICES.EXE: Service ControllerOspita molti servizi forniti con NTAvvia altri processi (servizi) non parte di NT
(elencati in \Registry\Machine\System\CurrentControlSet\Services )
LSASS.EXE: Local SecurityProcesso di autenticazione
127
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
USERINIT.EXE:Avviato dopo il loginAvvia il desktop (EXPLORER.EXE) e termina
(per questo non lo so vede nell’output di TLIST; Explorer è un orfano)
EXPLORER.EXE:Explorer e i processi figli sono i creatori di
tutte le applicazioni
128
Process-Based Windows NT Process-Based Windows NT Code: System Startup ProcessesCode: System Startup Processes
System
SMSS
CSRSS WINLOGON
Idle
SERVICES LSASS USERINIT NDDEAGNT
EXPLORER
129
AgendaAgenda
Key System Files Process Execution Environment Executive, Kernel, and HAL Environment Subsystems Executive Object Manager I/O System System Threads Process-based Windows NT code Summary
130
Quattro contesti per Quattro contesti per l’esecuzione del codicel’esecuzione del codice
Process e thread context:Applicazioni utenteWin32 ServicesEnvironment subsystem processesSystem startup processes
Thread context ma nessun process:Thread nel “System” process
131
Quattro contesti per Quattro contesti per l’esecuzione del codicel’esecuzione del codice
Routines chiamate da altri thread/processi:Subsystem DLLExecutive system service (NtReadFile, ecc.)GDI routine in WIN32K.SYS (e nei graphic
drivers) Nessun contesto (“Arbitrary thread
context”)Interrupt dispatchingDevice drivers
132
Dove è il codice?Dove è il codice?
KERNEL32.DLL, GDI32.DLL, USER32.DLLEsportano i Win32 entry points
NTDLL.DLLFornisce allo user-mode accesso alle routine
di sistema (kernel-mode)Contiene lo heap manager, l’image loader, il
thread startup routine WIN32K.SYS
Il modulo che contiene il codice Win32 (prima era in CSRSS.EXE)
133
Dove è il codice?Dove è il codice?
NTOSKRNL.EXE (or NTKRNLMP.EXE)Executive e kernelComprende la maggior parte delle routine
che sono eseguite come thread nel “system”
HAL.DLLHardware Abstraction Library
drivername.SYSLoadable kernel driver
134
Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal
LibriInside Windows NT (Solomon, MS Press)Advanced Windows (Richter, MS Press)Windows NT Workstation Resource Guide (MS
Press) MSDN Library
documentazione Platform SDK APIdocumentazione Windows NT Device Driver
Kit (DDK)Win32 Knowledge Base
135
Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal
www.sysinternals.comArticoli e strumenti su Windows NT internal
www.microsoft.com/hwdevPer costruttori di hardware e sviluppatori di
driver www.microsoft.com/hwdev/ntifskit
Installable File System Developers Kit www.cmkrnl.com
Windows NT device driver FAQ
136
Fonti di informazione per Fonti di informazione per Windows NT InternalWindows NT Internal
www.mobiletape.comNT audio/video tape
comp.os.ms-windows.programmer.nt.kernel-mode-driversNewsgroup
137
Windows 2000 previewWindows 2000 preview
Formalmente Windows NT 5Forse non ci saranno successive versioni di
Windows 9x
138
Aspetti da migliorare in NT 4Aspetti da migliorare in NT 4
PrestazioniIl modello di sicurezza basato sui domini
non scala beneAmpia disponibilità di strumenti di misura,
ma poca possibilità di intervenire Gli strumenti di gestione delle prestazioni sono
rivolti agli sviluppatori, non ai gestori
MemoriaIndirizzamento a 64 bit
Facilità di gestione di grandi sistemi
139
Cambiamenti nelle prestazioniCambiamenti nelle prestazioni
Nessun grande cambiamentoLe costanti di memoria andrebbero
aggiornate per una miglior scalabilità Quando ci sono più di 64 MB di Ram, gli NT Server
sono tutti considerati “Large”
Aggiunti due contatori ai tool di monitoring Disk % Idle Time counter System % Total Processor Time counter
140
Cambiamenti in Windows 2000Cambiamenti in Windows 2000
NTFS Common Internet File System (CIFS) Microsoft Management Console Multi-user systems
WinFrame, Terminal Server Active Directory COM+
141
Cambiamenti in Windows 2000Cambiamenti in Windows 2000
Fault tolerant Clustering Plug and Play Job Objects Very large memory (Alpha)
142
NTFSNTFS
Compressione Nuovi servizi di crittografia NT 4 non è compatibile con il nuovo
NTFSa meno di non installare un nuovo driver
NTFS.SYS per una compatibilità limitata Master File Directory entries passano da
4K a 1K
143
CIFS - Common Internet File CIFS - Common Internet File SystemSystem
File system distribuito simile a NFS Unix Possibilità di montare file system remoti
144
CIFSCIFS
145
Microsoft Management ConsoleMicrosoft Management Console
146
System MonitorSystem Monitor
Alert service contatori per processo
147
Disk adaptor Disk adaptor
Disk adaptorDisk adaptor
P r ima ryP r ocessor
Sy s tem bus
B ack upP r ocessor
Sy ste m bu s
Sh ar ed S CSI bu s
(Hear t b eat)
WA N
X1 0 ,0 ,0,2 1 0,0 ,0,2
M A C layer
Bro
ad
ca
st
ClusteringClustering
148
ClusteringClustering
Un cluster è un insieme di computer che cooperano per fornire uno o più servizi
VantaggiScalabilitàFault tolerantEconimoci
149
ClusteringClustering
Un cluster individua componenti hw/sw mal funzionantiriavvia la componentetrasferisce le funzionalità ad altre
componenti Migliora l’affidabilità del sistema e
riduce il mean time to repear
150
ClusteringClustering
Astrazionirisorsedipendenzegruppivirtual server
151
Clustering: risorseClustering: risorse
Sono l’unità base di gestione del cluster Fisiche
dischi, controller SCSI, schede di rete, … Logiche
indirizzo IP, volume di un disco, … Forniscono un’interfaccia identica per
essere gestite Le risorse possono migrare
152
Clustering: dipendenzeClustering: dipendenze
Spesso il corretto funzionamento di una risorsa dipende dalla disponibilità di altre risorseUn database richiede un disco
Un albero di dipendenza descrive l’ordine in cui le risorse devono essere rese disponibili o fermate
Le dipendenze non possono attraversare i confini di un gruppo
153
Clustering: gruppiClustering: gruppi
Una collezione di risorse che devono essere gestite coma una singola unità
Un gruppo contiene tutti gli elementi che sono necessari per eseguire un’applicazione
Se una risorsa del gruppo non funziona, l’intero gruppo non funziona
154
Clustering: virtual serverClustering: virtual server
Astrazione che incapsula un servizio e le risorse necessarie per eseguire quel servizioè come una classe in C++tra le risorse compare un indirizzo IP
I virtual server possono itersecarsile risorse di virtual server diversi possono
essere condivise
155
Clustering: Node managerClustering: Node manager
Gestisce l’appartenenza delle risorse al cluster
Invia periodicamente dei messaggi (heartbeat) agli altri nodi nel clusterse un nodo non risponde, manda un
broadcast agli altri membri per verificare la loro appartenenza al cluster (regroup event)
se un node manager non risponde al regroup, tutti i gruppi che hanno risorse su quel nodo “falliscono”
156
Clustering: resource managerClustering: resource manager
Gestisce/avvia/ferma le risorse Gestisce le dipendenze Riceve informazioni dal node manager e
dal resource monito
157
ClusteringClustering
158
Job objectsJob objects
Un estensione del concetto di processo E’ un oggetto che controlla gli attributi
di un insieme di processi associati al Job Serve ad ovviare alla mancanza di un
albero dei processi in NT 4 E’ possibile misurare informazioni di
accounting di un Job
159
Jobs objectsJobs objects
Le Win32 API:creano un Jobassociano uno o più processi ad un Job
EsempioIIS crea dei CGI script, che possono essere
messi nel contesto di un Job
160
Job objectsJob objects
Un Job object contiene limiti che sono applicati a tutti i processi del joblimiti di CPU time in user mode per il joblimiti di CPU time in user mod per un singolo
processoMassimo numero di in un jobPriorità del job
161
Job objectsJob objects
E’ possibile porre dei limiti a come i processi di un job usano le interfaccie utenteimpedire ai processi del job di aprire
“window handle” con finestre di thread al di fuori del job
impedire l’accesso alla clipboard...
162
Plug and PlayPlug and Play
Combinazione di hardware/software che permette al sistema di adattarsi a cambiamenti nella configurazione senza grossi interventi da parte dell’utente
Domanda: un sistema operativo può scalare da desktop a server?
163
Plug and PlayPlug and Play
Advanced Configuration and Power Interface (ACPI) ver. 1.0definizione di standard per schede madri e
BIOS per affidare al sistema operativo alcuni meccanismi di gestione di una periferica
interrupt, canali DMA, indirizzi di I/O, power managment, …
ACPI è Indipendente dal sistema operativo e dalla CPU
164
Plug and PlayPlug and Play
Implementazione in Windows 2000estensione della infrastruttura di I/Oriscrittura dei device driver
I meccanismi di plug and play operanoall’installazioneal bootsu eventi
schede PCMCIA, ...
165
Plug and PlayPlug and Play
Nuovi device driveri dirver dei bus sono spostati fuori dall’HALnuovi API per supportare l’installazione e la
configurazione di nuovi deviceestensioni e cambiamenti al file dei registryestensioni al Control Panel
I vecchi device driver funzionano sempre, ma le capacità di plug and play sono ridotte
166
Plug and PlayPlug and Play
167
Very large memory (VLM)Very large memory (VLM)
Windows NT 4 ha la capacità di indirizzare fino a 4 GB di memoria virtuale
Estensione in Windows 2000 a 28 GB sui sistemi Compaq/Digital Alpha
Non è previsto un porting sulle architetture IntelE’ prevista una vera versione a 64 bit per
Intel IA64 e Digital Alpha
168
Very large memory (VLM)Very large memory (VLM)
NT 4 supporta64 bit di indirizzamento sui file system2 GB di memoria virtuale privata
3 GB nella versione Enterprise
VLM permette l’uso di puntatori a 64 bit per superare il limite dei 2 GBle applicazioni vanno modificate con il
nuovo puntatore per trarne beneficionuove API per operare sui puntatori a 64 bit
169
Very large memory (VLM)Very large memory (VLM)
Limitazioni nell’uso dei puntatori a 64 bitNon sono gestite “page faults” di puntatori
a 64 bit Nuova Win64 API
pienamente a 64 bitcompatibile con applicazioni a 32 bit
170
Windows Management Windows Management InstrumentationInstrumentation
WBEM (Web-based Enterprise Management)
Tentativo di unificare SNMP, DMI, e vari servizi Win32 (Perfmon API, Registry, Event log)Adottato dal consorzio DMTF (Intel, Cisco,
BMC, Microsoft, ecc.)Descrive gli oggetti in base al CIM (Common
Information Model)
171
Windows kernel traceWindows kernel trace
Descritto per la prima volta al CMG ‘97 “Secure kernel trace facility” Progettato per alti volumi di trace
NT 4 Scheduler trace è stato abbandonato per via dell’overhead
Progettato per essere esteso
172
Trace Header Process IdParent
Process IdSecurity Id Image Name
Process Start/End
4 bytes 4 bytes Variable length Variable length
Trace Header DiskSignature
TransferSize
Disk I/O
4 bytes 4 bytes
IRP Flags
4 bytes
Trace Header
Page Faults
Response
4 bytes
VirtualAddress
4 bytes
Byte Offset
8 bytes
Trace Header Source IpAddress
Dest IpAddress
TCP/IP
4 bytes 4 bytes
SourcePort
2 bytes
DestPort
2 bytes
Size
4 bytes
Process Id
4 bytes
Operating System TracesOperating System Traces
173
Windows kernel event trace Windows kernel event trace headerheader
Field Description Data Type Size
Size Event record size unsigned long 4 bytesTimeStamp Wall clock time (in 100ns) quad integer 8 bytesThreadId Thread responsible for event handle 8 bytesGUID Globally Unique Identifier structure 16 bytesUserTime User-mode CPU time (ticks) unsigned long 4 bytesKernelTime Kernel-mode CPU time unsigned long 4 bytesVersion Version of record unsigned short 2 bytesType Event type unsigned char 1 byteLevel Event level unsigned char 1 byte
174
Oltre Windows 2000Oltre Windows 2000
Full porting su architetture a 64-bitCompaq (Digital) Alpha Intel/HP P7 Merced
175
Capacity planning:Capacity planning:memoriamemoria
Memory: Pages/secnumero di pagine (4KB) lette/scritte da
disco< 2
la RAM è sufficiente
> 3 poca RAM
176
Capacity planning:Capacity planning:processoreprocessore
Processor/System: % Processor timepercentuale di utilizzo del processore< 60%
il carico non è eccessivo
> 60% il processore è sovra-utilizzato prima di fare un up-grade, controllare l’uso della
memoria
177
Capacity planning:Capacity planning:dischidischi
PhysicalDisk: Avg. Disk Queue Lenghtnumero medio di richieste di
lettura/scrittura in attesa di essere servite< 2
tutto OK
> 3 si richiede un disco e/o un controller più veloci
178
Capacity planning:Capacity planning:dischidischi
PhysicalDisk: % Disk Timeutilizzo del disco< 60%
tutto OK
> 70% si richiede un disco e/o un controller più veloci
179
Capacity planning:Capacity planning:reterete
Network segment: % Network utilizationutilizzo della rete rispetto alla capacità
massima del segmento< 60%
tutto OK
> 70% troppi computer/troppo traffico sul segmento di
rete partizionare ulteriormente il segmento o spostare
dei server
180
ContattoContatto
Paolo CremonesiDipartimento di Elettronica e InformazionePolitecnico di MilanoE-mail: [email protected]
Top Related