33
Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin

Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Il sistema operativo

Percorso di Preparazione agli Studi di Ingegneria

Università degli Studi di Brescia

Docente: Massimiliano Giacomin

Page 2: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Cos’è un Sistema Operativo?

Per capirlo, immaginiamo inizialmente che non ci sia:

HARDWARE(periferiche, memoria, CPU)

Applicazioni

• necessità per il programmatore di conoscere le specificitàdell’hardware e di occuparsi della sua gestione

⇒ aumenta difficoltà nella scrittura dei programmi• dipendenza applicazioni/hardware

Introduciamo la suddivisione sistema operativo/applicazioni

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

Page 3: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

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 3Docente: M. Giacomin

Page 4: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

1. E’ una collezione di programmi (detti anche software di base) finalizzati a rendere utilizzabile l’intera architettura di elaborazione

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

3. Comprende programmi che gestiscono le risorse fisiche del sistema informatico(e quindi risolvono i problemi precedentemente visti)

In sostanza, 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 4Docente: M. Giacomin

Page 5: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Il concetto di macchina virtuale

• Interfaccia:attraverso di essa gli utenti della macchina virtuale interagisconocon la macchina stessa, utilizzando un insieme di comandi

• Corpo:non visibile all’esterno, esegue i comandi ricevuti utilizzandoa sua volta i servizi dell’eventuale macchina sottostante

Cfr. di nuovo il lucido 3…

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

Page 6: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Funzioni di un Sistema Operativo• 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 6Docente: M. Giacomin

Page 7: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Organizzazione di un Sistema Operativo

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 7Docente: M. Giacomin

Page 8: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

• Sistema digestione 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 8Docente: M. Giacomin

Page 9: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

• Sistema di interazione con gli utentie gestione dei relativi comandi (interprete comandi)

–Permette agli utenti di accedere in maniera semplice e intuitivaalle 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)

Se ne parlerà nel contesto delle reti di calcolatori…

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

Page 10: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Vediamo in particolare il gestore dei processi, che ha un ruolofondamentale nei sistemi multiprogrammati e multitasking…

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

Page 11: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Sistemi uniprogrammati(monotasking)

• Sistemi uniprogrammati (ad es: MS DOS): in memoria centrale risiede un solo programma applicativo, oltre al SO

un solo programma in esecuzione in ogni istante

Tempo

attesa per operazioni di I/Oelaborazione

Uso inefficiente del sistema:durante le operazioni di input/output con le periferiche la CPU rimane inattiva

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

Page 12: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Sistemi multiprogrammati e multitasking

• Gli attuali SO (come MS Windows XP e UNIX/Linux) sono sistemi multiprogrammati : in ogni istante la memoria centrale può contenere più programmi

TempoProgr. 3

Progr. 2

Progr. 1

attesa per operazioni di I/Oelaborazione

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

Page 13: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Gestione dei processi in “Time Sharing”

• Permette la condivisione della CPU tra più processi(vedi lucido successivo)

• Il tempo di CPU viene suddiviso in unità elementari dette quanti di tempo

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

• Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospesoper lasciare il posto ad un altro processo in attesa di esecuzione

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

Page 14: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Processo vs Programma

• Programma:entità staticacomposta dal codice eseguibile dal processore

• Processo:entità dinamicache corrisponde al programma inesecuzione, composto da:– codice (= programma) – dati (memoria e registri unità centrale)– stato di evoluzione

processo = programma + contesto di esecuzione

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

Page 15: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Transizioni tra gli stati di un processo

Selezione primo processopronto e sua esecuzione

Processo in esecuzione

Processipronti

Inizioesecuzione

(accodamentoai processi

pronti)

Termine quantodi tempo

Termineelaborazione

Processiin attesa

Richiestaoperazione di I/O

Completamentooperazione di I/O

(evento esterno atteso)

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

Page 16: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

• In ogni istante un processo può essere in uno dei seguenti stati:

– in esecuzioneda parte della CPU (un solo processo se vi è una sola CPU)

– in attesadi 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

• I processi in attesa e i processi pronti sono messi in due code distinte(contengono i descrittori dei processi, strutture datigestite dal sistema operativo che rappresentano ilcontesto: identificativo processo, valori registri unità centrale, priorità, risorse assegnate, ecc.)

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

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

Page 17: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Transizioni di stato (1)• 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

EP

A

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

Page 18: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

…se termina il quanto di tempo…Transizioni di stato (2)

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

lascia spazio a un altro processo “pronto”

– Il SO salva 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 contestose il processo era statoprecedentemente interrotto

EP

A

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

Page 19: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

…attesa di un’operazione di I/O…Transizioni di stato (3)

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

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

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

EP

A

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

Page 20: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Transizioni di stato (4)• Attesa →→→→ Pronto

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

EP

A

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

Page 21: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Interruzioni, modo utente e modo supervisore

Tre tipologie di interruzioni:

• interne: generate da specifica istruzione macchina per

realizzare una chiamata di sistema

• esterne: generate dai componenti fisici del sistema (es. periferiche)

• per eccezione: segnalano situazioni eccezionali

Le transizioni dei processi da uno stato all’altro che abbiamo visto

corrispondono a interruzioni esterne o interne.

Vediamo in dettaglio nel prossimo lucido (a noi interessa la parte gialla)

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

Page 22: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

programma in attesa

creazione

processo sospeso

processo pronto

scheduler di medio termine

processo in esecuzione

scheduler di breve termine

terminazione

interruzione esterna

processo bloccato

processo bloccato e sospeso

interruzione interna

scheduler di lungo termine

interruzione esterna

interruzione esterna

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

Page 23: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

sistema operativo

modo utente

modo supervisore

interruzione

fine gestione interruzione

Il meccanismo di protezione

• nel modo utente, non sono disponibili le istruzioni privilegiate(ad esempio quelle che consentono di interagire direttamentecon le periferiche)

• i programmi del sistema operativo in modo supervisore, i programmiutente in modo utente

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

Page 24: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Cosa fa il gestore della memoria?

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

Page 25: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Proc 1

Proc 2

Proc 3

DISCO FISSO

MEMORIA

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

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

Page 26: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Proc 1

Proc 2

Proc 3

DISCO FISSO

Proc 4

MEMORIA

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

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

Page 27: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Proc 1

Proc 2

Proc 3

DISCO FISSO

Proc 4

MEMORIA

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

Proc 5

Proc 5

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

Page 28: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Vediamo ora altri due componenti: gestione periferiche egestione della memoria di massa

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

Page 29: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

• I processi e gli utenti accedono alle periferiche attraverso comandi ad alto livello

• L’accesso/controllo delle periferiche avviene attraverso– i controller : dispositivi hardware il cui compito è ricevere

richieste di operazioni di input/output ed eseguirle fisicamente• dipendono dalle caratteristiche fisiche delle periferiche che

gestiscono (ad es., il controller di una stampante è diverso da quello del lettore di CD ROM)

– i driver : programmi software integrati nel sistema operativo per la gestione dei controller

• mascherano le caratteristiche specifiche dei controller• forniscono un insieme di comandi per la gestione delle

operazioni di ingresso/uscita utilizzabili da altri programmi inclusi nel sistema operativo

Gestione periferiche I/O (1)

SISTEMAOPERA-TIVO

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

Page 30: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Gestione periferiche I/O (2)

• 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 videocameradigitale ad alta definizione

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

Page 31: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

Sistema di gestione della memoria di massa

• Obiettivo: presentare all’utente l’organizzazione logicadei 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)– recuperodi dati precedentemente memorizzati;– eliminazione(cancellazione) di dati obsoleti;– modifica/aggiornamentodi dati preesistenti;– copiadi dati (e.g. da HD a FD) 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 31Docente: M. Giacomin

Page 32: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

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(o eventualmente a grafo aciclico: in questo caso una cartella o file può far partedi più cartelle)

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

Page 33: Percorso di Preparazione agli Studi di Ingegneria …...Più in generale, un sistema operativo offre la visione di una macchina astratta (o virtuale) più potente e più semplice da

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 33Docente: M. Giacomin