3. Software Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá) Insegnamento di Informatica I semestre, anno 2014-2015 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 1 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 2 / 39 Software I É necessario al funzionamento del computer. I É un componente immateriale del computer. I É un insieme complesso di programmi, caratterizzati da sequenze di istruzioni. I É distribuito su appositi dischi o Internet. I É scritto utilizzando appositi linguaggi come C, C++, Python, Fortran e Java. I É, in genere, sotto copyright (diritto d’autore) e EULA1 (licenza). Si compone delle seguenti parti: I I I 1 Software base; Software applicativo. EULA sta per End User License Agreement. 3 / 39 Software 4 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 5 / 39 Copyright I Senza copyright un software non puó essere usato, distribuito e modificato. I La licenza permette ad un utente di usare un certo software sotto alcune condizioni. I In genere ogni software é dotato di licenza che deve essere accettata da chi lo richiede prima di usare il software. Per garantire una circolazione del software piú libera é nato il copyleft che concede all’utente piú diritti delle EULA. I I Il software deve essere ridistribuito con la stessa licneza con cui é stato ottenuto. 6 / 39 Terminologia software Termine Significato Softwre open source Ogni software di cui é possibile ottenere il codice sorgente legamente. Software free (libero) Ogni software con licenza copyleft. Spesso é anche gratuito. In genere é anche open source. Software proprietario Ogni software con delle restrizioni di utilizzo, modifica, redistribuzione, etc. Non é quindi un software free. É spesso a pagamento. Freeware Software proprietario gratuito. Shareware Software proprietario a pagamento usabile gratuitamente per un periodo di tempo (e.g. license evaluation). Pubblico dominio Software disponibile a chiunque senza nessun copyright. 7 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 8 / 39 Software Base I I É necessario al funzionamento del computer. Si compone delle seguenti parti: I I I 2 Sistema Operativo (SO)2 quali Windows, Linux e MacOS; Software di comunicazione per gestire la rete telematica ed interagire con essa; Software di utilitá per far funzionare o far riconoscere al sistema operativo componenti hardware o periferiche. In inglese Operating System (OS). 9 / 39 Sistema Operativo I I I I I I I I I Garantisce l’operativitá di base del computer coordinando le risorse hardware di processamento, memorizzazione e periferiche. É un insieme di programmi che operano direttamente al di sopra dell’hardware e consentono l’utilizzo di tutte le funzionalitá dell’elaboratore. Permette all’utente di usare software piú specifici come quelli applicativi. Gestisce e controlla le parti hardware del computer. Gestisce l’archiviazione (memorizzazione) e accesso ai file tramite il filesystem. Puó predisporre piú di un’interfaccia software (grafica o testuale) per accedere alle risorse hardware del sistema quali dischi, memoria e I/O. É eseguito prima di qualsiasi altro programma. É fatto caricare al momento dell’accensione del computer. L’utente vede la macchina attraverso il SO. 10 / 39 Sistema Operativo: BIOS I Al momento dell’accensione, l’elaboratore cerca innanzitutto il BIOS (Basic Input Output System), sistema fondamentale di input/output. I BIOS é un piccolo programma registrato permanentemente su un chip di memoria ROM. I BIOS é una via di mezzo tra software ed hardware quindi spesso viene indicato con il termine firmware. Svolge una serie di importanti funzioni: I I I I I interpreta i caratteri immessi dalla tastiera; visualizza i caratteri sullo schermo; gestisce le comunicazione che avvengono tramite le porte del computer; controlla l’integritá del sistema ogni volta che viene avviato. I BIOS fornisce un collegamento tra hardware e software. I Se si sostituisce l’hardware di un elaboratore basta aggiornare il BIOS. 11 / 39 Sistema Operativo: Interprete dei comandi I La porzione del sistema operativo riservata all’interpretazione dei comandi ha la funzione di ricevere dalla tastiera/mouse l’input dell’utente e di interpretarlo. Esempio: I I trascinando un file sull’icona dell’applicazione che é in grado di elaborarlo dall’applicazione. Il SO traduce le richieste dell’utente in opportune sequenze di bit da sottoporre alla macchina fisica. 12 / 39 Sistema Operativo: Sistema multitasking SO é in grado di portare avanti l’esecuzione di piú programmi con una sola CPU. 13 / 39 Sistema Operativo: Sistema multithreading 14 / 39 Sistema Operativo: Altro I sistemi multiutenti I Si permette a piú utenti di interagire con la macchina. I sistemi multiprocessori I il sistema riesce a gestire pi processori. Altro: I controlla continuamente il sistema ed in caso di disfunzioni avvisa l’utente; I assegna ad ogni programma un proprio spazio in memoria in modo che non possa influenzare gli altri programmi; I regola l’alimentazione di energia in base alle necessitá; I controlla batteria nei portatili; I gestisce UPS (Uninterruptible Power Supply), gruppo di continuitá di alimentazione continua dell’elaboratore. 15 / 39 Come confrontare SO Puó essere utile considerare le seguenti caratteristiche: I monotasking o multitasking; I monothreading o multithreading; I interfaccia utente a caratteri o grafica; I sicurezza alta o bassa; I capacitá di elaborazione (8, 16, 32, 64 bit); I portabilitá (non dipende da uno specifico microprocessore); I proprietario (funziona con un solo computer) o aperto. Esempi: MS-DOS monoutente, monotasking; UNIX, MacOS, WindXP multiutenti e multitasking. 16 / 39 Software di comunicazione I É l’insieme dei programmi che si occupano di supportare la comunicazione tra macchine collegate in rete. I Permette la comunicazione tra due o piú computer collegati tra loro. I Condivide le risorse tra computer connessi in rete locale: risorse software (dati, programmi); risorse hardware (stampanti, dischi etc.). I Supporta il collegamento remoto: configurazione e gestione del modem; configurazione e gestione di una scheda di rete. I Usa protocolli per uno scambio corretto di dati e messaggi, quali ad esempio telnet (per apertura di una sessione remota); ftp (per il trasferimento di file); mail (per la posta elettronica). 17 / 39 Software di utilitá I É una evoluzione del software applicativo. I Integra le funzioni del sistema operativo. I Permette agli utenti di eseguire delle operazioni di base quali: copia, cancellazione, stampa di file; configurazione del sistema; visualizzazione contenuto directory (cartella); compressione dei file su disco; antivirus (protezione dai virus informatici). I Contiene programmi diagnostici quali quelli per migliorare le prestazioni e configurare il sistema. I Contiene programmi di backup per la duplicazione dei file su nastro o disco. I Contiene programmi di disinstallazione per rimuovere le applicazioni. I Contiene programmi per operazioni quotidiane quali calcolatrice e datario. 18 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 19 / 39 Software applicativo I É scritto in linguaggi di programmazione di alto livello. I Fa svolgere all’utente compiti specifici quali scrivere lettere o gestire la contabilitá. I Progettato e sviluppato per essere riconosciuto e supportato dal sistema operativo. I Si compone di programmi che si aggiungono al sistema operativo per permettere al computer di svolgere attiivitá specifiche. I Esempi: elaborazione di testi (es. Miktex), foglio elettronico (es. RGUI), elaborazioni immagini (es. Photoshop), creazione sito web (es. Frontpage), navigazione (es. Firefox) e posta elettronica (es. Thunderbird). I Puó avere mercato orizzontale (applicazioni generiche come Office), verticale (applicazioni specifiche) o personale (es. software Grid degli esperimenti LHC). 20 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 21 / 39 Interfacce utente I Rappresenta l’interazione uomo macchina. I Appare sullo schermo non appena si accende un computer. I Grazie all’evoluzione del computer sono state introdotte interfacce software. 22 / 39 Le interfacce a caratteri I Il numero di caratteri visualizzati era fisso: A − Z , a − z, 0 − 9, # . . . (fino a 256 caratteri). I Poiché il corrispondente SO non gestiva la grafica ogni programmatore doveva inventare un proprio modo per definire i comandi. I Le interfacce a caratteri sono piú rapide e richiedono meno memoria rispetto a quelle grafiche, ma sono piú difficili da utilizzare. 23 / 39 Interfacce grafiche utente I In genere identificate con l’acronimo GUI (Graphic User Interface) I Attualmente disponibili con interfacce piú intuitive, quali MS Windows, X Windows e KDE di Unix. Le funzionalitá comuni: I I I I I I visualizzano sullo schermo delle finestre sovrapposte, ognuna delle quali puó contenere un programma applicativo; l’utente puo passare da un compito all’altro in modo veloce; per eseguire un comando basta puntare l’icona che lo rappresenta sul desktop digitale e fare clic con il mouse; impiegano la tecnologia WYSIWYG (WhatYouSeeIsWhatYouGet) per i documenti; i comandi sono gli stessi per tutti i programmi. 24 / 39 Altre interfacce Le interfacce a stilo: I usate per gli elaboratori tascabili; I si usa una stilo su di uno schermo sensibile. Le interfacce touchscreen: I usate negli aeroporti, musei, bancomat; I con un dito si puntano le icone presenti sullo schermo. Le interfacce conversazionali: I comandi vocali; I ancora in fase di perfezionamento. 25 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 26 / 39 Linguaggi di Programmazione I Un programma é formato da un insieme finito di istruzioni che possono essere eseguite da un processore per conseguire un risultato. I Un programma É scritto in un linguaggio formale e caratterizzato da una sintassi ben definita. I Esempi di linguaggi di programmazione: Fortran, C++, Python, Java. I Per ogni linguaggio di programmazione esistono ambienti integrati di sviluppo software caratterizzati da editor, traduttore, debugger. I La scrittura di un algoritmo in un linguaggio deve essere comprensibile ad un elaboratore. I Le istruzioni sono trasmesse al computer in un codice detto linguaggio macchina. 27 / 39 Traduttore di linguaggio I Ogni elaboratore esegue solo il suo linguaggio macchina. I I linguaggi macchina sono complessi, poco espressivi, scritti in notazione binaria, incomprensibili. I L’uomo usa i linguaggi evoluti non eseguibili dalla macchina. Occorre un apposito traduttore che converta il codice di programmi scritti in un particolare linguaggio di programmazione (programma sorgente) nella corrispondente rappresentazione in linguaggio macchina (programma eseguibile): I I I compilatore che produce un programma tradotto, equivalente all’originale ma scritto in linguaggio macchina: elaboratore esegue la traduzione del programma e non l’originale; interprete che esegue il programma, traducendo le istruzioni del programma decodificate ed eseguite in successione. 28 / 39 Vantaggi / Svantaggi I La compilazione é una esecuzione rapida, mentre l’interpretazione decodifca ogni volta. I L’interpretazione giunge all’esecuzione in modo piú immediato. I L’interpretazione semplifica il porting dei programmi tra sistemi operativi diversi senza ricorrere a compilatori diversi. 29 / 39 Bytecode I Prodotto da soluzioni miste di compilazione/interpretazione. I Programma tradotto dal suo linguaggio originario in un linguaggio intermedio detto bytecode (ogni codice occupa 1 byte) non lontanissimo dal linguaggio macchina. I Bytecode é poi eseguito da un interprete presente su varie macchine. I Il programma puó rimanere lo stesso visto che sulle varie macchine viene eseguito il bytecode. I Possibile poiché l’interprete funge da macchina virtuale. I JAVA usa questa soluzione. I Per migliorare l’efficienza l’interprete é affiancato da un compilatore per tradurre il bytecode. I Dalvik virtual machine é usato per applicazioni su android. 30 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 31 / 39 Gestione di file I Al momento del salvataggio ai file viene assegnato un nome di file: nome + . + estensione. I Nome puó contenere spazi a seconda del SO: es. in Windows é possibile ma non in DOS. I I file sono memorizzati sul disco fisso e sono logicamente organizzati in cartelle, ossia directory. I Molti sistemi sono dotati di piú unitá di memoria distinte tramite una lettera o un nome: es C per il SO, D unitá di lavoro, E lettore DVD, etc. I Nel caso di Windows si usa l’unitá C per installare programmi, mentre i dati dell’utente possono essere memorizzati nell’area associata all’utente C : /Utenti/ < username > o in altra unitá se presente sul SO. 32 / 39 Gestione di file I Le unitá sono organizzate in cartelle formando degli alberi: I I I Per reperire un file memorizzato in una cartella é necessario seguire un certo percorso (dalla radice alla foglia). I I l’unitá é radice; il file é la foglia. il percorso del file in una cartella o sottocartella. I file vengono gestiti da appositi programmi di gestione file 33 / 39 Azioni sui file 34 / 39 Argomenti Software Diritto d’autore Software di Base Sistema Operativo Software di comunicazione Software di utilitá Software applicativo Interfacce Linguaggi di Programmazione File Utilitá del SO Formattazione Frammentazione Altro 35 / 39 Formattazione I Permette l’archiviazione dei dati. I Viene creata una directory chiamata tabella di allocazione dei file (FAT) I FAT registra la localizzazione di tutti i file su disco. I Quando il documento é salvato, il SO riesce ad indirizzare gruppi di settori detti cluster. I I cluster sono la piú piccola unitá di memoria indirizzabile dal computer. I Il SO cerca nella FAT i cluster ancora vuoti e vi memorizza il documento. I L’indirizzo del cluster é usato per reperire nuovamente il documento. 36 / 39 Frammentazione I I dati di un file vengono salvati utilizzando cluster adiacenti. I In fase di rimozioni e aggiunta di file, parti di file sono sparsi in cluster localizzati in varie aree del disco. I Tale frammentazione introduce un rallentamento delle funzioni del computer. I Per risolvere si effettua l’operazione di deframmentazione del disco: I La deframmentazione sposta i dati sul disco fino a riavere le porzioni del file in cluster adiacenti. 37 / 39 Altro Lo scanning del disco I risolve alcuni problemi legati ai file. L’eliminazione dei file e il cestino. Utilitá multimediali I controllo del volume I lettore CD. 38 / 39 Per ulteriori letture Dennis P. Curtin, Kim Foley, Kunl Sen, Cathleen Morin, Informatica di Base, Cap. 5, 6, 7, 12, 19, McGraw-Hill (2012) 39 / 39