Windows NT® Internals Paolo Cremonesi. 2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

Slides:



Advertisements
Presentazioni simili
Numeri a 100 Electronic flashcard. 1 uno ritorno.
Advertisements

© 2010 Colt Telecom Group Limited. All rights reserved. Cloud Computing Lapproccio Colt Dionigi Faccedna.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Marco Russo DevLeap 27/03/2017 2:27 AM Il processo di Logon e la sicurezza per l’utente interattivo e per.
Midrange Modernization Conference 1 Scenari evolutivi per le soluzioni basate su AS/400 Walter Poloni Direttore Developer & Platform Evangelism Microsoft.
Luca Bianchi Windows Development Day Bologna 28 gennaio 2005 SQL Server Desktop Engine (MSDE) & SQL Server 2005 Express.
Vincenzo Campanale PM Security & Management System Center, DSI e la Roadmap.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Frontespizio Economia Monetaria Anno Accademico
Associazione Nazionale Medici Cardiologi Ospedalieri
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
XXIV Congresso ACOI 2005 Montecatini Terme Maggio 2005
EJB Enterprise Java Beans B. Pernici. Approccio Java.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © Fabio Salice Windows NT Introduzione Docente:
HDM Information Design notation v.4. HDM Information Design.
Varianza campionaria Errore standard della varianza campionaria
Canale A. Prof.Ciapetti AA2003/04
Citrix Metaframe. Metaframe è la soluzione client-server prodotta dalla Citrix in grado di rendere disponibili applicazioni e desktop a qualsiasi dispositivo.
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
Già primario f.f. U.O. di neurochirurgia
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% % Accrescimento della PECORA IN TASMANIA % % dal 1820 ad oggi % % ( MODELLO LOGISTICO ) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cos’è un problema?.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Linux firewalls Massimo Ianigro - CNR Area di Ricerca - Bari
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
CALCIO SKY 2007 – 2008 PROFILO DI ASCOLTO. 2 INDICE DEGLI ARGOMENTI Profilo di ascolto CALCIO SERIE A 2007 – 2008 Totale campionato (tutte le partite)……………………………………………….
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Componenti dell’architettura Oracle
DATA LINK PHYSICAL IP TRASPORTO APPLICATIVOclient PHYSICAL IP TRASPORTO APPLICATIVOserver Un Client è interconnesso ad un Server attraverso una porzione.
Monitoraggio a.s. 2008/2009Analisi dei dati RETE REGIONALE AU.MI.
CHARGE PUMP Principio di Funzionamento
Pregare con i Salmi.
Regolarità nella griglia dei numeri
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
22 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ore 10:00.
Un esempio: Registrazione e lettura di dati in un file
Il sistema operativo Sistema operativo (in breve) –È costituito dai programmi di gestione delle operazioni più elementari del computer –… gestione di vari.
1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab Nanodesktop Software development kit per sistemi.
Muoversi tra le finestre
7 cose da sapere su Volume Activation con Windows 7 © 2009 Microsoft Corporation. Tutti i diritti riservati. Come professionista IT, devi sapere che l'attivazione.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Lambiente operativo. 2 Per avviare e poter utilizzare il computer è necessario un particolare programma che si chiama sistema operativo. Windows è un.
Corso di Elementi di Informatica
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
TAQ Identità oggetto Contenuto Modalità di uso Nome oggetto: numero
Architettura dei sistemi di elaborazione
KNOwledge Store. INSTALLAZIONE KNOS 1.Architettura dellapplicazione 2.Prerequisiti hardware 3.Prerequisiti software 4.Installazione ruoli e funzionalità
LE RETI E IL DDNS.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
GEOGRAFIA DEI NUMERI Accademia dei Lincei - Roma 18 Ottobre2011
Un trucchetto di Moltiplicazione per il calcolo mentale
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Prima rilevazione sullo stato di attuazione della riforma degli ordinamenti nelle istituzioni scolastiche in LOMBARDIA Attuazione del D.L. 59/2003 a.s.
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Esempi risolti mediante immagini (e con excel)
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
1 Sky 2 Sky 3 Sky L’Universo Aperto La teoria del Big Bang prevede che, se la densità globale dell’universo non raggiunge un valore di Ωo (Omega Zero)
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
Azure: Mobile Services e Notification Hub ANDREA GIUNTA.
Customer satisfaction anno 2013 Ospedale di Circolo Fondazione Macchi Varese Presentazione risultati (Febbraio 2014)
DIRETTIVI UNITARI SPI-CGI – FNP-CISL - UILP-UIL TERRITORIO LODIGIANO Lunedì 23 marzo 2015 dalle ore 9,00 alle ore 13,00 Presso la sala Conferenze Confartigianato.
Transcript della presentazione:

Windows NT® Internals Paolo Cremonesi

2 Testo consigliato l F. Avery Bishop, “Inside Windows NT”, Microsoft Press l

3 Obiettivi l Spiegare l’architettura interna di Windows NT 4 l Alcune indicazioni su Windows NT 5 (Windows 2000) l Pre-requisiti  Familiarità con i concetti base dei sistemi operativi  Non sono necessarie conoscenze su Windows NT e sulla programmazione sotto MS Windows

4 Introduzione l Sistema operativo Windows NT  progetto nato nel 1989  preemptive  reentrant  virtual memory  multi piattaforma  parzialmente compatibile con DOS e Win3.1  parzialmente compatibile con OS2 e Posix

5 Estensioni in Windows 2000 l Plug and play l Job object l indirizzamento a 64 bit

6 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

7 Windows NT Key System Files l NTOSKRNL.EXE l NTKRNLMP.EXE l UPTOMP.EXE l HAL.DLL l NTDLL.DLL l XyzDriver.SYS

8 Windows NT Key System Files l NTOSKRNL.EXE  \WINNT\SYSTEM32\  Windows NT executive e kernel l NTKRNLMP.EXE  Versione 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 Files l UPTOMP.EXE  \NTRESKIT\  Strumento per convertire un’installazione mono-processore in una multi-processore l XXXDRIVER.SYS  \WINNT\SYSTEM32\DRIVERS\  Una sola versione indipendentemente dall’HAL

10 Windows NT Key System Files l HAL.DLL  \WINNT\SYSTEM32\  Hardware Abstraction Layer  Sul CD di installazione i file si chiamano HALXXX.DLL  Versioni diverse per le diverse schede madri  La procedura di installazione seleziona l’HAL appropriato e lo copia com HAL.DLL

11 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 User Application Subsystem DLLs POSIX OS/2 Session Manager System ProcessesServicesApplications File systems Object management / Executive RTL Kernel Hardware Abstraction Layer (HAL) Event Logger User Mode System Threads Kernel Mode Executive API Win32 NTDLL.DLL NTOSKRNL.EXE

12 Windows NT Versions l Build numbers  Incrementato ogni volta che i sorgenti sono ricompilati l Service packs  Packages di nuovi.EXEs,.DLLs.  Risolvere bug, fornire nuove funzionalità  Non cambiano il build number l Free vs. Checked build  Free = “retail”,  Checked = “debug”

13 Programmi | Strumenti di amministrazione | Windows NT Diagnostics Windows NT Versions

14 Packaging del prodotto l Windows NT Workstation  versione desktop, ha tutte le funzionalità  licenza per 2 CPU l Windows NT Server  funzionalità per server networking  licenza per 4 CPU l Windows NT Server Enterprise Edition  licenza per 8 CPU  3GB di spazio di indirizzamento  software aggiuntivo

15 Packaging del prodotto l Il kernel e i driver sono gli stessi

16 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

17 Processi e Threads l Cosa è un processo?  Un’istanza di un programma in esecuzione  un processo si crea per eseguire un programma  avviare un’applicazione crea un processo  L’argomento principale all’API CreateProcess è il nome del file immagine (eseguibile)

18 Processi e Threads l Cosa è un thread?  Un contesto di esecuzione all’interno di un processo  L’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 Threads l Ogni processo all’avvio è composto da un solo thread  Il thread corrisponde all’esecuzione della funzione “main”  ll thread può creare altri thread nello stesso processo  Il thread può creare altri processi

20 Per-process address space System wide Address Space Thread Thread Thread Processi e Threads Per-process address space Thread Thread

FFFFFFF FFFFFFFF Univoco per ogni processo, accessibile in modo user System wide, accessibile in modo kernel Per process, accessibile in modo kernel Application code Globals Per-thread stacks DLL code Kernel and Executive HAL, Boot drivers System cache, paged pool, non-paged pool Process page tables, hyperspace 4GB Virtual Address Space

22 Kernel Mode l Componenti critiche per le prestazioni  Accesso diretto all’hardware  Accesso diretto ai dati di altri thread/processi  Nessun context/switch (tranne per lo scheduling) l Protezione del sistema operativo dall’utente l Filosofa object/oriented  Ma è scritto in C, non in C++

23 Kernel Mode Vs. User Mode l Stato del processore l Controlla l’accesso alla memoria  Ogni pagina ha un tag che indica il modo richiesto per leggere o scrivere  Protegge il sistema dall’utente  Protegge l’utente da se stesso  Le pagine di codice hanno tag “no write in any mode” l Controlla la possibilità di eseguire istruzioni privilegiate

24 Kernel Mode Vs. User Mode l Una astrazione di Windows NT  Intel: Ring 0, Ring 3  Power PC: “supervisor” e “user” l Proprietà associate ai thread  I thread possono cambiare da user a kernel e viceversa  La modalità non influenza lo scheduling

25 ComponentiAccess mode ApplicazioniUser Subsystem processesUser ExecutiveKernelKernel DriversKernel HALKernel Kernel Mode Vs. User Mode

26 Entrare in “kernel mode” l Il codice è eseguito in kernel mode per:  Richiesta da parte di un thread in user mode  Interrupt da dispositivi esterni  Thread “dedicati” in kernel mode

27 Entrare in “kernel mode” l Richiesta da parte di un thread in user mode  attraverso il “system service dispatch”  il codice in kernel mode code viene eseguito nel contesto del thread

28 Entrare in “kernel mode” l Interrupt da dispositivi esterni  Interrupt (come tutte le eccezioni) sono gestiti in kernel mode  L’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” l Thread “dedicati” in kernel mode  Alcuni 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 kernel l Processor Time = tempo totale di occupazione della CPU  elapsed real time - idle time l Processor Time = User Time + Privileged Time l Privileged Time = tempo passato in kernel mode l Il Privileged Time comprende:  Interrupt Time, DPC Time  Altri kernel-mode time (nessun contatore)

31 Accounting 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 Dispatching

33 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

34 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 User Application Subsystem DLLs POSIX OS/2 Session Manager System ProcessesServicesApplications File systems Object management / Executive RTL Kernel Hardware Abstraction Layer (HAL) Event Logger User Mode System Threads Kernel Mode Executive API Win32 NTDLL.DLL

35 Windows NT Executive l Strato superiore di NTOSKRNL.EXE l Fornisce servizi OS generici  Processi, thread, gestione della memoria, I/O, comunicazione tra processi, sincronizzazione, sicurezza l Per lo più è in C (portabile!)

36 Windows NT Executive l Esporta funzioni (servizi) che possono essere invocate da API in user mode  Ad esempio, Win32 ReadFile -> executive NtReadFile l Gira in kernel mode l La maggior parte delle API non sono documentate  Utilizzate dagli sviluppatori di sotto-sistemi

37 Windows NT Executive: 5 componenti l Process e thread manager  crea e termina thread e processi  le funzioni sono implementate in realtà nel kernel  questo executive aggiunge alcune funzionalità ed estende la semantica degli oggetti del kernel l Virtual memory manager  implementa il meccanismo di memoria virtuale  fornisce il supporto alla I/O cache

38 Windows NT Executive: 5 componenti l Security reference monitor  gestisce le politiche di sicurezza sul computer locale  controlla le risorse del sistema operativo l I/O system  implementa funzioni di I/O device- independent  individua i device driver appropriati l Cache manager  cache delle pagine lette più di recente, read ahead, write back

39 Windows NT Executive: funzioni di supporto l Object manage  crea, gestisce e rimuove gli oggetti dell’executive  gestisce le strutture dati astratte che rappresentano risorse come processi, thread, ecc. l LPC  ottimizzazione del RPC (Remore Procedure Call)  gestisce la comunicazione tra client/server su uno stesso computer

40 Windows NT Executive: funzioni di supporto l Common runtime library  gestione di stringhe  funzioni algebriche  conversione di tipi l Gestione della memoria  allocazione/de-allocazione di memoria paginata e non  meccanismi di sincronizzazione  semafori

41 Windows NT Kernel l Le operazioni più importante del kernel:  determinare come il sistema operativo usa il processore l garantire un uso prudente (fairness)  isolare l’executive dall’architettura l Lo strato inferiore in NTOSKRNL.EXE l Maschera le differenze tra diverse architetture  x86 vs. Alpha vs., etc.

42 Machine Independent C Assembler Machine Dep. C Windows NT Kernel l Dimensioni:  Codice: 60k su Intel  80% indipendente dalla macchina l Non è un “microkernel”

43 Windows NT Kernel l Funzioni principali  Exception trap e interrupt dispatching  Primitive di sincronizzazione OS (MP e UP)  Gestione dello scheduling e del context switching dei thread  Generiche operazioni di wait  Fornisce gli oggetti base che sono usati dall’executive e (alcuni) esportati in user mode

44 Windows NT Kernel l Il kernel differisce dall’executive l Non è mai paginato dalla memoria l La sua esecuzione non è mai interrotta da altre thread  ad eccezione delle ISR l Non verifica mai la correttezza dei parametri di chi chiama le sue funzioni l Non implementare politiche di gestione  tranne per il thread scheduling

45 Windows NT Kernel l Il kernel implementa dei semplici oggetti (kernel object) l Molti oggetti dell’executive incapsulano uno o più kernel object

46 Windows NT Kernel: supporto hardware l Isolare (assieme all’HAL) l’executive dall’architettura  thread context switching  gestione della cache  gestione del TLB

47 Windows NT Kernel vs. HAL l Kernel  funzioni specifiche di un’architettura l HAL  funzioni che possono essere diverse su macchine diverse all’interno della stessa architettura

48 HAL - Hardware Abstraction Layer l Un file binario caricato separatamente (HAL.DLL) l Scopo:  Isolare (astrarre) Kernel e Executive da dettagli specifici di una piattaforma  Presentare un modello di architettura uniforme per facilitare lo sviluppo dei driver

49 HAL - Hardware Abstraction Layer l HAL maschera:  dispositivi di I/O specifici del sistema (bus, DMA,... )  meccanismi di cache coherency e di flushing, orologi di sistema  supporto SMP, programmazione degli interrupt l HAL contiene alcune subroutines per Executive e Kernel

50 HAL - Hardware Abstraction Layer l Windows NT comprende HAL per alcune architetture:  PC-compatibili, DEC Alpha, Power PC  I produttori di hardware possono fornire altri HAL

51 HalGetBusData HalGetBusDataByOffset HalAssignSlotResources HalSetBusData HalSetBusDataByOffset HalTranslateBusAddress HalGetInterruptVector HalGetAdapter READ_REGISTER_ULONG WRITE_PORT_UCHAR Routine HAL di esempio HAL - Hardware Abstraction Layer

52 Convenzioni di nome: Kernel e HAL Kernel l Ke: Kernel l Ki: Kernel internal (not available outside the kernel) HAL l Hal: Hardware Abstraction Layer l READ_, WRITE_: I/O port and register access

53 Convenzioni di nome: Executive l Ex: General executive routine l Ob: Object management l Exp: Executive private (not exported) l Io: I/O subsystem l Cc: Cache manager l Se: Security l Mm: Memory management l Ps: Process structure l Rtl: Run Time Library l Lsa: Security Authentication l FsRtl: File System Run Time Lib l Zw: File access, etc.

54 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

55 User process l I “processi” in user mode possono essere classificati in:  Service process  Special system support process  Environment subsystems  User applications

56 User process l Service process  sono l’equivalente dei daemon Unix  Event Logger, IIS,... l Special system support process  Processi di sistema che non sono eseguiti come servizi  Logon process, session manager,...

57 User process l Environment subsystem  espongono i servizi nativi del sistema operativo, forniscono una “personalità”  Win32, Posix 1.x, OS/2 1.2 l User application  Win32  Windows 3.1  MS-DOS  Posix 1.x  OS/2 1.2 (modo console)

58 Environment Subsystems l Espone le API “native”  Estende le funzionalità native di Windows NT l Due parti  Subsystem DLL l Convertono le API documentate in API native  Environment Subsystem Process l Mantengono lo stato dei processi “utente” l Implementano alcune API aggiuntive

59 Environment Subsystems l Tre ambienti forniti con Windows NT:  Win32 l speciale, Windows NT non può funzionare senza  Posix 1.x l solo lo standard, senza componenti opzionali  OS/2 l supporto solo per applicazioni carattere l Non sono forniti strumenti e documentazione per estendere i sottosistemi

60 Environment Subsystems l Ciascun subsystem fornisce l’accesso ad un sotto insieme ad un diverso sotto insieme dei servizi di Windows NT l Le applicazioni di un subsystem possono fare cose “proibite” ad applicazioni di altri subsystem  Ad esempio, Fork è disponibile solo nel subsystem Posix

61 Environment Subsystems l Le applicazioni devono essere linkate per un particolare subsystem l 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 Subsystems l Le applicazioni utente non accedono direttamente ai servizi nativi del sistema operativo, ma passano attraverso una o più subsystem librerie dinamiche (DLL) l Le subsystem DLL traducono una funzione documentata nell’appropriata chiamata non documentata  la DLL Win32 implementa le Win32 API  la DLL Posix implementa le Posix API

63 Environment Subsystems: Applicazioni MS-DOS l NTVDM (NT Virtual Dos Machine)  emula un processore Intel 486 con MS-DOS l Binari sono compatibili su  Intel, DEC Alpha, Power PC, MIPS 4000 l Ogni applicazione DOS è eseguita in una NTVDM separata  preemptive multitasking  l’eventuale crash di un’applicazione no influenza le altre

64 Environment Subsystems: Applicazioni MS-DOS l La NTVDM ha tre thread  Due thread sono usati per gestire l’ambiente della NTVDM  Un thread esegue l’applicazione (single thread application) l La NTVDM non è un subsystem  si appoggia al Win32 subsystem l Non tutte le applicazioni DOS sono supportate

65 Environment Subsystems: Applicazioni Win16 l Applicazioni per Windows 3.x l WOW machine (Win16-on-Win32) l Si appoggia a NTVDM (Win16 NTVDM) l Non è un vero subsystem  Si appoggia a Win32 l I binari sono compatibili su tutti i sistemi che supportano NTVDM

66 Environment Subsystems: Applicazioni Win16 l La Win16 NTVDM ha tre thread  Due thread sono usati per gestire l’ambiente della NTVDM  Un thread esegue tutte le applicazione Win16 l Non sono preemptive multitasking l Non tutte le applicazioni Win16 sono supportate

67 Environment Subsystems: Applicazioni 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: Applicazioni Posix l Portable Operating System Interface for Compting Environment (standard UNIX) l Richiede almeno una partizione NTFS l I sorgenti sono portabili su tutte le piattaforme l Le applicazioni POSIX sono eseguite ciascuna in uno spazio indirizzi separato

69 Environment Subsystems: Applicazioni OS/2 l Solo applicazioni carattere  E’ disponibile un add-on per applicazioni OS/2 1.x grafiche  Nessun supporto per versioni successive l Solo su piattaforme Intel  Alcune applicazioni OS/2 (real mode application) possono essere eseguite sotto DOS (NTVDM) l Spazio di indirizzamento privato per ogni applicazione

70 Environment Subsystems: Applicazioni Win32 l Le applicazioni sono sorgente- compatibili su tutte le architetture l Dato che parte del subsystem è sempre in kernel mode, le applicazioni Win32 sono le più veloci

71 Environment Subsystems: Win32 l Essenziale al funzionamento di Windows NT l Le componenti principali sono  environment subsystem process  kernel mode device driver

72 Environment Subsystems: Win32 l Win32 Environment Subsystem Process  finestre console  creazione/eliminazione di processi e thread  parte della Virtual DOS Machine (VDM) per il supporto parziale di applicazioni DOS a 16 bit  funzioni di utilità di vario tipo GetTempFile, DefineDosDevice, ExitWindowsEx,...

73 Environment Subsystems: Win32 l Kernel Mode Win32 Device Driver  gestore delle finestre (Windows manager) l gestisce gli eventi associati alle finestre (mouse, tastiera, resize, ecc.)  Graphical Device Interface (GDI) l una libreria di funzioni per i dispositivi di output grafici generici (funzioni per line, testo, ecc.)  insieme di device driver per la grafica l (video e stampanti)  parecchie subsystem DLL l traducono le Win32 API nelle appropriate chiamate a NTOSKRNL.EXE e WIN32K.SYS

74 NTDLL.DLL l Speciale libreria si sistema di supporto alle subsystem DLL l Contiene due tipi di funzioni  Funzioni di interfaccia tra le subsystem DLL e i servizi dell’executive  Funzioni di supporto aggiuntive

75 NTDLL.DLL l Funzioni di interfaccia tra le subsystem DLL e i servizi dell’executive  Nell’executive ci sono più di 200 funzioni l 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.DLL l Funzioni di supporto aggiuntive  Funzione per il caricamento degli eseguibili  Gestore dello heap  Gestore dell’Asynchronous Procedure Call (ASP) ...

77 OS/2 Win32 POSIX Environment Subsystems User Application Subsystem DLL Win32 User/GDI User Mode Executive Device DriversKernel Hardware Abstraction Layer (HAL) Kernel Mode System and Server Processes NTDLL.DLL Environment Subsystems Components Subsystem process (Win32: CSRSS.EXE) API DLL (Win32: KERNEL32.DLL, GDI32.DLL, USER32.DLL,...) Kernel-mode extension to executive Win32 only: WIN32K.SYS

78 Windows NT Simplified Architecture (3.52) OS/2Win32 POSIX Environment Subsystems UserMode KernelMode System and Server Processes Executive Device Drivers Kernel Hardware Abstraction Layer (HAL) LPC UserApplication Subsystem DLL 12 Most Win32 Kernel APIs All other Win32 APIs, including User and GDI APIs 2 1 NTDLL.DLL

79 OS/2 Win32 POSIX Environment Subsystems Win32User/GDI UserMode Executive Device Drivers Kernel Hardware Abstraction Layer (HAL) KernelMode System and Server Processes 132 UserApplication Subsystem DLL LPC Most Win32 Kernel APIs Most Win32 User and GDI APIs A few Win32 APIs NTDLL.DLL Windows NT Simplified Architecture (4.0)

80 Ruolo (semplificato) del Win32 Subsystem Process l Creazione e eliminazione dei processi l Creazione e eliminazione dei thread l Nome dei file temporanei l Lettere dei dischi l Controlli di sicurezza per il file system l Gestione grafica delle applicazioni console (a carattere) l Parziale supporto per le applicazioni DOS a 16-bit (NTVDM.EXE) l NLS (National Local Service)

81 call WriteFile(…) call NtWriteFile return to caller do the operation return to caller Int 2E return to caller call NtWriteFile dismiss interrupt Win32 application WriteFile in KERNEL32.DLL NtWriteFile in NTDLL.DLL KiSystemService in NTOSKRNL.EXE NtWriteFile in NTOSKRNL.EXE Chiamare le Win32 Kernel API Win32- specific used by all subsystems software interrupt UKUK

82 Esaminare i simboli nei file immagine l Esaminare cosa è importato/esportato in un.EXE dall’ OS  In 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 immagine l Guardare gli “import” di \WINNT\SYSTEM32\NOTEPAD.EXE l Guardare gli import/export di KERNEL32.DLL  La maggior parte delle funzioni esportate sono chiamate Win32 documentate

84 Esaminare i simboli nei file immagine l Guardare gli import/export di NTDLL.DLL  Nessuno degli export è documentato  Alcune sono simili alle stesse funzioni esportate da NTOSKRNL.EXE, documentate nel DDK

85 Esaminare i simboli nei file immagine l Guardare gli import/export di NTOSKRNL.EXE  Circa 1000 simboli esportati  Circa 300 delle funzioni esportate sono documentate nel DDK  Chiamabili solo in kernel mode

86 Esaminare i simboli nei file immagine l Guardare tutti i simboli globali in NTOSKRNL.EXE  Definiti in \support\symbols\xxx\debug\exe\ntoskrnl.d bg  Il “Quick viewer” non li visualizza  Utilizzare il Kernel Debugger  Circa 4000 simboli  Gli export di NTOSKRNL.EXE sono un sotto insieme di questa lista

87 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

88 Windows NT Object Manager l Componente esecutiva per gestire gli oggetti sistema  Gli oggetti sono strutture dati con dei nomi  Gli 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 Manager l L’object manager non è usato per tutte le strutture dati di is not used Windows NT  Sono 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 Manager WINOBJ.EXE dal MSSDK (\mssdk\bin\winnt\winobj.exe) od da

91 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

92 Device driver l Interfaccia tra il sistema di I/O e l’hardware l Tipicamente scritti in C/C++  grazie all’HAL e al Kernel i sorgenti sono portabili su architetture diverse

93 Win32 appliation Win32 API DLL user mode VDM Virtual Dvc Drvr video port driver Executive and Kernel DOS/Win16 app. kernel mode GDI calls ReadFile, WriteFile, DeviceIoControl, ecc. video miniport KDD parallel port KDD Kernel Device Driver (KDD) Kernel Device Driver (possibly app- specific) User- And Kernel-Mode Drivers in Windows NT 4.0 Win32 Subsystem (WIN32K.SYS) display driver spooler printer driver GDI (graphics engine) NT Executive Services

94 Kernel-Mode Device Drivers l Moduli caricabili separatamente (drivername.SYS)  Linked come dei.EXE  Linked a NTOSKRNL.EXE e HAL.DLL l Definiti nel file di “registry”  La stessa area dei servizi Win32 (t.b.d.) l Si possono visualizzare i driver caricati con PSTAT.EXE o DRIVERS.EXE

95 Kernel-Mode Device Driver l Hanno una struttura gerarchica l Sono classificati in base al tipo  Hardware  File system  Filter  Network redirector  Miniport  WIN32K.SYS

96 Kernel-Mode Device Driver

97 Kernel-Mode Device Driver l Hardware device driver  Si interfacciano direttamente con l’HAL per gestire l’I/O di dispositivi fisici (disco, rete, ecc.) l 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

98 Kernel-Mode Device Driver l Filter driver  disk mirror e encryption  ricevono una richiesta di I/O, operano sui dati, e la passano al livello successivo l 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 Driver l Miniport driver  ad esempio, i driver SCSI  linkati al driver miniport generico l WIN32K.SYS driver  driver legati all’ambiente Win32

100 File System: Virtual Cache l Condivisa da tutti i file systems (locali e remoti, HD e CD) l La cache è applicata a tutti i file  Compresi i metadata del file system l Virtual cache  Usa il meccanismo standard della memoria virtuale di Windows NT

101 Cached File Operations

102 Cached File Operations l Aprire un file:  Trovare una view disponibile  Mappare i primi 256 KB del file nella view l Leggere o scrivere un cached file:  Remappare se necessario la parte di file che interessa nella cache  Copiare i dati tra applicazione e cache  L’I/O effettivo è eseguito dal meccanismo di gestione della memoria virtuale (paging)

103 Processaddressspace Systemaddressspace File Cached File Operations

104 Funzioni e controllo della cache l “Read ahead” automatico e asincrono  Eseguito da un thread di sistema separato per il “Readahead”  Per default 64 KB di readahead  I dati successivi da leggere sono ipotizzati sulla base delle precedenti 3 letture  Dei suggerimenti per il “Readahead” possono essere forniti a CreateFile: l FILE_FLAG_SEQUENTIAL esegue 192 KB di readahead l FILE_FLAG_RANDOM_ACCESS disabilita il read ahead

105 Funzioni e controllo della cache l Write-back, non write-through  Il numero di “dirty page” controlla la scrittura l sistemi piccoli: Physical Pages / 8; l sistemi medi: Physical Pages / 4; l 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 cache l La politica “write back” può essere modificata in CreateFile tramite il flag FILE_FLAG_WRITE_THROUGH  Oppure si può esplicitamente forzare la scrittura su disco com FlushFileBuffers

107 Funzioni e controllo della cache l La cache può essere disabilitata per un singolo file  CreateFile con FILE_FLAG_NO_BUFFERING  Richiede che read/write siano fatte per settori  I buffer devono essere allineati in memoria per settori

108 Memoria virtuale l Windows NT non LRU  Non usa lo “usage bit” che praticamente ogni architettura mette a disposizione per segnare una pagina di memoria utilizzata l Usa una FIFO modificata  FIFO: 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 set  Si comporta male sotto stress

109 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

110 System Threads l Routine interne che richiedono un thread context l Drivers o Executive possono creare system threads  Sono sempre eseguiti in kernel mode  Solitamente associati con il processo “System” l Ma possono essere associati ad altri processi  Sono preemptible (a meno che non alzino un IRQL superiore o uguale a 2)

111 System Threads l Kernel mode API:  PsCreateSystemThread  PsTerminateSystemThread  KeSetBasePriorityThread  KeSetPriorityThread

112 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

113 Process-Based Windows NT Code l “Pezzi” di Windows NT che sono contenuti in eseguibili (.EXE) separati e vengono eseguiti in processi distinti  Avviati dal sistema  Non sono legati al login utente l Hanno un contesto di processo completo

114 Process-Based Windows NT Code l Sono di tre tipi:  Environment Subsystems (già descritti)  Win32 Services  Processi di system startup

115 Gerarchia di creazione dei processi l TLIST.EXE (dal resource kit) l TLIST /t mostra la gerarchia dei processi l Un processo genitore può terminare dopo aver creato dei processi figli l 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 processi

117 Process-Based Windows NT Code: Win32 Services l Applicazioni (.EXE) Win32 che sono eseguite indipendentemente dall’utente che ha fatto login  Sono avviate al boot o al logon  Sopravvivono al logoff  Sono definite mediante l’API CreateService (attraverso il Control Panel)  Tipicamente non interagiscono con il desktop l Ottengono i parametri di avvio dal file di registro l Gli errori sono loggati nel Windows NT Event Log

118 Process-Based Windows NT Code: 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) l Il Server Manager permette il controllo remoto dei servizi l Il servizio non necessita di nessuna codice particolare per essere gestito in modo remoto

119 Process-Based Windows NT Code: Win32 Services l Utilizzare SRVANY.EXE, SC.EXE, SRVINSTW.EXE, INSTSRV.EXE nel resource kit l Esempi di servizi built-in in Windows  Schedule service (avvio manuale), Event Log, Remote Access Server, IIS.

120 Service Controller Vita di un servizio Installazione: l’applicazione di setup comunica al Service Controller Manager (SCM) dell’esistenza del servizio CreateService Service Processes Control Panel 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 Setup Application Registry

121 Process-Based Windows NT Code: System Startup Processes l Processi separati caricati o avviati al boot (non come servizi o environment subsystems) l Il loro nome non è nel registry  “Hardwired” nel code sorgente del kernel l La maggior parte sono eseguibili Win32, uno (SMSS) è un “native image”

122 Process-Based Windows NT Code: System Startup Processes l Idle: process id 0  Parte dell’immagine di sistema  Ospita i thread che sono idle  Non è un vero processo o un thread  Spesso è indicato come “System Process”

123 Process-Based Windows NT Code: System Startup Processes l System: process id 2  Parte dell’immagine di sistema  Ospita i thread definiti nel kernel  Non è un vero processo o thread  Il thread 0 (routine di nome Phase1Initialization) lancia il primo vero processo (SMSS.EXE)

124 Process-Based Windows NT Code: System Startup Processes l SMSS.EXE: Session Manager  Il primo processo creato  Prende i parametri da \Registry\Machine\System\ CurrentControlSet\Control\Session Manager  Lancia dei sottosistemi (CSRSS.EXE) e WINLOGON.EXE

125 Process-Based Windows NT Code: System Startup Processes l WINLOGON.EXE: Logon process  Presenta il primo prompt di login (“enter username and password”)  Lancia SERVICES.EXE, LSASS.EXE, e NDDEAGNT.EXE  Quando qualcuno esegue un login, lancia USERINIT.EXE

126 Process-Based Windows NT Code: System Startup Processes l SERVICES.EXE:Service Controller  Ospita molti servizi forniti con NT  Avvia altri processi (servizi) non parte di NT (elencati in \Registry\Machine\System\ CurrentControlSet\Services ) l LSASS.EXE: Local Security  Processo di autenticazione

127 Process-Based Windows NT Code: System Startup Processes l USERINIT.EXE:  Avviato dopo il login  Avvia il desktop (EXPLORER.EXE) e termina (per questo non lo so vede nell’output di TLIST; Explorer è un orfano) l EXPLORER.EXE:  Explorer e i processi figli sono i creatori di tutte le applicazioni

128 Process-Based Windows NT Code: System Startup Processes System SMSS CSRSS WINLOGON Idle SERVICES LSASSUSERINITNDDEAGNT EXPLORER

129 Agenda l Key System Files l Process Execution Environment l Executive, Kernel, and HAL l Environment Subsystems l Executive Object Manager l I/O System l System Threads l Process-based Windows NT code l Summary

130 Quattro contesti per l’esecuzione del codice l Process e thread context:  Applicazioni utente  Win32 Services  Environment subsystem processes  System startup processes l Thread context ma nessun process:  Thread nel “System” process

131 Quattro contesti per l’esecuzione del codice l Routines chiamate da altri thread/processi:  Subsystem DLL  Executive system service (NtReadFile, ecc.)  GDI routine in WIN32K.SYS (e nei graphic drivers) l Nessun contesto (“Arbitrary thread context”)  Interrupt dispatching  Device drivers

132 Dove è il codice? l KERNEL32.DLL, GDI32.DLL, USER32.DLL  Esportano i Win32 entry points l NTDLL.DLL  Fornisce allo user-mode accesso alle routine di sistema (kernel-mode)  Contiene lo heap manager, l’image loader, il thread startup routine l WIN32K.SYS  Il modulo che contiene il codice Win32 (prima era in CSRSS.EXE)

133 Dove è il codice? l NTOSKRNL.EXE (or NTKRNLMP.EXE)  Executive e kernel  Comprende la maggior parte delle routine che sono eseguite come thread nel “system” l HAL.DLL  Hardware Abstraction Library l drivername.SYS  Loadable kernel driver

134 Fonti di informazione per Windows NT Internal l Libri  Inside Windows NT (Solomon, MS Press)  Advanced Windows (Richter, MS Press)  Windows NT Workstation Resource Guide (MS Press) l MSDN Library  documentazione Platform SDK API  documentazione Windows NT Device Driver Kit (DDK)  Win32 Knowledge Base

135 Fonti di informazione per Windows NT Internal l  Articoli e strumenti su Windows NT internal l  Per costruttori di hardware e sviluppatori di driver l  Installable File System Developers Kit l  Windows NT device driver FAQ

136 Fonti di informazione per Windows NT Internal l  NT audio/video tape l comp.os.ms-windows. programmer.nt.kernel-mode-drivers  Newsgroup

137 Windows 2000 preview l Formalmente Windows NT 5  Forse non ci saranno successive versioni di Windows 9x

138 Aspetti da migliorare in NT 4 l Prestazioni  Il modello di sicurezza basato sui domini non scala bene  Ampia disponibilità di strumenti di misura, ma poca possibilità di intervenire l Gli strumenti di gestione delle prestazioni sono rivolti agli sviluppatori, non ai gestori l Memoria  Indirizzamento a 64 bit l Facilità di gestione di grandi sistemi

139 Cambiamenti nelle prestazioni l Nessun grande cambiamento  Le costanti di memoria andrebbero aggiornate per una miglior scalabilità l Quando ci sono più di 64 MB di Ram, gli NT Server sono tutti considerati “Large”  Aggiunti due contatori ai tool di monitoring l Disk % Idle Time counter l System % Total Processor Time counter

140 Cambiamenti in Windows 2000 l NTFS l Common Internet File System (CIFS) l Microsoft Management Console l Multi-user systems  WinFrame, Terminal Server l Active Directory l COM+

141 Cambiamenti in Windows 2000 l Fault tolerant Clustering l Plug and Play l Job Objects l Very large memory (Alpha)

142 NTFS l Compressione l Nuovi servizi di crittografia l NT 4 non è compatibile con il nuovo NTFS  a meno di non installare un nuovo driver NTFS.SYS per una compatibilità limitata l Master File Directory entries passano da 4K a 1K

143 CIFS - Common Internet File System l File system distribuito simile a NFS Unix l Possibilità di montare file system remoti

144 CIFS

145 Microsoft Management Console

146 System Monitor l Alert service l contatori per processo

147 Clustering

148 Clustering l Un cluster è un insieme di computer che cooperano per fornire uno o più servizi l Vantaggi  Scalabilità  Fault tolerant  Econimoci

149 Clustering l Un cluster individua componenti hw/sw mal funzionanti  riavvia la componente  trasferisce le funzionalità ad altre componenti l Migliora l’affidabilità del sistema e riduce il mean time to repear

150 Clustering l Astrazioni  risorse  dipendenze  gruppi  virtual server

151 Clustering: risorse l Sono l’unità base di gestione del cluster l Fisiche  dischi, controller SCSI, schede di rete, … l Logiche  indirizzo IP, volume di un disco, … l Forniscono un’interfaccia identica per essere gestite l Le risorse possono migrare

152 Clustering: dipendenze l Spesso il corretto funzionamento di una risorsa dipende dalla disponibilità di altre risorse  Un database richiede un disco l Un albero di dipendenza descrive l’ordine in cui le risorse devono essere rese disponibili o fermate l Le dipendenze non possono attraversare i confini di un gruppo

153 Clustering: gruppi l Una collezione di risorse che devono essere gestite coma una singola unità l Un gruppo contiene tutti gli elementi che sono necessari per eseguire un’applicazione l Se una risorsa del gruppo non funziona, l’intero gruppo non funziona

154 Clustering: virtual server l 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 l I virtual server possono itersecarsi  le risorse di virtual server diversi possono essere condivise

155 Clustering: Node manager l Gestisce l’appartenenza delle risorse al cluster l Invia periodicamente dei messaggi (heartbeat) agli altri nodi nel cluster  se 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 manager l Gestisce/avvia/ferma le risorse l Gestisce le dipendenze l Riceve informazioni dal node manager e dal resource monito

157 Clustering

158 Job objects l Un estensione del concetto di processo l E’ un oggetto che controlla gli attributi di un insieme di processi associati al Job l Serve ad ovviare alla mancanza di un albero dei processi in NT 4 l E’ possibile misurare informazioni di accounting di un Job

159 Jobs objects l Le Win32 API:  creano un Job  associano uno o più processi ad un Job l Esempio  IIS crea dei CGI script, che possono essere messi nel contesto di un Job

160 Job objects l Un Job object contiene limiti che sono applicati a tutti i processi del job  limiti di CPU time in user mode per il job  limiti di CPU time in user mod per un singolo processo  Massimo numero di in un job  Priorità del job

161 Job objects l E’ possibile porre dei limiti a come i processi di un job usano le interfaccie utente  impedire 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 Play l Combinazione di hardware/software che permette al sistema di adattarsi a cambiamenti nella configurazione senza grossi interventi da parte dell’utente l Domanda: un sistema operativo può scalare da desktop a server?

163 Plug and Play l Advanced Configuration and Power Interface (ACPI) ver. 1.0  definizione di standard per schede madri e BIOS per affidare al sistema operativo alcuni meccanismi di gestione di una periferica l interrupt, canali DMA, indirizzi di I/O, power managment, … l ACPI è Indipendente dal sistema operativo e dalla CPU

164 Plug and Play l Implementazione in Windows 2000  estensione della infrastruttura di I/O  riscrittura dei device driver l I meccanismi di plug and play operano  all’installazione  al boot  su eventi l schede PCMCIA,...

165 Plug and Play l Nuovi device driver  i dirver dei bus sono spostati fuori dall’HAL  nuovi API per supportare l’installazione e la configurazione di nuovi device  estensioni e cambiamenti al file dei registry  estensioni al Control Panel l I vecchi device driver funzionano sempre, ma le capacità di plug and play sono ridotte

166 Plug and Play

167 Very large memory (VLM) l Windows NT 4 ha la capacità di indirizzare fino a 4 GB di memoria virtuale l Estensione in Windows 2000 a 28 GB sui sistemi Compaq/Digital Alpha l Non è previsto un porting sulle architetture Intel  E’ prevista una vera versione a 64 bit per Intel IA64 e Digital Alpha

168 Very large memory (VLM) l NT 4 supporta  64 bit di indirizzamento sui file system  2 GB di memoria virtuale privata l 3 GB nella versione Enterprise l VLM permette l’uso di puntatori a 64 bit per superare il limite dei 2 GB  le applicazioni vanno modificate con il nuovo puntatore per trarne beneficio  nuove API per operare sui puntatori a 64 bit

169 Very large memory (VLM) l Limitazioni nell’uso dei puntatori a 64 bit  Non sono gestite “page faults” di puntatori a 64 bit l Nuova Win64 API  pienamente a 64 bit  compatibile con applicazioni a 32 bit

170 Windows Management Instrumentation l WBEM (Web-based Enterprise Management) l 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 trace l Descritto per la prima volta al CMG ‘97 l “Secure kernel trace facility” l Progettato per alti volumi di trace  NT 4 Scheduler trace è stato abbandonato per via dell’overhead l Progettato per essere esteso

172 Trace Header Process Id Parent Process Id Security IdImage Name Process Start/End 4 bytes Variable length Trace Header Disk Signature Transfer Size Disk I/O 4 bytes IRP Flags 4 bytes Trace Header Page Faults Response 4 bytes Virtual Address 4 bytes Byte Offset 8 bytes Trace Header Source Ip Address Dest Ip Address TCP/IP 4 bytes Source Port 2 bytes Dest Port 2 bytes Size 4 bytes Process Id 4 bytes Operating System Traces

173 Windows kernel event trace header

174 Oltre Windows 2000 l Full porting su architetture a 64-bit  Compaq (Digital) Alpha  Intel/HP P7 Merced

175 Capacity planning: memoria l Memory: Pages/sec  numero di pagine (4KB) lette/scritte da disco  < 2 l la RAM è sufficiente  > 3 l poca RAM

176 Capacity planning: processore l Processor/System: % Processor time  percentuale di utilizzo del processore  < 60% l il carico non è eccessivo  > 60% l il processore è sovra-utilizzato l prima di fare un up-grade, controllare l’uso della memoria

177 Capacity planning: dischi l PhysicalDisk: Avg. Disk Queue Lenght  numero medio di richieste di lettura/scrittura in attesa di essere servite  < 2 l tutto OK  > 3 l si richiede un disco e/o un controller più veloci

178 Capacity planning: dischi l PhysicalDisk: % Disk Time  utilizzo del disco  < 60% l tutto OK  > 70% l si richiede un disco e/o un controller più veloci

179 Capacity planning: rete l Network segment: % Network utilization  utilizzo della rete rispetto alla capacità massima del segmento  < 60% l tutto OK  > 70% l troppi computer/troppo traffico sul segmento di rete l partizionare ulteriormente il segmento o spostare dei server

180 Contatto l Paolo Cremonesi Dipartimento di Elettronica e Informazione Politecnico di Milano