Software Dr. Francesco Fabozzi Corso di Informatica.

43
Software Dr. Francesco Fabozzi Corso di Informatica

Transcript of Software Dr. Francesco Fabozzi Corso di Informatica.

Page 1: Software Dr. Francesco Fabozzi Corso di Informatica.

Software

Dr. Francesco FabozziCorso di Informatica

Page 2: Software Dr. Francesco Fabozzi Corso 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

Page 3: Software Dr. Francesco Fabozzi Corso di Informatica.

3

Software di base e applicativo

Hardware

Software di base(S.O. / Firmware)

Software applicativo

Page 4: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 5: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 6: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 7: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 8: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 9: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 10: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 11: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 12: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 13: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 14: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 15: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 16: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 17: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 18: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 19: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 20: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 21: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 22: Software Dr. Francesco Fabozzi Corso di Informatica.

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)

Page 23: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 24: Software Dr. Francesco Fabozzi Corso di Informatica.

24

Segmentazione e paginazione

P1

P2

P3

Segmentazione

memoria libera

P1

P4

P3

frammento

P1

P2

Paginazione

P3

P4

P1

P3

pagina

Page 25: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 26: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 27: Software Dr. Francesco Fabozzi Corso di Informatica.

27

Organizzazione della memoria• La memoria può essere organizzata in

contenitori di files (directory) secondo una dipendenza gerarchica

Page 28: Software Dr. Francesco Fabozzi Corso di Informatica.

28

Organizzazione della memoria

root

lettere ricette foto

laurea battesimo

Foto1.jpg Foto2.jpg

Struttura ad albero

Directory principale (“radice”)

files

Page 29: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 30: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 31: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 32: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 33: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 34: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 35: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 36: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 37: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 38: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 39: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 40: Software Dr. Francesco Fabozzi Corso di Informatica.

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)

Page 41: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 42: Software Dr. Francesco Fabozzi Corso di Informatica.

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

Page 43: Software Dr. Francesco Fabozzi Corso di Informatica.

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