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

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Gestione Input Output A. Ferrari.
Il Consolidamento di Servizi Virtual Server 2005 PierGiorgio Malusardi Evangelist - IT Professional Microsoft.
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Realizzazione del file system
Operating System Concepts
Realizzazione del file system
Scheduling della CPU Concetti di base Criteri di scheduling
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © Fabio Salice Windows NT Introduzione Docente:
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Windows 2000 supporta i seguenti file system:
Struttura dei sistemi operativi (panoramica)
File System NTFS 5.0 Disco: unità fisica di memorizzazione
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1 Obiettivi di Windows 2000 Portabilita: scritto in C le chiamate al processore sono isolate codice dipendente dalla piattaforma isolato Estensibilita:
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
STRUTTURA GENERALE DI UN ELABORATORE
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Processi e Thread Job: Insieme di processi che condividono quote e limiti. Processo: Contenitore di risorse (una lista di thread, una lista di handle e.
Il Sistema Operativo (1)
Threads.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Gestione della Memoria
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
Esempio di un volume RAID-5
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Transcript della presentazione:

CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Windows NT Docente: Ing. Domenico Barretta Politecnico di Milano

Windows NT© William Fornaciari- 2 - Sommario Introduzione Ambiente di esecuzione dei processi Architettura di Windows NT Modo prilivegiato NT Executive NT Kernel HAL (Hardware Abstraction Layer) Modo utente Environment Subsystems Processi di startup del sistema Cambiamenti in Windows 2000 Monitoraggio del Sistema

Windows NT© William Fornaciari- 3 - Introduzione Sistema operativo Windows NT A Prelazione (preemptive) Rientrante Tutte le parti condivise di libreria non sono auto- modificanti. –Non è consentita la modifica diretta dei dati. Memoria virtuale Multi piattaforma Parzialmente compatibile con DOS e Win3.1 Estensioni di Windows 2000 Plug and play Job object Indirizzamento a 64 bit

Windows NT© William Fornaciari- 4 - Introduzione: Architettura WinNT

Windows NT© William Fornaciari- 5 - Introduzione: Processi e Thread Processo Unistanza di un programma in esecuzione un processo si crea per eseguire un programma quindi, avviare unapplicazione crea un processo. Largomento principale allAPI (Application Program Interface) Win32 CreateProcess è il nome del file da eseguire. Esempio: #include... strcpy(lpcommandLine, c:\\WINNT\\SYSTEM32\\NOTEPAD.EXE temp.txt); CreateProcess (Null, lpCommandLine,...);...

Windows NT© William Fornaciari- 6 - Introduzione: Processi e Thread Thread (processo leggero – lightweight process) Un contesto di esecuzione allinterno di un processo. Un processo definisce uno spazio di indirizzamento allinterno del quale uno o più thread sono eseguiti. Tutti i thread in un processo, Sono eseguiti allinterno di un singolo spazio di indirizzamento; Condividono le stesse risorse. Largomento principale allAPI Win32 CreateThread è il nome di una funzione. Esempio: CreateThread(NULL, 0, myFunc, &Arg,...);

Windows NT© William Fornaciari- 7 - Introduzione: Processi e Thread Allavvio ogni processo è composto da un solo thread: quello corrispondente allesecuzione della funzione main. ll thread può creare altri thread nello stesso processo Il thread può creare altri processi

Windows NT© William Fornaciari- 8 - Introduzione: Modo utente e modo kernel Il passaggio da un modo allaltro, oltre ad influenzare lo stato del processore consente di controllare: laccesso alla memoria Ogni 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 privilegiate Ad esempio, istruzioni di I/O.

Windows NT© William Fornaciari- 9 - ComponentiModo di Accesso ApplicazioniUtente Subsystem processes Utente NT Executive Kernel NT Kernel Kernel Driver Kernel HAL Kernel ComponentiModo di Accesso ApplicazioniUtente Subsystem processes Utente NT Executive Kernel NT Kernel Kernel Driver Kernel HAL Kernel Introduzione: Modo utente e modo kernel

Windows NT© William Fornaciari Architettura: Modo kernel Il codice è eseguito in modo kernel per: 1. Richiesta da parte di un thread attivo in modo utente 2. Interrupt da dispositivi esterni 3. 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 dispatch il codice in modo kernel viene eseguito nel contesto del thread

Windows NT© William Fornaciari Architettura: Modo kernel 2. Interrupt da dispositivi esterni Gli Interrupt (come tutte le eccezioni) sono gestiti in modalità kernel L 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 lesecuzione di una Deferred Procedure Call ( DPC ), anche essa in kernel mode 3. Thread attivi in modo kernel Alcuni thread di sistema sono sempre in modo kernel mode, la maggior parte nel processo System Scheduling e preemption sono analoghi come per ogni altro thread.

Windows NT© William Fornaciari Sincronizzazione nel kernel La garanzia della mutua esclusione per laccesso a strutture dati del kernel può avvenire in modi diversi Su singolo processore è sufficiente disabilitare gli interrupt le cui ISR potrebbero accedere alla struttura dati Su multiprocessore non è sufficiente questo approccio Si usa uno spinlock: una primitiva per prendere un lock su una struttura dati condivisa Implementazione dipendente dallhardware Spesso utilizza listruzione di test-and-set

Windows NT© William Fornaciari Sincronizzazione Lutilizzo 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 sullattesa 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, …)

Windows NT© William Fornaciari Architettura di NT e Win2000

Windows NT© William Fornaciari Architettura 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 luso di buffer in memoria extra.

Windows NT© William Fornaciari Architettura: Modo kernel

Windows NT© William Fornaciari Architettura: NT Executive Costruito sopra il kernel, implementa tutte le politiche ed i servizi offerti da NT. Gestione dei processi Gestione della memoria Gestione dei file Gestione dei dispositivi È costituito da moduli: Gestore degli oggetti, gestore di processi e thread, gestore della memoria virtuale, gestore della sicurezza, gestore dellI/O, gestore della cache, funzioni di runtime, funzioni di supporto esecutivo, Strumenti per LPC (local procedure call).

Windows NT© William Fornaciari Architettura: NT Executive Gestore degli oggetti Crea, 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

Windows NT© William Fornaciari Architettura: NT Executive Gestore di processi e thread Gestisce tutti gli aspetti che non sono gestiti da altri elementi specializzati (es: le caratteristiche di un file) Crea e termina thread e processi Svolge lattività di supervisore nella allocazione delle risorse Fornisce le primitive di sincronizzazione Controlla i cambi di stato dei thread e processi Gestore della sicurezza Gestisce le politiche di sicurezza sul computer locale Controlla le risorse del sistema operativo

Windows NT© William Fornaciari Architettura: 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 cache La politica di sostituzione delle pagine è FIFO modificata La pagina da eliminare viene messa in unaltra FIFO (standby list). Se la pagina e usata ancora, viene spostata dalla standby list di nuovo nel working set. FIFO è la politica peggiore.

Windows NT© William Fornaciari Architettura: NT Executive Gestore dellI/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 lI/O dei dispositivi fisici (disco, rete, ecc.) interfacciandosi direttamente con lHAL –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.

Windows NT© William Fornaciari Architettura: NT Executive

Windows NT© William Fornaciari Architettura: NT Executive Gestore della cache Migliora 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.

Windows NT© William Fornaciari Architettura: NT Executive

Windows NT© William Fornaciari Architettura: 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 cache Copiare i dati tra applicazione e cache (verso cache in caso di scrittura su file) LI/O effettivo viene eseguito dal meccanismo di gestione della memoria virtuale

Windows NT© William Fornaciari Architettura: 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

Windows NT© William Fornaciari Architettura: NT Executive Funzioni runtime gestione 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 allRPC (Remore Procedure Call) nallambito dei sistemi distribuiti

Windows NT© William Fornaciari Architettura: NT Kernel Rapresenta il microkernel modificato di NT È costituito dalle più importanti e più utilizzate componenti del sistema operativo NT Kernel gestisce: Lo scheduling dei thread La comunicazione tra processi La gestione di interruzioni ed eccezioni La sincronizzazione multiprocessore Altre importanti funzioni del kernel sono: Isolare lexecutive dallarchitettura Mascherare le differenze tra diverse architetture X86, Alpha, etc.

Windows NT© William Fornaciari Architettura: NT Kernel Il kernel differisce dallexecutive Non è mai paginato dalla memoria La 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 funzioni Non implementare politiche di gestione tranne per il thread scheduling

Windows NT© William Fornaciari Scheduling In Windows NT/2000 la granularità dello scheduling è a livello di thread, non a livello di processo Un processo con tanti thread, a parità di priorità, avrà a disposizione una frazione maggiore del tempo di CPU rispetto ad un processo con pochi thread I thread vengono schedulati in base alla loro priorità 32 livelli di priorità 0: riservato allo zero page thread 1-15: priorità variabile 16-31: priorità real time –Real time è usato in senso improprio: non vengono offerte garanzie tipiche dei sistemi operativi real-time

Windows NT© William Fornaciari Scheduling 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ù alta Non viene fatta alcuna distinzione fra thread in modalità utente e thread in modalità kernel Il quanto di tempo assegnato ad un thread può variare dinamicamente Il thread in foreground ha un quanto di tempo più lungo degli altri

Windows NT© William Fornaciari Scheduling : Priorità Il livello di priorità di un thread viene determinato in base a Priorità del processo di appartenenza Priorità 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 lesecuzione di thread di sistema Necessari privilegi per usare questi livelli di priorità

Windows NT© William Fornaciari Priority boost Esistono cinque casi in cui la priorità (se minore di 16) può aumentare provvisoriamente Al completamento di operazioni di input/output Dopo una wait su un evento o un semaforo Quando un thread in foreground completa una wait Quando un thread di gestione dellinterfaccia grafica si risveglia per unattività relativa alla gestione delle finestre Quando un thread non è stato schedulato da molto tempo Dopo un certo intervallo di tempo la priorità torna al valore iniziale

Windows NT© William Fornaciari Preemption 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)

Windows NT© William Fornaciari Scheduling su multiprocessore Su sistemi a multiprocessore simmetrico possono essere in esecuzione più thread contemporaneamente Il meccanismo di scheduling viene alterato tenendo conto dellaffinità Laffinità è linsieme di processori su cui un thread può essere schedulato per lesecuzione Sottoinsieme dei processori disponibili Default: tutti i processori Viene tenuta traccia del processore preferenziale (inizializzato con una variabile casuale) e dellultimo processore su cui è stato eseguito

Windows NT© William Fornaciari Scheduling 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 dellaffinità) Lultima volta che è stato eseguito era su quel processore Ha quel processore come processore ideale È pronto per lesecuzione da almeno due quanti di tempo Ha una priorità maggiore di 23 Se non ne trova uno, schedula come su monoprocessore (ma tenendo conto dellaffinità)

Windows NT© William Fornaciari Architettura: HAL 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 dellinterrupt, dei timer di sistema e del modulo di memoria. Differennze tra NT Kernel e HAL NT Kernel Maschera le funzioni specifiche di unarchitettura HAL Maschera le funzioni che possono essere diverse su macchine diverse allinterno della stessa architettura

Windows NT© William Fornaciari Architettura: HAL Windows NT comprende HAL per alcune architetture: PC-compatibili, DEC Alpha, Power PC I produttori di hardware possono fornire altri HAL Routine desempio: HalGetBusData HalAssignSlotResources HalSetBusData HalSetBusDataByOffset HalTranslateBusAddress HalGetInterruptVector HalGetAdapter READ_REGISTER_ULONG WRITE_PORT_UCHAR HalGetBusData HalAssignSlotResources HalSetBusData HalSetBusDataByOffset HalTranslateBusAddress HalGetInterruptVector HalGetAdapter READ_REGISTER_ULONG WRITE_PORT_UCHAR

Windows NT© William Fornaciari Programmi di Windows NT Sono elementi di Windows NT che sono contenuti in eseguibili (.EXE) separati e vengono eseguiti in processi distinti Sono avviati dal sistema Non sono legati allutente Sono di tre tipi: Environment Subsystems Win32 Services Processi di startup del sistema Sono processi attivati in modo utente

Windows NT© William Fornaciari Processi in modo utente I processi attivi in modo utente possono essere classificati nel modo seguente: Processi di servizio Sono 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 sistema Processi di sistema che non sono eseguiti come servizi –Logon process, session manager,... Ambiente dei sotto sistemi Environment subsystems Applicazioni utente

Windows NT© William Fornaciari Processi in modo utente

Windows NT© William Fornaciari Architettura : Environment 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 linterfaccia messa a disposizione dallenvironment subsystem MS-DOS. Il sottosistema fornisce alla applicazione la stessa API (Application Program Interface) che fornisce MS-DOS. Sistemi Supportati Win32, Windows 3.1, MS-DOS Posix 1.x OS/2

Windows NT© William Fornaciari Architettura : Environment 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

Windows NT© William Fornaciari Architettura : Environment Subsystems Ciascun sottosistema fornisce laccesso 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 nellintestazione del file consente di indirizzarlo allopportuno insieme di servizi.

Windows NT© William Fornaciari Architettura : Environment Subsystems Le applicazioni utente non accedono direttamente ai servizi del sistema operativo, ma passano attraverso una o più libreria dinamica di sotto sistema Le DLL di sotto sistema traducono una funzione nel codice nellappropriata chiamata. la DLL Win32 implementa le Win32 API la DLL Posix implementa le Posix API

Windows NT© William Fornaciari Architettura : Environment Subsystems - Win32 Creazione e eliminazione dei processi Creazione e eliminazione dei thread Generazione del nome dei file temporanei Identificatore delle unità dischi Controlli di sicurezza per il file system. Gestione grafica delle applicazioni console (a carattere) Parziale supporto per le applicazioni DOS a 16-bit.

Windows NT© William Fornaciari Architettura : Win32 Services Applicazioni (.EXE) Win32 che sono eseguite indipendentemente dallutente che ha fatto login Sono avviate al boot o al logon Sopravvivono al logoff Sono definite mediante lAPI CreateService (attraverso il Control Panel) Tipicamente non interagiscono con il desktop Ottengono i parametri di avvio dal file di registro Gli errori sono loggati nel Windows NT Event Log

Windows NT© William Fornaciari Architettura : Win32 Services Utilizzano una forma di IPC per comunicare con i client Tipicamente i servizi fanno uso dei meccanismi di sicurezza di Windows NT Possono essere gestiti in modo remoto (start, stop, configurazione) Il Server Manager permette il controllo remoto dei servizi Il servizio non necessita di nessuna codice particolare per essere gestito in modo remoto Esempi di servizi built-in in Windows Schedule service (avvio manuale), Event Log, Remote Access Server, IIS.

Windows NT© William Fornaciari Architettura : Processi di startup del sistema System SMSS CSRSS WINLOGON Idle SERVICES LSASS USERINIT NDDEAGNT EXPLORER

Windows NT© William Fornaciari Architettura : Processi di startup del sistema Sono processi separati caricati o avviati al boot non come servizi o environment subsystems Il loro nome non è nel registry Sono inglobati nel codice sorgente del kernel Idle: processo ID 0 Ospita i thread che sono idle Non è un vero processo o un thread Spesso è indicato come System Process System : 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 )

Windows NT© William Fornaciari Architettura : Processi di startup del sistema 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 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

Windows NT© William Fornaciari Architettura : Processi di startup del sistema 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 ) LSASS.EXE : Local Security Processo di autenticazione USERINIT.EXE : Avviato dopo il login Avvia il desktop ( EXPLORER.EXE ) e termina EXPLORER.EXE : Explorer e i processi figli sono i creatori di tutte le applicazioni

Windows NT© William Fornaciari Cambiamenti in Windows 2000 NTFS Consente la compressione e nuovi servizi di crittografia NT 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 systems WinFrame, Terminal Server Active Directory Plug and Play Very large memory (Alpha) Windows NT 4 ha la capacità di indirizzare fino a 4 GB di memoria virtuale Estensione in Windows 2000 a 28 GB sui sistemi Compaq/Digital Alpha

Windows NT© William Fornaciari Monitoraggio del Sistema Utilizzare perfmon.exe per monitorare il sistema.

Windows NT© William Fornaciari Monitoraggio della Memoria Memory: Pages/sec Numero 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

Windows NT© William Fornaciari Monitoraggio del Processore Processor:%Processor time Identifica la percentuale di tempo in cui il processore è utilizzato per eseguire dei thread non-idle Questo indicatore è utilizzato per analizzare lattività 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 luso della memoria

Windows NT© William Fornaciari Monitoraggio dei Dischi PhysicalDisk: Avg. Disk Queue Lenght numero 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.

Windows NT© William Fornaciari Monitoraggio dei Dischi PhysicalDisk: % Disk Time Identifica 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.

Windows NT© William Fornaciari Conteggio del tempo in modo kernel 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)

Windows NT© William Fornaciari Filesystem Windows NT supporta i seguenti filesystem CDFS (CD-ROM File System) Nomi non più lunghi di 32 caratteri Massima profondità degli alberi di directory 8 Considerato un formato legacy UDF (Universal Disk Format) Sostituisce CDFS Nomi fino a 256 caratteri Massima lunghezza di un percorso 1023 caratteri Nomi di file in cui maiuscole e minuscole sono diverse FAT12, FAT16 e FAT32

Windows NT© William Fornaciari Filesystem: FAT FAT=File Allocation Table Il numero dopo la sigla indica il numero di bit per indirizzare i cluster Il filesystem FAT12 è utilizzato per i floppy I filesystem FAT16 e FAT32 sono supportati principalmente per compatibilità con altri sistemi operativi in sistemi multiboot Su dischi grandi un basso numero di bit per lindirizzamento dei cluster implica lutilizzo di grossi cluster Grosso spreco di spazio

Windows NT© William Fornaciari NTFS Supportato a partire da Windows 2000 E 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 accidentali Ha caratteristiche di sicurezza

Windows NT© William Fornaciari NTFS Robustezza Si basa sul concetto di transazione atomica Unoperazione 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 Sicurezza Ad ogni file è associato un descrittore per la sicurezza E possibile assegnare i diritti sui file a livello di singolo utente I diritti vengono assegnati dal proprietario del file (di default il creatore)

Windows NT© William Fornaciari NTFS 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ù veloce Sostituzione dinamica dei cluster danneggiati Hard links Esiste una chiamata di sistema ma non un comando per crearli Quote per gli utenti Crittografia dei dati

Windows NT© William Fornaciari Gestore della memoria Lo spazio di indirizzamento virtuale è di 4 GB (indirizzi a 32-bit) Vengono gestiti file mappati in memoria Permette di condividere pagine fra processi Fornisce servizi al gestore della cache del filesystem Alcune delle migliorie di Windows 2000: Possibilità di gestire fino a 64 GB di memoria fisica Miglioramento delle prestazioni e della scalabilità

Windows NT© William Fornaciari Spazio di indirizzamento virtuale Accessibile in user mode Accessibile in kernel mode } } Uno per processo Uno per tutto il sistema FFFFFFF FFFFFFFF Lo spazio di indirizzamento di un processo contiene: Lapplicazione in esecuzione (.EXE e le.DLL) Uno stack utente per ogni thread Tutte le variabili statiche dellapplicazione

Windows NT© William Fornaciari Spazio di indirizzamento virtuale Accessibile in user mode Accessibile in kernel mode } } Uno per processo Uno per tutto il sistema Lo spazio di sistema contiene: Executive, kernel e HAL Celle di memoria allocate staticamente per il sistema Tabella delle pagine Gli heap dellexecutive Device drivers in Kernel-mode Cache del file system Uno stack in kernel- mode per ogni thread FFFFFFF FFFFFFFF

Windows NT© William Fornaciari bit Win2K32-bit Win2K Memoria virtuale16 TB4 GB Cache di sistema1 TB1 GB Dimensione del512 TB16 TB Paging file Paged pool128 GB470 MB Non-paged pool128 GB256 MB Windows 2000 a 64 bit

Windows NT© William Fornaciari Memoria 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 Alpha Per i sistemi x86 Xeon con più di 4 GB Intel fornisce un driver che permette lutilizzo 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 GB Advanced Server:8 GB Datacenter Server: 64 GB

Windows NT© William Fornaciari Memoria 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 memoria I 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