PARTE II Architettura di un sistema informatico Software di base Informatica Generale 1 Software di base (o di sistema) Software (sw) = programmi Software di base = programmi che rendono utilizzabile il computer e ne arricchiscono le funzionalità Il sw di base include – Sistema operativo (SO) – Compilatori, linker, loader – Interpreti Informatica Generale 2 Sistema Operativo: funzionalità Gestire le risorse della macchina (CPU, memoria, dispositivi di I/O, file) Dialogare con l’utente (o gli utenti) Rendere disponibili agli utenti i traduttori e consentire l’uso dei programmi applicativi Controllare l’uso del sistema (da parte degli utenti) a fini amministrativi Informatica Generale 3 Gestione delle risorse SO mono e multiutente – Protezione delle informazioni Multiprogrammazione o multitasking – Più attività possono (o debbono) essere svolte “contemporaneamente” – Programmi e processi – Competizione per le risorse – Parallelismo e concorrenza Informatica Generale 4 Dialogo con l’utente Interazione basata su comandi testuali Informatica Generale 5 Dialogo con l’utente (2) Informatica Generale 6 Dialogo con l’utente (3) Interazione mediante interfaccia grafica Informatica Generale 7 Dialogo con l’utente (4) Informatica Generale 8 Sistema operativo: architettura Modello cosiddetto “a buccia di cipolla” (o semplicemente a strati) Ogni strato realizza una “macchina virtuale” – Usa le funzionalità della macchina sottostante – Fornisce servizi alla macchina che segue nella gerarchia – Gestisce delle risorse mediante politiche invisibili ai livelli superiori Informatica Generale 9 Il modello a strati Hardware Gestione CPU (nucleo) Gestione Memoria Gestione I/O Gestione file (file system) Interprete dei comandi Informatica Generale 10 Nucleo e gestione dei processi Richiesta da soddisfare Programma in esecuzione Processo – Uso di un foglio elettronico – Stampa di un documento – Ricezione di dati da modem –… Stati di un processo – Running – Ready – Waiting Informatica Generale 11 Scheduling (schedulazione) dei processi Coda dei processi Politica di assegnazione della CPU Sincronizzazione ed interruzioni Running Fine quanto Ready CPU allocata Richiesta Risorsa Waiting Informatica Generale Risorsa allocata 12 Tipi di multiprogrammazione Preemptive Cooperativa Coda singola (First In First Out) Code con priorità associata Priorità in un tipico SO per PC – Processo in foreground priorità massima – Processi in background Informatica Generale 13 Gestione dei processi: esempio Un semplice programma per eseguire somme ripetute ciclo: leggi op1 se op1=0 vai a fine leggi op2 ris:=op1+op2 scrivi ris vai a ciclo fine: scrivi ‘’bye bye’’ Inizio (leggi primo addendo) (se nullo, termina) (leggi secondo addendo) (calcola la somma) (scrivi il risultato) (ripeti) (saluta) Ready Running Waiting Informatica Generale 14 Process Control Block (PCB) Struttura dati del S.O. necessaria per la gestione dei processi PC Base address R1 . . . PCB (è il “contesto” del processo) Rn - PC serve per sapere da dove ricominciare l’esecuzione - R1Rn contenuto dei registri generali ris:=op1+op2 load R1,op1 load R2,op2 add R1,R2 store R1,ris Informatica Generale 15 Gestione della memoria Processi in esecuzione concorrente – Sistema operativo (WinNT: > 30MB) – Word processor (Winword: 48 MB) – Browser di rete (Netscape: 612 MB) – Posta elettronica (Eudora: 1.54 MB) – …. Problemi specifici (tutti correlati) – “trovare spazio” per i programmi – “rilocare” il codice – evitare/ridurre la frammentazione Informatica Generale 16 Frammentazione: esempio 1) 2) S.O. S.O. Nuovo processo A B A B C C Il processo B termina 3) S.O. La memoria libera complessiva sarebbe sufficiente per D A C Informatica Generale Nuovo processo: non trova spazio D 17 Frammentazione: una soluzione Si “compatta” la memoria (copiando C “più in alto”) S.O. S.O. A A C C Nuovo problema: “aggiustare”, nel programma copiato, i riferimenti (eventuali) ad istruzioni e dati in memoria “rilocare” il codice Informatica Generale 18 Rilocazione del codice (un vecchio esempio) ... if x[1]<x[2] then z := x[1] • Programma Pascal else z := x[2]; ... • Programma in codice macchina (caricamento a ind. 20000) Indirizzo 20000 (Inizio dati) Indirizzo 21000 (Inizio programma) Indirizzo 21024 Indirizzo 21032 00000000 00000000 0000000000000011 00000000 00000000 0000000000000010 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 0100111000100000 00000101 00000010 0100111000100100 00100111 00000001 0000000000000010 10100011 00000000 0101001000100000 00000110 00000010 0100111001000100 10100010 00000000 0101001000101000 00000101 00000001 0100111000100000 00000110 00000001 0100111001000100 …………………………………….……. Informatica Generale 19 Rilocazione del codice (2) Nella traduzione (compilazione) si ipotizza sempre il “caricamento” all’indirizzo 0 Durante il caricamento (una volta noto l’indirizzo iniziale, o “base”, ad esempio 20000) si aggiustano i riferimenti alla memoria In alternativa, si usa un registro base per Rilocazione “correggere” ogni statica accesso alla memoria Rilocazione dinamica Informatica Generale 20 Rilocazione statica Compilazione rilocazione e caricamento (ind. 20000) esecuzione rilocazione e caricamento (ind. 32768) esecuzione ……….. Base address=20000 Base address=32768 00000000 00000000 0000000000000011 00000000 00000000 0000000000000010 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 0100111000100000 00000101 00000010 0100111000100100 00100111 00000001 0000000000000010 10100011 00000000 0101001000100000 00000110 00000010 0100111001000100 10100010 00000000 0101001000101000 00000101 00000001 0100111000100000 00000110 00000001 0100111001000100 …………………………………….……. 00000000 00000000 0000000000000011 00000000 00000000 0000000000000010 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 1000000000000000 00000101 00000010 1000000000000100 00100111 00000001 0000000000000010 10100011 00000000 1000010000000000 00000110 00000010 1000000000100100 10100010 00000000 1000010000001000 00000101 00000001 1000000000000000 00000110 00000001 1000000000100100 …………………………………….……. Informatica Generale 21 Rilocazione dinamica Compilazione caricamento (indirizzi relativi + base 20000) esecuzione caricamento (indirizzi relativi + base 32768) esecuzione ……….. Registro base 00000000 00000000 0000000000000011 00000000 00000000 0000000000000010 00000000 00000000 0000000000000101 …………………………………….……. 00000101 00000001 0000000000000000 00000101 00000010 0000000000000100 00100111 00000001 0000000000000010 10100011 00000000 0000010000000000 00000110 00000010 0000000000100100 10100010 00000000 0000010000001000 00000101 00000001 0000000000000000 00000110 00000001 0000000000100100 …………………………………….……. 00000000000000000100111000100000 Informatica Generale . . . + Indirizzi assoluti 22 Altre tecniche di gestione della memoria Swapping memorizzazione di processi pronti o in attesa in un’area della memoria di massa Paginazione suddivisione di un programma in pagine logiche (e della memoria centrale in pagine fisiche) Memoria virtuale swapping + paginazione (in prima approssimazione) Informatica Generale 23 Swapping Nuovo processo 1) D S.O. A B C C viene copiato su disco Tempo D viene caricato in memoria 2) D S.O. A B D Area di Swap Informatica Generale 24 Paginazione 1) 2) S.O. S.O. Nuovo processo A B 3) A B C C 4) S.O. Nuovo processo A D C S.O. A C Informatica Generale Il processo B termina Pagine fisiche non adiacenti 25 Paginazione (2) Proc A 0 1 2 Memoria fisica (RAM) 3 4 Proc B Proc C 0 1 2 0 1 2 3 4 5 6 7 8 0 1 9 Informatica Generale 26 Paginazione (3) (Ipotesi semplificativa per questo esempio: indirizzi base 10 e pagine di lunghezza 10000) RAM di 100000 celle Proc A 0 1 2 3 4 Tabella di conversione ind. Logici/ind. fisici 0xxxx 1xxxx 2xxxx 3xxxx 4xxxx 0xxxx 1xxxx 2xxxx 5xxxx 6xxxx Supporto hardware Memory Management Unit (MMU) Informatica Generale 0 1 2 3 4 5 6 7 8 9 27 Memoria virtuale Principi di località l’insieme di pagine logiche utilizzate “varia lentamente” Non tutte le pagine logiche debbono risiedere nella RAM più processi eseguibili simult. Ulteriore funzionalità della MMU – Page fault caricamento della pagina mancante – Pagina non utilizzata da “molto tempo” scaricamento della pagina Illusione di (al più) 50% di RAM addizionale Informatica Generale 28 Gestione delle periferiche (I/O) Componente fisica – Dispositivo di I/O (inclusi dischi e nastri) – Scheda di I/O (collegata al bus) Componente “logica” (software) – Programma driver Installazione – Manuale – Plug&Play (PnP) Informatica Generale 29 Driver logici Sono programmi del S.O. – driver “standard” – driver forniti da costruttori di periferiche Nascondono la struttura fisica – comandi di I/O Standardizzano l’interazione – stampante laser e stampante inkjet – floppy, hard disk e CD ROM Informatica Generale 30 Esempi di comandi di I/O di alto livello In forma testuale ( in S.O. con interazione testuale oppure da programma) – lpr -Plw1 pippo.txt – read(input,x,y,z) – read(nomefile,nomevar) In forma grafica (vedi slide successiva) Informatica Generale 31 Comandi di I/O Informatica Generale 32 Tecnica di spool Problema: cosa succede se più processi (o più utenti) mandano “contemporaneamente” in stampa documenti sulla stessa stampante? Computer 1 Processo1 Processo2 Computer 2 Processo3 Come evitare che I dati escano nello stesso ordine in cui vengono eseguiti i comandi di uscita? Informatica Generale 33 Spool di stampa Processo1 Processo2 Processo3 Processo di spool Driver Informatica Generale 34 File (management) system Creazione e cancellazione dei file Modifica e aggiornamento Protezione dei file e modalità di accesso Copia, spostamento, creazione di collegamenti, ecc. Gestione della memoria di massa Informatica Generale 35 Organizzazione dei dati sulle memorie di massa Ogni “entità referenziabile ” su disco è un file – un programma – un insieme di dati utilizzati da un programma – una base di dati (o un archivio) – un grafico I file sono identificati da un nome (filename) – nome – estensione Esempi: tesi.doc, sort.pas, sort.exe Informatica Generale 36 Ancora sui file Regole per i nomi – lunghezza massima – “case sensitive” o “insensitive” – caratteri speciali Informazioni ausiliarie – lunghezza file – data creazione e modifica – diritti di accesso Informatica Generale 37 Organizzazione logica di un file system Struttura ad albero (file system gerarchici) Radice dell’albero Nodo interno Foglia Ai nodi e alle foglie possono essere associate informazioni Informatica Generale 38 Organizzazione logica di un file system (2) Struttura ad albero – La radice è un’unità disco (o una partizione di unità) – I nodi interni sono cartelle (directory) – Le foglie sono file Una cartella può contenere file e/o altre cartelle percorso di identificazione di un file c:\Mauro\Didattica\InfGen\algoritmi.ppt Informatica Generale 39 Organizzazione logica di un file system (3) Esempio C: WinNT Programmi Mauro Didattica Ricerca Personale InfGen Tesi algoritmi.ppt hardware.ppt Software.ppt Informatica Generale 40 Strumenti grafici di esplorazione di un f.s. Informatica Generale 41 Ancora sui file system gerarchici Unità o volume e directory radice (root) Directory corrente (o di lavoro) Pathname (assoluto e relativo) – \Mauro\Didattica\datiealg.ppt – Didattica\datiealg.ppt Directory “padre” Formattazione di un’unità Informatica Generale 42 Directory corrente per un applicativo Informatica Generale 43 Directory corrente per un applicativo (2) Informatica Generale 44 Directory corrente per un applicativo (3) Informatica Generale 45 Directory corrente per un applicativo (4) Informatica Generale 46 Directory corrente per un applicativo (5) Informatica Generale 47 Il Sistema Operativo MS-DOS MS-DOS = Microsoft Disk Operating System Sistema monoutente e “monotasking” Interazione con l’utente tramite comandi testuali L’interprete dei comandi è detto SHELL File di comandi (BATCH) File System gerarchico (FAT) Root e directory corrente (o di lavoro) Informatica Generale 48 I comandi di MS-DOS Prompt di sistema Esempi C:\> oppure C:\Mauro\Didattica> Formato generale <Comando DOS> ::= <Parola chiave><parametri> Caratteri “jolly” – ? (cap?.doc) – * (cap*.*) File speciali (per indicare certe periferiche): COM1:, COM2:, CON:, LPT1: Informatica Generale 49 Alcuni comandi DOS FORMAT A: inizializza un dischetto (crea root e FAT) MD <nome> (ovvero MD <pathname>) crea una nuova sottodirectory nella directory corrente (ovvero della directory <pathname>) CD <pathname> directory <pathname> diventa la d. corrente DIR (ovvero DIR <pathname>) elenca il contenuto della directory corrente (ovvero nella directory <pathname>) Informatica Generale la 50 Alcuni comandi DOS (2) COPY <pathname1> <pathname2> crea <pathname2> come copia di <pathname1> DEL <pathname> cancella il file <pathname> RD <pathname> cancella la directory <pathname> (che deve essere vuota, cioè non contenere file o altre directory) REN <pathname1> <nome> ridenomina il file <pathname> cambiando il nome vero e proprio in <nome> Informatica Generale 51 Esempi di interazione in DOS Informatica Generale 52 Esempi di interazione in DOS (2) Informatica Generale 53 Esempi di interazione in DOS (3) Informatica Generale 54 Classificazione dei comandi Ad ogni comando corrisponde un programma che realizza la particolare azione Comandi interni (“sempre” in memoria) – più efficienti – tutti i comandi citati sono interni (tranne FORMAT) Comandi esterni – caricati quando serve – file con estensione EXE, COM e BAT Informatica Generale 55 Interprete dei comandi (command.com) command.com Esegue i comandi predefiniti (interni ed esterni) Esegue comandi aggiuntivi (file con estensione BAT, COM o EXE – nella directory corrente – nelle directory opportunamente specificate dall’utente nel file di sistema AUTOEXEC.BAT Informatica Generale 56 Operazioni speciali consentite dalla shell Pipelining ( | ) invio dell’output di un comando in input ad un secondo comando DIR | FIND “EURO” Ridirezionamento dell’output ( < e > ) sostituzione dello standard input (tastiera) o dello standard output (video) DIR > LPT1: DIR | FIND “EURO” > LISTA LISTAF < SORT > LISTAORD Informatica Generale 57 Come il FS tiene traccia dei dati Tabella di Allocazione dei File (FAT) Directory principale (root) Entrambe risiedono su disco ad indirizzi prestabiliti Entrambe vengono caricate in memoria durante l’inizializzazione del sistema Informatica Generale 58 Root directory Nome Datiealg Tipo file Ultima modifica 11/03/99 Primo blocco nella FAT 45 Informatica Generale 59 Tabella di allocazione dei file (FAT) 0 1 44 45 46 77 78 79 80 78 80 0 Informatica Generale 60 Il sistema operativo Windows Multitasking Monoutente (Windows 95), multiutente (Windows NT) Capacità di eseguire applicazioni scritte per il DOS File System gerarchico (FAT per Win95, NTFS per WinNT) Interfaccia grafica evoluta Gestione integrata delle “nuove tecnologie” (reti locali, Internet, fax, multimedialità) Informatica Generale 61 Alcuni concetti base Scrivania (desktop) Il pulsante di avvio La barra delle applicazioni La gestione delle risorse e il file system – Proprietà di file e cartelle – Menù di scelta rapida – Creazione di collegamenti – Il cestino Esecuzione di un programma Guida in linea Accessori Informatica Generale 62 La scrivania (desktop) Informatica Generale 63 Il pulsante di avvio Informatica Generale 64 Il pannello di controllo Informatica Generale 65 Il pannello di controllo (2) Informatica Generale 66 Personalizzazione della scrivania Informatica Generale 67 Barra delle applicazioni (personalizzazione) Informatica Generale 68 Barra delle applicazioni Informatica Generale 69 Barra delle applicazioni (2) Informatica Generale 70 Esplorazione del FS (alternativa a gestione risorse) Informatica Generale 71 Menu di scelta rapida Informatica Generale 72 Proprietà di file e cartelle Informatica Generale 73 Creazione di collegamenti Informatica Generale 74 Creazione di collegamenti (2) Informatica Generale 75 Creazione di collegamenti (3) Informatica Generale 76 Il cestino Informatica Generale 77 Il cestino (2) Informatica Generale 78 Esecuzione dei programmi Informatica Generale 79 Esecuzione dei programmi (2) Informatica Generale 80 Guida in linea Informatica Generale 81 Guida in linea (2) Informatica Generale 82 Help in linea Informatica Generale 83 Accessori Informatica Generale 84 Gestione dei processi: esempio Un semplice programma per eseguire somme ripetute ciclo: leggi op1 se op1=0 vai a fine leggi op2 ris:=op1+op2 scrivi ris vai a ciclo fine: scrivi ‘’bye bye’’ (leggi primo addendo) (se nullo, termina) (leggi secondo addendo) (calcola la somma) (scrivi il risultato) (ripeti) (saluta) CPU disponibile Inizio Ready op1 letto CPU tolta “d’ufficio” Waiting Informatica Generale Running leggi op1 85