Informatica Generale - Dipartimento di Informatica

Informatica Generale
Marzia Buscemi
[email protected]
Ricevimento: Giovedì ore 16.00-18.00,
Dipartimento di Informatica, stanza 306-PS
o per posta elettronica
Pagina web del corso:
http://www.di.unipi.it/~buscemi/IG07.htm
(sommario delle lezioni in fondo alla pagina)
1
I sistemi operativi
2
Cos’è un sistema operativo ?
Applicazioni
Software
Sistema Operativo
Hardware
Windows
Unix/Linux
Mac OS
È il livello di SW con
cui interagisce l’utente
e comprende
programmi quali :
Compilatori
Editori di testi, Sistemi
bancari, Navigatori
per Web ...
gcc, Word, PowerPoint
Excel, Explorer
Fotoshop, Gimp
È il livello di SW che interagisce direttamente
con l’HW e che si occupa di un uso corretto
ed efficiente delle risorse fisiche (processore, memorie,
periferiche etc.)
L’architettura del calcolatore e i meccanismi di funzionamento sono
mascherati dal SO e all’utente appare una “macchina virtuale”
3
Quali sono le funzioni di un
SO ?
 Esegue applicazioni :
 carica il programma binario prodotto della
compilazione (e residente su disco) nella RAM
 cede il processore all’applicazione da eseguire
 Facilita l’accesso ai dispositivi di I/O
 interagisce con le periferiche facendosi carico di
tutti i dettagli fisici (es. modem, reti, video…)
 mette a disposizione operazioni di
lettura/scrittura ad alto livello che possono
essere usate senza conoscere i dettagli tecnici
della periferica
4
Quali sono le funzioni di un
SO ? 2
 Gestisce le risorse
 ripartisce le risorse disponibili fra le varie
applicazioni (processore, RAM, periferiche)
 evita che ci siano malfunzionamenti dovuti
all’uso contemporaneo di risorse


es: un word processor e un web browser che
inviano contemporaneamente dati alla
stampante provocano una stampa erronea (il
SO invece accoda le richieste e manda gli
ordini di stampa in successione)
ottimizza le prestazioni scegliendo delle
politiche che permettano di sfruttare al
meglio tutte le parti del computer
5
Quali sono le funzioni di un
SO ? 3
 Archivia dati e programmi :
 mette a disposizione dell’utente una visione
astratta della memoria secondaria (il file
system basato sulle astrazioni : file/archivi
e folder/cartelle)
 gestisce la realizzazione di queste astrazioni
sul supporto fisico (disco) gestendo tutti i
dettagli legati alla lettura/scrittura dei
settori
6
Quali sono le funzioni di un SO ?
4
 Gestisce malfunzionamenti del sistema

rileva e gestisce situazioni anomale


es: se il disco ha un settore difettoso, il
SO può trasportare automaticamente le
informazioni residenti su quel settore da
un’altra parte
es: se un’applicazione cerca di effettuare
una operazione non permessa (come
leggere i dati di un’altra applicazione)
può bloccare l’applicazione segnalando
all’utente la situazione erronea
7
Bootstrap e shutdown

Quando si applica la corrente elettrica al
calcolatore viene attivata una fase di
bootstrap che comprende l’attivazione di:
1.
2.

programmi di diagnostica scritti in memoria
ROM (non volatile), es. presenza moduli
hardware e assenza guasti
un programma che contiene le istruzioni
necessarie a caricare dalla memoria di massa
(floppy, CD, HD) una prima parte del sistema
operativo
Quando si spegne il calcolatore è necessaria
un procedura di shutdown per salvare le
informazioni in transito
8
Astrazione delle risorse
 L’esecuzione contemporanea di più
programmi da parte della CPU richiede che
questi allo stesso tempo
 risiedano in memoria
 possano prendere il controllo delle
stesse periferiche
 Per evitare conflitti è necessario
virtualizzare le risorse: le richieste
confluiscono sui programmi di sistema che
le accodano (es. coda di stampa)
9
Stato utente e stato supervisore
 Stato utente : modalità di funzionamento
del computer che permette l’accesso solo a
un numero limitato di risorse

es. un sottoinsieme delle istruzioni
assembler (non si può accedere alle
istruzioni che istruiscono le interfacce di
I/O), una sola parte della RAM etc.
 Stato supervisore : modalità che permette
l’accesso a tutte le risorse

es. i processi mandati in esecuzione dal SO
10
Stato utente e in stato supervisore 2
 I programmi che si eseguono in stato utente richiedono
servizi al SO tramite invocazione di sottoprogrammi
speciali, dette system call o chiamate di sistema
 Il SO decide come e quando effettuare il servizio
 Es. un processo richiede l’accesso a una risorsa
come una stampante, etc.)
 Il SO può interrompere un programma in
esecuzione in stato utente per eseguire altri
programmi o per effettuare operazioni di ‘gestione’
della macchina (vedi dopo ‘Interruzione di
programmi’)

Es. una risorsa precedentemente occupata notifica al
SO di essersi resa disponibile
11
Quali sono le parti di un SO ?
lato
utente
servizi richiesti dagli utenti
S
I
S
T
E
M
A
O
P
E
R
A
T
I
V
O
Interfaccia grafica
(desktop)
nucleo del SO (kernel)
Gestore dei
processi
Gestore dei
processori
Gestore della
memoria
HW
File system
Gestore dell’I/O
12
Gestore dei processi
13
Esecuzione di un programma
Algoritmo
Codifica in un linguaggio
di programmazione (C,
Java etc)
Passo 1 :
scrivere e compilare
il programma
Programma
Input : programma
Compilatore
Eseguibile
Output : rappresentazione comprensibile alla macchina
14
Esecuzione di un programma 2
 Come è organizzata la rappresentazione
binaria eseguibile del programma
(spazio di indirizzamento): Struttura che
232 - 1
Stack/pila
permette di realizzare
correttamente il meccanismo
di chiamata a sottoprogrammi
È un array di
parole !
Codifica
binaria dei dati
dati
testo
0
Codifica binaria delle
istruzioni assembler in cui
15
il programma è stato tradotto
Esecuzione di un programma 3
 Passo 2 :
 ricopiare lo spazio di indirizzamento di
un programma da memoria secondaria a
RAM
Ampiezza RAM - 1
Spazio programma 3
Spazio programma 2
Una possibile
organizzazione della RAM
con più programmi attivi
contemporaneamente
Spazio programma 1
Sistema Operativo
0
Area riservata, non accessibile
in modalità utente
16
Esecuzione di un programma 4
 Passo 3 :
 modificare il PC del processore in modo
che contenga correttamente l’indirizzo
della prima istruzione assembler da
eseguire nel nostro programma
AmpiezzaRAM - 1
Spazio programma 3
Spazio programma 2
440
Spazio programma 1
È l’indirizzo da
scrivere nel PC
Sistema Operativo
0
Prima istruzione
da eseguire nel
programma 2
17
Esecuzione di un programma 5
 Quando un programma utente è stato
attivato il processore esegue una dopo
l’altra le istruzioni assembler che lo
compongono
 Un programma in esecuzione viene detto
‘processo’ ( parte statica [il programma] +
parte dinamica [informazioni sullo stato di
esecuzione del programma] )
 Il gestore dei processi controlla la
terminazione, interruzione e riattivazione,
sincronizzazione dei processi
18
Terminazione di un processo
 Un processo termina :
 Quando esegue una istruzione assembler di
terminazione
 Quando effettua una operazione illecita (es.
cerca di accedere a memoria privata di altri
processi)
 Quando c’è un errore che non gli permette
di proseguire (es. overflow, etc)
 In tutti questi casi il processore ricomincia
automaticamente ad eseguire il sistema
operativo ad un indirizzo prefissato
19
Interruzione di un processo
 Il sistema operativo può bloccare un
processo in un qualsiasi istante della
sua esecuzione per effettuare qualche
operazione di gestione della macchina
 Questo avviene attraverso il
meccanismo hardware degli interrupt
20
Interruzione di un processo 2
 Come funzionano gli interrupt:
 ogni periferica può ‘richiedere attenzione’
inviando un segnale di interrupt usando le
linee di controllo del bus
 alla fine dell’esecuzione di ogni istruzione
assembler il processore controlla la
presenza di una interruzione
 se è presente il controllo passa
automaticamente al sistema operativo
21
Sistemi monotasking
 I SO che gestiscono l’esecuzione di un
solo processo per volta si chiamano
monotasking.
 Non è possibile sospendere l’esecuzione
di un processo per assegnare la CPU a
un altro
 Sono storicamente i primi SO (MS-DOS)
22
Sistemi monotasking:
diagramma temporale
in esecuzione (E)
in attesa di I/O (A)
pronto (P)
C
B
A
23
Sistemi multitasking
 I SO che permettono l’esecuzione
contemporanea di più processi si
chiamano multitasking (Windows-XP,
Linux)
 Un processo può essere interrotto e la
CPU passata a un altro processo
24
Sistemi multitasking:
diagramma temporale
in esecuzione (E)
in attesa di I/O (A)
pronto (P)
C
B
A
T_multi- T_monotasking
tasking
25
Time-sharing
 È il meccanismo che permette di far condividere
il processore a tutti i programmi attivi in modo
corretto
 Ogni programma ha l’impressione di avere un
suo processore ‘dedicato’
 Per evitare che un processo resti troppo a lungo
in attesa, le risorse sono ripartite tra i processi


i processi vengono accodati e ciascuno ha a
disposizione la CPU per un quanto di tempo
(time-slice)
quando il quanto finisce il processo viene messo
in fondo alla coda
 Due tempi di esecuzione: elapsed time e CPU
time
26
Time-sharing 2


Es: 3 programmi attivi Prog1, Prog2,
Prog3
vengono mandati in esecuzione
ciclicamente
Eseguo Prog1
Quanto
20-100 ms
Eseguo Prog2
Eseguo Prog3
Eseguo Prog1
Interruzione : il SO
riprende il controllo e decide chi
eseguire nel quanto successivo
Periferica ‘orologio interno’
27
Sistemi real-time
 Nelle applicazioni real-time il tempo di
completamento dell’esecuzione è un
parametro critico (es. controllo rotta di un
aereo, applicazioni multimediali)
 I sistemi real-time garantiscono che i
requisiti temporanei vengano soddisfatti.
 Es.:



Ad ogni istante si esegue il processo più critico
I processi non vengono interrotti finché non
arriva uno con priorità più alta
La priorità è fissa (diversamente da time28
sharing)
Tabella dei processi
 Ciascun processo ha un ciclo di vita: in
esecuzione, pronto, bloccato. Per poter
passare da uno stato all’altro le informazioni
più importanti del processo devono essere
salvate
 La tabella del processo risiede in memoria
centrale e contiene:







ID processo
PC
Registri
Stato
Informazioni gestione memoria
Informazioni scheduling (priorità)
Informazioni I/0 (dispositivi allocati, etc.)
29
Tabella dei processi 2
 Permette le seguenti operazioni:
 creazione processo
 cambio priorità
 liberazione risorse (se il processo è
bloccato)
 terminazione di un processo
 Context-switching: salvataggio dei
registri e dello stato del processo che si
è terminato di eseguire e di quello che
si eseguirà
30
Comunicazione/sincronizzazione
di processi
 Riguarda la condivisione di risorse
fisiche, logiche , funzioni eseguite da più
moduli (processi cooperativi/competitivi)
 Race condition: due processi
competono per l’accesso a un dato o
risorsa
 La comunicazione viene gestita con
scambi di messaggi o memoria condivisa.
 Memoria condivisa: realizzata tramite
semafori, monitor, rendezvous
31