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

50
© 2001 - Fabio Salice © 2001 - Fabio Salice 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 Introduzione Introduzione Docente: Docente: Luigi Pomante Luigi Pomante Politecnico di Milano Politecnico di Milano [email protected] [email protected] www.elet.polimi.it/~pomante www.elet.polimi.it/~pomante

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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

© 2001 - Fabio Salice© 2001 - Fabio Salice

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

IntroduzioneIntroduzione

Docente:Docente:

Luigi PomanteLuigi Pomante

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

www.elet.polimi.it/~pomantewww.elet.polimi.it/~pomante

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 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 © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1212 - -

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 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1313 - -

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 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1414 - -

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 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1515 - -

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 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1616 - -

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 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1717 - -

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 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1818 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore della memoria virtuale

implementa 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 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 1919 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Gestore dell’I/O

Realizza 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 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2020 - -

ArchitetturaArchitettura:: NT Executive NT Executive

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2121 - -

ArchitetturaArchitettura:: NT Executive NT Executive

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

Mantenendo in memoria di 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 22: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2222 - -

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 23: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2323 - -

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 24: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2424 - -

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 25: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2525 - -

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 26: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2626 - -

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 commutazione 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 27: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2727 - -

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 28: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2828 - -

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 29: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 2929 - -

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 30: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3030 - -

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 31: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3131 - -

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 32: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3232 - -

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 33: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3333 - -

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 34: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3434 - -

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 35: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3535 - -

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 36: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3636 - -

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 37: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3737 - -

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 38: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3838 - -

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 39: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 3939 - -

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 40: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4040 - -

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

SystemSystem

SMSSSMSS

CSRSSCSRSS WINLOGONWINLOGON

IdleIdle

SERVICESSERVICES LSASSLSASS USERINITUSERINIT NDDEAGNTNDDEAGNT

EXPLOREREXPLORER

Page 41: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4141 - -

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 42: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4242 - -

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 43: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4343 - -

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 44: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4444 - -

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 45: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4545 - -

Monitoraggio del SistemaMonitoraggio del Sistema

Utilizzare perfmon.exe per monitorare il sistema.

Page 46: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4646 - -

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 47: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4747 - -

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 48: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4848 - -

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 49: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 4949 - -

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 50: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Fabio Salice Windows NT Introduzione Docente:

Windows NTWindows NT © 2001 - Fabio Salice© 2001 - Fabio Salice- - 5050 - -

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)