Sei sulla pagina 1di 42

Elementi di Informatica

Anno accademico 2020/2021


Docente: Roberto Riggi
r.riggio@univpm.it
o

IL SOFTWARE

Software: programmi che vengono eseguiti


dal sistema

Distinzione fra Software applicativo

• Software di base (es. Sistema Operativo) Software di base


• Software applicativo
Hardware

NB: suddivisione utile ma non sempre


evidente (firmware)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
.

IL SOFTWARE

Software:
insieme (complesso) di programmi

Organizzazione a strati, ciascuno Programmi


con funzionalità di livello più alto Applicativi
rispetto a quelli sottostanti
Ambiente di
programmazione

Concetto di Sistema Software di


Operativo Comunicazione
macchina virtuale
Hardware

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

Sistema Operativo
Insieme di programmi che gestiscono le risorse del
computer (memoria, CPU, le system, etc.)
fi
IL SISTEMA OPERATIVO

• Il Sistema Operativo (SO) è uno insieme di programmi che opera al di sopra


di hardware e firmware e gestisce le componente hardware dell’elaboratore:
• … memoria, CPU, schede grafiche, collegamento con periferiche,
schermo, tastiera, etc

• Possiamo dividere i sistemi operativi rispetto al tipo di macchina hardware che


controllano.
• Sistemi operativi per computer desktop o notebook. Ad esempio
• Microsoft Windows,
• Mac OS,
• distribuzioni GNU/Linux (es. RedHat, Debian, CentOS, etc.),
• sistemi BSD (Free BDS, Mac Os)
• Sistemi operativi per dispositivi mobile (smartphone e tablet), Ad
esempio
• Android (Google),
• iOS, iPadOS (Apple),
• Windows Phone (Microsoft)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
:

FUNZIONI DEL SISTEMA OPERATIVO

Le funzioni messe a disposizione dal S.O. dipendono dalla complessità del


sistema di elaborazione
• gestione delle risorse disponibil
• gestione della memoria central
• organizzazione e gestione della memoria di mass
• interpretazione ed esecuzione di comandi elementar
• gestione di un sistema multi-utente

Un utente “vede” l’elaboratore solo tramite il Sistema Operativo


→ il S.O. realizza una “macchina virtuale”

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
:

FUNZIONI DEL SISTEMA OPERATIVO

Conseguenza
diversi S.O. possono realizzare diverse macchine virtuali sullo stesso
elaboratore fisico

Attraverso il S.O. il livello di interazione fra utente ed elaboratore viene


elevato
• senza S.O.: sequenze di bit (linguaggio macchina
• con S.O. comandi, programmi, dati

I sistemi operativi si sono evoluti nel corso degli ultimi anni (interfacce
grafiche, Macintosh, Windows, ...)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
:

:
:

RUOLO DEL SISTEMA OPERATIVO

Il S.O. traduce le richieste dell’utente in opportune istruzioni


macchina, che si traducono in sequenze di valori e impulsi elettrici a
livello di macchina fisica

esegui progr1 0011...10100...


S. O. Hardware

e viceversa:

risultato 10 0010...10010...
S. O. Hardware

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

Command line (Shell)


Ogni sistema operativo de nisce una serie di “comandi”
per interagire con il computer
L’ambiente interattivo con cui l’utente può eseguire tali
comandi si chiama Shell
fi
.

SO Unix - Architettura generale

• Organizzazione logica a strat


• Il sistema operativo gestisce le risorse
siche (memoria, CPU, I/O) ed la
memorizzazione dei dati (il le system

• il kernel realizza le operazioni su le


e dispositivi e le politiche di gestion
• la shell è un programma
interprete che permette agli utenti
di richiedere al kernel
l’esecuzione di operazioni sul le
system o sui dispositivi

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi
a

fi
i

fi
e

fi
)

SHELL o COMMAND LINE

• Con i termini Command Line, Terminale, Prompt dei


comandi, Shell si indica
• Il programma che fornisce una interfaccia utente
testuale
• …che permette di interagire con il SO attraverso
l’esecuzione di comandi

• La comunicazione avviene per mezzo di comandi


• la shell resta in attesa di un comando
• … mandandolo in esecuzione alla pressione del tasto
<ENTER>

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022

Ciclo di funzionamento della shell

Pseudo codice

loop foreve
<LOGIN
d
<ricevi comando da le di input
<interpreta comando
<esegui comando
while (! <EOF>
<LOGOUT
end loop

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
o

>

>

>

fi
>

>

Due principali shell

• Quella dei sistemi Windows, adottata dalle varie


versioni di Windows O

• Quella dei sistemi Unix, adottata dalla gran parte dei


sistemi operativi (Linux vari e Mac OS)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

UNIX COMMAND LINE

• Mette a disposizione comandi “base” pe


• Navigare il le system (directories, les
• Creare, rimuovere les dal disc
• Eseguire programmi (es. programmi C

• Se non hai un sistema operativo Unix puoi sperimentare la shell Unix qui
• https://www.tutorialspoint.com/unix_terminal_online.php
• oppure qui: https://bellard.org/jslinux/ (scegliendo uno dei sistemi operativi
elencati)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022

fi
fi
a

fi
)

DOS COMMAND LINE

• I Sistemi Operativi Windows hanno dei comandi diversi (DOS


• La shell in Windows si chiama “Command prompt
• Se non usate windows potete testare la shell Windows qui
• http://bellard.org/jslinux/

• Per una introduzione ai comandi DOS consultare il seguente link


• http://a2.pluto.it/a2/dos_introduzione.htm

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022

Comandi Shell
La sintassi tipica dei comandi UNIX è la seguente

comando <opzioni> <argomenti

• ogni comando può richiedere al kernel l’esecuzione di una


particolare azione
• i comandi esistono nel le system come le binari, generalmente
eseguibili da tutti gli utenti
• <opzioni> sono facoltative e in uiscono sul funzionamento del
comando. Generalmente consistono nel simbolo del “-” seguito da
una sola lettera.
• <argomenti> si possono avere più argomenti o anche nessuno in
base al comand

Esempio di comando:
ls –l temp
Roberto Riggio - Elementi di Informatic
Anno accademico 2021/2022
o

fi
a

fl
>

fi
:

Il comando “man”
• Il comando man, seguito dal nome di un comando
permette di accedere alla documentazione del comand
• Ed esempio se voglio sapere a che cosa serve il comando
ls e quali opzioni ed argomenti supporta. Digito nella shell
il seguente comando:

man ls

(per uscire dalla documentazione digitare “:q”


• In alternativa le opzioni -h oppure —help di solito
forniscono istruzioni sui possibili parametri ed il loro
signi cat
• Esempio:
• cat --help

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi
o

Il comando “man”
<enter>

:q

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

File
• File come risorsa logica costituita da sequenza di
bit, a cui viene dato un nome
• Astrazione molto potente che consente di trattare allo
stesso modo entità sicamente diverse come le di testo,
dischi rigidi, stampanti, directory, tastiera, video, ..
• Ordinar

archivi di dati, comandi, programmi sorgente,
eseguibili,
• Director

gestiti direttamente solo da SO, contengono
riferimenti a l
• Special

dispositivi hardware, memoria centrale, hard disk, ...

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
i

fi
e

fi
a

fi
.

File System
• Il le system è organizzato come un grafo diretto aciclico
(DAG)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi
a

File system

readme.tx

• Ogni le ha
• un nome assoluto, composto dal percorso partendo
da “/” (es. /home/users/readme.txt
• un nome relativo, composto dal percorso partendo
dalla directory corrente (es. readme.txt, se la
directory corrente è /home/users )

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi
:

Navigare il le system tramite shell

• cd [<dir>] serve per modi care la directory corrente, e


quindi a muoversi attraverso le directory
• Il parametro <dir> è opzionale — se non viene indicato,
il comando porta nella home director

• Esempi
• Supponiamo che vogliamo accedere ai nostri
documenti personali in /home/user/documenti
• se la directory corrente è la nostra home: /home/use
• per portarsi nella directory dei documenti basta eseguire:
cd documenti
• per la navigazione risultano utili le directory: “.” (working
directory), “..” (directory padre) e “˜” (directory home).

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
o

fi
a

fi
y

Ispezionare il contenuto delle directory

ls [-alsFR] [<dir1> ... <dirN>

• Se non viene speci ca alcuna directory, si riferisce alla directory


corrente
• Alcune opzioni
• -a visualizza anche i le nascosti (il loro nome inizia per “.”)
• -l visualizza informazioni estese sui le (es. permessi,
dimensione, owner, group)
• -s visualizza la dimensione in bytes
• -F aggiunge un carattere nale al nome del le che ne
denota il tipo (es. "nome/" indica una directory)
• -R visualizza ricorsivamente le sottodirectory (esegue ls
ricorsivamente sulle sotto-directory).

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
.

fi
fi
a

fi
;

fi
]

fi
;

Ispezionare il contenuto delle directory

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

Alcuni comandi di gestione


• Creazione/gestione di director
• mkdir <nomedir> creazione di un nuovo direttori
• rmdir <nomedir> cancellazione di un direttori
• cd <nomedir> cambio di direttori
• pwd stampa il direttorio corrent
• ls [<nomedir>] visualizz. contenuto del direttori
• Trattamento l
• ln <vecchionome> <nuovonome> lin
• cp < lesorgente> < ledestinazione> copi
• mv <vecchionome> <nuovonome> rinom. / spost
• rm <nome le> cancellazion
• cat <nome le> visualizzazione

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi
fi
fi
fi
e

fi
a

Ispezionare i processi in esecuzione

• Il comando top fornisce un monitor di tutti i processi in


esecuzione.

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

Per approfondire

• In realtà shell è un interprete comandi evoluto e fornisce


un potente linguaggio di scripting
• Per approfondire l’argomento “shell” si consigliano le
seguenti risorse opzionali
• http://lia.deis.unibo.it/Courses/sola0708-info/lucidi/6-
leComandi(2x).pdf
• http://didawiki.cli.di.unipi.it/lib/exe/fetch.php/ sica/
informatica/201516/primoanno/introunixv.pdf
• http://marra.di.unimi.it/prog1/lab/docs/lezioni/
DispenseShell_11III14.pdf

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
fi

fi

Applications
I programmi applicativi che, avvalendosi delle operazioni
messe a disposizione dal Sistema Operativo, forniscono
funzionalità utili per gli utent
es. Web Browser, App Facebook su telefono, App macchina fotogra ca,
etc.

fi
PROGRAMMI APPLICATIVI
(APPLICAZIONI)

Risolvono problemi specifici degli utenti:


• word processor elaborazione di test
• fogli elettronici gestione di tabelle, calcoli e
grafic
• database gestione di archiv
• suite (integrati) collezione di applicativi capaci
di funzionare in modo integrato
come un’applicazione unica.

• Sono scritti in linguaggi di programmazione di alto livell


• Risentono in misura ridotta delle caratteristiche della architettura dell’ambiente
sottostante (portabilità)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
:
:
:
:
i

App e app stores

• Oggi il termine App si riferisce a


• programmi applicativi
per un certo OS (es.
Android, IOS
• offerti su uno store
(market
• velocemente scaricabili ed
instancabili su computer
e dispositivi mobili e
altro (es. smart TV)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
)

Ambiente di Programmazione
AMBIENTE DI PROGRAMMAZIONE

È l'insieme dei programmi che consentono la


scrittura, la verifica e l'esecuzione di nuovi
programmi (fasi di sviluppo e testing del
software)
• Componenti:
• Edito → programma sorgente
• Traduttore → programma eseguibile
• Debugger → eliminazione errori logici
• IDE (Integrated Development Environment)
Roberto Riggio - Elementi di Informatic
Anno accademico 2021/2022
r


a

EDITOR
Serve per scrivere il programma
sorgente
■ uno o più le di testo contenenti la codi ca
di un programma scritto in un linguaggio di
alto livello

Distingue automaticamente (diversi


colori):
■ le direttive al compilator
■ le altre parole chiavi del linguaggi
■ le costant
■ i simboli de niti dall’utent
■ … (syntax highlighting)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
i

fi
.

fi
a

fi
ESECUZIONE DI PROGRAMMI

• Affinché un programma sorgente sia


comprensibile (e quindi eseguibile) da un
calcolatore, occorre tradurlo nel linguaggio
della macchina (programma eseguibile).
Programma Programma
Sorgente: eseguibile:
Esecuzione
main(){.. 001010111...

• Questa operazione viene normalmente svolta


da speciali programmi, detti traduttori.
Roberto Riggio - Elementi di Informatic
Anno accademico 2021/2022
a

TRADUTTORI

In generale, e più in dettaglio, la traduzione


del programma sorgente in un programma
eseguibile è effettuata dai 3 programmi
eseguiti in sequenza:
Compilatore → programma oggetto
Linker → programma rilocabile
Loader → programma eseguibile

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022


a

COMPILATORE
Ha 2 funzioni:
analisi sintattica del programma
sorgent
● (vedremo in un’altra lezione cosa signi ca
trasformazione del programma
sorgente in programma oggetto o
“codice oggetto” (forma più vicina al
linguaggio macchina)
● creazione tabella simboli
● ottimizzazioni (rimozione ripetizioni,
eliminazione cicli, sfruttamento registri, …)

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
e

fi
)

LINKER

Un programma (come vedremo


meglio in seguito)
■ può essere composto da più le
(codici oggetto
■ può necessitare di altri programmi
di supporto (librerie
Il Linker crea il programma eseguibile
rilocabile collegando gli eventuali vari
moduli oggetto (compilati
separatamente) con i programmi di
supporto necessari (librerie)
Roberto Riggio - Elementi di Informatic
Anno accademico 2021/2022
a

fi
LOADER

Il Loader completa la creazione del


programma eseguibile caricando in
memoria centrale un programma
rilocabile
Vengono caricati anche i programmi
di supporto, se necessari

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

DEBUGGER

• Traduzione dall’inglese: “spulciatore”


• Consente di eseguire un programma passo-
passo controllando via via quel che succede:
• watch window (valori delle variabili
• function call stack (chiamate a funzioni

• al fine di scoprire ed eliminare errori logici
(run-time) non rilevabili dal compilatore

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022

INTERPRETE

• Con i traduttori PRIMA si traduce tutto il


programma e POI si esegue la versione tradotta
• Nel mondo reale, la traduzione può essere fatta
anche in modo intercalato, frase per frase, da
una terza persona: l’interprete
• Ciò è possibile anche nell’informatica grazie ai
programmi interprete (che operano sulle
istruzioni anziché su frasi).

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

COMPILATORI E INTERPRETI

• i traduttori-compilatori traducono l’intero


programma (senza eseguirlo!) e producono
in uscita il programma eseguibile
• i traduttori-interpreti traducono ed
eseguono immediatamente ogni singola
istruzione del programma sorgente

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

FASI DI SVILUPPO E TESTING DI


PROGRAMMI

Programma da Programma Codice


implementare sorgente compilatore
oggetto

L
p i l e r e rror
Com i
b
editor linker r
Linker error e
Run-time ri
error e

debugger Programma loader Programma


eseguibile rilocabile

Roberto Riggio - Elementi di Informatic


Anno accademico 2021/2022
a

Potrebbero piacerti anche