Page 1

Il Sistema Operativo(1) E’ il software fondamentale del computer, obiettivi principali:

è cioè un insieme di programmi

ed ha due

• Fungere da interfaccia con l’utente e quindi nascondere la macchina reale rendendola virtuale

• Gestire le risorse del sistema in modo efficiente

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

1


software

La macchina a strati software applicativo sistema operativo hardware WordÂŚExcelÂŚFirefox Windows/Linux/Mac PC Sistemi Operativi - Marco Culpo - 2k10 - 2k11

2


Hardware • parte fisica dell’elaboratore – unità centrale + dispositivi periferici (input/output, I/O) – unità centrale: elaborazione e memorizzazione – unità di I/O: acquisiscono informazioni che vengono passate al processore (input), ricevono dal processore i risultati dell’elaborazione (output) Sistemi Operativi - Marco Culpo - 2k10 - 2k11

3


Software • parte logica dell’elaboratore: dati e programmi – sistema operativo: programmi e dati per gestione elaboratore e interfaccia utente – software applicativi: calcolo, videoscrittura, archiviazione, grafica, … – dati: informazioni memorizzate nell’elaboratore – file: unità di memorizzazione (dal punto di vista logico); insieme di informazioni in memoria dotate di un nome Sistemi Operativi - Marco Culpo - 2k10 - 2k11

4


Macchine virtuali • uso della macchina astratto dalla sua struttura fisica • semplicità del linguaggio di interazione uomo/macchina

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

5


Macchine virtuali • macchina virtuale: sopra lo strato hw uno strato sw che mette a disposizione le funzioni necessarie all’utente • realizzata tramite il software di base – sistema operativo – linguaggi di programmazione

• traduce i comandi dell’utente in linguaggio comprensibile alla macchina Sistemi Operativi - Marco Culpo - 2k10 - 2k11

6


Il Sistema Operativo(1) Le sue funzioni principali sono:

• La gestione dell’unità centrale (CPU = CU + ALU) • La gestione della memorià centrale (RAM + registri) • La gestione dell’ input/output • La gestione dei file (file system)

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

7


Il Sistema Operativo (2) Inoltre si occupa della

• gestione dei programmi applicativi • gestione dell’ interfaccia con l’utente • gestione della sicurezza

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

8


Il Sistema Operativo (2) È quindi • Un supervisore che

• ha una visione globale delle risorse del sistema • fornisce all’utente una macchina virtuale • Un gestore di risorse • le conosce nei dettagli • ne offre agli utenti una visione virtuale • ne ottimizza e ne facilita l’uso • Un’interfaccia tra utente e macchina • nasconde i dettagli interni • semplifica il lavoro • recupera situazioni di errore

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

9


Funzioni del sistema operativo • Il gestore dei processi (o nucleo - Kernel) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione • Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi • I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche • Il file system è responsabile della gestione dei file in memoria di massa • L’interprete comandi consente all’utente di attivare i programmi Sistemi Operativi - Marco Culpo - 2k10 - 2k11

10


Evoluzione dei sistemi operativi •

Prima generazione 1945 – 1955 (computer a valvole) •

Seconda generazione 1955 – 1965 (transistor) - monoprg •

S.O. batch (a lotti)

Terza generazione 1965 – 1980 (circuiti integrati) - multiprg General purpose • • •

assenza di S.O. o S.O. dedicato

S.O. in multiprogrammazione; S.O. Interattivi (Time-Sharing); S.O. Real Time

Quarta generazione 1980 – …. (VLSI Very Large Scale Integration) •

S. O. per personal computer, reti, sistemi distribuiti Sistemi Operativi - Marco Culpo - 2k10 - 2k11

11


Tipi di Sistema Operativo • A interfaccia testuale (a comandi) • A interfaccia grafica (GUI Graphical User Interface)

• Monoprogrammato esegue un solo prg per volta • Multiprogrammato esegue più programmi contemporaneamente • Multitasking in grado di gestire più attività contemporaneamente • Multiutente in grado di far lavorare più utenti contemporaneamente

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

12


Esempi di Sistemi Operativi DOS

Interfaccia testuale

Monotasking monoutente

Windows

Interfaccia grafica

Multitasking monoutente Microsoft o multiutente a seconda delle versioni

Unix

Interfaccia testuale

Multitasking multiutente

Bell Laboratories

Linux

Interfaccia testuale e/o grafica

Multitasking multiutente

Derivato da Unix Open source

OS 2

Interfaccia grafica

Multitasking multiutente

IBM

Mac OS

Interfaccia grafica

Multitasking Monoutente o multiutente

Apple

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Microsoft

13


Modello a strati del S.O.

Hardware Nucleo - Gestione dei processi e del processore

Gestione della memoria centrale Gestione delle periferiche

File system Interfaccia utente (Interprete dei comandi o shell) Sistemi Operativi - Marco Culpo - 2k10 - 2k11

14


Modello a strati del S.O. (generalità) • Una gerarchia di livelli o strati. Ognuno usa le funzioni dei livelli sottostanti e fornisce funzioni a quelli più esterni • Ogni strato offre una virtualizzazione di un certo numero di funzioni (macchina virtuale) • La dipendenza dall’hardware è limitata al livello più basso (portabilità) • La portabilità si paga con minor efficienza perché una chiamata di sistema deve attraversare più strati Sistemi Operativi - Marco Culpo - 2k10 - 2k11

15


1> Gestione della CPU e dei processi

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

16


Modello a strati del S.O. (il nucleo) Il nucleo (o Kernel) , sempre presente in memoria centrale, • interagisce direttamente con l’hardware; • gestisce e sincronizza l’evoluzione dei processi; • gestisce le interruzioni nei processori; • gestisce la ripartizione dei processori nella multiprogrammazione Un processo è l’insieme delle operazioni che costituiscono un’attività del computer (ad es. un processo di stampa, un processo di lettura da disco, etc). Un processo può quindi essere: • pronto • in esecuzione • sospeso

Una interruzione è la comunicazione al processore di un evento che lo costringe a interrompere la sequenza delle operazioni (processo) che sta eseguendo per dedicarsi ad altro. Dopo l’esecuzione della routine di interruzione il processo interrotto viene ripreso dal punto in cui era stato lasciato.

• terminato Sistemi Operativi - Marco Culpo - 2k10 - 2k11

17


I processi • Programma = insieme statico di istruzioni • Processo = programma in esecuzione, quindi dinamico • il processore esegue un processo – preleva il file, il programma dal disco – lo carica in memoria centrale – lo attiva, lo lancia Sistemi Operativi - Marco Culpo - 2k10 - 2k11

18


Definizione di processo • Il termine processo fa riferimento all’esecuzione di un programma • Un processo P è una coppia di elementi (E, S), che comprende il codice eseguibile E del programma e lo stato S del processo • Lo stesso programma può essere associato a più processi: – Un programma può essere scomposto in varie parti e ognuna di esse può essere associata ad un diverso processo – Lo stesso programma può essere associato a diversi processi quando diverse copie del medesimo processo sono mandate in esecuzione Sistemi Operativi - Marco Culpo - 2k10 - 2k11

19


Stati di un processo (1) • L’unità di elaborazione che esegue i processi prende nome di processore. In generale vi saranno n processori • I processi possono essere classificati come: – In esecuzione – Pronti – In attesa

• Ipotesi semplificative: – Un programma sia associato a un solo processo – Il sistema sia dotato di un unico processore

• Uno solo dei processi può essere in esecuzione in un certo istante, gli altri processi saranno pronti oppure in attesa Sistemi Operativi - Marco Culpo - 2k10 - 2k11

20


Stati di un processo (2) Inizio esecuzione - Fine quanto di tempo Processo • In esecuzione: - Interruzione esterna pronto assegnato al processore ed Primo processo eseguito da esso pronto • Pronto: può andare in Processo in Evento esterno esecuzione, se il esecuzione atteso gestore dei processi lo decide Interruzione interna • In attesa: attende il Processo in verificarsi di un evento attesa - Fine esecuzione esterno per andare in- Abort per errore stato di pronto Sistemi Operativi - Marco Culpo - 2k10 - 2k11

21


Stati di un processo (3) • I processi appena creati sono messi in stato di pronto • Il nucleo decide quale processo pronto mettere in stato di esecuzione • Il nucleo assegna il processore a un processo per un quanto di tempo – Coda dei processi pronti – Round-robin – Priorità dei processi

Inizio esecuzione P1 P2 Processo pronto

- Fine quanto di tempo - Interruzione esterna Primo processo pronto Processo in esecuzione

Evento esterno atteso

Interruzione interna

- Fine esecuzione - Abort per errore Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Processo in attesa 22


Stati di un processo (4) Inizio esecuzione

• Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) • Corrisponde alla esecuzione dell’istruzione “chiamata a supervisore” (SuperVisor Call, SVC)

P2 Processo pronto

- Fine quanto di tempo - Interruzione esterna

P1 Processo in esecuzione

Primo processo pronto Evento esterno atteso

Interruzione interna

- Fine esecuzione - Abort per errore Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Processo in attesa 23


Stati di un processo (5) Inizio esecuzione

• Cambiamento di contesto: – Salvare il contesto di P1 nel suo descrittore di processo

• Il processore è ora libero, un altro processo passerà in esecuzione

P2 Processo pronto

- Fine quanto di tempo - Interruzione esterna Primo processo pronto Processo in esecuzione Interruzione interna

- Fine esecuzione - Abort per errore Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Evento esterno atteso P1 Processo in attesa 24


Stati di un processo (6)

• Quando l’operazione di Inizio esecuzione I/O è finita viene generata - Fine quanto di tempo Processo un’interruzione esterna - Interruzione esterna pronto • Il processo in esecuzione viene Primo processo interrotto pronto P2 • Il nucleo esegue il Processo in Evento esterno gestore delle esecuzione atteso interruzioni che esegue le azioni opportune Interruzione interna P1 • P1 può tornare pronto Processo in • Il nucleo sceglie quale attesa processo mandare in - Fine esecuzione - Abort per errore esecuzione 25 Sistemi Operativi - Marco Culpo - 2k10 - 2k11


Stati di un processo (7) Inizio esecuzione

• Pre-emption: quando il quanto di tempo è scaduto, il nucleo interrompe il processo in esecuzione • Si cerca di garantire un uso equo della CPU a tutti i processi

P2 Processo pronto

- Fine quanto di tempo - Interruzione esterna Primo processo pronto P1 Processo in esecuzione

Evento esterno atteso

Interruzione interna

- Fine esecuzione - Abort per errore Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Processo in attesa 26


Sincronizzazione • A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività • Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo • La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

27


Gestione dei processi • un processo alla volta (monoprogrammato) • più processi contemporaneamente (come, se il processore è unico? ) – scheduler - schedulazione dei processi – batch (a lotti) – time sharing (a divisione di tempo, interattivo), – real time (in tempo reale)

• più processori - parallelismo Sistemi Operativi - Marco Culpo - 2k10 - 2k11

28


Elaborazione batch • il processo i-esimo parte solo quando si è conclusa l’elaborazione del processo i-1-esimo • lunghe elaborazioni non interattive, calcoli matematici • Escluso l’uso dell’operatore, non interattivo

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

29


Elaborazione time sharing • tempo di elaborazione suddiviso fra vari processi • il processore inizia un processo, ma lo può sospendere per dedicarsi a un altro e poi tornare al precedente • l’utente ha la sensazione di avere un processore dedicato • vengono riempiti i tempi morti (per es., per l’accesso a periferiche lente) • accesso ad archivi (banche, prenotazioni), elaborazione testi Sistemi Operativi - Marco Culpo - 2k10 - 2k11

30


Elaborazione in tempo reale • real time: sistemi di controllo (aerei, centrali nucleari) • non conta soltanto l’ordine d’esecuzione, ma anche il tempo per il completamento • se ho tempo un secondo, allora X, se ho tempo mezzo secondo, allora Y

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

31


2> Gestione della memoria centrale

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

32


Modello a strati del S.O. (gestione della memoria) Lo strato di gestione della memoria centrale : • assegna gli spazi di memoria centrale ai programmi • gestisce la paginazione o segmentazione della memoria: la memoria viene divisa in settori che possono essere di dimensioni fisse (pagine statiche) o variabili (pagine dinamiche) per renderne più efficiente l’utilizzazione • implementa le tecniche di memoria virtuale per mascherare ai livelli successivi la limitazione fisica della memoria reale: la memoria centrale (RAM) appare ai programmi applicativi e all’utente più grande di quanto sia in realtà grazie a un meccanismo di spostamento di pagine di memoria, che in un certo momento non sono utilizzate, in uno spazio disponibile su una memoria esterna (hard disk) e conseguente liberazione di spazio per altre pagine che invece devono essere utilizzate in quel momento. Avviene quindi un continuo spostamento di porzioni di memoria dalla RAM all’hard disk e viceversa.

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

33


Gestione della memoria centrale 0 X

Sistema operativo

X+1

Processi N

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

34


Gestione della memoria centrale Sistema operativo

MEMORIA VIRTUALE

Processi

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

35


Rilocazione e paginazione • La gestione concorrente di molti processi, comporta la presenza di molti programmi in memoria centrale • Per allocare i programmi in memoria è necessario rilocarli (trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici) • Paginazione: – La memoria centrale è considerata dal gestore della memoria come partizionata in pagine – Ciascuna di queste è un’area di memoria contigua, di dimensione fissata – Dati e programmi vengono partizionati in pagine e allocati in un numero intero di pagine, non necessariamente contigue Sistemi Operativi - Marco Culpo - 2k10 - 2k11

36


Segmentazione • Segmentazione: – Durante la compilazione, il programma è frazionato in parti che svolgono differenti funzioni • Per es. si possono separare i dati dalle istruzioni

– E’ una partizione logica del programma. – Consente al gestore della memoria di caricare i segmenti che compongono il programma stesso in maniera indipendente – Mentre le pagine hanno lunghezza fissa, i segmenti, hanno lunghezza variabile

• La segmentazione e la paginazione non sono tecniche alternative. Spesso sono applicate contemporaneamente Sistemi Operativi - Marco Culpo - 2k10 - 2k11

37


La memoria virtuale • In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale • La memoria virtuale è maggiore di quella fisica: – E’ possibile allocare più pagine o segmenti di quelle che possono stare nella memoria fisica allo stesso tempo – Le pagine o i segmenti che non sono al momento caricate nella memoria fisica rimango disponibili nella memoria di massa

• La gestione della memoria è coordinata con la gestione dei processi: – Quando un processo è eseguito, le pagine o i segmenti che sono al momento in esecuzione o che contengono i dati attualmente indirizzati devono essere caricati in memoria – Se una pagina o un segmento necessario al programma non è presente, il processo deve essere sospeso per consentire il Sistemi Operativi - Marco Culpo - 2k10 - 2k11 caricamento 38


La catena di programmazione (1) • Il compilatore trasforma un modulo di programma sorgente in un modulo di programma oggetto – Un programma può essere suddiviso in parti (moduli) – I nomi delle variabili locali al modulo di programma vengono tradotti in indirizzi rilocabili (espressi in forma logica) – I riferimenti alle variabili esterne al modulo, restano in formato simbolico

• Il linker trasforma diversi moduli oggetto in un unico programma eseguibile – Il linker risolve i riferimenti a variabili definite esternamente a ciascun modulo, trasformando i residui indirizzi simbolici in indirizzi rilocabili

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

39


La catena di programmazione (2) • A volte (raramente) gli indirizzi sono espressi in formato assoluto (calcolati a partire da una specifica cella di memoria) • Il loader carica il programma eseguibile in memoria – Indirizzi assoluti: il loader caricare il programma nella specifica zona di memoria – Indirizzi rilocabili: il loader è responsabile della loro rilocazione

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

40


La rilocazione • Rilocazione statica: – All’atto del caricamento in memoria – Trasforma il codice: indirizzi rilocabili  indirizzi assoluti

• Rilocazione dinamica: – Non comporta una conversione del codice – Richiede l’utilizzo di due registri speciali:

Registro base

• Il registro base contiene il valore + dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato • Il registro dimensione contenente la dimensione del programma; permette Indirizzo di verificare che l’indirizzo generato dal rilocabile programma rientri nello spazio indirizzabile Sistemi Operativi - Marco Culpo - 2k10 - 2k11

Indirizzo calcolato

41


Modo S e modo U • La memoria è suddivisa in: – Memoria di modo S (supervisore): contiene i programmi di sistema operativo e vengono create le strutture dati da esso utilizzate – Memoria di modo U (utente): contiene i programmi utente

• Se il processore sta eseguendo un processo utente : – Lo si dice attivo in modo utente (in modo U) – Può accedere soltanto alla memoria di modo U

• Se il processore sta eseguendo un processo di sistema: – – – –

E’ attivo il nucleo Si dice attivo in modo supervisore (in modo S) Può accedere alla memoria di modo S e di modo U Può eseguire istruzioni “privilegiate” Sistemi Operativi - Marco Culpo - 2k10 - 2k11

42


3> Gestione delle periferiche I/O

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

43


Modello a strati del S.O. (gestione dell’ I/O) • Mette a disposizione degli strati superiori l’uso delle periferiche nascondendo le loro caratteristiche fisiche (periferiche virtuali) • Gestisce l’assegnazione delle periferiche (risorse) tra più processi concorrenti (ad es. code di stampa) • Si serve, per la gestione delle singole periferiche, dei relativi drivers: programmi che gestiscono il funzionamento di un dispositivo, ad esempio una stampante, un modem, etc.

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

44


Gestione input/output • gestire l’interfaccia fisica da/per i dispositivi periferici • ottimizzare l’uso dei dispositivi • dare all’utente una visione astratta del dispositivo • driver: programma che gestisce un dispositivo Sistemi Operativi - Marco Culpo - 2k10 - 2k11

45


Gestione input/output • visione astratta del dispositivo – stampa: per l’utente equivale all’invio di un messaggio, indipendentemente da come avviene il trasferimento dei byte – leggi/modifica caratteristiche della funzione di stampa: l’utente usa un pannello di controllo, senza curarsi dei dettagli implementativi – leggi lo stato della stampante

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

46


Le periferiche • dispositivi di input/output (I/O) • realizzano interazione fra uomo e macchina • controllati dal sistema operativo • lavorano in modo asincrono rispetto al processore

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

47


Le periferiche • • • • • • •

video mouse e tastiera stampanti modem dispositivi audio scanner porte Sistemi Operativi - Marco Culpo - 2k10 - 2k11

48


Periferiche dedicate:

input tastiera – mouse output video - stampante Periferiche condivise(virtuali):

HD - usb pen Sistemi Operativi - Marco Culpo - 2k10 - 2k11

49


I driver • Sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche • Garantiscono ai programmi che li usano una visione di alto livello – E’ possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche

• Si distingue fra: – Driver fisici (hardware). Vengono attivati direttamente dal gestore delle interruzioni – Driver logici (software). Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati Sistemi Operativi - Marco Culpo - 2k10 - 2k11

50


4> Gestione dei file – file system

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

51


Il file system • Consente di gestire i file sulla memoria di massa: – Creare un file – Dargli un nome – Collocarlo in un opportuno spazio nella memoria di massa – Accedervi in lettura e scrittura

• Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa • I file vengono inclusi all’interno di directory (o cataloghi): – Hanno una tipica organizzazione ad albero – Alcuni sistemi operativi permettono una struttura a grafo Sistemi Operativi - Marco Culpo - 2k10 - 2k11

52


La struttura ad albero

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

53


Organizzazione dei file • A ciascun utente è normalmente associata una directory specifica, detta home directory • Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente • Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero • Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

54


Modello a strati del S.O. (File system) •

Gestisce in modo ottimale lo spazio sulle memorie di massa;

Consente di organizzare la disposizione dei file in volumi, cartelle, sottocartelle

Controlla l’accesso ai dati contenuti in un file, eventualmente anche in presenza di più richieste di utenti diversi;

Fornisce le comuni operazioni sui file (copia, spostamento, cancellazione, cambiamento del nome, visualizzazione delle proprietà)

Fornisce meccanismi di protezione dei file e delle cartelle

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

55


Modello a strati del S.O. (Interfaccia utente) L’interfaccia utente o interprete dei comandi o shell:

• gestisce il dialogo tra utente e sistema

• a linea di comando – con l’interpretazione di comandi scritti dall’utente secondo una precisa sintassi;

testuali

• in modalità grafica fornendo all’utente strumenti di colloquio intuitivi ( finestre, menu, pulsanti, icone ).

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

56


Cosa succede all’accensione del PC Ogni computer per funzionare deve eseguire un programma. Il primo programma che viene eseguito è il BIOS, che contiene, tra l’altro, le istruzioni per il boot (il processo di avvio del S.O.). Le istruzioni del BIOS dicono al computer di cercare in una unità di memoria il S.O. • Accensione

• Esecuzione del BIOS (POST e inizializzazioni) • Esecuzione del bootstrap (Caricamento del S.O.) • Controllo del sistema da parte del S.O.

Sistemi Operativi - Marco Culpo - 2k10 - 2k11

57

Sistemi Operativi  

Sistemi Operativi