Tipos de sistema operativo y funcionamiento del Sistema Operativo
Software di Sistema e Software applicativo · 2020. 12. 2. · Sistema Operativo Elementi di...
Transcript of Software di Sistema e Software applicativo · 2020. 12. 2. · Sistema Operativo Elementi di...
1
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 1
Software di Sistema
Software per la gestione delle risorse e funzionalità del sistema di elaborazione• ha accesso a tutte le risorse del Sistema sia Hw che sw;
• controlla l’esecuzione dei programmi
• stabilisce in che ordine e come le richieste di elaborazione ricevute devono essere
soddisfatte
• può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore);
Es: sistema operativo, driver, gestione rete, utility, caricatore, collegatore, …
Software di Sistema e Software applicativo
Software applicativo
Software sviluppato per la risoluzione dei problemi / gestione di
attività/funzionalità degli utenti• non possono decidere autonomamente quando e come avere accesso alle risorse del
sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi)
• hanno accesso diretto ad un insieme ridotto di risorse;
• possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in
modalità utente);
Es: programmi per la gestione aziendale, word processing, spreadsheet, browser,
CAD, videogame, …
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 2
Elemento principale del software di un sistema di elaborazione.
Insieme di programmi tra loro interagenti e cooperanti per la gestione delle
risorse hardware e software
Realizza un’interfaccia (software) tra l’utente e lo hardware facilitando l’uso
del sistema e fornendo un sistema ‘virtuale’ più semplice da usare rispetto
allo hardware effettivamente a disposizione
superamento dei problemi relativi alla gestione e limitazione delle risorse
hardware
permettere la condivisione delle risorse, regolandone l’accesso da parte di
utenti / programmi diversi
IL SISTEMA OPERATIVO
2
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 3
IL SISTEMA OPERATIVOIl sistema operativo è un livello di software che agisce direttamente sui componenti HW
... rende trasparente agli utenti
l’architettura HW sottostante e
fornisce un insieme di funzionalità di
alto livello
… rende facilmente e completamente
disponibile all’utente lo HW da un
punto di vista funzionale
... facilita l’uso di funzioni quali creazione e/o copia
di un file, caricamento ed esecuzione dei programmi
in memoria centrale, leggere e/o scrivere dati da/su
memorie di massa e periferiche, …
Memoria di massa
Bus dati
Bus indirizzi
Bus di controllo
CPU
RAM
Scheda madre
(motherboard)
Interfaccia di
I/O
Schermo
Tastiera e
mouseAltoparlanti
Interfacc
e di I/O
Interfacc
e di I/O
Sistema Operativo
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 4
Il sistema operativo virtualizza le caratteristiche dello Hardware offrendo
agli utilizzatori la visione di una macchina astratta più semplice da usare
di quella fisicamente disponibile
IL SISTEMA OPERATIVO
HW
Sistema Operativo
Software Applicativo
…. Sistema operativo come necessario
ed utile intermediario ….
…. macchina virtuale a ‘strati’ ….
… ogni ‘strato’ risolve uno specifico
problema ….
SW= Sistema Operativo + SW applicativo
3
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 5
IL SISTEMA OPERATIVO
permette la gestione di:
risorse Hw
Gestione e allocazione dei processi alla CPU, memoria, dispositivi I/O, ...
lavori
Pianificazione ed esecuzione dei lavori di utente
interpretazione richieste utente e attivazione lavori
identificazione utente (password,diritti accesso, ...)
dati
Organizzazione logica e fisica dei dati nelle memorie di massa e per il
trasferimento dei dati da e per le periferiche
In modo del tutto trasparente agli utenti
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 6
• sviluppare programmi applicativi in modo (più) semplice e (più)
indipendente dallo specifico calcolatore operante con un determinato
sistema operativo;
• rendere trasparente ai programmi applicativi ed all’utente modifiche al
software di base ed allo hardware
Vantaggi di un SO
senza un sistema operativo il programmatore deve :
• introdurre nei programmi anche le funzionalità di gestione dell’hardware.
• interagire direttamente con i dispositivi fisici,
• gestire le esecuzioni contemporanee di più programmi alla volta
il sistema operativo fornisce all'utente un'interfaccia conveniente
che rende più semplice ed agevole l’uso della macchina
4
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 7
Esecuzione di programmi applicativi• caricamento del programma (istruzioni e dati) nella memoria centrale
• inizializzazione dei dispositivi di ingresso/uscita
• preparazione e gestione di altre risorse come la rete di comunicazione
Accesso ai dispositivi di ingresso/uscita• gestione delle operazioni necessarie per il trasferimento dei dati
• consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura
Archiviazione di dati e programmi su memorie di massa• fornire un’organizzazione logica dei dati persistenti sotto forma di directory (cartelle ) e file
• gestire le operazioni di basso livello per il relativo ingresso/uscita
Controllo di accesso alle risorse del sistema• condivisione di risorse da parte di più utenti o applicazioni
• meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso
Contabilizzazione uso risorse del sistema• ottimizzare il tempo di risposta dei programmi interattivi
• contabilizzare agli utenti i costi dell’impiego del sistema
Gestione dei malfunzionamenti• rilevare e, se possibile, risolvere eventuali malfunzionamenti provocati da guasti hardware, o da
operazioni scorrette compiute dal software applicativo
Principali funzioni di servizio di un SO
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 8
PRINCIPALI ELEMENTI DI UN SISTEMA OPERATIVO
Sistema
Operativo
Utente
Nucleo (o kernel)
[gestione processore]
Hardware
Software
applicativo
Gestione
periferiche
File
system Interfaccia
con la rete
Gestione
memoria
Interprete
comandi
5
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 9
Organizzazione di un S.O.Il SO è organizzato in moduli, ciascuno costituente uno “strato funzionale”, in un’architettura
a livelli detta “a cipolla”
La visione della macchina virtuale a livello N è
quella fornita dallo HW e dai livelli sottostanti
del SO fino all’N-esimo incluso
Ogni livello rende disponibili funzionalità verso
l’esterno (il livello superiore) nascondendo al
suo interno i meccanismi implementativi.
Gerarchia di macchine virtuali: macchine/livelli
più esterni “sembrano” più potenti delle
macchine più interne e della macchina fisica.
Ogni livello è una macchina virtuale formata da
un insieme di programmi che realizzano
funzionalità utilizzanti i servizi forniti dal livello
inferiore (un livello può richiedere servizi al
livello inferiore).
Ogni livello gestisce risorse specifiche del sistema regolandone l’uso
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 10
Un S.O. gestisce una qualsiasi elaborazione come:
“un insieme di unità di elaborazioni parziali”
dette P R O C E S S I
Concetto di “processo”
PROCESSO:
La minima unità di lavoro che il S.O. predispone per la esecuzione e
che possa individualmente richiedere l’uso della CPU
6
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 11
Programma:
entità statica composta da codice eseguibile dal processore.
Processo:
entità dinamica che corrisponde al programma in esecuzione, composto da:
• testo/codice (il programma);
• dati (le variabili che servono per l’esecuzione del programma);
• Program Counter (registro Prossima Istruzione)
• stato (a che punto dell’esecuzione ci si trova, descritto dai valori contenuti in alcuni
registri della CPU, …).
• Altre risorse necessarie al processo (es. file, dispositivi di I/O, …)
Ad un programma applicativo possono corrispondere diversi processi contemporaneamente
in esecuzione
Un processo può attivare l’esecuzione di un altro processo, originando una gerarchia
processo padre – processo figlio
Processo e programma
Un processo è caratterizzato da un identificatore (nome)
A ciascun processo è associato un descrittore (Process Control Block – PCB) che riporta le
informazioni che lo caratterizzano. I PCB sono registrati in una tabella dei processi.
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 12
I sistemi operativi si classificano in base alla modalità di gestione dei
processi
S.O. e “processi”
S.O. monoprocesso
S.O. multiprocesso
Supporta la esecuzione di un unico processo alla volta ciascun processo inizia la sua esecuzione e la completa prima che possa avere inizio
un nuovo processo (es. MS-DOS)
Supporta la esecuzione di più processi in un dato intervallo di tempo più processi avanzano sul sistema di
elaborazione (es. Windows, UNIX, IoS, ....)
7
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 13
Classificazione di un Sistema Operativo
Rispetto a UtentiMono-utente: gestiscono l’esecuzione delle richieste di un solo utente
Multi-utenti: gestiscono l’esecuzione delle richieste di più utenti contemporaneamente
Rispetto a esecuzione programmi
Altre classificazioni:
MONOPROGRAMMATISistemi atti a supportare unicamente l’esecuzione di un solo programma per volta
(applicazioni sequenziali). Sono, tipicamente, sistemi mono-utenti
MULTIPROGRAMMATISistemi atti supportare la concorrenza dell’esecuzione di programmi/processi: in un dato
intervallo di tempo, avanzano più programmi/processi. Sono, tipicamente, sistemi multi-
utenti
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 14
Processi sequenziali
più processi (P1, P2, ... , Pn) sono detti sequenziali se formano un insieme
completamente ordinato, ovvero essi devono essere eseguiti secondo una
assegnata sequenza. L’esecuzione del processo Pi inizia dopo la terminazione
dell’esecuzione del processo Pi-1
Processi concorrenti
più processi (P1, P2, ... , Pn) sono detti concorrenti se non costituiscono un
insieme completamente ordinato, ovvero l’esecuzione di ciascuno di essi può
avere inizio indipendentemente dalla fine dell’esecuzione degli altri
disgiunti: i processi sono indipendenti, ognuno opera su un proprio
insieme di informazioni
cooperanti: i processi cooperano per l’esecuzione di un compito,
scambiandosi informazioni
S.O. e “processi”
8
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 15
S.O. monoprogrammati
Tempo di occupazione della CPU
Tempo operazioni di I/O
… tempi per l’I/O molto maggiori di quelli della CPU …
…. CPU inattiva per la maggior parte del tempo ….
• Un solo processo
utente effettivamente
in esecuzione nella
CPU
• Ogni operazione di
I/O consiste in una
chiamata al sistema
operativo e quindi in
una sospensione del
processo utente per
l’esecuzione
dell’operazione di I/O
da parte del kernel
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 16
S.O. multiprogrammati
… nei tempi di I/O di un
processo la CPU viene
assegnata ad un altro
processo...
P1
P2
P3
Nel sistema sono presenti diversi processi, ognuno con un proprio tempo di
elaborazione e propri tempi di attesa per le operazioni di ingresso/uscita.
Per evitare che la CPU venga utilizzata in modo esclusivo (o per troppo
tempo) da parte di un solo processo, il tempo viene idealmente suddiviso in
unità elementari, dette quanti, da assegnare secondo opportune politiche di
scheduling a tutti i processi.
P1 U P2 U P3… la CPU è sempre
attiva …
9
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 17
Sistemi operativi multiprogrammati
SISTEMI BATCH
I processi da eseguire sono raggruppati in gruppi, ed il lavoro procede
dall’inizio alla fine senza alcuna interazione con l’utente
SISTEMI INTERATTIVI
Il lavoro richiede l’interazione con l’utente: l’utente fornisce un input,
il sistema lo elabora, restituisce un output e ... il colloquio continua
fino al termine dell’elaborazione
SISTEMI REAL TIME
L’elaborazione deve fornire i risultati entro un determinato tempo utile
(real time). Es. applicazioni per il controllo di un processo produttivo, applicazioni di tipo
gestionale, ...
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 18
Sistemi operativi multiprogrammati
SISTEMI TIME SHARING
Servono più utenti, e forniscono a ciascun utente la sensazione di disporre
dell’intero sistema e di essere immediatamente serviti
• Permette la condivisione della CPU tra più processi interattivi
• Il tempo di esecuzione del processore è condiviso tra più utenti
• Ogni processo in esecuzione ha a disposizione un quanto di tempo di
utilizzo della CPU, al termine del quale viene sospeso per lasciare il
posto ad un altro processo in attesa di esecuzione
10
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 19
Round-robin:
assegnare a rotazione la disponibilità di un quanto di tempo della CPU ai
vari programmi/processi presenti contemporaneamente in memoria.
La durata del quanto di tempo incide significativamente sia sulle prestazioni
del sistema che sull’efficacia del quasi parallelismo, che tende a scomparire
se la durata diviene eccessiva e degrada nella sequenzializzazione dei
programmi.
La scelta di un valore molto piccolo, pur migliorando in generale le
proprietà di parallelismo, può comportare un degrado delle prestazioni
complessive del sistema, qualora il tempo di commutazione fra processi sia
dello stesso ordine della durata del quanto di tempo (un valore tipico per il
sistema operativo Unix è 100 ms).
Sistemi operativi multiprogrammati
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 20
Round Robin
I/O
Fin
e I/O
E
E
E
E
E
E
E
E
E
E
Processo 3
Processo 2
Processo 1
E = Processo in elaborazione su CPU
I/O = richiesta operazione I/O
11
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 21
Gestione dei Processi in un S.O.
In una macchina monoprocessore e multiprocesso un solo processo alla
volta può essere in esecuzione sulla CPU
Gli altri processi sono, rispettivamente:
• in attesa (di un evento, quale il completamento di un’operazione di I/O)
• pronti (ad essere eseguiti, aspettano che la CPU si liberi e sia loro assegnata )
Quindi, ciascun processo può trovarsi in uno dei seguenti stati :
esecuzione:
sta effettivamente usando il processore per la sua esecuzione
pronto:
è potenzialmente in condizione di usare il processore che è però
occupato da un altro processo in esecuzione
attesa:
aspetta la terminazione di un evento esterno (es. operazione di I/O)
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 22
Diagramma degli stati di un processo
Processore ‘libero’creazione
Termine quanto di
tempo
Termine
elaborazione
Esecuzione
(E)Pronto
(P)
Attesa
(A)
Richiesta
operazione di I/OCompletamento operazione di
I/O (evento esterno atteso)
12
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 23
• Pronto Esecuzione
– Il SO stabilisce quale dei processi “pronti” debba essere mandato in “esecuzione”.
– La scelta è fatta da algoritmi di scheduling per ottimizzare efficienza ed efficacia.
Transizioni tra stati di un processo
EP
A
23
EP
A
• Esecuzione Pronto
– Termina il quanto di tempo e il processo in “esecuzione” lascia spazio a un altro processo “pronto”.
– Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta.
– Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 24
Transizioni tra stati di un processo
EP
A
• Esecuzione Attesa
– il processo chiede delle risorse che non sono attualmente disponibili o attende un evento
– il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi (context swapping)
– Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.
• Attesa Pronto
– Si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti.
EP
A
13
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 25
Diagramma degli stati di un processo
Selezione primo processo
pronto e sua esecuzione
Processo in
esecuzione
Processi
pronti
Creazione
(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)
… una lista di processi ‘pronti’ …
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 26
1. Il processo viene creato e viene posto nella coda dei processi pronti;
2. il primo processo (in base alla strategia di scheduling) tra i processi pronti
viene posto in esecuzione;
3. il processo in esecuzione dispone delle risorse del sistema fino: a. Al termine del quanto di tempo
• il nucleo (kernel) interrompe il processo e lo rimette in coda ai processi pronti;
• quando arriva in testa alla coda dei processi pronti, il processo torna in stato in
esecuzione, proseguendo con l’elaborazione dell’istruzione successiva a quella su cui
era stato interrotto;
b. alla richiesta di un’operazione di ingresso/ uscita
• il kernel sposta il processo attivo nello stato di attesa;
• quando l’operazione di ingresso/ uscita si completa il processo può proseguire
l’elaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue
come nel punto precedente;
c. al termine delle propria esecuzione (istruzione finale)
• il processo viene eliminato e rimosso dall’elenco dei processi esistenti;
in ogni caso il kernel provvede a mandare in escuzione il primo nella coda dei
processi pronti.
Riepilogo transizioni tra stati di un processo
14
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 27
Contesto di un processo
insieme dei dati che rappresentano lo “stato” del processo:situazione della memoria, contenuto dei registri, livello di priorità, …
Quando un processo viene interrotto (esce dallo stato di esecuzione) il
nucleo provvede a salvare il suo contesto nel descrittore del processo;
Quando un processo torna nello stato di esecuzione il nucleo provvede a
ripristinare il suo contesto, recuperando i dati precedentemente salvati
nel descrittore.
Contesto di un Processo e Cambio di Contesto
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 28
Cambio di contesto (context swapping)
si verifica quando un processo P1 in esecuzione viene sostituito da un
altro processo P2 (il primo del processi pronti);
il SO provvede a:
1. salvare il contesto di P1 e gestirne l’evoluzione (Pronto vs Attesa)
2. ripristinare il contesto di P2 per consentirgli una corretta evoluzione.
Contesto di un Processo e Cambio di Contesto
15
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 29
Round Robin
I/O
Fin
e I/O
E
P
P
E
P
P E
P
P E
A
P E
A
P
E
P
P
E
A
P
Cambio di contesto
EP
A
P1
E
P
P
E
P
P
P2P3
P
E
PProcesso 3
Processo 2
Processo 1
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 30
Nucleo (kernel)• Interagisce direttamente con l’hardware
• Scopo principale: gestire i processi corrispondenti ai programmi che sono
contemporaneamente attivi.
• Si occupa dell’esecuzione dei processi e della risposta agli eventi esterni
generati dalle unità periferiche.
• Attua una politica di pianificazione (scheduling) nell’accesso alla CPU da
parte dei processi (definisce quale processo è da eseguire in ogni istante).
• Gestisce il contesto di esecuzione dei vari processi
16
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 31
Gestore della memoria
• Controlla l’allocazione della memoria centrale ai diversi programmi che
possono essere contemporaneamente in esecuzione, al fine di risolvere
le relative esigenze dei vari processi in modo trasparente ed efficiente.
• Si occupa di:
– proteggere programmi e relativi dati caricati nella memoria di lavoro;
– mascherare la collocazione fisica dei dati;
– permettere, in modo controllato, la parziale sovrapposizione degli
spazi di memoria associati ai vari programmi.
• Fornisce la possibilità di lavorare come se si avesse a disposizione una
memoria dedicata, di capacità anche maggiore di quella fisicamente
disponibile.
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 32
Gestore della memoria
• Applica tecniche per gestire il conflitto fra dimensione della memoria fisica
e spazio complessivo richiesto dai programmi che devono essere eseguiti in
modo concorrente e dai relativi dati.
• Combina le seguenti strategie:
– consentire il caricamento di un programma (o un qualsiasi altro file) a partire da un
certo indirizzo della memoria;
– ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e
dei dati;
– condividere parte delle istruzioni (codice eseguibile) fra diversi processi
corrispondenti a uno stesso programma.
• Applica tecniche di protezione:
– mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio di
lavoro assegnato a ogni processo.
– garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che
può essere superiore alla memoria fisica presente nel calcolatore
17
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 33
Gestore della memoria
Paginazione• Suddivisione della memoria in blocchi di dimensioni prefissate: le
pagine. Una pagina è costituita da un determinato numero di locazioni di memoria consecutive.
• Lo spazio logico di indirizzamento del processo è suddiviso in sezioni, di dimensioni fisse e uguali fra loro, dette pagine logiche
• Lo spazio fisico di indirizzamento disponibile nel calcolatore è anch’esso suddiviso in pagine fisiche, della stessa dimensione delle pagine logiche.
• Meccanismo: Vengono caricate, in alcune pagine fisiche della RAM, solo alcune pagine logiche del codice in esecuzione. Le pagine logiche necessarie vengono caricate di volta in volta, in base all’esigenza.
• La paginazione permette di risolvere problemi per:
• Allocare un processo in memoria
• Superare il numero di processi che si possono gestire contemporaneamente
• Superare la limitazione della dimensione fisica della memoria di lavoro
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
Memoria logica
del processo 2
(4 pagine logiche)
Spazio logico
PL0
PL1
PL2
PL3Memoria logica
del processo 1
(2 pagine logiche)
Spazio logico
PL0
PL1
34
Gestore della memoria
Paginazione
Memoria fisica del
calcolatore suddivisa in 8
pagine
Spazio fisico
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
Corrispondenza tra Pagine Logiche (PL) contigue e Pagine Fisiche (PF) non
contigue
Dimensione tipica di una pagina:
da 512 byte a 4kB
18
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 35
Gestore della memoriaMemory Management Unit - MMU
• Serve un dispositivo hardware aggiuntivo in grado di convertire gli indirizzi logici cui fa
riferimento il programma nei corrispondenti indirizzi fisici: Memory Management
Unit.
• Lo MMU utilizza una tabella delle pagine:– mantiene la relazione tra ogni pagina logica e l’indirizzo della pagina fisica corrispondente.
Memoria logica del
processo 1 (2 pagine
logiche)
Memoria fisica del calcolatore suddivisa
in 8 pagine
Memoria logica del
processo 2 (4 pagine
logiche)
Spazio logico
PL0
PL1
Spazio logico
PL0
PL1
PL2
PL3
Spazio fisico
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
Tabella pagine (MMU) del processo 1
PL0
PL1
PF3
PF4
Tabella pagine (MMU)
del processo 2
PL0
PL1
PF1
PF2
PL2
PL3
PF0
PF5
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 36
Gestore della memoriaMemoria Virtuale
Il programma applicativo ‘vede’ una memoria virtuale che può essere maggiore di quella
centrale effettivamente a disposizione
Permette di gestire programmi caricandone in memoria solo le pagine relative al codice
attualmente in esecuzione
Le pagine che non sono attualmente caricate in memoria centrale rimangono disponibili in
zone della memoria di massa, all’interno di particolari file
Un elaboratore può avere una memoria virtuale di VG gigabyte ed una memoria fisica di
FG gigabyte, con VG > FG
La memoria virtuale permette una gestione e condivisione più efficiente della memoria
centrale fra più processi consentendo l’esecuzione di programmi la cui dimensione è
maggiore della dimensione FG della memoria fisica disponibile
la dimensione s del programma non può comunque essere superiore a quella
della memoria virtuale
19
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 37
Gestore della memoria
Memoria Centrale (Fisica)
PROGRAMMA MIO-1
PROGRAMMA MIO-2
PROGRAMMA TUO-1
PROGRAMMA SUO
PROGRAMMA ALTRO-1
PROGRAMMA TUO-2
PROGRAMMA ALTRI-1
PROGRAMMA NUOVO
PROGRAMMA MIO-3
PROGRAMMA MIO-4
PROGRAMMA TUO-3
PROGRAMMA TUO-4
PROGRAMMA ALTRO-2
PROGRAMMA ALTRI-2
Memoria Virtuale
Nella Memoria Fisica sono caricate le pagine con il
codice in esecuzione, le altre pagine dello stesso
programma sono caricate in quella virtuale
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 38
Gestore della memoria
Memoria Centrale
Memoria Virtuale
SWAP
Quando è richiesta l’esecuzione di codice residente in pagine in memoria
virtuale è effettuato uno swap tra pagine in Memoria centrale e virtuale
PROGRAMMA MIO-1
PROGRAMMA MIO-3
PROGRAMMA TUO-1
PROGRAMMA SUO
PROGRAMMA ALTRO-1
PROGRAMMA TUO-2
PROGRAMMA ALTRI-1
PROGRAMMA NUOVO
PROGRAMMA MIO-2
PROGRAMMA MIO-4
PROGRAMMA TUO-3
PROGRAMMA TUO-4
PROGRAMMA ALTRO-2
PROGRAMMA ALTRI-2
20
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 39
Gestore della memoria
Ai moduli di programmi del Sistema Operativo, ed alle strutture dati da essi
usate, sono assegnate particolari e specificate porzioni della memoria riservate
unicamente al Sistema Operativo (tipicamente indirizzi più ‘alti’ o ‘in fondo’)
La memoria viene suddivisa in memoria di modo Supervisore e memoria di
modo Utente:
• nella memoria di modo Supervisore sono caricati i processi del Sistema
Operativo e le strutture dati da esso utilizzate
• nella memoria di modo Utente possono essere caricati i processi utente
per la loro esecuzione
La suddivisione della memoria protegge i moduli e le strutture dati del Sistema
Operativo usati per una gestione corretta ed efficiente delle risorse
il codice utente non può accedere a zone di memoria di modo
Supervisore senza autorizzazione del Sistema Operativo stesso
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 40
Gestore delle periferiche• Gestisce l’accesso ai dispositivi di I/O
• Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte.
• Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita
• Controlla e maschera gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente ad uno stesso dispositivo
• Ogni processo ha a disposizione delle periferiche virtuali
• Due elementi di base:
• BIOS (Basic Input Output System): software usato per standardizzare l’accesso ai diversi tipi di periferica
• Driver: software per il controllo e funzionamento di interfacce Hw che consentono l’accesso a specifiche periferiche
21
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 41
Gestore delle periferiche• Il BIOS (Basic Input Output System) svolge anche le funzioni necessarie
all’avvio del computer (bootstrap)
• Inizializza lo Hw
• Controlla la memoria
• Verifica quali periferiche sono collegate
• Effettua diagnostica dei vari dispositivi / componenti
• Effettua il boot (caricamento) in memoria centrale della parte iniziale del sistema operativo
• Inizializza, e permette di modificare, il setup del computer
• Data e ora
• Numero e tipo di unità di memoria di massa
• ……
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 42
Gestore delle periferiche
I Driver sono moduli software per ‘guidare’ la comunicazione di flussi di dati
da e verso le periferiche
I driver sono responsabili delle seguenti principali funzioni :
• Rendono trasparenti le caratteristiche fisiche tipiche di ciascun specifico
dispositivo
• ‘Guidano’ la comunicazione dei segnali verso i dispositivi
• Gestiscono i conflitti, nel caso in cui due o più processi vogliano accedere
contemporaneamente allo stesso dispositivo
I programmi dei driver sono scritti specificamente per ciascun dispositivo e,
in genere, sono forniti dal costruttore del dispositivo
22
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 43
• Obiettivo:
gestire l’allocazione fisica dei dati nelle memorie di massa, consentendone
l’archiviazione ed il reperimento
presentare all’utente l’organizzazione logica dei dati e le operazioni che è
possibile compiere su di essi.
• Operazioni di base di un file system:
– Memorizzazione (scrittura) di dati nelle memorie di massa
– Recupero (lettura) di dati precedentemente memorizzati;
– eliminazione (cancellazione) di dati obsoleti;
– modifica/aggiornamento di dati preesistenti;
– copia di dati (e.g. da HD a USB-pen) per backup o per il trasferimento;
– …
servizi forniti sia ai programmi applicativi che direttamente agli utenti.
File system
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 44
File system
FILE
- File : l’oggetto elementare su cui opera il file system
- Una raccolta di dati registrati su memoria di massa
(il file è visto dal S.O. come una sequenza di byte)
Contenitore logico di informazioni (dati/istruzioni) permanenti
…. dal punto di vista dell’utilizzatore ...
…. dal punto di vista del S.O.
23
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 45
File- Caratterizzato da:
• Identificatore (nome.estensione)
• Periferica (device) e percorso sulla periferica su cui è memorizzato
• Data creazione
• Dimensione
• Posizione effettiva dei dati nella memoria di massa
• Altre informazioni
• applicazione sw che consente all’utente di “usare” il file
• data di ultima modifica
• diritti di accesso al contenuto del file
• …
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 46
testo (ASCII): una sequenza di caratteri
es. programma sorgente (es. in linguaggio C)
binari: una sequenza di byte
eseguibili (programmi)
non eseguibili (es. immagine, documento word, foglio di calcolo)
Alcuni S.O. (es. MS-Windows) associano tipologie diverse a file prodotti
con programmi diversi (es. Word, Excel, ...)
Tipi di File
Una prima distinzione di massima
I file di dati prodotti da un programma possono essere di
testo o binari (dipende dal programma)
24
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 47
… un raccoglitore in cui sono memorizzati tutti i (nomi dei) file, più
tutta una serie di informazioni ausiliarie...
Il Catalogo (directory o cartella)
I file sono organizzati in Cataloghi, detti anche directory o cartelle
… data e ora di creazione / ultima modifica, dimensioni, autore, diritti
di accesso ...
… una directory (cartella) al suo interno conterrà file e/o altre cartelle ...
… una direcory è considerata essa stessa un file ...
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 48
Organizzazione gerarchica delle directory
Le directory sono organizzate in una struttura gerarchica
\
f 1 . . . f n D 1 D i . . . . . . D n
f i1. . . f in D i1 D in. . .
. . . \:radice
f:file
D:cartella
… tipicamente, la radice dell’albero è costituita dall’unità di memoria di
massa ...
… la gerarchia è rappresentabile secondo un albero ...
25
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 49
Nomi di file e directory
Tipicamente i nomi di file si compongono di un nome e di un’estensione
Nomefile.Estensione
nome del file In genere 3 lettere associate al
“tipo” di file
- …. In genere nomi lunghi fino a
254 caratteri
… regole per la composizione del nome
dei file (possone essere diverse per diversi
S.O.) ...
- Es: in MS-Windows …. L’estensione:
.doc è associata a file prodotti con MS-
Word
.mdb a file prodotti con MS-Access
.xls a file prodotti con MS-Excel
.exe a file eseguibili
N.B. in UNIX non c’è lo stesso concetto di
estensione …
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 50
Nome di file e directory
Il nome di un file può essere completato con l’indicazione (percorso)
delle directory in cui esso è contenuto… il nome completo di un file individua quel file specificandone la
collocazione nella struttura gerarchica del file system …
… il nome completo di un file specifica il percorso lungo l’albero della
gerarchia delle directory per raggiungere la sua collocazione ...
percorso \ nomefilePercorso => le directory da attraversare lungo
l’albero per raggiungere la collocazione del file
\ => separatore tra nomi directory
Il nome di un file individua univocamente un file all’interno di una
directory… in una directory non possono esserci più file con lo stesso nome …
… in directory diverse possono esserci file con lo stesso nome …
Il nome completo di un file è indicato con la notazione
26
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 51
Nome di file e directory
Il percorso individua le directory da percorrere per raggiungere la
cartella che contiene il file
Il percorso può essere:
Assoluto: parte dalla radice
Relativo: parte dalla directory corrente
Esempio, in MS-Windows:
C:\Programmi\Microsoft Office\Office\Excel.exe
… è un percorso assoluto…
didattica\elementi_di_Informatica_2002_03\sistop.ppt
… è un percorso relativo …
Il simbolo .. indica, tipicamente, la directory padre di quella corrente
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 52
Nome di file e
cartelle: esempi
Ricerca Didattica Uffici
C:
Corsi
. . .. . .
EI
. . .
directory corrente
Percorso relativo:
Corsi\EI
Lab. . .
Percorso assoluto:
C:\Didattica\Corsi\EI
..\Uffici\Lab
directory padre
27
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 53
Percorso assoluto:
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 54
Volumi
- Le unità disco (più in generale, le memorie di massa) sono dette volumi
- Ogni unità disco ha una sua struttura gerarchica
- Esiste un’unità corrente ...
- Bisogna anteporre l’identificativo del volume al percorso (se l’unità non è
corrente)
- il volume è la radice della gerarchia… regole diverse per identificare i volumi in differenti S.O. ….
In genere, per far riferimento ad un file, oltre al percorso, è necessario far
riferimento anche al supporto di memorizzazione (es. unità disco)
A: Floppy Disk
C: Disco rigido
D: CD-ROM
Esempio:
denominazioni standard in MS-DOS e
Windows (ma potrebbero essere diverse):
Esempio percorso assoluto sull’unità C: C:\Didattica\Corsi\FI
Esempio percorso assoluto sull’unità A: A:\Corsi\FI
28
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 55
Visualizzazione struttura
gerarchica delle Directory
sul volume dello hard disc
C: in MS- Windows
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 56
Operazioni su file (e directory)
- creazione
- cancellazione
- accesso
- copia / spostamento (da un catalogo all’altro)
- condivisione / protezione
… una operazione su una directory è effettuata su tutti gli elementi in
essa contenuti …Esempio:
la cancellazione di una directory comporta la cancellazione di tutti gli elementi
in essa contenuti
29
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 57
Interprete dei comandi
• Modulo del SO direttamente accessibile dall’utente
• Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o
dispositivi di point&click) e di attivare i programmi corrispondenti.
• Le principali operazioni svolte sono:
– Leggere il comando immesso e riconoscere la sua correttezza sintattica
– Interpretare il comando immesso
– Attivare gli appositi moduli del S.O. per eseguire il comando
• caricamento dalla memoria di massa del programma relativo al comando nella memoria
centrale;
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 58
Linguaggio di comandoIl dialogo tra l’utente ed il S.O. avviene tramite un linguaggio di comando
Il dialogo si può attuare con tecniche diverse, in base al tipo di interfaccia
utente :
- FRASIUso di interfacce utenti a linea di comando
(o ‘a caratteri’)
Comandoparola chiave esplicativa
del comando
oggettielementi su cui viene compiuta
l’azione
[opzioni]modalità di esecuzione
del comando
Esempio, per visualizzare la lista dei file contenuti in una directory:
• in MS-Dos: dir miadirectory /p
• in UNIX: ls –l miadirectory
Ciascun comando è esplicitato con una frase la cui forma generica è:
30
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 59
Directory corrente
Nuova Directory
corrente dopo
comando cd
Comando dir /p
Per visualizzare il
contenuto della
directory corrente
comando cd per
cambiare directory
.. = directory madre
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 60
Selezione del comando da una lista a
video (menù) di possibili operazioni da
intraprendere
Linguaggio di comando
Uso di Interfacce grafiche
(GUI - Graphical User Interface)
a Menù
Selezione di ideogrammi (icone) atti a
ricordare l’operazione da effettuare;
azione specificata da uno o più “clic”
del mouse
a Icone
Vantaggi: facilitazione dell’uso che risulta più immediato e meno mnemonico
31
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 61
Il controllo degli accessi• Identificazione degli accessi al sistema.
– Associare a ogni utente un account (login) e una parola d’ordine (password).
– All’interno del sistema operativo, in un apposito archivio, è contenuta la lista di
tutti gli account e delle relative password: solo se viene specificato un account
fra quelli previsti (utente abilitato) e la password corrisponde a quella
memorizzata (certificazione di identità) viene consentito l’accesso al sistema.
• Questo consente di personalizzare il sistema, per esempio definendo:
– la distribuzione dei costi di gestione fra i vari utenti;
– la visibilità del sistema in termini di porzione del file system complessivo,
periferiche e programmi applicativi disponibili;
– la personalizzazione dell’ambiente operativo.
• Consente di controllare gli accessi ai file:– livello di protezione a livello di file o di directory;
– altro metodo: Access Control List
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 62
File system di rete
• Un sistema operativo che consente una gestione distribuita del
file system deve:
– integrare in modo organico i singoli file system dei calcolatori della rete;
– risolvere i problemi dell’univocità dei nomi di file e directory per i
calcolatori della rete;
– consentire un accesso efficiente anche a file presenti su calcolatori
remoti.
• Questi requisiti vengono soddisfatti con un file system di tipo
client-server.
32
Elementi di Informatica a.a. 2020/21 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 63
Virtualizzazione delle risorse di rete
• Estendere anche a processi in esecuzione su calcolatori
diversi il principio di virtualizzazione delle risorse.
• Condividere in modo trasparente dati, periferiche e unità
di elaborazione.
• In particolare si tratta di poter gestire le periferiche e il file
system.