Informatica Generale 1
PARTE IIPARTE II
Architettura di un sistema informatico
Software di base
Informatica Generale 2
Software di base (o di sistema)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 3
Sistema Operativo: funzionalità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 4
Gestione delle risorseGestione 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 5
Dialogo con l’utenteDialogo con l’utente
Interazione basata su comandi testuali
Informatica Generale 6
Dialogo con l’utente (2)Dialogo con l’utente (2)
Informatica Generale 7
Dialogo con l’utente (3)Dialogo con l’utente (3)
Interazione mediante interfaccia grafica
Informatica Generale 8
Dialogo con l’utente (4)Dialogo con l’utente (4)
Informatica Generale 9
Sistema operativo: architetturaSistema 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 10
Il modello a stratiIl modello a strati
HardwareGestione CPU (nucleo)
Gestione MemoriaGestione I/O
Gestione file (file system)Interprete dei comandi
Informatica Generale 11
Nucleo e gestione dei processiNucleo 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 12
Scheduling (schedulazione) dei processiScheduling (schedulazione) dei processi
Running Ready
Waiting
Coda dei processi Politica di assegnazione della CPU Sincronizzazione ed interruzioni
Fine quanto
Risorsaallocata
CPU allocata
RichiestaRisorsa
Informatica Generale 13
Tipi di multiprogrammazioneTipi 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 14
Gestione dei processi: esempioGestione dei processi: esempio
ciclo: leggi op1 (leggi primo addendo) se op1=0 vai a fine (se nullo, termina)
leggi op2 (leggi secondo addendo) ris:=op1+op2 (calcola la somma) scrivi ris (scrivi il risultato) vai a ciclo (ripeti)fine: scrivi ‘’bye bye’’ (saluta)
Un semplice programma per eseguire somme ripetute
Ready Running
Waiting
Inizio
Informatica Generale 15
Process Control Block (PCB)Process Control Block (PCB)
Struttura dati del S.O. necessaria per la gestione dei processi
PCBase address
R1
Rn
.
.
.PCB (è il “contesto” del processo)
- PC serve per sapere da dove ricominciare l’esecuzione- R1Rn contenuto dei registri generali
ris:=op1+op2
load R1,op1load R2,op2add R1,R2store R1,ris
Informatica Generale 16
Gestione della memoriaGestione 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 17
Frammentazione: esempioFrammentazione: esempio
S.O.
AB
S.O.
ABC
S.O.
1) 2)
C
Nuovo processoIl processo B
termina
3)
C
A
D
Nuovo processo:non trova spazio
La memoria liberacomplessiva sarebbesufficiente per D
Informatica Generale 18
Frammentazione: una soluzioneFrammentazione: una soluzione
S.O.
C
A
S.O.
CA
Si “compatta” la memoria (copiando C “più in alto”)
Nuovo problema: “aggiustare”, nel programma copiato, i riferimenti (eventuali) ad istruzioni e dati in memoria “rilocare” il codice
Informatica Generale 19
Rilocazione del codice (un vecchio esempio)Rilocazione del codice (un vecchio esempio)
. . .if x[1]<x[2] then z := x[1] else z := x[2];. . .
• Programma Pascal
• Programma in codice macchina (caricamento a ind. 20000)
00000000 00000000 000000000000001100000000 00000000 000000000000001000000000 00000000 0000000000000101 …………………………………….…….00000101 00000001 010011100010000000000101 00000010 010011100010010000100111 00000001 000000000000001010100011 00000000 010100100010000000000110 00000010 010011100100010010100010 00000000 010100100010100000000101 00000001 010011100010000000000110 00000001 0100111001000100…………………………………….…….
Indirizzo 20000(Inizio dati)
Indirizzo 21024
Indirizzo 21032
Indirizzo 21000(Inizio programma)
Informatica Generale 20
Rilocazione del codice (2)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 “correggere” ogni accesso alla memoria Rilocazione statica
Rilocazione dinamica
Informatica Generale 21
Rilocazione staticaRilocazione statica
00000000 00000000 000000000000001100000000 00000000 000000000000001000000000 00000000 0000000000000101 …………………………………….…….00000101 00000001 010011100010000000000101 00000010 010011100010010000100111 00000001 000000000000001010100011 00000000 010100100010000000000110 00000010 010011100100010010100010 00000000 010100100010100000000101 00000001 010011100010000000000110 00000001 0100111001000100…………………………………….…….
00000000 00000000 000000000000001100000000 00000000 000000000000001000000000 00000000 0000000000000101 …………………………………….…….00000101 00000001 100000000000000000000101 00000010 100000000000010000100111 00000001 000000000000001010100011 00000000 100001000000000000000110 00000010 100000000010010010100010 00000000 100001000000100000000101 00000001 100000000000000000000110 00000001 1000000000100100…………………………………….…….
Base address=20000 Base address=32768
Compilazione rilocazione e caricamento (ind. 20000) esecuzione rilocazione e caricamento (ind. 32768) esecuzione ………..
Informatica Generale 22
Rilocazione dinamicaRilocazione dinamica
00000000 00000000 000000000000001100000000 00000000 000000000000001000000000 00000000 0000000000000101 …………………………………….…….00000101 00000001 000000000000000000000101 00000010 000000000000010000100111 00000001 000000000000001010100011 00000000 000001000000000000000110 00000010 000000000010010010100010 00000000 000001000000100000000101 00000001 000000000000000000000110 00000001 0000000000100100…………………………………….…….
Compilazione caricamento (indirizzi relativi + base 20000) esecuzione caricamento (indirizzi relativi + base 32768) esecuzione ………..
00000000000000000100111000100000
Registro base
+... Indirizzi
assoluti
Informatica Generale 23
Altre tecniche di gestione della memoriaAltre 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 24
SwappingSwapping
S.O.
ABC
S.O.
1)
A
D
Nuovo processo
B
2)
D
C vienecopiatosu disco
D vienecaricato in memoria
D
Area diSwap
Tempo
Informatica Generale 25
PaginazionePaginazione
S.O.
AB
S.O.
ABC
S.O.
1) 2)
C
Nuovo processoIl processo B
termina
3)
C
AD
Nuovo processoS.O.
4)
C
APagine fisichenon adiacenti
Informatica Generale 26
Paginazione (2)Paginazione (2)
0
1
2
3
4
Proc A
0
1
2
Proc B
0
1
2
3
4
5
6
7
80
1
Proc C 9
Memoriafisica
(RAM)
Informatica Generale 27
Paginazione (3)Paginazione (3)
Proc A
(Ipotesi semplificativa per questo esempio: indirizzi base 10 e pagine di lunghezza 10000)
0123456789
01234
RAM di 100000 celle
0xxxx 0xxxx1xxxx 1xxxx2xxxx 2xxxx3xxxx 5xxxx4xxxx 6xxxx
Tabella di conversioneind. Logici/ind. fisici
Supporto hardware Memory Management Unit (MMU)
Informatica Generale 28
Memoria virtualeMemoria 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 29
Gestione delle periferiche (I/O)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 30
Driver logiciDriver 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 31
Esempi di comandi di I/O di alto livelloEsempi 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 32
Comandi di I/OComandi di I/O
Informatica Generale 33
Tecnica di spoolTecnica di spool
Problema: cosa succede se più processi (o più utenti) mandano“contemporaneamente” in stampa documenti sulla stessastampante?
Processo1
Processo2
Processo3
Computer 1
Computer 2
Come evitare che I dati escano nello stesso ordine in cuivengono eseguiti i comandi di uscita?
Informatica Generale 34
Spool di stampaSpool di stampa
Processo1
Processo2
Processo3
Processodi spool
Driver
Informatica Generale 35
File (management) systemFile (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 36
Organizzazione dei dati sulle memorie di massaOrganizzazione 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 37
Ancora sui fileAncora 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 38
Organizzazione logica di un file systemOrganizzazione logica di un file system
Struttura ad albero (file system gerarchici)
Ai nodi e alle foglie possono essere associate informazioni
Radice dell’albero
Nodo interno
Foglia
Informatica Generale 39
Organizzazione logica di un file system (2)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 40
Organizzazione logica di un file system (3)Organizzazione logica di un file system (3)
DidatticaRicerca
Personale
Esempio WinNTProgrammi
Mauro
C:
InfGenTesi
algoritmi.ppthardware.pptSoftware.ppt
Informatica Generale 41
Strumenti grafici di esplorazione di un f.s. Strumenti grafici di esplorazione di un f.s.
Informatica Generale 42
Ancora sui file system gerarchiciAncora 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 43
Directory corrente per un applicativoDirectory corrente per un applicativo
Informatica Generale 44
Directory corrente per un applicativo (2)Directory corrente per un applicativo (2)
Informatica Generale 45
Directory corrente per un applicativo (3)Directory corrente per un applicativo (3)
Informatica Generale 46
Directory corrente per un applicativo (4)Directory corrente per un applicativo (4)
Informatica Generale 47
Directory corrente per un applicativo (5)Directory corrente per un applicativo (5)
Informatica Generale 48
Il Sistema Operativo MS-DOSIl 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 49
I comandi di MS-DOSI comandi di MS-DOS
Prompt di sistema
Formato generale
Caratteri “jolly” – ? (cap?.doc)– * (cap*.*)
File speciali (per indicare certe periferiche): COM1:, COM2:, CON:, LPT1:
Esempi C:\> oppure C:\Mauro\Didattica>
<Comando DOS> ::= <Parola chiave><parametri>
Informatica Generale 50
Alcuni comandi DOSAlcuni 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> la directory <pathname> diventa la d. corrente
DIR (ovvero DIR <pathname>) elenca il contenuto della directory corrente (ovvero nella directory <pathname>)
Informatica Generale 51
Alcuni comandi DOS (2)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 52
Esempi di interazione in DOS Esempi di interazione in DOS
Informatica Generale 53
Esempi di interazione in DOS (2)Esempi di interazione in DOS (2)
Informatica Generale 54
Esempi di interazione in DOS (3)Esempi di interazione in DOS (3)
Informatica Generale 55
Classificazione dei comandiClassificazione dei comandi
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
Ad ogni comando corrisponde un programmache realizza la particolare azione
Informatica Generale 56
Interprete dei comandi (command.com)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 57
Operazioni speciali consentite dalla shell 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 58
Come il FS tiene traccia dei datiCome il FS tiene traccia dei dati
Tabella di Allocazione dei File (FAT) Directory principale (root)
Entrambe risiedono su disco ad indirizziprestabiliti
Entrambe vengono caricate in memoria durantel’inizializzazione del sistema
Informatica Generale 59
Root directoryRoot directory
Nome Datiealg
Tipo file
Ultima modifica 11/03/99
Primo blocconella FAT
45
Informatica Generale 60
Tabella di allocazione dei file (FAT)Tabella di allocazione dei file (FAT)
78
0
46
787980
4544
77
01
80
Informatica Generale 61
Il sistema operativo WindowsIl 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 62
Alcuni concetti baseAlcuni 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 63
La scrivania (desktop)La scrivania (desktop)
Informatica Generale 64
Il pulsante di avvioIl pulsante di avvio
Informatica Generale 65
Il pannello di controlloIl pannello di controllo
Informatica Generale 66
Il pannello di controllo (2)Il pannello di controllo (2)
Informatica Generale 67
Personalizzazione della scrivaniaPersonalizzazione della scrivania
Informatica Generale 68
Barra delle applicazioni (personalizzazione)Barra delle applicazioni (personalizzazione)
Informatica Generale 69
Barra delle applicazioniBarra delle applicazioni
Informatica Generale 70
Barra delle applicazioni (2)Barra delle applicazioni (2)
Informatica Generale 71
Esplorazione del FS (alternativa a gestione Esplorazione del FS (alternativa a gestione risorse)risorse)
Informatica Generale 72
Menu di scelta rapidaMenu di scelta rapida
Informatica Generale 73
Proprietà di file e cartelleProprietà di file e cartelle
Informatica Generale 74
Creazione di collegamentiCreazione di collegamenti
Informatica Generale 75
Creazione di collegamenti (2)Creazione di collegamenti (2)
Informatica Generale 76
Creazione di collegamenti (3)Creazione di collegamenti (3)
Informatica Generale 77
Il cestinoIl cestino
Informatica Generale 78
Il cestino (2)Il cestino (2)
Informatica Generale 79
Esecuzione dei programmiEsecuzione dei programmi
Informatica Generale 80
Esecuzione dei programmi (2)Esecuzione dei programmi (2)
Informatica Generale 81
Guida in lineaGuida in linea
Informatica Generale 82
Guida in linea (2)Guida in linea (2)
Informatica Generale 83
Help in lineaHelp in linea
Informatica Generale 84
AccessoriAccessori
Informatica Generale 85
Gestione dei processi: esempioGestione dei processi: esempio
ciclo: leggi op1 (leggi primo addendo) se op1=0 vai a fine (se nullo, termina)
leggi op2 (leggi secondo addendo) ris:=op1+op2 (calcola la somma) scrivi ris (scrivi il risultato) vai a ciclo (ripeti)fine: scrivi ‘’bye bye’’ (saluta)
Un semplice programma per eseguire somme ripetute
Ready Running
Waiting
InizioCPU disponibile
leggi op1op1 letto
CPU tolta “d’ufficio”