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
Inoltre, 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

Il software
Nei moderni sistemi di elaborazione questi
obiettivi vengono raggiunti grazie alla
definizione di macchine virtuali che
vengono realizzate al di sopra della
macchina hardware reale
Macchina Virtuale
Si dice virtuale in quanto essa 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

Usare direttamente il linguaggio macchina per
programmare è estremamente tedioso e 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 …
 Linux/Unix
 BeOs
 Apple
 FreeBSD

Evoluzione del software
Il software evolve
 perchè evolve l’hardware su cui viene eseguito
 perchè muta l’ambiente in cui viene utilizzato
 perchè viene adattato ad ambienti diversi da
quello iniziale
 perchè cambiano le sue funzioni
Infatti si parla di versioni di un software, sia esso
sistema operativo o applicazione.
Sistema Operativo
Classi di sistemi
 Cos’è un sistema operativo
 Servizi "documento-centrici "
 Funzioni e servizi del SO
 L’interfaccia
 La nozione di processo
 La nozione di file

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
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
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 di
Apple, 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
Sistema Operativo
Il s.o. integra e rende più facilmente usabili
una quantità di risorse di natura diversa:
processore, memoria centrale, memoria
secondaria, dispositivi di I/O, schede di
rete, ecc.
 Il s.o. può essere caratterizzato come
gerarchia di macchine astratte,
strutturate in una architettura di sistema

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




Condivisione di dispositivi e memorizzazione
permanente
Condivisione di dispositivi I/O (es. stampanti,
modem)
Gestione degli archivi. l’utente identifica gli
archivi con nomi simbolici e dispone di comandi
per la creazione, il reperimento, la lettura, la
scrittura e l’eliminazione all'interno del file
system
Editing (scrivere o modificare) degli archivi dal
terminale (editor).
Servizi



Archiviazione di dati e programmi
 database di progetto
 librerie
Esecuzione di programmi
 ambiente di programmazione
 esecutori
Gestione Ingresso e uscita
 dispositivi di Input
 dispositivi di Output
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
 Il Pannello di Controllo è una funzione
chiave del sistema operativo del Windows
(è presente anche in Macintosh) 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
File System

La definizione nome e contenuto delle cartelle è
una scelta dell’utente;

Alcuni folder sono tuttavia a disposizione del s.o.
Es. in Windows esistono predefiniti i folder
 “Risorse del Computer”
 “Risorse di rete”
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”

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
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
.jpg
.pic
.wav
.au
.mpg
.mov
.ps
.eps
.pdf
file contenente immagine in formato GIF
file contenente immagine in formato JPEG
file contenente immagine in formato PIC
file contenente audio
file contenente audio
file contenente filmato MPEG
file contenente filmato QuickTime
file in formato PostScript
file in formato Encapsulated PostScript
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

Elaborazione di testi
Esistono diverse applicazioni per elaborare
documenti che contegono testo (text
processing applications). Tali applicazioni
possono essere classificate in tre grandi
categorie:
 applicazioni per acquisire il testo di
documenti cartacei
 applicazioni di word processing
 applicazioni di text formatting
Elaborazione di testi



Le applicazioni per acquisire documenti cartacei
si basano sull’uso di dispositivi scanner e di
software di riconoscimento dei caratteri (OCR –
optical character recognition)
Le applicazioni di word processing permettono
di editare a schermo testi. Il testo viene
visualizzato nella forma in cui verrà stampato
(WYSIWYG: what you see is what you get)
Le applicazioni di text formatting permettono di
configurare graficamente le pagine (layout) di un
testo; sono state introdotte per sfruttare le più
avanzate funzionalità tipografiche delle
stampanti avanzate