Università degli Studi di
Salerno
Informatica
Contenuti del corso
n Introduzione all'Informatica e alla rappresentazione dell'informazione
n Architettura di un Calcolatore e alle sue principali caratteristiche tecniche e tecnologiche n Il concetto di Software ed introduzione al Sistema Operativo
n Elaborazione testi e Office Automation
n Reti di Calcolatori e principali strumenti di comunicazione in rete
Il concetto di Software ed
Il concetto di Software ed introduzione al Sistema Operativo
n
Introduzione al concetto di software
n
Il sistema Operativo
q
Struttura del Sistema Operativo
q
Principali caratteristiche di un Sistema Operativo
q
Tipologie di sistemi operativi
Introduzione al concetto di software
Software: insieme di programmi che vengono eseguiti dal sistema.
Il confine fra Hardware e Software è sfumato:
la “terra di nessuno” è occupata da uno strato di microprogrammi,
firmware, che sono scritti sulle memorie permanenti del calcolatore
direttamente dai costruttori del calcolatore.
Si distingue generalmente tra:
§
Software di sistema (o di base)
Il Software di Sistema: il Sistema Operativo
Per poter essere utilizzate da software applicativi o da utenti, le componenti
hardware di un calcolatore hanno bisogno di una serie di ulteriori strumenti
(di tipo software):
q
Tali strumenti/programmi vengono solitamente denominati software di
sistema o di base
;
q
vengono forniti a corredo dell’hardware con l’obiettivo di gestire in
modo efficace ed efficiente le risorse fisiche di un sistema informatico e
semplificare l’interazione dell’utente con il sistema;
Questo insieme di programmi prende il nome di Sistema Operativo:
q
mostra il sistema informatico all’utente come un erogatore di servizi;
Il Sistema Operativo: le Funzioni [1]
Il SO permette ad utenti o ad applicativi software un efficace ed efficiente
utilizzo delle risorse fisiche presenti nel sistema informatico:
q
garantisce la corretta elaborazione e trasmissione dell’informazione;
q
nasconde all’utente il problema della localizzazione delle risorse
permettendo allo stesso di accedere alle applicazioni da ogni luogo e in ogni
momento;
q
garantisce l’affidabilità, la disponibilità, la sicurezza e la privatezza dei dati;
q
favorisce l’interoperabilità fra dispositivi hardware e software che in genere
sono forniti da diversi produttori;
q
risolve il problema della limitazione delle risorse da utilizzare attraverso
un’opportuna gestione delle politiche di accesso alle stesse da parte di utenti
e applicativi (condivisione);
Il Sistema Operativo: le Funzioni [2]
..ovvero, si occupa di:
q
Esecuzione di applicazioni: gestisce operazioni del tipo caricamento di programmi,
inizializzazione di dispositivi, gestione di risorse, ecc.;
q
Accesso ai dispositivi di ingresso/uscita: maschera tutta la problematica del
controllo delle periferiche permettendo all’utente di operare in termini di
operazioni astratte;
q
Archiviazione di dati e programmi: fornisce all’utente la possibilità di organizzare
logicamente i dati;
q
Controllo di accesso: in sistemi che prevedono l’utilizzo condiviso di una stessa
risorsa è necessario introdurre meccanismi di protezione e di risoluzione di eventuali
conflitti;
q
Contabilizzazione: talvolta l’uso delle risorse può essere soggetto a monitoraggio al
fine di ottimizzare il tempo di risposta o di fatturare agli utenti il costo di impiego
del sistema;
Il Sistema Operativo: la struttura
All’interno di un SO si possono identificare/distinguere:
q
Sistema di gestione del processore
q
Sistema di gestione della memoria
q
Sistema di gestione delle periferiche
q
Sistema di gestione dei file (file system)
q
Sistema di gestione degli utenti e dei relativi comandi (interprete dei comandi)
q
Sistema di gestione della rete
Il SO è quindi un “insieme di programmi” in grado di “controllare” altri programmi eseguiti dallo stesso processore
Sebbene vi siano forti analogie fra applicativi e SO, vi sono importanti differenze:
o I SA hanno accesso ad un insieme ridotto di risorse(controllate dal SO).
o I SA non possono stabilire autonomamente quando e come accedere alle risorse
Il Sistema Operativo: la struttura
q I primi calcolatori non avevano un SO:
q chi produceva SA doveva tenere conto di questi aspetti (gestione risorse, accessi, ecc);
q critica la fase di identificazione e correzione degli errori;
q difficoltà di interazione tra l’utente e la macchina (dovuta alla mancanza dell’interfaccia utente) e all’efficienza di gestione delle risorse disponibili;
q la macchina consentiva l’esecuzione di un solo programma alla volta e doveva essere fissato in anticipo il tempo dedicato allo stesso (con conseguente introduzione di tempi morti):
elaborazione seriale dei programmi;
q I primi sforzi per soddisfare questi requisiti sono andati nell’ottica di ridurre l’impegno necessario per passare dall’esecuzione di un programma al successivo:
q conservare in memoria contemporaneamente diversi programmi oltre al SO;
q Si è passati dai sistemi uni-programmati a quelli multi-programmati:
q uni-programmato: in memoria risiede un solo applicativo (oltre che il SO);
Il Sistema Operativo: principali caratteristiche
q I benefici dell’approccio multiprogrammato sono evidenti:
q Caso uniprogrammato: il processore può eseguire un solo programma per volta -> un ridotto utilizzo del sistema
q Caso uniprogrammato: durante l’attesa per le operazioni ingresso/uscita il processore rimane inattivo attendendo il termine delle stesse
q Nei sistemi uniprogrammati è necessario scaricare il programma residente in memoria e caricare dalla memoria di massa un nuovo programma da mandare in esecuzione:
q soluzione accettabile solo quando i tempi di attesa (dovuti al processo) sono maggiori rispetto al tempo di caricamento di un programma dalla memoria di massa
q Nei sistemi multiprogrammati è possibile passare ad altri programmi già presenti in memoria in tempi molto brevi in quanto il tempo di accesso della memoria centrale è tipicamente molto inferiore rispetto a quello della memoria di massa
Il Sistema Operativo: principali caratteristiche
q Nell’ultimo periodo si è assistito allo sviluppo dei sistemi a partizione di tempo (time-sharing) che simulano un quasi parallelismo nell’accesso alle risorse da parte di più utenti e programmi;
q Al fine di evitare che la CPU venga utilizzata in modo esclusivo da un unico programma, il suo tempo viene idealmente suddiviso in unità elementari dette quanti
q I quanti possono essere assegnati in accordo ad alcune politiche predefinite ai vari programmi
q Un esempio di queste politiche può essere quella di assegnare a rotazione la disponibilità di un quanto di tempo della CPU ai vari programmi residenti in memoria (politica detta di round
robin):
q Un miglioramento può essere ottenuto prevedendo l’opzione che un programma possa rinunciare anche prima dello scadere del suo quanto di tempo alla disponibilità della CPU
Il Sistema Operativo: principali caratteristiche e tipologie
q Nei sistemi moderni il parallelismo nell’esecuzione ha portato a superare il concetto statico di programma ovvero l’entità di riferimento è diventata il processo:
q unità di esecuzione dinamica che include il programma che viene eseguito e il suo contesto di esecuzione;
q Il contesto di esecuzione è l’insieme dei dati che sono necessari perché il programma possa essere eseguito;
q In questo modo l’intera architettura del SO è concepita come una infrastruttura di supporto all’esecuzione concorrente di più processi da parte di più utenti.
q Il SO è funzionalmente caratterizzato dalla combinazione di un insieme di processi di servizio e
di un gestore (detto nucleo) che opera come sistema di controllo dei processi;
q In riferimento alle funzioni di gestione del processore che possono essere fornite in mutua esclusione ad un processo alla volta oppure virtualmente condivise, esistono due modelli organizzativi di riferimento:
Il Sistema Operativo: Tipologie – Modello monolitico
q Il SO è costituito da un unico processo che si preoccupa della gestione del sistema
q I processi applicativi richiedono al SO l’esecuzione di particolari servizi attraverso quelle che vengono dette chiamate di sistema
q Si definiscono quindi due modalità di funzionamento
1. Utente: usata per la normale esecuzione dei processi e dove non è possibile accedere
a tutte le risorse del sistema - il processore esegue il codice di un utente
2. Supervisore: permette lo svolgimento dei servizi richiesti al SO da parte di un
processo - la CPU passa automaticamente in questa modalità quando viene eseguita ad esempio una istruzioni di I/O (non possono essere gestite direttamente dai programmi).
Il Sistema Operativo: Tipologie – Modello a strati
q Caratterizzato da una strutturazione a strati
q Ogni strato è costruito a partire da quelli sottostanti e garantisce la modularità del sistema che si va a realizzare;
q Le funzioni realizzate dal SO sono ripartite in componenti fra loro indipendenti e implementate dai processi gestiti dal nucleo:
q solo il nucleo resta il componente del SO dipendente dalle caratteristiche hardware del calcolatore
q Vi è una notevole separazione fra i meccanismi e le politiche di gestione delle risorse che modo possono essere stabilite in modo indipendente dall’hardware
q il SO risulta fortemente portabile (con l’eccezione del nucleo) e adattabile a calcolatori diversi
Il Sistema Operativo: Tipologie – Modello a strati [1]
q La struttura classica di un SO a livelli o gnuno d ei q ua li corrispondente ad una
macchina virtuale: al di sopra del SO si trovano sia i programmi applicativi che quelli di
utilità
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware
q Ogni MV è un insieme di programmi che realizza funzionalità utilizzando i servizi forniti dal livello inferiore
q Ogni MV gestisce risorse specifiche del sistema semplificando l’interazione con esse
Il Sistema Operativo: Tipologie – Modello a strati [2]
Struttura di base di un calcolatore
dati
BUS
indirizzi controllo CPU Memoria di lavoro Memoria di massa Video/Tastiera (terminale)Interfaccia I/O Interfaccia I/O
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Il Sistema Operativo: Tipologie – Modello a strati [3]
Il Nucleo:
q Interagisce direttamente con l’hardware
q Si occupa dell’esecuzione dei programmi
q Gestisce la risposta ad eventi esterni generati dalle periferiche
q Attua una politica di alternanza nell’accesso alla CPU da parte dei processi in esecuzione
q Fornisce alle MV di livello superiore la visione di un insieme di unità di elaborazione virtuali dedicate ad ogni processo presente in memoria
Il gestore della memoria:
q Controlla la memoria centrale ed offre ad ogni processo uno spazio di memoria in cui operare;
q E’ chiamato a:
• Proteggere programmi e relativi dati caricati nella memoria di lavoro (evitando conflitti)
• Nascondere la collocazione fisica dei dati;
• Offrire alle macchine di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria a loro dedicata
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware
Il Sistema Operativo: Tipologie – Modello a strati [4]
Schema di funzionamento datiBUS
indirizzi controllo Memoria di lavoro Memoria di massa Video/Tastiera (terminale)Interfaccia I/O Interfaccia I/O
CPU virtuale
CPU virtuale
CPU
virtuale virtualeCPU
Processo Processo Processo Processo
Il Sistema Operativo: Tipologie – Modello a strati [5]
Il gestore delle periferiche
q Fornisce una visione astratta del sistema in cui i processi possono operare mediante periferiche astratte
q Maschera le problematiche connesse alla gestione di tali periferiche
q Risolve eventuali conflitti di accesso alla periferiche da parte di più processi
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware
Il Sistema Operativo: Tipologie – Modello a strati [6]
datiBUS
indirizzi controllo CPU virtuale CPU virtuale Processo Processo I/O Virtuale I/O Virtuale Schema di funzionamento Memoria di lavoro Memoria di massa Video/Tastiera (terminale)Interfaccia I/O Interfaccia I/O CPU
Il Sistema Operativo: Tipologie – Modello a strati [7]
Il gestore delle periferiche:
q Le funzionalità che un SO mette a disposizione dell’utente per interagire con le periferiche consentono l’esecuzione di operazioni di lettura e scrittura mediante comandi indipendenti dalla struttura hardware delle periferiche in questione. Ciò accade grazie all’introduzione dei:
§ Controller: dispositivi hardware che servono a effettuare a livello fisico le operazioni di trasferimento dei dati con le periferiche.
§ Driver: programmi finalizzati alla gestione delle periferiche. Sebbene vengano prodotti e forniti dai produttori delle periferiche stesse, essi fanno partea tutti gli effetti del SO.
Driver
q permetteno al SO di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un'interfaccia standard (registri del controllore della periferica) che ne considera solo il funzionamento logico.
q hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile.
q un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del SO per cui è scritto.
q non è possibile utilizzare driver scritti per un SO su uno differente perché l'interfaccia è generalmente diversa.
q Il driver è scritto solitamente dal produttore del dispositivo hardware dato che è necessaria una sua approfondita conoscenza
q A volte i driver vengono scritti da terze parti sulla base della documentazione tecnica rilasciata dal produttore, se questa è disponibile
Il Sistema Operativo: Tipologie – Modello a strati [8]
q I dati contenuti nella memoria di massa vengono strutturati attraverso la loro organizzazione in file.
q Un file viene identificato attraverso un nome (filename) composto da due parti:
q Nome vero e proprio: deciso dall’utente.
q Estensione: assegnata (generalmente) dal sistema in accordo alla tipologia di programma che
ha generato il file. Esempi di estensione:
q Exe: file eseguibili
q Doc: file generati dal programma di elaborazione testi word
q Txt: file di testi generici
q Waw: file audio
q Mp3 : file audio
q Jpg: file immagine
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware
q La lunghezza del filename può avere delle limitazioni:
q MS-DOS aveva una lunghezza massima di 1 1 caratteri (8 per il nome e 3 per l’estensione)
q Windows XP o Unix (altri sistemi operativi) non hanno questa limitazione
q A d ogni file sono associate le seguenti informazioni:
§ Grandezza del file
Il Sistema Operativo: Tipologie – Modello a strati [9]
Immagini
Video
Canzoni
M are
Natale
Montagna
Capossela
Casa.bmp albero.bmp sci.bmp intro.mpg Maraja.mp3 pista.jpgRoot
q Se il file system avesse un’organizzazione monolitica si andrebbe incontro ad una serie di incovenienti quali per esempio l’impossibilità di non avere più file con lo stesso filename
q Per risolvere tali problemi i file vengono suddivisi in contenitori logici chiamati directory o cartelle
q La struttura secondo cui vengono organizzati file e cartelle è detta ad albero:
q Il file system contiene una radice (root) che può contenere file e directory (dette anche sub-directory) che a loro volta possono avere al loro interno file o altre directory
Il Sistema Operativo: Tipologie – Modello a strati [10]
q Ciascun file viene univocamente identificato attraverso il suo nome completo detto anche percorso assoluto:
q Il nome completo si ottiene scrivendo ordinatamente i nomi dei vari nodi che si incontrano a partire dalla radice e intervallati dal carattere di separazione \
q Esempio: nel lucido precedente il nome completo del file sci.jpg è
\immagini\montagna\sci.jpg
q Non è possibile avere nel file system due file con lo stesso nome completo ma è possibile avere due file con lo stesso filename a patto che essi siano in cartelle diverse.
q Durante le operazioni di gestione del file system è sempre definita in ogni istante una directory corrente che identifica la posizione attuale dell’utente nel file system
q E’ possibile quindi identificare un file anche con un suo percorso relativo;
q Se la directory corrente (nell’esempio del lucido precedente) è \video allora il file
Il Sistema Operativo: Tipologie – Modello a strati [8]
L’interprete dei comandi:
q è un modulo a cui l’utente può direttamente accedere
q La sua funzione è di interpretare i comandi che gli giungono e di attivare i programmi corrispondenti. Le operazioni che può svolgere sono:
§ Lettura dalla memoria di massa del programma da eseguire
§ Allocazione della memoria centrale
§ Caricamento del programma e dei relativi dati nella memoria allocata
§ Creazione e attivazione del processo corrispondente
Applicativi
Interprete dei comandi (shell) Gestore del file (file system)
Gestore delle periferiche Gestore della memoria
Nucleo Hardware