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
- R1Rn 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: 48 MB)
– Browser di rete
(Netscape: 612 MB)
– Posta elettronica (Eudora: 1.54 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
Scarica

software_base - Centro servizi informatici d`ateneo