Il Sistema Operativo - Maurizio Mancini · Il sistema operativo •il sistema operativo fornisce...

Post on 09-Jul-2020

18 views 0 download

Transcript of Il Sistema Operativo - Maurizio Mancini · Il sistema operativo •il sistema operativo fornisce...

Sistemi operativi

HW

Sistema Operativo

Il sistema operativo

SW = Sistema Operativo + SW applicativo

SW Applicativo

Il sistema operativo

HW

Sistema Operativo

Il sistema operativo

• il sistema operativo fornisce dei servizi ai programmi applicativi e agli utenti rendendo utilizzabili le risorse fisiche presenti nel sistema

• il sistema operativo può essere inteso come uno strumento che virtualizza le caratteristiche dell’hardware sottostante, offrendo di esso la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile

Il sistema operativo: funzioni

• Il S.O. deve svolgere delle funzioni di base:

– esecuzione di applicazioni

– accesso ai dispositivi di ingresso/uscita

– archiviazione di dati e programmi

– controllo di accesso

– gestione dei tempi di utilizzo del sistema

– gestione dei malfunzionamenti

Il sistema operativo: tipologie

• varie tipologie di S.O.:

– sistemi batch (esecuzione non interattiva di task)

– sistemi interattivi (interazione con l’utente)

– sistemi uniprogrammati e monoutente (1 solo l’utente, 1 solo programma utente per volta in esecuzione)

– sistemi time-sharing: interattivi, multiprogrammati e multiutente (più utenti e più programmi utente in esecuzione)

Struttura di un sistema operativo

• Un classico modello di organizzazione del S.O. è quello a “strati”, detto anche a “buccia di cipolla”:

– determina una gerarchia di macchine virtuali (mv)

– la mv al livello N è determinata dall’hardware e dagli strati del S.O. fino a

quel livello

macchina virtuale: software che emula il comportamento di una macchina fisica

User interface

• permette all'utente di interagire con il sistema operativo e quindi con il computer

• due principali tipi di user interface:– Command Line Interface (CLI)

• cmd.exe (Windows), terminal (Linux)

– Graphic User Interface (GUI)

• Windows Aero

• Linux Gnome, KDE

Command Line Interface

• si scrivono singoli comandi per far svolgere al computer un certo compito:– cd /home/Downloads (spostamento nella cartella Downloads)

– vi esempio.txt (avvio dell'editor "vi" e caricamento di un file)

Graphic User Interface

• permette una comunicazione col computer attraversofinestre, icone e menù– WIMP (Windows, Icons, Menus, Pointing devices)

File management system

• permette di organizzare i dati contenuti nella memoria secondaria in forma strutturata

• i dati sono raccolti in strutture logiche dette files, identificate da un nome (filename)

• i files sono organizzati in più contenitori logici (cartelle o directory) secondo una struttura ad albero

• ciascun file è individuato mediante il suo percorso (path) assoluto, ottenuto giustapponendo i nomi dei nodi che si incontrano dalla radice al file (separati da un carattere apposito, in Linux /, in Windows \)Esempio: /uno/alfa/f1

File system

• permette all’utente di:– operare sui file mediante opportune operazioni

– effettuare l'accesso alle informazioni grazie ad operazione di alto livello, che non tengono conto del tipo di memorizzazione

• per esempio, si deve accedere allo stesso modo ad un file memorizzato sul disco rigido oppure su un CD-ROM

– proteggere i propri file in un sistema multi-utente, ossia per impedire ad altri utenti di leggerli, scriverli o cancellarli

File system

• i file vengono utilizzati come supporto per la memorizzazione dei programmi e dei dati– un file può corrispondere ad un programma, o ad un insieme di

dati omogenee

– diversi tipi di file contengono diversi tipi di informazione

– un file deve avere un nome logico

è meglio usare nomisignificativi

mio.doc, a.txt

tesi.doc, inf_lezione9.ppt

è meglio non usare caratteri speciali e lo spazio bianco

prima pagina.html, mia foto.jpg

index.html, montagne.gif

File system

• Un file ha anche una estensione

Esempi: .doc .txt .html .jpg .gif .pdf

Le estensioni sono importanti perché di solito indicano il tipo del file (quindi danno informazioni sul programma applicativo in grado di manipolarlo)

Organizzazione gerarchica dei file

• Un unico spazio (“contenitore”) di file è scomodo– La scelta dei nomi diventa difficile perché non è possibile avere

due file con lo stesso nome nella stessa contenitore

– Le operazioni di ricerca dei file diventano onerose

• L’idea è quella di raggruppare i file in sottoinsiemi

• Questi sottoinsiemi di file vengono memorizzati all’interno di contenitori dette cartelle (directory)

• I nomi dei file sono locali alle directory– Si possono avere due file con lo stesso nome perché siano in due

directory diverse

Organizzazione gerarchica dei file

Organizzazione gerarchica dei file

Applicazioni

Biblioteca

Utenti

Indice

Elab_imm

Elab_testi

Narrativa-Fra

Narrativa-Ing

Narrativa-Ita

Bianchi …

Rossi …

Pautasso …

Photoshop.exe

Winword.exe

libro1.pdf

libro2.pdf

libro1.pdf

libro1.pdf

libro2.pdf

Premiere.exe

A:

Questa struttura viene

chiamata albero

foglie

radice

dell’albero

Organizzazione fisica dei file

• esempio: FAT (File Allocation Table) file system– il disco è diviso in cluster di lunghezza fissa (64 KB)

– ogni file è una catena di cluster (anche non consecutivi, vedereesempio in basso)

– ogni cartella è un file speciale che include i numeri dei primicluster dei file in essa contenuti

– la FAT contiene il tipo di ogni cluster del disco:

• Unused (0x0000), Cluster in use by a file, Bad cluster (0xFFF7), Last cluster in a file (0xFFF8-0xFFFF)

Input/Output

• gestisce la comunicazione con dispositivi esterni– hard disk, tastiera, stampante, monitor, ecc.

• fornisce una visione del sistema in cui i processi possonooperare mediante periferiche astratte

• maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita

• mette a disposizione di ogni processo delle periferichevirtuali– esempio: spooling della stampante

Memory management

• consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e di ignorare quindi le effettive zone di memoria fisica occupata.

• fornisce alle macchine virtuali di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile– esempio: memoria virtuale

Kernel

• Per la gestione dei processi il S.O. deve: – Interagire direttamente con l’hardware– Occuparsi dell’esecuzione dei programmi e della risposta

agli eventi esterni generati dalle unità periferiche di I/O– Gestire i processi corrispondenti ai programmi che sono

contemporaneamente attivi– Gestire il contesto di esecuzione dei vari processi– Attuare una politica di alternanza (time-sharing) nell'accesso

alla CPU da parte dei processi in esecuzione

Time-sharing

attesa per operazioni di I/Oelaborazione

TempoProgr. 3

Progr. 2

Progr. 1

P1 P3 P2 P1 P3 P2 P1 P3 P2

Processi

• Un programma è un insieme di istruzioni da eseguire(entità statica).

• Un processo è un’istanza di un programma in esecuzione (entità dinamica).

• Un processo è costituito dal programma e dal contesto di esecuzione(program counter, registri, memoria, etc.).

• In un S.O. multiprogrammato (o multitasking o multiprocesso) possono esistere più processi in esecuzione

• I processi possono essere eseguiti in kernel mode (ad es. i servizi forniti dal sistema operativo) o user mode (ad es. i programmi applicativi)

Gestione dei processi

• compiti del s.o. per la gestione dei processi– creazione/terminazione dei processi

– sospensione/ripristino dei processi

– sincronizzazione/comunicazione tra processi

– gestione di situazioni di stallo (blocco critico o deadlock)

– esempio di diagramma di stato dei processi

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/OCompletamento operazione di

I/O (evento esterno atteso)

Stato di un processo• In esecuzione:

assegnato al processore ed eseguito da esso

• Pronto: può andare in esecuzione, se il gestore dei processi lo decide

• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto

28

Processo in

esecuzione

Processo

pronto

Processo in

attesa

Inizio esecuzione

- Fine quanto di tempo

- Interruzione esterna

Interruzione interna

Evento esterno

atteso

- Fine esecuzione

- Abort per errore