Modulo 3
Software
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Cosa è il software
E’ l’insieme di programmi che consente al
computer di funzionare e di svolgere le funzioni
richieste dall’utente.
Esistono fondamentalmente due tipologie di
software:
• Software di sistema: gestisce il funzionamento
delle varie parti del computer e l’interazione tra
di esse
• Software applicativo: svolge i compiti richiesti
dall’utente
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Esempi di software di sistema ed
applicativi
Software di sistema Software applicativi
Sistema Operativo
Programmi per videoscrittura, gestione
fogli di calcolo, gestione database
Compilatori
Programmi CAD (computer aided
design)
Internet browser, gestione posta
elettronica
Device drivers
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Il sistema operativo
Il sistema operativo è un software (di sistema) che controlla
l’esecuzione dei programmi applicativi e funge da
interfaccia tra l’utente e l’hardware.
Il sistema operativo realizza quindi una sorta di macchina
virtuale che offre funzionalità di alto livello svincolando
l’utente dai dettagli di basso livello relativi all’hardware del
calcolatore. Pertanto macchine aventi un’architettura
differente a livello hardware possono essere utilizzate allo
stesso modo se su di esse è installato lo stesso sistema
operativo.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Il sistema operativo
•
•
•
•
Un generico sistema operativo si compone delle
seguenti parti:
Kernel: fornisce le funzionalità di base per tutte le
altre componenti del sistema operativo
Interfaccia utente: consente agli utenti di interagire
con il sistema operativo
Spooler: gestisce la coda in cui vengono memorizzati i
dati in attesa di essere stampati
Gestore del filesystem: si occupa della gestione dei
file sui dispositivi di archiviazione
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Il sistema operativo
• Gestore dei processi: provvede all’esecuzione dei
processi utente e di sistema.
• Gestore della memoria: provvede ad allocare la memoria
e a suddividerla tra i vari processi
• Gestione I/O: si occupa della gestione delle operazioni di
input/output mettendo a disposizione dell’utente
procedure di alto livello che mascherano l’hardware dei
dispositivi di I/O (lettura e scrittura di dati sul disco, etc.)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Il sistema operativo
Il sistema operativo provvede anche a gestire in
modo efficiente le risorse messe a disposizione
dalll’hardware assegnandole ai processi ed agli
utenti che ne fanno richiesta.
Le risorse che il sistema operativo gestisce sono
le seguenti:
• Processore
• Memoria
• Dispositivi di input/output (I/O)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Interazione tra utente e sistema operativo
L’interazione tra l’utente ed il sistema operativo
può avvenire in due modi distinti:
• Tramite riga di comando ovvero un interfaccia
testuale in cui devono essere digitati i comandi
• Tramite l’interfaccia grafica o GUI (Graphical User
Interface)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Interfaccia testuale
• L’utente deve impartire i comandi tramite la
tastiera ovvero digitando i comandi nella sintassi
tipica del sistema operativo che si sta utilizzando
• Tale approccio è estremamente potente ed ha il
vantaggio, a differenza delle interfacce grafiche, di
richiedere un minimo dispendio di risorse per il
suo funzionamento
• Non è indicato per gli utenti alle prime armi in
quanto richiede la conoscenza della sintassi dei
comandi
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Esempio di interfaccia testuale
Il comando da
eseguire viene
digitato subito
dopo il “prompt”.
Per confermare
l’immissione del
comando si preme
“invio”
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
GUI
• La GUI è un’interfaccia grafica che facilita
notevolmente l’interazione tra l’utente ed il
sistema operativo.
• L’interazione tra utente e sistema operativo è
molto più intuitiva in quanto non richiede la
conoscenza della sintassi dei comandi ma si basa
sull’utilizzo del mouse, delle icone e dei menù
• La facilità di utilizzo è ottenuta a discapito di un
maggiore dispendio di risorse di calcolo
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Esempio di interfaccia grafica
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Cosa è un processo
E’ necessario distinguere tra programmi e processi.
programma
È un insieme di istruzioni
finalizzato all’esecuzione
di un determinato compito
processo
Oltre alle istruzioni comprende
lo stato corrente delle variabili
memorizzate nella memoria
centrale e nei registri della
CPU
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Processi
E’ possibile distinguere i processi in esecuzione
in due categorie:
• Processi utente: sono relativi ai programmi
applicativi mandati in esecuzione dall’utente (o
dagli utenti)
• Processi di sistema: sono processi del sistema
operativo per la gestione del sistema e delle
risorse
In genere la CPU esegue sia processi di sistema
che processi utente.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Sistemi operativi multiutente
Un sistema operativo multiutente riesce a gestire diversi
utenti attivi nello stesso momento sulla stessa macchina
ovvero più utenti possono utilizzarlo contemporaneamente
attraverso dei terminali connessi ad una stessa macchina
Sistemi operativi multitasking
Un sistema operativo è detto multitasking se è in grado di
eseguire contemporaneamente più processi
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Gestione dei processi
Politiche di scheduling
Per eseguire più processi contemporaneamente il job
scheduler provvede a selezionare il processo da
mandare in esecuzione.
Tra le varie politiche di scheduling ricordiamo le
seguenti:
• Con priorità: ad ogni processo viene assegnato un
livello di priorità che può essere variato durante
l’esecuzione dello stesso per consentire l’esecuzione di
altri job o in seguito alle operazioni richieste dal
processo (ad es. richiesta di esecuzione di operazioni di
I/O)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Gestione dei processi
Politiche di scheduling
• Round-robin: i processi vengono inseriti in una coda di
attesa la cui disciplina di gestione è di tipo FIFO (First in
First out) ovvero il primo processo ad essere eseguito è il
primo ad essere stato inserito nella coda. Per dare l’illusione
della simultaneità nell’esecuzione di più processi ad ogni
processo viene assegnato un quanto di tempo terminato il
quale l’esecuzione dello stesso viene sospesa
temporaneamente per passare all’esecuzione di un nuovo
processo. Dopo la sospensione un processo torna in coda
d’attesa. Per poter riprendere l’esecuzione di un processo
sospeso è necessario salvarne preventivamente lo stato
prima dell’interruzione.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Gestione della memoria
Il sistema operativo provvede anche a ripartire la
memoria disponibile tra i vari processi in
esecuzione evitando che un processo vada a
scrivere dati in una zona di memoria che è già
stata allocata ad un altro processo (protezione
della memoria).
Grazie al gestore della memoria è come se ogni
processo disponesse di una memoria dedicata.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Partizionamento di un disco
Mediante il partizionamento è possibile suddividere un
disco fisico in più volumi o partizioni.
La suddivisione logica di un disco fisico in partizioni
consente la coesistenza sullo stesso disco fisico di più
sistemi operativi (ad es. Linux e Windows XP).
In ogni caso, indipendentemente dalla presenza o meno di
più sistemi operativi, le singole partizioni appaiono al
sistema operativo come dei dischi fisici distinti.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Formattazione di un disco
E’ un’operazione che consente di preparare un disco (hard
disk, floppy disk, chiave USB, etc.) per la
memorizzazione dei dati mediante la creazione di un
filesystem ovvero delle strutture necessarie per la
scrittura, la lettura, lo spostamento e la cancellazione dei
file.
Esistono due tipi di formattazione:
• Ad alto livello: cancella le informazioni sui file ma non il
contenuto. Prima che i dati vengano sovrascritti è
possibile recuperarli tramite appositi programmi.
• A basso livello: prevede la cancellazione fisica dei dati
con conseguente impossibilità di recuperarli. E’, in
genere, effettuata dal costruttore del supporto e, solo
raramente, dall’utente.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Blocco di boot
Il blocco di boot contiene una routine in grado di
caricare il sistema operativo e di avviarne
l’esecuzione. Il trasferimento di tale routine dal
blocco di boot alla memoria RAM viene
comandato da un’altra routine (BIOS),
memorizzata in una memoria ROM o FLASH,
che provvede anche all’inizializzazione dei
registri della CPU e dei controller dei dispositivi.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Device drivers
Esistono due categorie di driver di dispositivo:
Driver fisici: sono dispositivi hardware che
sovrintendono al funzionamento delle varie
periferiche. Sono detti anche device controller
Driver logici: sono dei software che consentono di
mascherare i dispositivi fisici fornendo all’utente
delle funzionalità di alto livello
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Esempi di sistemi operativi
• Sistemi operativi Microsoft: MSDos,
Windows 95, 98, 2000, NT, XP, Vista
• Sistemi operativi Apple
• Sistemi operativi Unix/Linux
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Attributi di un file
Il S.O. associa ad un file i seguenti attributi:
• Nome: identifica il file all’interno del filesystem. Spesso il
nome è seguito da una estensione che identifica la tipologia
del file (ad es. exe per un file eseguibile, .txt per un file di
testo, etc.)
• Dimensioni del file espresse in KB
• Date di creazione, modifica ed ultimo accesso al file
• Percorso (path) del file all’interno del filesystem
• Permessi di lettura, scrittura ed esecuzione da parte del
proprietario, del gruppo di appartenenza di quest’ultimo e
di tutti gli altri utenti.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Operazioni su file
•
•
•
•
•
Il S.O. consente di effettuare le seguenti operazioni su
di un file:
Creazione
Cancellazione
Spostamento
Salvataggio
Modifica degli attributi (nome, permessi di lettura,
scrittura, proprietario, etc.)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Struttura gerarchica del filesystem
Per facilitare il reperimento delle informazioni all’interno
di un filesystem quest’ultimo viene in genere organizzato
secondo una struttura gerarchica ad albero in cui i nodi
corrispondono alle directory e le foglie ai file. La radice
dell’albero coincide, invece, con la radice dell’intero
filesystem.
Directory radice
/
documenti/
File1.exe
File2.exe
immagini/
File
Appunti.txt
Foto.jpg
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Directory
• La directory è un tipo di file speciale che
contiene informazioni su altri file
• Il concetto di directory è di fondamentale
importanza per la realizzazione di una
struttura gerarchica nel filesystem.
• Visualizzare il contenuto di una directory
significa visualizzare l’elenco dei file e delle
eventuali sub-directory contenuti all’interno
della stessa ed i loro attributi
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Path assoluti e relativi
I file e le directory all’interno del filesystem sono
identificati da un path name. Esistono due
differenti tipologie di path:
Path assoluti: specificano il percorso o la posizione
del file a partire dalla radice del filesystem. Ogni
file o directory è identificato in modo univoco da
un path assoluto.
Path relativi: specificano il percorso di un file (o di
una directory ) a partire da una directory che lo
contiene. Per uno stesso file si possono avere più
path relativi.
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Path assoluti e relativi
Sintassi
Nei sistemi operativi Unix/Linux per separare i nomi dei
file e delle directory quando si specifica un path (assoluto
o relativo) si utilizza il simbolo / (slash) mentre nei
sistemi operativi della famiglia Windows si utilizza il
simbolo \ (backslash).
Esempi:
Path assoluto: /documenti/immagini/isole_eolie/stromboli.jpg
Path relativo: / isole_eolie/stromboli.jpg (path relativo alla
directory: /documenti/immagini/)
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Path assoluti e relativi
Simbologia
“padre”
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè
Fine Modulo 3
Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè