Sistemi operativi
e componenti software
Corso di Idoneità di Informatica
Contenuto
•
•
•
•
Introduzione ai sistemi operativi
Gestione dei file e delle directory
Rappresentazione dei dati e multimedialità
Il software applicativo
Sistemi operativi e
software di base
• La componente software di un sistema informatico
è costituita da un insieme di programmi
– specifici per un determinato problema (software
applicativo)
– rivolti alla gestione dell’intero sistema
(software di base)
• La parte principale del software di base è detta
sistema operativo
Principali sistemi operativi
•
•
•
•
MS-DOS, il primo sistema operativo per PC
OS/2, un sistema operativo alternativo per PC
Windows 95/98/2000, attuali sistemi operativi per PC
Windows NT, il sistema operativo per PC utilizzati
come server di rete
• System 8, il sistema operativo per Macintosh Apple
• Unix, uno dei sistemi operativi più potenti e diffusi
• Linux, versione di Unix per PC
Architettura di un sistema
operativo
• Software
applicativo
•Interprete comandi (shell)
•Gestione dei file
•Gestione delle periferiche
•Gestione della memoria
•Gestione dei processi
HW
Gestione dei processi
• Il multitasking (esecuzione di più programmi
contemporaneamente) è consentito da molti sistemi
operativi
• Il quasi parallelismo è solitamente gestito tramite la
tecnica del time-sharing
• Ogni processo viene eseguito al massimo per un
“quanto” di tempo (ad esempio 100 ms)
• L’esecuzione poi passa al processo successivo, e poi al
successivo, ecc., fino a tornare al primo e così via
Multitasking
CPU
Foglio elettronico
Trasf. file
Posta elettonica
Word processor
Browser
Calcolatrice
Memoria virtuale
• Un servizio offerto dalla gestione della memoria è la
cosiddetta memoria virtuale
• E’ possibile eseguire programmi più grandi della
memoria centrale caricando in memoria solo alcuni
parti (pagine) del programma
• Quando serve una pagina del programma residente su
disco avviene la sostituzione di una pagina in memoria
con quella desiderata
Memoria virtuale
Gestione delle periferiche
• Il sistema operativo consente all’utente di
effettuare operazioni di lettura e di scrittura con le
periferiche con comandi indipendenti dalla
struttura fisica. Ciò è realizzato tramite
• driver fisici: effettuano a livello fisico (hardware)
il trasferimento dei dati
• driver logici: effettuano un’interfaccia (software)
tra i programmi applicativi e le periferiche
Interprete comandi
• E’ l’unica parte del sistema operativo visibile
all’utente
• L’interprete comandi interpreta i comandi inviati
dall’utente (da tastiera o con il mouse) e li esegue
attivando i programmi corrispondenti o
effettuando le operazioni richieste
Sicurezza e protezione
• Un sistema operativo multiutente deve possedere un
meccanismo per identificare gli utenti
• Il sistema più usato è quella di attribuire a ciascun
utente una login ed una password
• Ad ogni utente può essere attribuito un costo per le
risorse da lui usate
• Si può restringere a certi utenti l’accesso al file system e
alle risorse
• L’utente può avere un proprio ambiente personalizzato
Il file system
• Tra i compiti più importanti del sistema operativo
vi è la gestione dei file (file system) che si occupa
di gestire le informazioni memorizzate nelle
memorie di massa organizzandole logicamente e
facilitando le operazione su di esse
File
• Un file è una contenitore di informazioni
identificato da un nome mnemonico (filename) e
memorizzato in una delle memorie di massa
• Il filename può avere un suffisso (estensione) che
rappresenta il tipo di informazione che il file
contiene ed è solitamente associato al programma
con cui è stato creato il file
Esempio di filename
• Ad esempio una lettera può essere memorizzata
nel file
domanda_concorso.doc
in cui il suffisso .doc indica che il file in questione
è un documento creato con Microsoft Word
File system
• La maggior parte dei sistemi operativi esistenti
adotta un file system gerarchico
• Tutti i file vengono suddivisi in directory o
cartelle
• Le varie directory sono strutturate ad albero, la cui
radice è detta directory principale (o ROOT)
Directory
• Una directory è un contenitore logico che può
contenere file ed altre directory
• Una directory ha un nome che la contraddistingue
dalle altre directory
• Lo scopo principale delle directory è di catalogare
i file presenti nel dispositivo di memorizzazione
Esempio di file
system gerarchico
ROOT
lettere
concorso1.doc marco
foto.jpg
disdetta
ordini
Genn99.xls
sting.mp3
evasi
directory
lettera1.doc lista.doc
file
Pathname
• Ogni file si trova in una sola directory, la quale, a
sua volta, si può trovare in un’altra directory (e
così via)
• All’interno della stessa directory non possono
esistere più file con lo stesso nome
• Il percorso per arrivare dalla ROOT al file in
questione si chiama pathname
Pathname in
MS-DOS e Windows
• la directory principale si chiama \
• Nello specificare il percorso le directory sono
separate dal carattere \
• Ad esempio il percorso
ROOT  lettere  marco  lista.doc
viene indicato con
\lettere\marco\lista.doc
Unità
• Il file system può gestire file memorizzati in più
memorie di massa (floppy disc, hard disc, CD-Rom,
unità di rete, ecc.)
• Ad ogni dispositivo di memoria di massa in MS-DOS e
Windows è associata una lettera identificativa (che
viene aggiunta al pathname)
A: e B: sono i floppy disc
C: è l’hard disc
D: è il CD-Rom
Operazioni fondamentali sui file
•
•
•
•
•
•
Creare un file
Rinominare un file
Cancellare un file
Copiare un file
Spostare un file
Aprire e/o modificare un file
Creazione di un file
• Un file può essere creato solo utilizzando dei
particolari programmi applicativi
• Ad esempio una file contenente una lettera può
essere creato usando Microsoft Word
• Quando un file viene creato gli viene associato il
filename e viene memorizzato nella directory e
nell’unità voluta dall’utente
• Solitamente il programma assegna automaticamente
l’estensione al filename
Rinominazione
• Rinominare un file significa cambiare il suo
filename
• Non si può dare un nome di un file già esistente
nella stessa directory
• Cambiando l’estensione il file potrebbe non essere
più letto con il programma con cui è stato creato
Cancellazione
• Cancellare un file significa eliminarlo dal file system
• La cancellazione solitamente avviene a livello
logico: lo spazio occupato dal file cancellato non
viene liberato immediatamente, ma viene marcato
come libero
• In molti sistemi operativi un file cancellato è
irrecuperabile
Copia
• Copiare un file significa creare un nuovo file
identico al precedente
• Ha senso creare una copia di un file in un’altra
directory o in un’altra unità (es. da hard disc a
floppy disc)
• E’ possibile anche creare una copia di un file nella
stessa directory attribuendogli un altro nome
Spostamento
• Spostare un file significa portarlo in un’altra
directory o in un’altra unità
• Questa operazione corrisponde ad un’operazione
di copia del file seguita dalla cancellazione del file
originario
• E’ possibile spostare un file solo se nella directory
di destinazione non esiste già un file con lo stesso
filename
Apertura e modifica di un file
• Un file può essere aperto, cioè se ne può leggere il
contenuto, e modificato solo attraverso il
programma con cui è stato creato
• Ad esempio un file documento scritto con Word
può essere riletto solo con Word o programmi che
siano in grado di trattare lo stesso formato
Operazioni sulle directory
•
•
•
•
•
Creare una directory
Cancellare una directory
Spostare una directory
Copiare una directory
Rinominare una directory
Creare una directory
• Per creare una directory si usa dei comandi
particolari del sistema operativo
• Quando la directory viene creata le viene associato
un nome e viene memorizzata nella directory e
nell’unità voluta dall’utente
Cancellare una directory
• Cancellare una directory significa eliminarla dal
file system
• In molti sistemi operativi ciò è possibile solo se la
directory è vuota (cioè non contiene né file né
altre directory)
Altre operazioni
• E’ possibile rinominare una directory in modo
analogo ad un file
• E’ possibile inoltre copiare e spostare una
directory in altre directory e/o unità: tutti i file e
tutte le directory contenuti nella directory copiata
o spostata vengono copiati o spostati a loro volta
Interazione con il sistema
operativo
• Esistono sistemi operativi con cui è possibile
interagire digitando dei comandi che eseguono le
operazioni viste in precedenza (MS-DOS, Unix,
ecc.)
• Windows permette la gestione dei file e
l’interazione con il sistema attraverso
un’interfaccia visuale e l’utilizzo del mouse
Interfaccia a caratteri
Interfaccia visuale
Altri programmi
del software di base
• Programmi di utilità: formattazione,
deframmentazione, scanning del disco
• Programmi per lo sviluppo di applicazioni:
interpreti, compilatori, editor, debugger
Rappresentazione binaria
• Ogni tipo di dato è rappresentato da una
successione di byte, che a loro volta sono
sequenze di otto bit
• Un bit può assumere solo i valori 0 e 1
spento
0
acceso
1
Byte e numeri binari
• Un byte è un numero binario composto da 8 bit
• Un byte può rappresentare i 28 =256 numeri interi
compresi tra 0 e 255
128
64
0
0
32
16
8
4
2
1
0
1
0
1
1
0
16+4+2=22
Rappresentazione
dell’informazione numerica
• I numeri interi sono rappresentati come
successioni di byte (2, 4 e 8 byte)
• Molte macchine usano interi a 32 bit (4 byte): 1 bit
per rappresentare se il numero è positivo o
negativo (segno), gli altri 31 per le cifre binarie
del numero
• con 32 bit si possono gestire numeri compresi tra
-2.147.483.648 e 2.147.483.647
Rappresentazione
dell’informazione testuale
• Un testo “puro” è memorizzato come sequenza di
caratteri (spazi e ritorni a capo compresi)
• Ogni carattere è rappresentato con un codice
numerico
• Il codice più diffuso è il codice ASCII, in cui ad ogni
carattere è associato un numero compreso tra 0 e 255
• Un codice emergente è l’UNICODE che consente di
rappresentare testi scritti in altri alfabeti (quello
arabo) o in ideogrammi (ad esempio il cinese)
Codice ASCII
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
13
‚
ƒ
„
…
†
‡
ˆ
‰
Š
‹
1
14
Œ
•
Ž
•
•
‘
’
“
”
•
2
15
–
—
˜
™
š
›
œ
•
ž
Ÿ
¡
¢
£
¤
¥
¦
§
¨
©
®
¯
°
±
²
³
3
!
"
#
$
%
&
'
16
4
(
)
*
+
,
-
.
/
0
1
17
ª
«
¬
5
2
3
4
5
6
7
8
9
:
;
18
´
µ
¶
·
¸
¹
º
»
¼
½
6
<
=
>
?
@
A
B
C
D
E
19
¾
¿
À
Á
Â
Ã
Ä
Å
Æ
Ç
7
F
G
H
I
J
K
L
M
N
O
20
È
É
Ê
Ë
Ì
Í
Î
Ï
Ð
Ñ
8
P
Q
R
S
T
U
V
W
X
Y
21
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
9
Z
[
\
]
^
_
`
a
b
c
22
Ü
Ý
Þ
ß
à
á
â
ã
ä
å
10
d
e
f
g
h
i
j
k
l
m
23
æ
ç
è
é
ê
ë
ì
í
î
ï
11
n
o
p
q
r
s
t
u
v
w
24
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
12
x
y
z
{
|
}
~
€
•
25
ú
û
ü
ý
þ
ÿ
Rappresentazione
dell’informazione testuale
• Un testo formattato viene invece memorizzato in modo
non standard, a seconda del programma con cui è stato
scritto (ad esempio Word)
• Esistono dei formati standard di diffusione dei testi (i
più usati sono PostScript e PDF) utilizzati per la
pubblicazione di articoli su Internet
• Un testo in questo formato può essere generalmente
letto e stampato, ma non può essere modificato
• Un altro formato per testi e ipertesti è HTML, usato per
scrivere le pagine web
Rappresentazione delle immagini
• Un immagine è solitamente rappresentata come
matrice di punti
• Ad ogni punto (detto pixel) è un associato un
codice che ne rappresenta il colore
• La più diffusa rappresentazione dei colori (RGB)
associa un codice numerico da 0 a 255 per
ciascuna componente elementare (rosso-verdeblu)
• In totale sono possibili 16.581.375 colori diversi
I pixel e la risoluzione
Rappresentazione delle immagini
• Questa rappresentazione (formato bitmap) ha
bisogno di 24 bit per ogni pixel (molto
dispendioso)
• Ad esempio un’immagine 640x480 pixel con
colori a 24 bit occupa 921.600 byte
• Con particolari accorgimenti si possono utilizzare
un numero minore di colori e ridurre lo spazio
occupato dall’immagine
Rappresentazione delle immagini
• Esistono formati compressi (tra i più diffusi vi
sono i formati JPEG e GIF) che consentono
attraverso particolari tecniche numeriche di
memorizzare immagini fotografiche di ottima
qualità in uno spazio molto minore
• Il formato JPEG in realtà non memorizza
fedelmente l’immagine ma sfrutta l’ulteriore
caratteristica che l’occhio umano non è in grado di
vedere che una piccola parte dei circa 17 milioni
di colori possibili
Rappresentazione
di dati audio
• I dati audio sono memorizzati attraverso un
campionamento dell’intensità del suono
• Ad esempio il suono stereo di qualità CD è campionato
a 16 bit per ciascun canale con una frequenza di 44100
volte al secondo (formato WAV)
• Esistono formati compressi, come il MPEG layer 3, che
consentono di ridurre molto lo spazio necessario alla
memorizzazione senza apprezzabili perdite di qualità
del suono
Rappresentazione di dati video
• Un video può essere rappresentato come sequenza di
immagini
• E’ un metodo molto dispendioso, ad esempio 30
fotogrammi (circa un secondo di filmato)
occuperebbe 640x480x3x30= 27.648.000 byte
• Esistono formati compressi (tipo MPEG, QuickTime,
MOV) che riducono notevolmente lo spazio
necessario sfruttando la caratteristica che tra un
fotogramma ed un altro ci potrebbero essere
relativamente poche differenze
Compressione video
Compressione dei file
• Un file o più file insieme possono essere
compressi o “zippati”
• La rappresentazione interna di questi file viene
cambiata in modo da occupare meno spazio: si
può immaginare che i dati vengano “abbreviati”
(tipo sig. per signore)
• Con i file di tipo testo si può arrivare a risparmiare
fino al 70-80% dello spazio originale
• Un file compresso non è leggibile né modificabile
Compressione dei file
• Quando serve un file compresso può essere
decompresso (“dezippato”) in modo da tornare ad
essere utilizzabile
• Comprimere dei file può servire per per fare
spazio a file più utili o per trasferirli più
velocemente (su dischetto, via rete, …)
• Un programma di compressione file molto usato
per Windows è WinZip (i file compressi hanno
estensione .zip)
Il software applicativo
• Esistono diversi tipi di software applicativo
• Software orizzontale: software ad ampia diffusione
e di utilizzo generale (ad es. un word processor)
• Software verticale: software scritto per particolari
compiti diffuso in particolari settori (es. gestione di
parcelle mediche)
• Applicazioni personalizzate: software scritto ad hoc
per una determinata azienda o cliente (ad es.
gestione dei treni per le Ferrovie dello Stato)
Il software applicativo
Tra gli svariati tipi di software applicativi “orizzontale” i
più utilizzati comunemente in azienda vi sono
• programmi di videoscrittura (word processor)
• fogli elettronici
• programmi di presentazione
• programmi di grafica
• programmi gestionali e di contabilità
• sistemi per la gestione dei database
Programmi di grafica
• Consentono di creare disegni, presentazioni e per
elaborare immagini preesistenti
• Utilizzano solitamente il mouse o strumenti simili
(penna ottica, tavoletta grafica) per interagire con
l’utente simulando il modo di disegnare su carta
• Esistono due tipi principali di programmi di
grafica: i programmi “paint” e i programmi
“draw”
Programmi di grafica
• I programmi di tipo “paint” permettono di lavorare
a livello di singolo pixel; sono usati ad esempio
per ritoccare fotografie o disegnare immagini a
mano libera
• I programmi di tipo “draw” permettono di
disegnare immagini come insiemi di linee, punti,
cerchi, ellissi, poligoni (grafica vettoriale) e di
effettuare rotazioni, ingrandimenti, cambiamenti
di angolatura; sono usati come strumenti di
progettazione (CAD)
Grafica in modo bitmap
Grafica vettoriale
Sistemi per la gestione dei
database
• Consentono di gestire grosse quantità di dati
strutturati (database) e di ricercare i dati in modo
veloce e potente
• Facilitano l’organizzazione dei dati evitando
ripetizioni e stabilendo relazioni tra i dati
• Regolano l’accesso dei vari utenti ai dati
permettendo di nascondere parte dei dati a
determinati utenti
• Permettono la definizione di vincoli sui dati che
vengono controllati dal programma stesso
Sistemi per la gestione dei
database
• Controllano l’accesso concorrente ai dati
permettendo l’utilizzo simultaneo ai dati da parte
di più utenti potenzialmente da qualunque
macchina
• Trovano il loro utilizzo in molti parti della
gestione di un’azienda, dalla contabilità alla
gestione del personale, fino alla gestione del
magazzino
• Tra i più diffusi sistemi di database (DBMS) per
PC si trovano Microsoft Access, Paradox, Oracle,
SQL Server, FoxPro
Scarica

Sistemi operativi I - Centro servizi informatici d`ateneo