Informatica
Generale
Software
Il software
L’hardware da solo non è sufficiente per il
funzionamento dell’elaboratore ma è
necessario introdurre il software
… ovvero un insieme di programmi che
permettono di trasformare un insieme di
circuiti elettronici in un oggetto in grado di
svolgere varie funzioni
Il software
Una programmazione diretta della macchina
hardware da parte degli utenti è davvero difficile
l’utente dovrebbe conoscere l’organizzazione
fisica dell'elaboratore e il suo linguaggio
macchina.
 Ogni programma dovrebbe essere scritto
utilizzando delle sequenze di bit ed ogni piccola
differenza hardware comporterebbe una riscrittura
del programma stesso

Il software: perché?
L’utente deve:
usare nello stesso modo, o in modo
molto simile, macchine diverse dal punto
di vista hardware
 avere un semplice linguaggio di
interazione con la macchina
 avere un insieme di programmi applicativi
per svolgere compiti diversi

Macchina Virtuale
Si dice virtuale in quanto non esiste fisicamente ma
viene realizzata mediante il software (software di
base)


L'utente interagisce con la macchina virtuale
grazie ad un opportuno linguaggio di comandi
(semplice).
La macchina virtuale si preoccupa della
traduzione di ogni comando impartito dall’utente
nella sequenza di comandi riconosciuti dalla
macchina fisica sottostante che realizzano la
stessa funzione
Linguaggio di comandi
Il processore è in grado di eseguire istruzioni
scritte in un insieme di codici binari, detto
linguaggio macchina

Codice Istruzione |
Argomento 1 |
Argomento 2

Usare direttamente il linguaggio macchina per
programmare è estremamente difficile

L’interfaccia del sistema operativo permette un
livello di programmazione molto semplice
Passaggio di informazioni

L’interfaccia del sistema operativo
permette un ……………….
Interfaccia =
1. Elemento di collegamento tra l’elaboratore e
un’entità esterna che consente il passaggio
delle informazioni da uno all’altra
2. Elemento di contatto o di intermediazione fra
entità, sistemi, cose, persone ecc ..
Software:: Classi
Conosciamo due classi di software:

Programmi Applicativi

Sistemi Operativi
Software: Programmi applicativi






programmi di video-scrittura (es. Microsoft Word)
browser, usati per “navigare il Web” e spedire posta
elettronica (es. MS Explorer, Netscape Communicator)
fogli elettronici, usati per manipolare e analizzare
numeri e dati (es. Microsoft Excel)
programmi per la gestione di banche di dati (database),
utilizzati per conservare ed elaborare dati strutturati
programmi per creare applicazioni
multimediali/grafiche, manipolare foto, fare
presentazioni con audio/video, ecc.
videogiochi
Software: Sistemi Operativi
Dos
 Windows 95, 98, 2000, XP … sVista
…Windows 7
 Linux/Unix
 BeOs
 Mac Os(Cheetah , Puma, Leopard)
 FreeBSD

Cosa è un Sistema Operativo
È il componente software fondamentale di un
sistema di calcolo.
È formato da un insieme di programmi che
interagiscono tra loro per realizzare due obiettivi:
1.
2.
Gestire efficientemente l’elaboratore e i suoi
dispositivi
Creare un ambiente virtuale per l’interazione
con l’utente
Classi di sistemi
I sistemi di elaborazione li possiamo
vedere come:
Calcolatori
 Organizzatori di informazioni
 Strumenti di comunicazione

Classi di sistemi I


Calcolatori: un sistema di elaborazione è un
dispositivo di calcolo molto veloce; il concetto
centrale è quello di algoritmo; lo strumento
principale di accesso ai servizi è il linguaggio di
programmazione
Ordinatori di informazioni: un sistema di
elaborazione è capace di archiviare, elaborare e
accedere a tanti dati; un sistema operativo è il
gestore del servizio di archiviazione; lo
strumento principale di accesso è l’interfaccia
del sistema operativo
Classi di sistemi II

Strumenti di comunicazione: un sistema di
elaborazione è capace di comunicare con altri
sistemi collegati in rete, trasportando quantità di
dati ad una certa velocità; il concetto centrale è
quello di servizio di comunicazione (posta
elettronica, WWW); lo strumento principale di
accesso ai servizi di comunicazione è il browser
Nota: ricordiamo anche che in molti casi i sistemi di
elaborazione si usano come giocattoli
Il sistema operativo
Dal punto di vista strutturale il sistema operativo
è formato da un insieme di livelli, che formano la
cosiddetta
struttura a cipolla
Idealmente l’utente è ignaro di tutti i dettagli delle
operazioni svolte ai livelli inferiori e conosce solo le
operazioni del livello più alto
Sistemi documento-centrici



L'utente di un computer di solito è interessato a
"manipolare" un documento mediante un
programma applicativo.
I sistemi operativi moderni ( Windows, MacOS,
Linux ) sono “documento-centrici”, cioè offrono
servizi di gestione per documenti di varia natura
(testi, grafica, audio, video, programmi)
I documenti vengono conservati da un servizio
chiamato “file system”, che contiene, organizza
e classifica i documenti.
Servizi documento-centrici

I servizi che un utente chiede al sistema
operativo riguardano tutti in ultima analisi
la manipolazione di archivi
Archivi
di dati (.xsl)
Archivi "documenti" ( .html, .doc)
Archivi programmi (.exe)
Archivi di archivi
Esempi






Strumenti di creazione e modifica di documenti
 editor: wordpad, MS Word, staroffice
Visualizzatori: Acroread Reader, ghostview
Strumenti di formattazione e stampa di documenti
 Acrobat distiller
 TeX, MS Frontpage
Strumenti di programmazione
Strumenti di archiviazione e compressione
 WinZip, tar, compress, gzip
Clienti di servizi di comunicazione
 Outlook Express, Eudora,
 Internet Explorer, Netscape, Konqueror, Mozilla
Funzionalità OS

Avvio dell’elaboratore
 Bootstrap
(caricamento in memoria centrale di
una parte del SO)
Gestione dei servizi
 Gestione dei dispositivi
 Interazione con l’utente (Interfaccia)

Servizi e funzioni

Comunicazione e gestione dell’informazione remota
 gestione di messaggi di posta elettronica
 remote login (telnet)
 remote file transfer (ftp)
 accesso servizi news (USENET)
 accesso servizi WWW

Funzioni
 Allocazione di risorse (processore, memoria,
dispositivi)
 Ottimizzazione della gestione (politiche)
 Soluzione dei conflitti di uso di risorse indivisibili
Esempi di Servizi

Il pannello di controllo di Windows
è una funzione chiave del sistema operativo
Windows che permette di configurare una serie di
comportamenti dei principali servizi del sistema
operativo
Servizi


Interfaccia amichevole: Nei sistemi più primitivi
(es. MSDOS) l’interfaccia utente è il terminale è
grafico si usano le interfacce grafiche e le loro
librerie (MacOS, Windows, X-Window di Linux)
Multiprogrammazione I primi sistemi operativi
per PC erano monoprogrammati; dagli anni ’90
è normale avere la funzione di multiprogrammazione, per cui in memoria centrale si
possono caricare simultaneamente più
programmi
Interfaccia OS

Quando c’è un’interfaccia testuale il sistema
operativo sollecita un comando testuale dal
video (shell DOS)

Quando c’è un’interfaccia grafica il s.o. facilita
l’utente proponendo sullo schermo un menu di
comandi selezionabili mediante mouse , che
permette anche di manipolare icone disposte su
una scrivania virtuale (desktop)
Esempio Interfaccia Grafica


L'interfaccia utente rappresenta il piano di una
scrivania (desktop) su cui alcune icone
rappresentano documenti, programmi o cassetti
(folders) apribili cliccando col mouse
Un sistema di menù definisce i principali servizi,
tra cui:
 come spegnere il computer
 come creare o cancellare un archivio
 come visualizzare il contenuto di un archivio
 come proteggere un archivio
Interfaccia dentro interfaccia

La nozione di macchina astratta permette di
costruire software molto complessi, per esempio
sistemi operativi emulati: in questo modo un
Macintosh può eseguire applicazioni Windows, o
Playstation
Lo screenshot seguente (www.uk.research.att.com/vnc)
mostra l’interfaccia di Windows emulata entro l’interfaccia
di un Macintosh
I processi del SO

Un sistema operativo è una macchina astratta
complessa. Viene di solito descritta definendo
un insieme di agenti chiamati processi

processi di interfaccia utente (shell e finestre)
 processi delle applicazioni
 processi di servizio (serventi)

Un processo, o agente, è un’attività controllata
da un programma, che si svolge su un
processore, ed è capace di interagire con i vari
dispositivi
OS Multiprogrammato

Un sistema operativo multiprogrammato include
parecchie distinte attività chiamate processi

Queste attività si alternano sul processore
(multitasking): quando un processo P1 si
sospende per una lettura o una scrittura, il
processore viene utilizzato da un altro processo
P2
I processi dunque non avanzano con continuità;
le loro attività sono interrotte per brevi intervalli
di tempo dato che condividono tra loro risorse
(processori, dispositivi)

Esempio
Processo 1
Processo 2
Processo 3
Processore utilizzato per eseguire un programma utente
Processore utilizzato dai programmi che controllano i dispositivi
Stati di un processo
az
i on
e
Attesa
so
tiv
ne
si o
en
sp
Ogni processo
durante la sua “vita”
alterna gli stati di
pronto, esecuzione,
e attesa passando
attraverso transizioni
di stato
ri a
t

as segnazione
Pronto
Esec uzione
prerilas cio
Stati di avanz amento dei processi
Transizioni di stato I

Transizione da esecuzione ad attesa:
sospensione
 avviene
per esplicita azione del processo in
esecuzione;
 il processo che si sospende si pone in attesa di un
evento E

Per esempio,un processo Pi si sospende in
attesa di:
 interruzione
da parte di un dispositivo,
 sincronizzazione con un altro processo,
 ricezione di un messaggio
Transizioni di stato II

Transizione da stato di attesa a stato di pronto:
riattivazione.
 Schema
tipico: Pi sospeso in attesa di evento E,
viene riattivato da Pj che segnala E. Esempi di eventi:
interruzione, sincronizzazione, arrivo di un messaggio


Transizione da pronto a esecuzione:
assegnazione del processore (da parte dello
scheduler)
Transizione da esecuzione a pronto: prerilascio
del processore (da parte dello scheduler)
Gestione dei processi


L’avanzamento dei processi è determinato dalla
disponibilità del processore e dalla politica con
la quale l’uso del processore è ripartito tra i
processi
Le politiche di assegnazione del processore ai
processi pronti hanno come obiettivo un uso
efficiente del processore. Alcune politiche:
 consiste
nel fare avanzare i processi in ordine di
arrivo (FIFO: first in first out)
 consiste nel fare avanzare i processi con velocità
dipendenti dalla loro priorità
Multiprogrammazione e risorse



In caso di multitasking lo scheduler sceglie di
volta in volta il processo da fare avanzare tra
quelli pronti
I processi che controllano i dispositivi (driver)
hanno la precedenza sui processi normali [
Dipendente anche dal tipo di dispositivo
controllato]
L’avanzamento “contemporaneo” di più processi
è possibile perché la memoria centrale è ripartita
tra i programmi. Ripartizione effetttuata dal
gestore della memoria del sistema operativo
La nozione di File
Su cosa operano i sistemi operativi? Sui
documenti immagazzinati nei dischi volatili o fissi.
Operano sugli archivi, o f i l e
Definizione.
Un file (o archivio, o documento elettronico) è
sequenza di caratteri (byte) identificata da un
nome
L’organizzazione dei file
Si usano “contenitori” di file detti directory
(che sono essi stessi file)
Definizione.
Un folder (o directory) è un archivio contenitore di
file.
Folder è il meccanismo di base per strutturare
l’insieme dei file di un sistema detto file system.
File System
Directory p rincipal e
Stu denti
Gino
Mario
Fa col tà
Le onard o
Corsi
Corso A
Prof.Rossi
do cum enti
Corso B
Prof.Verd i Prof. Bia nch i
Bors e
Sem inari
SOSP
Fi le
COST-11
Descrittori

Ad ogni file è associato un descrittore che ne
descrive le proprietà e ne definisce la struttura
logica e la struttura fisica

Mediante il descrittore le operazioni definite sulla
struttura logica possono essere tradotte in
operazioni sulla struttura fisica, eseguite a cura
del s.o.
Esempio
Directory
Elemento
Elemento
Elemento
Elemento
Informazioni su ogni file
Nome del file
Tipo del file
Dimensione del file
Proprietario
Informazioni sulla protezione
Contatore d’uso
Tempo di creazione
Tempo dell’ultima modifica
Lista dei blocchi di disco usati
File Allocation Table
Tutte le informazioni sui file vengono gestite
e immagazzinate nei sistemi operativi.
Ad esempio

Nei sistemi operativi della classe Windows
la struttura detta FAT (File Allocation
Table) ricorda dove sono allocati i vari file
FAT
Table
FAT
X
X
EOF
13
2
9
8
FREE
4
12
3
FREE
EOF
EOF
FREE
BAD
0 Dimensione
1 del disco
2
File A:6
8
4
3
4
5
File B:5
9
12
6
7
8
File C:10
3
13
9
10
11
12
13
14
15
Questo blocco è marcato
come blocco rotto
2
File: Interfaccia Grafica

Il sistema operativo fornisce un servizio (di
solito una interfaccia grafica) che mostra i
file in forma di icona; e alcune proprietà di
ciascun file
 tipo:
se è un documento o un programma o
una cartella
 la data (e l’ora) di ultima modifica
 la dimensione su disco
 l’applicazione che l’ha creato, ecc.
Nomi dei Documenti
L’attributo più importante di un file è il suo nome;
Quando un file system viene organizzato ad albero
esistono due metodi per specificare in modo
testuale il nome del file:
 Nel primo metodo, ogni file viene identificato da
un cammino assoluto che consiste della
sequenza di directory contenute una entro l’altra
dalla radice del file system al file
 L’altro tipo di nome è il cammino relativo, che
presuppone il concetto di directory di riferimento
Cammini Relativi

Nota: Esistono due simboli importanti per
riferire directory in modo implicito:
~
directory home
 .. directory superiore
 . directory corrente

Cammini relativi

~/sdc/lucidi.ps (il cammino parte dalla home)
 ../../lucidi.ps (il cammino parte da 2 dir in su)
Esempio

Esempio di cammino assoluto
C:\Documents and Settings\studenteCP\MyDocuments\DIDATTICA\IG1

Esempio di cammino relativo
.\MyDocuments\DIDATTICA\IG1
Directory corrente
Attributi dei files

Nei sistemi multi-utente, per ogni archivio sono
definiti un proprietario e alcuni diritti di accesso,
di lettura, scrittura o esecuzione

Un altro attributo importante è il tipo del file, che
descrive la struttura del contenuto.

La maggior parte dei sistemi operativi supporta
molti tipi di file, si distinguono per l’estensione
(suffisso che si appende al nome).
Formati
Esistono parecchi formati diversi di file spesso distinguibili
dall’estensione:
 .txt o .asc
 .doc
 .rtf
 .htm o .html
 .zip
 .gz
 .tar
 .tar.z
 .tgz
file in formato ASCII
file in formato MS Word
file in Rich Text Format
file in formato HTML
file compresso
file compresso
archivio TAR
archivio TAR e poi compresso
archivio TAR e poi compresso
Formati
 .gif
file immagine in formato GIF
 .jpg
file immagine in formato JPEG
 .pic
file immagine in formato PIC
 .wav file audio
 .au
file audio
 .mpg file filmato MPEG
 .mov file filmato QuickTime
 .ps
file in formato PostScript
 .eps file in formato Encapsulated PostScript
 .pdf
file Portable Document Format
Formati




Molte applicazioni definiscono in modo
particolare, privato, di solito binario, il formato
dei documenti che tipicamente creano
Formato .doc per Microsoft Word
L’uso di un formato proprietario è di solito
giustificato con ragioni di efficienza, ma l’unica
vera ragione è commerciale: il formato
proprietario protegge il mercato dell’applicazione
che è l’unica che può gestire quel formato
La richiesta di interoperabilità tra le applicazioni
giustifica l’introduzione di formati di interscambio
Formato di interscambio




Formato di documenti, solitamente testuale e
quindi leggibile, riconosciuto da applicazioni di
diversi produttori
Lo scambio di documenti in rete rinforza la
necessità di formati interscambiabili tra diversi
computer e tra diverse applicazioni: nasce la
nozione di formato aperto, indipendente sia dalle
applicazioni che dall’hardware (ASCII non è
sufficiente perché troppo elementare)
HTML è un formato “aperto”, non proprietario, e
leggibile;
PDF è un formato “chiuso”, proprietà di Adobe,
e binario
Esempio: MS Office






Word – elaborazione di testi
PowerPoint – sistema di preparazione di
presentazioni
Excel – foglio elettronico
FrontPage – sistema di creazione di documenti
Web
Outlook – agenda elettronica e cliente email
Access – sistema gestione di banche di dati
Esempio: Adobe







Framemaker – elaborazione di testi su canali
multipli
Pagemaker - business publishing, small offices
InDesign - progettazione struttura grafica dei
documenti
Acrobat – creazione di documenti digitali
Illustrator - creazione di grafica
Photoshop – ritocco fotografico
GoLive – creazione di documenti Web
Esempio: Macromedia
Director – creazione presentazioni
multimediali su CD
 Dreamweaver - creazione di documenti
Web
 Fireworks - progettazione struttura grafica
dei documenti
 Flash – creazione presentazioni
multimediali per il Web

Il Mercato
Nel mercato mondiale si sono affermati alcuni
sistemi operativi che oggi sono più popolari di altri
per alcuni compiti specifici;
 Il sistema più popolare su personal computer è
Windows, che detiene oltre il 95% (da
aggiornare) di questo mercato;

Il sistema più popolare per server di Internet è
Linux/Unix;

Il sistema più popolare per handheld computer è
PalmOS, fortemente insidiato da una variante di
Windows chiamata Windows CE
Installazione




Il sistema operativo arriva di solito già installato
su una macchina appena comprata
Ogni sistema operativo è un programma
complesso fatto da molti componenti, e talvolta
uno di questi componenti “si guasta”: occorre
allora reinstallare il sistema da una copia integra
del sistema operativo
Nel corso del tempo inoltre vengono pubblicate
nuove versioni del sistema operativo
L’installazione del sistema operativo è una
procedura complessa