università degli studi di brescia prof. massimiliano...

37
Il sistema operativo Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin

Upload: others

Post on 25-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Il sistema operativo

Ingegneria Meccanica e dei Materiali

Università degli Studi di Brescia

Prof. Massimiliano Giacomin

Page 2: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Elementi di Informatica e Programmazione – Università di Brescia 2 Docente: M. Giacomin

Applicazione utente

MEMORIA CENTRALE

BIOS (carica il programma

da disco)

Gestisce direttamente tutte le risorse del sistema (es: per stampare stringa memorizza la matrice raster nel “frame buffer” della scheda grafica)

IL CALCOLATORE visto fin qui…

Page 3: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

HARDWARE (periferiche, memoria, CPU)

Applicazioni

•  Necessità per il programmatore di conoscere le specificità dell’hardware e di occuparsi della sua gestione ⇒ Difficoltà nella scrittura dei programmi •  Dipendenza applicazioni/hardware

Elementi di Informatica e Programmazione – Università di Brescia 3 Docente: M. Giacomin

Astraendo…

I problemi

Page 4: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Applicazione utente

MEMORIA CENTRALE

Programma output stringa Programma

input carattere

ES: - carica in memoria una stringa in formato ASCII da visualizzare - mette il suo indirizzo in un registro prestabilito - mette un codice (stampa stringa) in un registro prestabilito - “invoca” il sistema operativo: istruzione di interruzione interna

LA SOLUZIONE: IL SISTEMA OPERATIVO

Elementi di Informatica e Programmazione – Università di Brescia 4 Docente: M. Giacomin

Page 5: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Interruzioni: quadro di riferimento

Due tipologie di interruzioni: •  interne: generate da specifica istruzione macchina per realizzare una chiamata di sistema •  esterne: generate dai componenti fisici del sistema (es. quelle già viste provenienti dalle “periferiche” - o meglio dalle interfacce I/O)

Le transizioni tra processi utente e sistema operativo avvengono in seguito ad interruzioni.

Elementi di Informatica e Programmazione – Università di Brescia 5 Docente: M. Giacomin

Page 6: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Astraendo: organizzazione a livelli di un sistema di elaborazione

livello delle applicazioni

livello del sistema

operativo

livello fisico

hardware

sistema operativo

applicazioni

programmatore di sistema

programmatore di applicazioni

utenti

interfaccia di programmazione

verso le applicazioni

Elementi di Informatica e Programmazione – Università di Brescia 6 Docente: M. Giacomin

Page 7: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

1.  E’ una collezione di programmi (detti anche software di base) che gestiscono le risorse del sistema

2.  Fornisce una interfaccia (API: Application Programming Interface) al software applicativo usato dall’utente, che può invocare il sistema operativo attraverso chiamate di sistema

Un sistema operativo:

Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da utilizzare di quella fisicamente disponibile (macchina fisica).

Elementi di Informatica e Programmazione – Università di Brescia 7 Docente: M. Giacomin

Page 8: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Virtualizzazione dell’hardware (mascherandone i dettagli) - periferiche - CPU - memoria centrale •  Gestione ottimale delle risorse (efficienza) •  Gestione della convivenza (più programmi in esecuzione e più utenti): - idealmente, ciascuno opera come se avesse a disposizione l’intero sistema; - d’altra parte, gestione delle interazioni tra programmi in esecuzione (es: output utilizzato come input da un altro) •  Gestione della sicurezza (riservatezza e integrità)

Elementi di Informatica e Programmazione – Università di Brescia 8 Docente: M. Giacomin

Funzioni di un sistema operativo

Page 9: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

gestore della memoria centrale

gestore delle periferiche

interprete comandi

sistema operativo

interfaccia di programmazione verso le applicazioni

interfaccia verso l’hardware

hardware

applicazione

applicazione

gestore dei processi

gestore memoria di massa

utenti

. . .

utenti utenti

Elementi di Informatica e Programmazione – Università di Brescia 9 Docente: M. Giacomin

Organizzazione di un sistema operativo

Page 10: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Sistema di gestione dei processi –  Definisce quali “programmi” sono da eseguire e quali compiti sono da

assegnare alla CPU

•  Sistema di gestione della memoria centrale –  Controlla l’allocazione della memoria centrale assegnata ai diversi “programmi” che possono essere contemporaneamente in esecuzione

•  Sistema di gestione delle periferiche –  Garantisce l’accesso ai dispositivi di ingresso/uscita –  Maschera i dettagli di basso livello e gli eventuali conflitti che

possono sorgere nel caso di diverse richieste formulate da più utenti/programmi ad uno stesso dispositivo “contemporaneamente”

•  Sistema di gestione della memoria di massa (file system) –  Archiviazione e reperimento dati utilizzando le periferiche che

costituiscono la memoria di massa

Elementi di Informatica e Programmazione – Università di Brescia 10 Docente: M. Giacomin

Page 11: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Interprete comandi – Permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili: linguaggio grafico, ad icone, a comandi (tipico in DOS e UNIX)

Anche se di fatto fornito con il sistema operativo, concettualmente è meglio vederlo come un’applicazione

•  Sistema di gestione della rete –  Permette di interfacciarsi a risorse collegate via rete e di

comunicare con processi in esecuzione su altri calcolatori

Altro elemento (non riportato in figura)

Elementi di Informatica e Programmazione – Università di Brescia 11 Docente: M. Giacomin

Page 12: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

gestore della memoria centrale

gestore delle periferiche

interprete comandi

sistema operativo

interfaccia di programmazione verso le applicazioni

interfaccia verso l’hardware

hardware

applicazione

applicazione

gestore dei processi

gestore memoria di massa

utenti

. . .

utenti utenti

Elementi di Informatica e Programmazione – Università di Brescia 12 Docente: M. Giacomin

Focus su…

Page 13: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Processo vs Programma

Elementi di Informatica e Programmazione – Università di Brescia 13 Docente: M. Giacomin

00100111101111011111111111100000 10101111101111110000000000010100 10101111101001000000000000100000 10101111101001010000000000100100 10101111101000000000000000011000 10101111101000000000000000011100 10101111101111110000000000010100

10101111101001000000000000100000 10101111101001010000000000100100 10101111101000000000000000011000

Programma o codice

Dati

MEM CENTRALE

CPU

Registri Contesto*

PC

Stato di esecuzione

*in prima approssimazione

Page 14: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Programma: entità statica composta dal codice eseguibile dal processore

•  Processo: entità dinamica che corrisponde al programma in esecuzione, composto da: –  codice (= programma)

–  dati in memoria

–  dati nei registri dell’unità centrale (contesto)

processo = programma + stato di esecuzione

Elementi di Informatica e Programmazione – Università di Brescia 14 Docente: M. Giacomin

Page 15: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Sistemi uniprogrammati (monotasking)

Un solo programma applicativo in memoria centrale

Tempo

attesa per operazioni di I/O elaborazione

Uso inefficiente del sistema: durante le operazioni di input/output con le periferiche la CPU non svolge alcun compito utile

Elementi di Informatica e Programmazione – Università di Brescia 15 Docente: M. Giacomin

Page 16: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Tempo Progr. 3

Progr. 2

Progr. 1

attesa per operazioni di I/O elaborazione

Elementi di Informatica e Programmazione – Università di Brescia 16 Docente: M. Giacomin

Sistemi multiprogrammati (multitasking)

In ogni istante la memoria centrale può contenere più programmi

Page 17: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Permette la condivisione della CPU tra più “programmi in esecuzione” (processi)

•  Il tempo di CPU viene suddiviso in quanti di tempo

•  Processo in esecuzione: ha a disposizione un quanto di tempo di CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione

•  I quanti di tempo vengono assegnati ai processi dal SO secondo opportune politiche (es. round-robin): apparente parallelismo

Elementi di Informatica e Programmazione – Università di Brescia 17 Docente: M. Giacomin

Gestione dei processi in time-sharing

Page 18: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

DESCRITTORE

CODICE

DATI

Transizione da un processo ad un altro: passi principali (1)

MEMORIA CENTRALE

P1

CODICE

DESCRITTORE

DATI P2

S.O.

CPU

Registri

PC

P1 in esecuzione

Page 19: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

DESCRITTORE

CODICE

DATI

MEMORIA CENTRALE

P1

CODICE

DESCRITTORE

DATI P2

S.O.

CPU

Registri

PC

P1 in esecuzione

INTERRUZIONE

Transizione da un processo ad un altro: passi principali (2)

(1)

(2)

Page 20: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

CODICE

DESCRITTORE

DATI

DESCRITTORE

CODICE

DATI

Transizione da un processo ad un altro: passi principali (3)

MEMORIA CENTRALE

P1

P2

S.O.

CPU

Registri

PC

P2 in esecuzione

Page 21: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Sistema di gestione dei processi: transizioni tra gli stati di un processo

Selezione primo processo pronto e sua esecuzione

Processo in esecuzione

Processi pronti

Inizio esecuzione

(accodamento ai processi

pronti)

Termine quanto di tempo

Termine elaborazione

Processi in attesa

Richiesta operazione di I/O Completamento

operazione di I/O (evento esterno atteso)

Elementi di Informatica e Programmazione – Università di Brescia 21 Docente: M. Giacomin

Page 22: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  In ogni istante un processo può essere in uno dei seguenti stati: –  in esecuzione da parte della CPU (un solo processo se vi è

una sola CPU) –  in attesa di un evento esterno (ad esempio I/O da tastiera o

su schermo) –  pronto ad essere eseguito ed in attesa del proprio quanto di

tempo CPU

•  Processi in attesa e pronti: in due code distinte - contengono riferimenti ai descrittori dei processi - nei descrittori il SO memorizza contesto + informazioni per gestione processi (id, priorità, risorse assegnate, …)

•  Tipicamente per i processi pronti si usa una coda di tipo FIFO (“First in First Out”)

Elementi di Informatica e Programmazione – Università di Brescia 22 Docente: M. Giacomin

Page 23: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Pronto → Esecuzione –  Quando un programma deve essere “eseguito”, viene

creato un processo che viene posto in fondo alla coda dei processi pronti

–  Il SO stabilisce quale dei processi “pronti” debba essere mandato in “esecuzione”, di solito estraendo il primo nella coda dei “pronti”

–  Il processo rimane in esecuzione finché •  termina il suo quanto di tempo

•  oppure richiede un’operazione di I/O

•  oppure è arrivato all’istruzione finale

E P

A

Elementi di Informatica e Programmazione – Università di Brescia 23 Docente: M. Giacomin

Page 24: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Esecuzione → Pronto –  Termina il quanto di tempo ed il processo in “esecuzione”

lascia spazio a un altro processo “pronto”

–  Il SO salva nel descrittore tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta (ad es: salva il contenuto dei registri di CPU) è salvataggio del contesto

–  Contemporaneamente un altro processo passa da “pronto” a “esecuzione”, ne viene ripristinato il contesto se il processo era stato precedentemente interrotto

E P

A

Elementi di Informatica e Programmazione – Università di Brescia 24 Docente: M. Giacomin

Page 25: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Esecuzione → Attesa –  Il processo deve svolgere un’operazione di I/O (comporta

un notevole tempo di attesa): attende un evento per il completamento dell’operazione (ad es. input da tastiera)

–  Il SO salva nel descrittore tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso

E P

A

Elementi di Informatica e Programmazione – Università di Brescia 25 Docente: M. Giacomin

Page 26: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Attesa → Pronto

–  Si verifica l’evento esterno atteso dal processo ed il SO sposta quel processo in fondo alla coda dei processi pronti

E P

A

Elementi di Informatica e Programmazione – Università di Brescia 26 Docente: M. Giacomin

Page 27: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

sistema operativo

modo utente

modo supervisore

interruzione

fine gestione interruzione

Il meccanismo di protezione: modo utente e supervisore

•  nel modo utente, non sono disponibili le istruzioni privilegiate (ad esempio quelle che consentono di interagire direttamente con le periferiche) •  i programmi del sistema operativo in modo supervisore, i programmi utente in modo utente

Elementi di Informatica e Programmazione – Università di Brescia 27 Docente: M. Giacomin

Page 28: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Elementi di Informatica e Programmazione – Università di Brescia 28 Docente: M. Giacomin

Sistema di gestione della memoria centrale

Controlla l’allocazione della memoria centrale assegnata ai diversi processi che possono essere contemporaneamente in esecuzione

Page 29: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Proc 1

Proc 2

Proc 3

DISCO FISSO

MEMORIA

Un nuovo processo può nascere e necessita di memoria, un processo in esecuzione può richiedere memoria, un processo può terminare…

Elementi di Informatica e Programmazione – Università di Brescia 29 Docente: M. Giacomin

Page 30: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Proc 1

Proc 2

Proc 3

DISCO FISSO

Proc 4

MEMORIA

Un nuovo processo può nascere e necessita di memoria, un processo in esecuzione può richiedere memoria, un processo può terminare…

Elementi di Informatica e Programmazione – Università di Brescia 30 Docente: M. Giacomin

Page 31: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Proc 1

Proc 2

Proc 3

DISCO FISSO

Proc 4

MEMORIA

Un nuovo processo può nascere e necessita di memoria, un processo in esecuzione può richiedere memoria, un processo può terminare…

Proc 5

Proc 5

Elementi di Informatica e Programmazione – Università di Brescia 31 Docente: M. Giacomin

Page 32: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Elementi di Informatica e Programmazione – Università di Brescia 32 Docente: M. Giacomin

Sistema di gestione delle periferiche

Driver Driver

Gestore periferiche SIST. OPERA- TIVO

Applicazione Utente

Controller Controller HW

Periferica Periferica

Page 33: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  Gestore periferiche: permette ai processi (degli utenti e del sistema operativo) di interagire con le periferiche attraverso comandi ad alto livello

•  Accesso e controllo periferiche a due livelli: - driver: programmi integrati nel sistema operativo > mascherano le caratteristiche specifiche dei controller > forniscono un insieme di comandi per operazioni di I/O utilizzabili da altri programmi del Sistema Operativo - controller (interfacce I/O): dispositivi hardware dipendenti da caratteristiche fisiche delle periferiche che gestiscono, ricevono richieste di operazioni I/O e le eseguono

Elementi di Informatica e Programmazione – Università di Brescia 33 Docente: M. Giacomin

NOTE (a)

Page 34: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

•  I sistemi operativi includono i driver per la gestione delle periferiche più comuni: –  tastiera, video, mouse, stampanti, …

•  Ogni aggiunta o modifica alla configurazione standard comporta l’installazione di software addizionale ovvero di driver aggiuntivi –  solitamente prodotti dalla casa costruttrice della periferica

(possono essere già disponibili sul CD del sistema operativo) –  es: driver per gestire informazione acquisita con una videocamera

digitale ad alta definizione

Elementi di Informatica e Programmazione – Università di Brescia 34 Docente: M. Giacomin

NOTE (b)

Page 35: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Sistema di gestione della memoria di massa

•  Obiettivo: presentare all’utente l’organizzazione logica dei dati della memoria di massa e le operazioni che è possibile compiere su di essi

•  Operazioni di base di un file system (es. Gestione Risorse di Windows) –  recupero di dati precedentemente memorizzati; –  eliminazione (cancellazione) di dati obsoleti; –  modifica/aggiornamento di dati preesistenti;

–  copia di dati per backup o per il trasferimento verso altro calcolatore

•  I servizi vengono forniti sia ai programmi applicativi che direttamente agli utenti

Elementi di Informatica e Programmazione – Università di Brescia 35 Docente: M. Giacomin

Page 36: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Organizzazione del file system

•  Le informazioni vengono memorizzate in contenitori logici detti archivi o più comunemente file

•  Un file è una sequenza di byte: può contenere un programma, un insieme di dati, un testo, un’immagine, …

•  E’ caratterizzato da: –  un nome simbolico solitamente costituito di due parti:

•  nome vero e proprio, assegnato dall’utente •  estensione, associata al programma che ha generato il file e consente quindi di

identificare la tipologia dei dati contenuti nel file (ad es. i file Excel hanno estensione .xls)

–  un insieme di attributi (dimensione, data e ora di creazione, permessi di lettura/scrittura/esecuzione, proprietario)

•  I file sono generalmente organizzati in cartelle (directory) e sottocartelle in una gerarchia ad albero

Elementi di Informatica e Programmazione – Università di Brescia 36 Docente: M. Giacomin

Page 37: Università degli Studi di Brescia Prof. Massimiliano Giacominfimec.altervista.org/Informatica_&_Programmazione... · invocare il sistema operativo attraverso chiamate di sistema

Ogni file o cartella è individuato dal suo percorso assoluto (nome completo – pathname), ovvero dai nomi dei nodi intervallati da ‘\’ seguiti dal nome del file (es. \utenti\Mario\gioco.exe). Il pathname in pratica identifica la posizione del file o della cartella all’interno dell’albero.

gioco.exe testo.doc

foto.jpg

gioco.exe

“radice”

programmi utenti dispositivi

Mario Chiara

temporanei

Esempio

Elementi di Informatica e Programmazione – Università di Brescia 37 Docente: M. Giacomin