Software Dr. Francesco Fabozzi Corso di Informatica.
-
Upload
emiliano-rossi -
Category
Documents
-
view
232 -
download
1
Transcript of Software Dr. Francesco Fabozzi Corso di Informatica.
Software
Dr. Francesco FabozziCorso di Informatica
2
Tipologie del software• Un programma è una sequenza di istruzioni
elementari eseguite dall’elaboratore– Un programma in esecuzione si chiama processo (job)
• Il software è l’insieme dei programmi che possono essere eseguiti su un elaboratore– Software di base
• Gestisce le funzioni elementari dell’elaboratore• Lavora direttamente sul livello hardware
– Software applicativo• Software dedicato per particolari esigenze• Agisce sull’elaboratore mediante il software di base
3
Software di base e applicativo
Hardware
Software di base(S.O. / Firmware)
Software applicativo
4
Firmware• Programma residente nella ROM
– Ex.: BIOS
• Esegue l’avvio della macchina (bootstrap)– Carica in memoria il Sistema Operativo– Verifica integrità componenti interne– Verifica collegamenti con periferiche esterne
5
Sistema operativo• Il sistema operativo è il componente
principale del software di base
• Gestisce le risorse del sistema– CPU, memoria, periferiche
• Fornisce l’interfaccia uomo-macchina
• Costituisce il supporto per il software applicativo
• Gestisce errori del sistema
6
Processi• Si definisce processo un programma in
esecuzione
• Un processo possiede:– Parte statica
• Istruzioni del programma
– Parte dinamica• Dati e stato di avanzamento del programma
– Uno stesso programma può essere diviso in più porzioni eseguibili separatamente; ogni porzione costituisce un processo
7
Stati di un processo• In esecuzione
– Il processo occupa la risorsa processore– Solo un processo per volta può essere in questo stato– Può essere sospeso da un evento (interruzione) e
andare in un altro stato
• Pronto (Ready)– Il processo è pronto per andare in esecuzione ma la
CPU non è ancora libera
• In attesa– Il processo è sospeso perché ha richiesto
un’operazione di I/O
8
Interruzioni di un processo• Un processo viene interrotto per cause
interne o esterne al processo stesso
• Quindi distinguiamo due tipi di interruzioni (interrupt)– Interrupt interni
• Quando il programma richiede un’operazione di I/O
– Interrupt esterni• Quando finisce la slice temporale assegnata al
processo (nei sistemi multitasking)• Quando c’e’ un processo con priorità più alta
9
Sistemi operativi monotasking• In un sistema monotasking il processore
esegue un solo processo per volta
• Ex.: sistema operativo DOS
• Un sistema monotasking è poco efficiente quando ci sono operazioni di I/O– Un’operazione di I/O non coinvolge la CPU
che rimane ferma durante input/output dei dati• Ricorda: tempi di I/O >> tempi di elaborazione
10
Sistemi operativi multitasking• In un sistema multitasking il processore esegue
più processi contemporaneamente– Ex.: sistema operativo Windows, Linux
• In realtà sono eseguiti a rotazione pezzi di processi– “Timesharing” dei processi
• Il tempo di lavoro della CPU è suddiviso tra i vari processi
– Poiché gli intervalli di tempo (time-slice) dedicati a un processo sono molto piccoli (circa msec) l’utente ha l’impressione che i processi sono eseguiti contemporanemente
• In uno stesso istante coesistono un processo attivo e più processi sospesi
11
Sistemi mono e multitasking
inputJob 1
output input
Job 2outputS.O. S.O.
Processo P1
Processo P3
time slice tready
ready
ready
time slice t
t1I/O
t2
Processo P2
t1+t2 = t
Esecuzione di processi in un sistema monotasking
Esecuzione di processi in time sharing
12
Interfacce utente• L’interfaccia utente di un sistema operativo è ciò
che permette all’utente di interagire con la macchina
• Interfaccia testuale– I comandi sono forniti tramite stringhe di caratteri
• In pratica delle parole chiave
– S.O. con interfaccia testuale: MS-DOS, Unix, Linux– Di elevata velocità– Necessita di poca memoria– Difficoltà per l’utente di ricordare i comandi
13
Interfacce utente• Interfaccia grafica (Graphical User
Interface, GUI)– I comandi sono forniti selezionando
un’apposita immagine (“icona”)– S.O. con interfaccia grafica: Windows– “User-friendly” (facilità d’uso)– E’ meno veloce e necessita di più memoria– Un comando complesso deve essere eseguito
con più passaggi
14
Interfacce utente• Interfaccia fisica
– I comandi sono forniti tramite movimenti di componenti fisiche del sistema
– Sono usate in elaboratori interni a macchine più complesse (embedded computer)
– Ex.: robot impiegati nelle fabbriche– Svantaggio: l’interfaccia non è standard
15
Software applicativo• Il software applicativo è l’insieme dei
programmi necessari a risolvere specifici problemi degli utenti– Linguaggi di programmazione– Software personale– Strumenti di produttività– Programmi verticali
16
Software applicativo• Linguaggi di programmazione (ambienti di
sviluppo dei linguaggi)– L’insieme degli strumenti per lo sviluppo di
programmi e per la verifica della loro correttezza (debugging)
• Scarsa dipendenza dall’hardware della macchina– Portabilità da un sistema a un altro
• Software personale– Programmi di uso semplice e quotidiano
• Videoscrittura, agende elettroniche, gestione posta elettronica
17
Software applicativo• Strumenti di produttività
– Programmi che svolgono in maniera semplice ed efficiente compiti di calcolo o di elaborazione
• Fogli elettronici (spreadsheet) • Gestione di database
• Programmi verticali– Risolvono problematriche altamente
specialistiche • Gestione biblioteca o controllo di un impianto
18
Macchine virtuali• Il software crea una struttura a più livelli
che si innestano sul livello base costituito dall’hardware– Ogni livello costituisce una macchina virtuale
• Gli utenti del sistema si collocano in diversi livelli
• Un utente può utilizzare solo le risorse della macchina virtuale sottostante al livello in cui si trova
19
Gerarchie di macchine virtuali• L’utente finale non
interagisce direttamente con l’hardware– Il sistema appare come
un insieme di comandi messi a disposizione del programma applicativo
– L’implementazione concreta dei comandi è delegata al livello inferiore
Hardware
S.O.
Software applicativo
Utenti finali
20
Funzionalità del sistema operativo• Anche il sistema operativo è organizzato
secondo una gerarchia di macchine virtuali
Macchina fisica
Gestore dei processi (kernel)
Gestore della memoria
Gestore delle periferiche
File system
Interprete dei comandi
Programmi applicativi
21
Gestore dei processi• Il gestore dei processi sovrintende
all’esecuzione dei vari programmi residenti in memoria centrale per ottimizzare la risorsa processore– E’ il gestore della CPU
• Gestisce anche– sincronizzazione di più processi concorrenti– risoluzione contese tra processi
22
Gestore della memoria centrale• Gestisce la suddivisione della risorsa
memoria centrale tra i vari programmi– Solo una parte di ogni programma viene
caricata di volta in volta in memoria centrale– L’utente ha l’impressione di vedere una
memoria centrale più grande di quella reale (memoria virtuale)
23
Gestore della memoria centrale• Modalità di suddivisione della memoria
– Segmentazione• assegnazione di un segmento di memoria pari alla
parte di programma da caricare• Ogni segmento di memoria ha dimensioni variabili
(fino a 64 KB)• Problema: frammentazione della memoria
– Paginazione• assegnazione di una pagina di dimensione fissa
(4KB) alla parte di programma da caricare• Problema: non efficiente utilizzo della memoria
24
Segmentazione e paginazione
P1
P2
P3
Segmentazione
memoria libera
P1
P4
P3
frammento
P1
P2
Paginazione
P3
P4
P1
P3
pagina
25
Gestione della memoria secondaria• L’unità astratta di memorizzazione prende il
nome di file
• Un file è un insieme di byte associati ad un’unica entità logica– Ex.: istruzioni di programma; testo di una
lettera
• L’insieme dei programmi per la gestione logica e fisica della memoria secondaria prende il nome di file system
26
Gestione della memoria secondaria• Il file system
– Gestisce l’associazione di un file al suo nome logico– Gestisce l’associazione del nome logico di un file alla
sua posizione fisica nella memoria di massa• Infatti un file viene memorizzato su disco in posti non
necessariamente contigui
– Trasforma operazioni logiche su file in operazioni fisiche su blocchi di memoria di massa
– Gestisce la protezione dei dati– Gestisce lo spazio libero conseguente alla
cancellazione di un file
27
Organizzazione della memoria• La memoria può essere organizzata in
contenitori di files (directory) secondo una dipendenza gerarchica
28
Organizzazione della memoria
root
lettere ricette foto
laurea battesimo
Foto1.jpg Foto2.jpg
Struttura ad albero
Directory principale (“radice”)
files
29
Identificazione di un file• Il nome completo di un file è dato dal path
name– Nome del file + percorso (path) per
raggiungerlo a partire dalla directory radice (che si indica con / )
• Il nome del file è seguito da un’estensione– Gruppo di caratteri preceduti da un punto che
specificano il tipo di file
• Ex.: /foto/laurea/foto1.jpg
30
Identificazione di un file
Estensione Tipo di file
.exe, .com programmi eseguibili
.doc Documenti Word
.ppt Presentazioni PowerPoint
.html, .htm Pagina web
.jpg, .gif, .bmp immagini
.mp3, .wav audio
31
Gestione delle periferiche• Le operazioni sulle periferiche sono gestite
tramite programmi detti device driver– Il driver è diverso per ogni dispositivo ed è fornito dalla
casa costruttrice (driver per la tastiera, driver per il mouse, driver per la stampante, ecc.)
• I driver – Gestiscono la comunicazione da/verso la periferica– Coordinano le richieste contemporanee di accesso alla
risorsa– Gestiscono le condizioni di errore
• Ex.: Fine carta nella stampante
32
Interprete dei comandi• Riceve e interpreta i comandi formulati
dall’utente e li traduce in richieste ai moduli sottostanti
• Fornisce l’interfaccia utente– Sistemi a interfaccia grafica
• Seleziono comandi da menù a tendina• Seleziono comandi tramite icone
– Sistemi a interfaccia testuale• Utilizzo di apposito linguaggio per dare comandi• Gestione di eventuali errori sintattici nella
digitazione dei comandi
33
Il sistema operativo DOS• All’inizio degli anni ’80 l’IBM (produttrice di
grossi calcolatori) entra nel mercato dei Personal Computer
• La scelta di IBM fu di produrre solo l’hardware e far sviluppare il sistema operativo a un esterno: Bill Gates
• Nacque così il DOS e la Microsoft (e la fortuna di Bill Gates)– La Microsoft è attualmente la più grande
azienda produttrice di software
34
Il sistema operativo DOS• MS-DOS
– MicroSoft Disk Operating System
• Il successo del DOS– Sistema relativamente semplice nella gestione
dei dati e della memoria– Progenitore di Windows
• Sistema a interfaccia testuale– I comandi sono una sequenza di lettere e
numeri e sono inviati tramite la console
• La console di DOS può essere lanciata da Windows
35
Il sistema operativo DOS• Un programma viene lanciato scrivendo il
suo nome e premendo il tasto INVIO– Il sistema operativo cerca il programma sul
disco, lo carica nella RAM e viene eseguito dalla CPU
• Il nome di un file è costituito da un nome di max 8 caratteri più l’estensione di 3 lettere separata da un punto– Ex.: tesi.doc
36
Il sistema operativo DOS• La memoria può essere organizzata in
cartelle (directory) secondo una gerarchia ad albero
Esempio di pathnameC:\TESTI\LAUREA\CAP1.DOC
C: Indica l’unità hard diskA: Indica l’unità floppy disk
37
Il sistema operativo DOS• Qualche esempio di comando
– Per “formattare” il floppy-disk•FORMAT A:• NOTA: l’operazione di formattazione re-inizializza la
memoria del dischetto (e cancella tutti i dati)
– Per mostrare i file nella directory LAUREA:•DIR C:\TESTI\LAUREA
– Per copiare un file in un altro:•COPY CAP1.DOC CAP1_NEW.DOC
38
Il sistema operativo Windows• Per rendere il sistema operativo più “user-
friendly” (e allargare quindi il mercato dei PC) le case produttrici cominciarono a sviluppare interfacce grafiche
• La APPLE nel 1984 lancia il Macintosh• Microsoft l’anno successivo lancia Windows 3.1
– Inizialmente Windows si presentava come un programma lanciato da DOS
• A partire da Windows 95 esso appare come un sistema operativo autonomo (anche se la gestione della memoria è basata sempre su DOS)
• Versione ultima: Windows XP
39
Il sistema operativo Unix• Unix è uno dei sistemi operativi più antichi
– Sviluppato dall’AT&T nel 1969
• Nato per dare la possibilità al personale dell’azienda di lavorare contemporaneamente sugli stessi dati e sullo stesso progetto
• Diffuso soprattutto nel mondo universitario– E’ il sistema operativo delle workstation e dei
computer di medie e grandi dimensioni
• Lo crescita delle performance dei PC e l’avvento di Linux lo sta soppiantando
40
Il sistema operativo Unix• Unix è un sistema a interfaccia testuale
multitasking e multiutente• Il multitasking non è solo tra programmi diversi
ma anche all’interno dello stesso file– Più utenti possono modificare/consultare i dati di un
archivio nello stesso istante• Questo permette a più persone di lavorare su uno stesso
progetto
• A scopo di protezione dei dati un utente può accedere al sistema specificando un nome identificativo (username) e una parola segreta (password)
41
Il sistema operativo Linux• Nel 1990 Linus Torvalds, uno studente
dell’università di Helsinki che si diletta a scrivere programmi per calcolatori, compra un PC con processore Intel 386 e sistema operativo DOS
• Il sistema DOS non gli permette però di sviluppare i suoi sofisticati programmi
• D’altra parte il costo di una workstation con Unix (circa 5000 $) è proibitivo
• Linus decide allora di scrivere un clone di Unix per PC
• Nel 1991 nasce la prima versione di Linux
42
Il sistema operativo Linux• Il file system è simile a quello di Unix e i
comandi sono praticamente gli stessi
• Contiene inoltre una serie di driver per pilotare le periferiche tipiche di un PC
• La scelta vincente è stata quella di diffondere Linux su Internet gratuitamente
• Linux e’ a disposizione di tutti e tutti possono partecipare all’evoluzione del sistema
43
Il sistema operativo Linux• Linux è diffusissimo nel mondo
universitario e della ricerca e si sta diffondendo anche in altri ambiti grazie allo sviluppo di interfacce grafiche
• Gran parte dei Web Server è basato su Linux
• Le distribuzioni più diffuse del sistema operativo sono la Red Hat e Mandrake