CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

70
© 2002 - William Fornaciari © 2002 - William Fornaciari CEFRIEL CEFRIEL Consorzio per la Formazione e la Consorzio per la Formazione e la Ricerca Ricerca in Ingegneria dell’Informazione in Ingegneria dell’Informazione Politecnico Politecnico di Milano di Milano Windows NT Windows NT Docente: Docente: Ing. Domenico Barretta Ing. Domenico Barretta Politecnico di Milano Politecnico di Milano [email protected] [email protected] www.elet.polimi.it/~barretta www.elet.polimi.it/~barretta

Transcript of CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

Page 1: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

© 2002 - William Fornaciari© 2002 - William Fornaciari

CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione

PolitecnicoPolitecnicodi Milanodi Milano

Windows NTWindows NT

Docente:Docente:

Ing. Domenico BarrettaIng. Domenico Barretta

Politecnico di MilanoPolitecnico di [email protected]@elet.polimi.it

www.elet.polimi.it/~barrettawww.elet.polimi.it/~barretta

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 22 - -

SommarioSommario

IntroduzioneAmbiente di esecuzione dei processiArchitettura di Windows NT

Modo prilivegiatoNT Executive

NT Kernel

HAL (Hardware Abstraction Layer)

Modo utenteEnvironment Subsystems

Processi di startup del sistema

Cambiamenti in Windows 2000Monitoraggio del Sistema

Page 3: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 33 - -

IntroduzioneIntroduzione

Sistema operativo Windows NTA Prelazione (preemptive)Rientrante

Tutte le parti condivise di libreria non sono auto-modificanti.

– Non è consentita la modifica diretta dei dati.

Memoria virtualeMulti piattaformaParzialmente compatibile con DOS e Win3.1

Estensioni di Windows 2000Plug and playJob objectIndirizzamento a 64 bit

Page 4: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 44 - -

Introduzione: Architettura Introduzione: Architettura WinNTWinNT

Processi di servizio

Device drivers

Win32 User,GDI

Virtual Memory

Processes & Threads

Security Cache Manager

I/O Manager

Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)

Replicator

Alerter Service

Controller

WinLogon RPC

Environment Subsystems

Applicazione

Subsystem DLLs

POSIX

OS/2

Session Manager

Processi di Sistema

Applicazioni Utente

File systems Object management / Executive RTL

NT Kernel

Hardware Abstraction Layer (HAL)

Event Logger

System Threads Modalità Kernel

Executive API

Win32

NTDLL.DLL Modalità Utente

NTOSKRNL.EXE NT Executive

Page 5: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 55 - -

Introduzione: Processi e Introduzione: Processi e ThreadThread

ProcessoUn’istanza di un programma in esecuzioneun processo si crea per eseguire un programma quindi, avviare un’applicazione crea un processo.L’argomento principale all’API (Application Program Interface) Win32 CreateProcess è il nome del file da eseguire.

Esempio:#include <string.h>...strcpy(lpcommandLine, “c:\\WINNT\\SYSTEM32\\NOTEPAD.EXE temp.txt”);CreateProcess (Null, lpCommandLine,...);...

Page 6: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 66 - -

Introduzione: Processi e Introduzione: Processi e ThreadThread

Thread (processo leggero – lightweight process)Un contesto di esecuzione all’interno di un processo.

Un processo definisce uno spazio di indirizzamento all’interno del quale uno o più thread sono eseguiti.

Tutti i thread in un processo,Sono eseguiti all’interno di un singolo spazio di indirizzamento;Condividono le stesse risorse.

L’argomento principale all’API Win32 CreateThread è il nome di una funzione.

Esempio:CreateThread(NULL, 0, myFunc, &Arg, ...);

Page 7: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 77 - -

Introduzione: Processi e Introduzione: Processi e ThreadThread

All’avvio ogni processo è composto da un solo thread: quello corrispondente all’esecuzione della funzione main.ll thread può creare altri thread nello stesso processoIl thread può creare altri processi

Spazio di indirizzamento del processo Spazio di indirizzamento del processo

Esecuzione di Thread

Page 8: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 88 - -

Introduzione: Introduzione: Modo utente e modo kernelModo utente e modo kernel

Il passaggio da un modo all’altro, oltre ad influenzare lo stato del processore consente di controllare:

l’accesso alla memoriaOgni pagina ha un tag che indica il modo richiesto per leggere o scrivere

– Le pagine di codice hanno tag “no write in any mode”

Protegge la memoria dedicata al sistema accessi da parte processi utente.Protegge processi utente da altri processi dello stesso tipo.

la possibilità di eseguire istruzioni privilegiateAd esempio, istruzioni di I/O.

Page 9: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 99 - -

ComponentiComponenti Modo di Modo di AccessoAccesso

Applicazioni Utente

Subsystem processes Utente

NT Executive Kernel

NT Kernel Kernel

Driver Kernel

HAL Kernel

ComponentiComponenti Modo di Modo di AccessoAccesso

Applicazioni Utente

Subsystem processes Utente

NT Executive Kernel

NT Kernel Kernel

Driver Kernel

HAL Kernel

Introduzione: Introduzione: Modo utente e modo kernelModo utente e modo kernel

Page 10: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1010 - -

Architettura: Modo kernelArchitettura: Modo kernel

Il codice è eseguito in modo kernel per:1. Richiesta da parte di un thread attivo in modo

utente2. Interrupt da dispositivi esterni3. Thread attivi in modo kernel

1. Richiesta da parte di un thread attivo in modo utente

Il passaggio a modo kernel da parte di un thread in modo utente avviene

attraverso il system service dispatchil codice in modo kernel viene eseguito nel contesto del thread

Page 11: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1111 - -

Architettura: Modo kernelArchitettura: Modo kernel

2. Interrupt da dispositivi esterniGli Interrupt (come tutte le eccezioni) sono gestiti in modalità kernelL’interrupt dispatcher di Windows NT invoca la le routine di servizio alle interruzioni (interrupt service routine – ISR )La ISR viene eseguita nel contesto del thread interrotto (“arbitrary thread context”)La ISR spesso richiede l’esecuzione di una Deferred Procedure Call (DPC), anche essa in kernel mode

3. Thread attivi in modo kernelAlcuni thread di sistema sono sempre in modo kernel mode, la maggior parte nel processo SystemScheduling e preemption sono analoghi come per ogni altro thread.

Page 12: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1212 - -

Sincronizzazione nel kernelSincronizzazione nel kernel

La garanzia della mutua esclusione per l’accesso a strutture dati del kernel può avvenire in modi diversiSu singolo processore è sufficiente disabilitare gli interrupt le cui ISR potrebbero accedere alla struttura datiSu multiprocessore non è sufficiente questo approccio

Si usa uno spinlock: una primitiva per prendere un lock su una struttura dati condivisaImplementazione dipendente dall’hardware

Spesso utilizza l’istruzione di test-and-set

Page 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1313 - -

SincronizzazioneSincronizzazione

L’utilizzo della soluzione dello spinlock non è attuabile che a livello kernel

Quando si richiede uno spinlock la CPU stalla fino al suo ottenimento

Usabile solo per sezioni critiche molto brevi

A livello executive vengono offerte delle primitive di sincronizzazione

Si basano sull’attesa che un oggetto passi dallo stato nonsignaled allo stato signaled

Quando ciò avvenga e quanti thread vengano riportati nello stato ready dipende dal tipo di oggetto (processo, thread, file, mutex, …)

Page 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1414 - -

Architettura di Architettura di NTNT e e Win2000Win2000

NT Executive

Applicazione

NT Kernel

Hardware Abstraction Layer (HAL)

Modalità Kernel

Win32 Modalità Utente

Hardware

Altri sotto sistemi

Applicazione Applicazione

Altri sotto sistemi

Page 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1515 - -

ArchitetturaArchitettura

Windows NT e 2000 ha una architettura microkernel modificata.

Ogni funzione del sistema è gestita da una sola componente del sistema operativo.Il resto del sistema operativo e tutte le applicazioni accedono alla funzione attraverso il componente che ne è responsabile utilizzando interfacce standard.Si può accedere ai dati di sistema solo attraverso funzioni appropriate.Non è una architettura microkernel pura poiché molte delle funzioni di sistema non incluse nel microkernel sono eseguite in modo privilegiato (modo kernel).

Per ragioni legate alle prestazioni– Molte funzioni non microkernel richiederebbero molte

commutazioni tre thread o processi, molti cambi di modo e l’uso di buffer in memoria extra.

Page 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1616 - -

Processi di servizio

Device drivers

Win32 User,GDI

Virtual Memory

Processes & Threads

Security Cache Manager

I/O Manager

Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)

Replicator

Alerter Service

Controller

WinLogon RPC

Environment Subsystems

Applicazione

Subsystem DLLs

POSIX

OS/2

Session Manager

Processi di Sistema

Applicazioni Utente

File systems Object management / Executive RTL

Kernel

Hardware Abstraction Layer (HAL)

Event Logger

System Threads Modalità Kernel

Executive API

Win32

NTDLL.DLL Modalità Utente

NTOSKRNL.EXE

Architettura: Modo kernelArchitettura: Modo kernel

Page 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1717 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Costruito sopra il kernel, implementa tutte le politiche ed i servizi offerti da NT.

Gestione dei processiGestione della memoriaGestione dei fileGestione dei dispositivi

È costituito da moduli:Gestore degli oggetti, gestore di processi e thread, gestore della memoria virtuale, gestore della sicurezza, gestore dell’I/O, gestore della cache, funzioni di runtime, funzioni di supporto esecutivo, Strumenti per LPC (local procedure call).

Page 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1818 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore degli oggettiCrea, gestisce e cancella gli oggetti e tipi di dati astratti utilizzati per rappresentare le risorse

Processi, thread, sincronizzazione ...

Gestore degli oggetti implementa gli handle che permettono la gestione degli oggetti in modo utente

Gestisce la sicurezza degli oggetti

Oggetto Esecutivo

Applicazione

Oggetto Kernel

Modalità Kernel

Modalità Utente

handle

NT Executive

NT Kernel

Page 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 1919 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore di processi e threadGestisce tutti gli aspetti che non sono gestiti da altri elementi specializzati (es: le caratteristiche di un file)

Crea e termina thread e processiSvolge l’attività di supervisore nella allocazione delle risorseFornisce le primitive di sincronizzazioneControlla i cambi di stato dei thread e processi

Gestore della sicurezzaGestisce le politiche di sicurezza sul computer localeControlla le risorse del sistema operativo

Page 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2020 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore della memoria virtualeimplementa il meccanismo di memoria virtuale

Mette in corrispondenza gli indirizzi virtuali relativi allo spazio di indirizzamento di un processo con le pagine fisiche della memoria di lavoro. Quando un processo è creato dispone di 4 GB di spazio virtuale di indirizzamento.

fornisce il supporto alla I/O cacheLa politica di sostituzione delle pagine è FIFO modificata

La pagina da eliminare viene messa in un’altra FIFO (standby list).Se la pagina e usata ancora, viene spostata dalla standby list di nuovo nel working set.FIFO è la politica peggiore.

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2121 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore dell’I/ORealizza un ambiente attraverso cui le applicazioni possono accedere ai dispositivi di I/O.

funzioni di I/O device-independent.– Hardware device driver: gestiscono l’I/O dei dispositivi fisici

(disco, rete, ecc.) interfacciandosi direttamente con l’HAL– File system device driver: accettano richieste di I/O associate

ad un file system e le trasformano in richieste di I/O per uno specifico dispositivo

– Network redirector: trasmettono richieste di I/O a macchine remote e viceversa (orientato a richieste di I/O di file system)

Individua il driver più appropriato per ulteriori elaborazioni

Filter driver– disk mirror, per crittare e decrittare dati, ...– ricevono una richiesta di I/O, operano sui dati, e la passano al

livello successivo.

Page 22: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2222 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Page 23: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2323 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore della cacheMigliora le prestazioni di dispositivi di I/O basati su file

Mantenendo in memoria centrale le pagine lette di recente.Rimandando la scrittura su disco mantenendo le pagine in memoria di centrale.

La Cache è condivisa da tutti i file systems (locali e remoti, HD e CD) ed è applicata a tutti i file.Alla cache è applicato il meccanismo standard della memoria virtuale di Windows NT: Virtual cache.

Page 24: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2424 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Richiesta di lettura

Driver del File System

Memoria Virtuale

Vista del file 1

Vista del file 2

...

...

...

Gestore della cache

Gestore della memoria virtuale

Driver del disco

1

2

3

4 5

6

7 Gestore della

memoria virtuale

Descrittore dell’indirizzo

virtuale

Page Fault

Page 25: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2525 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore della cache (continua)Aprire un file:

Trovare una vista disponibile e inserire i primi 256 KB del file nella vista

Leggere o scrivere un file in cache:Rimappare se necessario la parte di file che interessa nella cacheCopiare i dati tra applicazione e cache (verso cache in caso di scrittura su file)L’I/O effettivo viene eseguito dal meccanismo di gestione della memoria virtuale

Page 26: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2626 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore della cache (continua) La politica di gestione in scrittura della cache è Write-back

Il numero di pagine dirty presenti controlla la scrittura– sistemi piccoli: numero di pagine fisiche/8; – sistemi medi: numero di pagine fisiche/4;– sistemi grandi: somma le due precedenti

Il thread Lazy writer accoda 1/4 delle pagine modificate (dirty page) ogni secondo

– Nota: il thread Lazy writer non scrive su disco; questa attività è svolta da Write Behind.

La gestione della politica di predizione della lettura da disco (Read Ahead) è di tipo automatico e asincrono

I dati successivi da leggere sono ipotizzati sulla base delle precedenti 3 letture

Page 27: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2727 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Funzioni runtimegestione di stringhe, funzioni algebriche, conversione di tipi...

Strumenti per LPC (local procedure call) Fa rispettare la relazione client/server tra le applicazioni e i sotto sistemi esecutivi su di uno stesso calcolatore

Simile all’RPC (Remore Procedure Call) nall’ambito dei sistemi distribuiti

Page 28: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2828 - -

ArchitetturaArchitettura:: NT KernelNT Kernel

Rapresenta il microkernel modificato di NTÈ costituito dalle più importanti e più utilizzate componenti del sistema operativoNT Kernel gestisce:

Lo scheduling dei threadLa comunicazione tra processiLa gestione di interruzioni ed eccezioniLa sincronizzazione multiprocessore

Altre importanti funzioni del kernel sono:Isolare l’executive dall’architettura Mascherare le differenze tra diverse architetture

X86, Alpha, etc.

Page 29: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 2929 - -

ArchitetturaArchitettura:: NT KernelNT Kernel

Il kernel differisce dall’executive Non è mai paginato dalla memoriaLa sua esecuzione non è mai interrotta da altri thread

ad eccezione delle Interrupt Service Routine

Non verifica mai la correttezza dei parametri di chi chiama le sue funzioniNon implementare politiche di gestione

tranne per il thread scheduling

Page 30: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3030 - -

SchedulingScheduling

In Windows NT/2000 la granularità dello scheduling è a livello di thread, non a livello di processoUn processo con tanti thread, a parità di priorità, avrà a disposizione una frazione maggiore del tempo di CPU rispetto ad un processo con pochi threadI thread vengono schedulati in base alla loro priorità

32 livelli di priorità0: riservato allo zero page thread1-15: priorità variabile16-31: priorità “real time”

– Real time è usato in senso improprio: non vengono offerte garanzie tipiche dei sistemi operativi real-time

Page 31: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3131 - -

SchedulingScheduling

Lo scheduler mantiene una coda di thread in stato ready per ogni livello di prioritàDi volta in volta il thread viene selezionato fra quelli nella coda non vuota corrispondente alla priorità più altaNon viene fatta alcuna distinzione fra thread in modalità utente e thread in modalità kernelIl quanto di tempo assegnato ad un thread può variare dinamicamente

Il thread in foreground ha un quanto di tempo più lungo degli altri

Page 32: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3232 - -

Scheduling : Scheduling : PrioritàPriorità

Il livello di priorità di un thread viene determinato in base a

Priorità del processo di appartenenzaPriorità rispetto ad altri thread

I livelli di priorità fra 1 e 15 possono essere modificati dal sistema

Si parla di priority boost (si veda la slide successiva)

I livelli di priorità fra 16 e 31 non vengono mai modificati e sono usati anche da thread di sistema

Un thread a priorità oltre il 16 potrebbe non permettere l’esecuzione di thread di sistema

Necessari privilegi per usare questi livelli di priorità

Page 33: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3333 - -

Priority boostPriority boost

Esistono cinque casi in cui la priorità (se minore di 16) può aumentare provvisoriamente

Al completamento di operazioni di input/outputDopo una wait su un evento o un semaforoQuando un thread in foreground completa una waitQuando un thread di gestione dell’interfaccia grafica si risveglia per un’attività relativa alla gestione delle finestreQuando un thread non è stato schedulato da molto tempo

Dopo un certo intervallo di tempo la priorità torna al valore iniziale

Page 34: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3434 - -

PreemptionPreemption

Alcuni interrupt software e tutti gli interrupt hardware hanno priorità superiore alla massima priorità di un thread

Se avviene uno di questi interrupt, il thread in esecuzione viene sospeso

Se viene creato un thread a priorità superiore rispetto a quello in esecuzione, il thread viene interrotto e torna in testa alla coda corrispondente alla sua prioritàLo stesso avviene se un thread a priorità più elevata torna allo stato ready dallo stato waiting (o transition)

Page 35: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3535 - -

Scheduling su multiprocessoreScheduling su multiprocessore

Su sistemi a multiprocessore simmetrico possono essere in esecuzione più thread contemporaneamenteIl meccanismo di scheduling viene alterato tenendo conto dell’affinità

L’affinità è l’insieme di processori su cui un thread può essere schedulato per l’esecuzione

Sottoinsieme dei processori disponibiliDefault: tutti i processori

Viene tenuta traccia del processore preferenziale (inizializzato con una variabile casuale) e dell’ultimo processore su cui è stato eseguito

Page 36: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3636 - -

Scheduling su multiprocessoreScheduling su multiprocessore

La scelta di un thread da eseguire su un processore avviene secondo i seguenti criteri (si cerca un thread che ne rispetti almeno uno, nel rispetto dell’affinità)

L’ultima volta che è stato eseguito era su quel processoreHa quel processore come processore idealeÈ pronto per l’esecuzione da almeno due quanti di tempoHa una priorità maggiore di 23

Se non ne trova uno, schedula come su monoprocessore (ma tenendo conto dell’affinità)

Page 37: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3737 - -

ArchitetturaArchitettura:: HALHAL

L’Hardware Astraction Layer (HAL.DLL) mette in relazione i comandi e le risposte di un hardware generico con quelli di una specifica piattaforma.

Fornisce a NT Kernel una visione uniforme del bus di sistema della macchina, del controller DMA, del controller dell’interrupt, dei timer di sistema e del modulo di memoria.

Differennze tra NT Kernel e HALNT Kernel

Maschera le funzioni specifiche di un’architetturaHAL

Maschera le funzioni che possono essere diverse su macchine diverse all’interno della stessa architettura

Page 38: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3838 - -

ArchitetturaArchitettura:: HALHAL

Windows NT comprende HAL per alcune architetture:

PC-compatibili, DEC Alpha, Power PCI produttori di hardware possono fornire altri HALRoutine d’esempio:

HalGetBusDataHalAssignSlotResourcesHalSetBusDataHalSetBusDataByOffsetHalTranslateBusAddressHalGetInterruptVectorHalGetAdapterREAD_REGISTER_ULONG WRITE_PORT_UCHAR

HalGetBusDataHalAssignSlotResourcesHalSetBusDataHalSetBusDataByOffsetHalTranslateBusAddressHalGetInterruptVectorHalGetAdapterREAD_REGISTER_ULONG WRITE_PORT_UCHAR

Page 39: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 3939 - -

Programmi di Programmi di Windows NTWindows NT

Sono elementi di Windows NT che sono contenuti in eseguibili (.EXE) separati e vengono eseguiti in processi distinti

Sono avviati dal sistemaNon sono legati all’utente

Sono di tre tipi:Environment Subsystems Win32 Services

Processi di startup del sistema

Sono processi attivati in modo utente

Page 40: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4040 - -

Processi in modo utenteProcessi in modo utente

I processi attivi in modo utente possono essere classificati nel modo seguente:

Processi di servizioSono processi che rimangono in attesa di svolgere uno specifico servizio.

– Esempio: un processo di servizio è quello che gestisce la coda di stampa oppure quello per monitorare eventi di sistema, sicurezza o applicazione (Event Logger).

Processi speciali di supporto al sistemaProcessi di sistema che non sono eseguiti come servizi

– Logon process, session manager, ...

Ambiente dei sotto sistemi Environment subsystems

Applicazioni utente

Page 41: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4141 - -

Processi in modo utenteProcessi in modo utente

Processi di servizio

Device drivers

Win32 User,GDI

Virtual Memory

Processes & Threads

Security Cache Manager

I/O Manager

Hardware interfaces (buses, I/O, interrupts, timers, clocks, DMA, cache control, etc.)

Replicator

Alerter Service

Controller

WinLogon RPC

Environment Subsystems

Applicazione

Subsystem DLLs

POSIX

OS/2

Session Manager

Processi di Sistema

Applicazioni Utente

File systems Object management / Executive RTL

Kernel

Hardware Abstraction Layer (HAL)

Event Logger

System Threads Modalità Kernel

Executive API

Win32

NTDLL.DLL Modalità Utente

NTOSKRNL.EXE

Page 42: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4242 - -

ArchitetturaArchitettura : : Environment SubsystemsEnvironment Subsystems

Ogni Environment Subsystem fornisce un insieme di servizi di base tipici di un dato sistema operativo.

Esempio: I programmi applicativi scritti per MS-DOS sfruttano l’interfaccia messa a disposizione dall’environment subsystem MS-DOS.

Il sottosistema fornisce alla applicazione la stessa API (Application Program Interface) che fornisce MS-DOS.

Sistemi SupportatiWin32, Windows 3.1, MS-DOS

Posix 1.x

OS/2

Page 43: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4343 - -

ArchitetturaArchitettura : : Environment SubsystemsEnvironment Subsystems

Dei tre sistemi supportati da Windows NT, Win32 assume un ruolo speciale poiché implementa alcune estensioni di NT Executive che sono necessarie a tutti gli altri sottosistemi.

Posix 1.x– E’ supportata solo la componente standard

» Non sono presenti componenti opzionali

OS/2– Supporto solo per alcune tipologie di applicazioni

» Applicazione di tipo carattere (non grafiche)

Nota: non sono forniti strumenti e documentazione per estendere i sottosistemi

Page 44: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4444 - -

ArchitetturaArchitettura : : Environment SubsystemsEnvironment Subsystems

Ciascun sottosistema fornisce l’accesso ad un diverso sotto insieme dei servizi di Windows NT.

Le applicazioni relative ad un sottosistema possono attuare servizi non disponibili ad applicazioni di altri sottosistemi

Ad esempio, il servizio di fork è disponibile solo nel sottosistema Posix.

Quando viene creato un processo, il tipo di sottosistema specificato nell’intestazione del file consente di indirizzarlo all’opportuno insieme di servizi.

Page 45: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4545 - -

ArchitetturaArchitettura : : Environment SubsystemsEnvironment Subsystems

Le applicazioni utente non accedono direttamente ai servizi del sistema operativo, ma passano attraverso una o più libreria dinamica di sotto sistemaLe DLL di sotto sistema traducono una funzione nel codice nell’appropriata chiamata.

la DLL Win32 implementa le Win32 APIla DLL Posix implementa le Posix 1003.1 API

Page 46: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4646 - -

ArchitetturaArchitettura : : Environment Subsystems - Win32Environment Subsystems - Win32

Creazione e eliminazione dei processiCreazione e eliminazione dei threadGenerazione del nome dei file temporaneiIdentificatore delle unità dischiControlli di sicurezza per il file system.Gestione grafica delle applicazioni console (a carattere)Parziale supporto per le applicazioni DOS a 16-bit.

Page 47: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4747 - -

ArchitetturaArchitettura : : Win32 Win32 ServicesServices

Applicazioni (.EXE) Win32 che sono eseguite indipendentemente dall’utente che ha fatto login

Sono 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 registroGli errori sono loggati nel Windows NT Event Log

Page 48: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4848 - -

ArchitetturaArchitettura : : Win32 Win32 ServicesServices

Utilizzano una forma di IPC per comunicare con i clientTipicamente i servizi fanno uso dei meccanismi di sicurezza di Windows NTPossono essere gestiti in modo remoto (start, stop, configurazione)

Il Server Manager permette il controllo remoto dei serviziIl servizio non necessita di nessuna codice particolare per essere gestito in modo remoto

Esempi di servizi built-in in WindowsSchedule service (avvio manuale), Event Log, Remote Access Server, IIS.

Page 49: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 4949 - -

ArchitetturaArchitettura : : Processi di Processi di startup startup del sistemadel sistema

SystemSystem

SMSSSMSS

CSRSSCSRSS WINLOGONWINLOGON

IdleIdle

SERVICESSERVICES LSASSLSASS USERINITUSERINIT NDDEAGNTNDDEAGNT

EXPLOREREXPLORER

Page 50: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5050 - -

ArchitetturaArchitettura : : Processi di Processi di startup startup del sistemadel sistema

Sono processi separati caricati o avviati al boot non come servizi o environment subsystems

Il loro nome non è nel registrySono inglobati nel codice sorgente del kernel

Idle: processo ID 0Ospita i thread che sono idleNon è un vero processo o un threadSpesso è indicato come System Process

System: Ospita i thread definiti nel kernelNon è un vero processo o threadIl thread 0 (routine di nome Phase1Initialization) lancia il primo vero processo (SMSS.EXE)

Page 51: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5151 - -

ArchitetturaArchitettura : : Processi di Processi di startup startup del sistemadel sistema

SMSS.EXE: Session ManagerIl primo processo creatoPrende i parametri da\Registry\Machine\System\CurrentControlSet\Control\Session Manager

Lancia dei sottosistemi (CSRSS.EXE) e WINLOGON.EXEWINLOGON.EXE: Logon process

Presenta il primo prompt di login(“enter username and password”)Lancia SERVICES.EXE, LSASS.EXE, e NDDEAGNT.EXEQuando qualcuno esegue un login, lancia USERINIT.EXE

Page 52: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5252 - -

ArchitetturaArchitettura : : Processi di Processi di startup startup del sistemadel sistema

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

USERINIT.EXE:Avviato dopo il loginAvvia il desktop (EXPLORER.EXE) e termina

EXPLORER.EXE:Explorer e i processi figli sono i creatori di tutte le applicazioni

Page 53: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5353 - -

Cambiamenti in Windows Cambiamenti in Windows 20002000

NTFSConsente la compressione e nuovi servizi di crittografiaNT 4 non è compatibile con il nuovo NTFS

Common Internet File System (CIFS)File system distribuito simile a NFS Unix e possibilità di montare file system remoti

Multi-user systemsWinFrame, Terminal Server

Active DirectoryPlug and PlayVery large memory (Alpha)

Windows NT 4 ha la capacità di indirizzare fino a 4 GB di memoria virtualeEstensione in Windows 2000 a 28 GB sui sistemi Compaq/Digital Alpha

Page 54: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5454 - -

Monitoraggio del SistemaMonitoraggio del Sistema

Utilizzare perfmon.exe per monitorare il sistema.

Page 55: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5555 - -

Monitoraggio della MemoriaMonitoraggio della Memoria

Memory: Pages/secNumero di pagine (4KB) lette o scritte da disco per risolvere le mancanze di pagina cioè le pagine di dati o codice che non sono nel working set ma devono essere caricate da disco (hard fault).

Questo indicatore è utilizzato per analizzare i fallimenti che determinano ritardi di sistema più elevati.

Analisi< 2 pagine al secondo

– La RAM è sufficiente

> 3 pagine al secondo– La RAM è insufficiente. Il working set non può essere

dimensionato correttamente

Page 56: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5656 - -

Monitoraggio del ProcessoreMonitoraggio del Processore

Processor:%Processor timeIdentifica la percentuale di tempo in cui il processore è utilizzato per eseguire dei thread non-idle

Questo indicatore è utilizzato per analizzare l’attività del processore

Analisi< 60%

– il carico è contenuto. La capacità computazionale del processore e sufficiente per le attività svolte.

> 60%– Il processore è caricato in modo eccessivo. – prima di fare un up-grade, controllare l’uso della

memoria

Page 57: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5757 - -

Monitoraggio dei DischiMonitoraggio dei Dischi

PhysicalDisk: Avg. Disk Queue Lenghtnumero medio di richieste, di sia di lettura sia di scrittura, accodate al disco selezionato e che sono in attesa di essere servite.Analisi

< 2– Il numero di richieste pendenti non è critico. Il

sistema lavora correttamente.

> 3– Il numero di richieste pendenti è critico poiché il

disco e/o il controller non sono sufficientemente veloci per soddisfare le esigenze del sistema.

Page 58: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5858 - -

Monitoraggio dei DischiMonitoraggio dei Dischi

PhysicalDisk: % Disk TimeIdentifica la percentuale di tempo in cui il disco selezionato è occupato a servire le richeste di lettura o scrittura.Analisi

< 60%– Il sistema lavora correttamente.

> 70%– Il sistema è sovraccaricato: è richiesto un disco e/o

un controller più veloce.

Page 59: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 5959 - -

Conteggio del tempo in modo Conteggio del tempo in modo kernelkernel

Processor: % Processor Time Processor Time: tempo totale in CPU

elapsed real time - idle time

Il Processor Time è dato dalla somma del% User Time % Privileged Time

– tempo passato in kernel mode– comprende:

» Interrupt Time, DPC Time» Altri kernel-mode time (nessun contatore)

Page 60: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6060 - -

FilesystemFilesystem

Windows NT supporta i seguenti filesystemCDFS (CD-ROM File System)

Nomi non più lunghi di 32 caratteriMassima profondità degli alberi di directory 8Considerato un formato “legacy”

UDF (Universal Disk Format)Sostituisce CDFSNomi fino a 256 caratteriMassima lunghezza di un percorso 1023 caratteriNomi di file in cui maiuscole e minuscole sono diverse

FAT12, FAT16 e FAT32

Page 61: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6161 - -

Filesystem: Filesystem: FATFAT

FAT=File Allocation TableIl numero dopo la sigla indica il numero di bit per indirizzare i clusterIl filesystem FAT12 è utilizzato per i floppyI filesystem FAT16 e FAT32 sono supportati principalmente per compatibilità con altri sistemi operativi in sistemi multibootSu dischi grandi un basso numero di bit per l’indirizzamento dei cluster implica l’utilizzo di grossi cluster

Grosso spreco di spazio

Page 62: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6262 - -

NTFSNTFS

Supportato a partire da Windows 2000E’ un filesystem che usa 64 bit per indirizzare i cluster

Limite imposto da Windows 2000: la massima dimensione di un disco equivale a quella che avrei con uno spazio di indirizzamento a 32 bit (128 TB)

La dimensione del cluster dipende dalla dimensione del disco (come per tutti i filesystem)E’ robusto rispetto a crash di sistema o spegnimenti accidentaliHa caratteristiche di sicurezza

Page 63: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6363 - -

NTFSNTFS

RobustezzaSi basa sul concetto di transazione atomica

Un’operazione o va a buon fine o viene completamente annullata

Le informazioni vitali per la gestione del filesystem sono replicate per garantire che non vengano perse

SicurezzaAd ogni file è associato un descrittore per la sicurezzaE’ possibile assegnare i diritti sui file a livello di singolo utenteI diritti vengono assegnati dal proprietario del file (di default il creatore)

Page 64: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6464 - -

NTFSNTFS

NTFS mette a disposizione alcune caratteristiche avanzate fra cui

Un file può essere composto da più flussi di dati (data stream)

Ad esempio un flusso aggiuntivo è usato per le informazioni sul file (autore, titolo, …)

Indicizzazione dei file per una ricerca più veloceSostituzione dinamica dei cluster danneggiatiHard links

Esiste una chiamata di sistema ma non un comando per crearli

Quote per gli utentiCrittografia dei dati

Page 65: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6565 - -

Gestore della memoriaGestore della memoria

Lo spazio di indirizzamento virtuale è di 4 GB (indirizzi a 32-bit)Vengono gestiti file mappati in memoriaPermette di condividere pagine fra processiFornisce servizi al gestore della cache del filesystemAlcune delle migliorie di Windows 2000:

Possibilità di gestire fino a 64 GB di memoria fisicaMiglioramento delle prestazioni e della scalabilità

Page 66: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6666 - -

Spazio di indirizzamento Spazio di indirizzamento virtualevirtuale

Accessibile in user mode

Accessibile in user mode

Accessibile in kernel mode

Accessibile in kernel mode

}}

Uno per processo

Uno per tuttoil sistema

00000000

7FFFFFFF

80000000

FFFFFFFF

Lo spazio di indirizzamento di un processo contiene:

L’applicazione in esecuzione (.EXE e le .DLL)Uno stack utente per ogni threadTutte le variabili statiche dell’applicazione

Page 67: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6767 - -

Spazio di indirizzamento Spazio di indirizzamento virtualevirtuale

Accessibile in user mode

Accessibile in user mode

Accessibile in kernel mode

Accessibile in kernel mode

}}

Uno per processo

Uno per tuttoil sistema

Lo spazio di sistema contiene:

Executive, kernel e HALCelle di memoria allocate staticamente per il sistemaTabella delle pagineGli heap dell’executiveDevice drivers in Kernel-modeCache del file systemUno stack in kernel-mode per ogni thread

00000000

7FFFFFFF

80000000

FFFFFFFF

Page 68: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6868 - -

64-bit Win2K 32-bit Win2K

Memoria virtuale 16 TB 4 GBCache di sistema 1 TB 1 GBDimensione del 512 TB 16 TBPaging filePaged pool 128 GB 470 MBNon-paged pool 128 GB 256 MB

Windows 2000 a 64 bitWindows 2000 a 64 bit

Page 69: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 6969 - -

Memoria fisicaMemoria fisica

Il formato della tabella delle pagine limita la memoria fisica di Windows NT 4.0 a 4 GB per x86 e 8 GB per AlphaPer i sistemi x86 Xeon con più di 4 GB

Intel fornisce un driver che permette l’utilizzo della RAM oltre i 4 GB come RAM disk

NT non può usare questa parte della memoria per i processi

Windows 2000 supporta un indirizzamento diverso

Massima dimensione supportata da Windows 2000:

Professional, Server: 4 GBAdvanced Server: 8 GBDatacenter Server: 64 GB

Page 70: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2002 - William Fornaciari Windows NT Docente: Ing.

Windows NTWindows NT © 2002 - William Fornaciari© 2002 - William Fornaciari- - 7070 - -

Memoria fisicaMemoria fisica

Anche se lo spazio di indirizzamento virtuale è di 4 GB, una memoria fisica maggiore può essere sfruttata

Anche se un processo può indirizzare solo 2 GB, ce ne possono essere tanti in memoriaI nuovi servizi di indirizzamento esteso permettono ai processi Win32 di allocare memoria fisica e mapparne delle “viste” nello spazio di indirizzamento virtuale del processo

Un processo può allocare fino a 64 GB di RAM e mappare le “viste” nel suo spazio di indirizzamento virtuale