Corso di Informatica Sistemi Software Ing Pasquale Rota Sistemi Software Macchina virtuale Tipi di software Software di sistema o Sistema operativo o Assemblatori e linguaggio assemblativo o Linguaggi di programmazione Compilatori e traduzione dei linguaggi Sistemi Software - Ing. Pasquale Rota 2 Che cosa è il software • Permette al sistema di elaborazione di svolgere le diverse funzioni che gli vengono assegnate. • Contrariamente all’hardware (oggetto fisico) il software è la parte immateriale costituita da informazioni binarie memorizzate su supporti fisici. • E’ costituito da un insieme finito ed ordinato di istruzioni in grado di essere interpretate ed eseguite dal sistema di elaborazione. Sistemi Software - Ing. Pasquale Rota 3 Categorie di software • I software si dividono in: Software di sistema Programmi applicativi Sono programmi specializzati che si preoccupano del funzionamento dei componenti hardware e si interfacciano con i programmi applicativi. Sono costituiti da: - Linguaggi di programmazione -Sistemi operativi -bios Sono i programmi che eseguono i compiti specifici assegnati al computer (applicazioni). Sono solitamente specializzati per risolvere problemi ben determinati. Sistemi Software - Ing. Pasquale Rota 4 Sistemi software • L’informatica deve interfacciare da una parte un mondo fatto di circuiti digitali, numeri binari, indirizzi di memoria assoluti e relativi, istruzioni in linguaggio macchina e dall’altra la persona umana con le sue capacità logiche e i suoi sensi. • E’ indispensabile introdurre un livello di astrazione tra noi e la macchina. • Occorre quindi creare un’interfaccia tra utente e hardware con i compiti di: rendere trasparente l’hardware della macchina accedere alle risorse hardware evitare azioni non corrette e/o danni. Sistemi Software - Ing. Pasquale Rota 5 La macchina virtuale • Il software di sistema è una raccolta di programmi che gestiscono le risorse di un computer e ne facilitano l’accesso. • Opera da intermediario tra gli utenti e l’hardware • Presenta una serie di risorse e di servizi verso l’utente. • L’insieme dei servizi e delle risorse creato dal software e visto dall’utente si chiama macchina (ambiente) virtuale. • Il software di sistema permette di: – nascondere i dettagli della struttura interna della macchina di Von Neumann; – presentare le risorse in un modo comprensibile per l’utente – consentire all’utente di accedere alle risorse in modo semplice ed efficiente – fornire un ambiente sicuro e protetto in cui operare. Sistemi Software - Ing. Pasquale Rota 6 Tipi di software di sistema Il programma che controlla le attività complessive del computer è detto Sistema Operativo, ed è costituito da pacchetti (programmi) che gestiscono tutte le richieste e gli accessi alle risorse hardware: – Interfaccia utente: GUI (Graphical User Interface); – Traduttori: permettono di passare da istruzioni scritte in linguaggi ad alto livello in istruzioni scritte in linguaggio macchina; – Gestori di memoria: per caricare le istruzioni in memoria centrale; – Gestori di informazioni; – Sistemi di I/O; – Scheduler; – Programmi di utilità. Senza la macchina virtuale sarebbe estremamente complesso l’operazione di eseguire programmi in quanto l’utente oltre alla correttezza del programma si dovrebbe preoccupare di tutte le attività di gestione, caricamento, utilizzo delle periferiche ecc. ecc. Sistemi Software - Ing. Pasquale Rota 7 Utilità Esistono una serie di programmi applicativi che risolvono particolari problemi dei sistemi elaborativi. Alcuni di questi integrano funzioni tipiche del sistema operativo e degli applicativi. Tali programmi spesso vengono indicati come utilità. Tra i più diffusi: – – – – – – Antivirus Software di gestione e recupero file Diagnostici Gestione sistema (miglioramento) Backup. Etc.. Sistemi Software - Ing. Pasquale Rota 8 BIOS Il BIOS (Basic Input Output System) è un programma di base che viene eseguito all’avvio del sistema hardware. E’ registrato in modo permanente su una memoria di tipo ROM. Viene considerato una via di mezzo tra un software e un hardware per questo prende anche il nome di FIRMWARE. Il bios ha la funzione di: • localizzare e caricare il sistema operativo nella RAM; • fornire il supporto per le chiamate di sistema verso la gestione della tastiera e alcune; primitive per la gestione dell'output sul video; • garantire la comunicazione a basso livello tra l’unità centrale e le unità periferiche. Sistemi Software - Ing. Pasquale Rota 9 Bootstrap L'avvio del sistema operativo si attua per mezzo di una procedura detta di bootstrap Le modalità di funzionamento variano da un sistema operativo all'altro memoria principale programma di bootstrap R O M R A M Sistemi Software - Ing. Pasquale Rota 10 vi m mi applic a r a g ro ma opera ti e st Bios ti Si vo Lo scopo del bios è di fornire un collegamento tra il software e i componenti hardware del sistema. Il sistema operativo si appoggia al bios per scambiare informazioni con i dispositivi hardware. Il software applicativo esegue istruzioni e qualora ha necessità di utilizzare componenti hw scambia dati col sistema operativo. P Struttura del sistema Sistemi Software - Ing. Pasquale Rota hardware 11 Struttura del sistema operativo • Il Sistema Operativo permette alle applicazioni di astrarre dal dettaglio hardware e di operare in termini di richieste di servizi al Sistema Operativo stesso. Appl. 2 Appl.N Appl. 1 Sistema Operativo Hardware Sistemi Software - Ing. Pasquale Rota 12 Funzioni del Sistema Operativo • • • • Gestisce le risorse dell’elaboratore Controlla il flusso e la correttezza delle operazioni/istruzioni Gestisce la collocazione dei dati e delle istruzioni Coordina la comunicazione tra i diversi componenti del sistema Il sistema operativo è una sorta di substrato che si pone sopra la macchina fisica. Il compito del sistema operativo, oltre a quello di controllare l’esecuzione degli altri programmi, consiste nell’impedire alle applicazioni di eseguire dei comandi che potrebbero rivelarsi dannosi per il sistema. Sistemi Software - Ing. Pasquale Rota 13 Funzioni specifiche • • • • • • • • Interprete di comandi Gestione della memoria Gestione dei processi Gestione dei files Gestione degli utenti Gestione dell’ I/O (stampanti, video, tastiera, ...) Gestione servizi di rete Protezione del sistema Sistemi Software - Ing. Pasquale Rota 14 Interprete dei comandi • Una porzione del sistema operativo si occupa di interpretare direttamente i comandi inseriti dall’utente o dai programmi applicativi. • Un interprete di comandi svolge la funzione di interfaccia utente (shell). Questa shell primitiva di solito funge anche da interprete per un linguaggio di programmazione. • Attualmente un'interfaccia si ottiene per mezzo di un programma che permette all'utente di interagire su un emulatore di terminale testuale. • Nei sistemi operativi moderni l’interfaccia testuale è stata sostituita, in buona parte, con l'interfaccia grafica (anche conosciuta come GUI, sigla dell'inglese graphical user interface) con caratteristiche tipicamente user friendly. Sistemi Software - Ing. Pasquale Rota 15 Gestore della memoria • Il gestore di memoria è la componente del sistema operativo che si occupa di gestire ed assegnare la memoria principale ai processi che ne fanno richiesta. La gestione della memoria è necessaria per tenere traccia delle zone di memoria già impegnata e di quelle disponibili: in mancanza di un sistema di gestione, si avrebbe prima o poi il caso di processi che si sovrascrivono. Inoltre in caso di errori gravi i processi possono andare in crash e non essere più in grado di comunicare al sistema: compito del gestore di memoria, in caso di terminazione anomala del processo, è di marcare come libere le zone di memoria possedute dal processo "defunto", rendendole disponibili per nuove allocazioni • Nel caso il sistema disponga di un meccanismo di memoria virtuale, il gestore della memoria si occupa anche di mappare la memoria virtuale (la memoria virtuale è una memoria presente sulla memoria secondaria del sistema che viene assimilata alla memoria principale senza che i programmi stessi o gli utenti debbano preoccuparsi di nulla). Sistemi Software - Ing. Pasquale Rota 16 Gestione dei processi Processo (task): è un programma in esecuzione. programma => statico dinamico <= processo • Un processo incorpora le istruzioni, i dati da elaborare e lo stato dell’elaborazione (context) . • SCHEDULER: dispositivo/programma che si occupa di sostituire un processo, finito o meno, con un altro, cioè uno scheduler gestisce l’esecuzione di più processi contemporaneamente, assegnando a turno la CPU ad ognuno di essi, sospendendo l'esecuzione dei programmi (anche in relazione di un evento esterno lettura sulla/dalla memoria di massa, stampa, input utente ecc.). Il controllo della CPU viene passato, a turno, da un processo ad un altro: poiché questo avviene in modo molto rapido, si ha l’illusione di concorrenza (contemporaneità) Sistemi Software - Ing. Pasquale Rota 17 Sistemi operativi multithreading • I sistemi operativi multitasking sono tali quando possono eseguire operazioni che appartengono a processi diversi senza terminare i processi precedenti, L’intervallo di tempo tra un processo e l’altro è talmente ridotto da simulare la contemporaneità dei processi stessi. • I sistemi operativi multithreading sono in grado di svolgere più operazioni in modo contemporaneo (inteso sempre come sospensione dell’esecuzione di una determinata istruzione prima che sia terminata ed esecuzione di un’altra operazione), questo è possibile quando il processo può essere scomposto in thread (operazioni parallele di un processo). Sistemi Software - Ing. Pasquale Rota 18 Gestione degli utenti-sistemi multiutente • Un sistema multiutente è un sistema in grado di accettare comandi da più utenti contemporaneamente. • Dal punto di vista della sicurezza del sistema i vari utenti devono essere gestiti in modo che nessuno possa causare danni agli altri o alla macchina, garantendo al contempo la corretta esecuzione dei programmi. • Questi problemi si risolvono assegnando un account univoco per ogni utente, assegnando un proprietario ai file ed ai programmi e gestendo un sistema di permessi per l'accesso ad essi, si deve prevedere una gerarchia di utenti (cioè gruppi di account con permessi diversi) per cui il sistema rifiuterà tutti i comandi potenzialmente "pericolosi" e li accetterà soltanto se impartiti da un utente in cima alla gerarchia. L’utente in cima alla gerarchia è l'amministratore del sistema (generalmente l'account root nei sistemi Unix, Administrator nei sistemi Windows). Sistemi Software - Ing. Pasquale Rota 19 Tipologia di sistemi operativi Singolo utente / Multi utente Desktop Sistemi distribuiti Server mainframe Embedded Piccoli dispositivi Real time Disp. Controllo Sistemi Software - Ing. Pasquale Rota 20 Un sistema operativo può essere suddiviso in: Kernel (lett. Nocciolo) Shell (guscio) L’utente non interagisce direttamente con il kernel ma lo fa attraverso la shell Sistemi Software - Ing. Pasquale Rota kernel shell 21 Kernel e modi operativi • Il kernel è il cuore di un sistema operativo. • Si tratta di un insieme di software con il compito di fornire ai processi un accesso sicuro e controllato verso l’hardware. L'accesso diretto può essere complesso, quindi i kernel usualmente implementano uno o più tipi di astrazione dell’hardware. Modalità operative del sistema: -USER MODE esecuzione di operazioni per un utente (modalità limitata). -KERNEL MODE esecuzione di operazioni per il sistema operativo (modalità protetta). Sistemi Software - Ing. Pasquale Rota 22 Organizzazione dei dati Le informazioni (dati) sono sequenze di caratteri ciascuno dei quali è codificato con un byte Le informazioni sono registrate sulla memoria di massa sotto forma di file Le informazioni codificate al suo interno sono leggibili solo da software Sistemi Software - Ing. Pasquale Rota 23 Organizzazione dei dati (2) La memorizzazione dei file in una memoria di massa ne richiede la suddivisione in blocchi chiamati record fisici. Uno dei compiti del Sistema operativo è rendere trasparente alle applicazioni la reale suddivisione fisica del file e occuparsi di gestire la scrittura e il recupero delle informazioni dai vari record fisici. È compito del sistema operativo la gestione dei permessi di accesso al file. Sistemi Software - Ing. Pasquale Rota 24 File system • File: insieme di informazioni codificate, predisposte come una sequenza (di byte) e immagazzinate in un unico elemento. • File system: modalità con cui i file sono immagazzinati e organizzati su un dispositivo di archiviazione. Esistono diversi tipi di file system, creati per distinti sistemi operativi, per diverse unità di memorizzazione e per diversi usi. Il sistema operativo ha la funzione di gestire i file. Il file system è l’insieme dei dati (astratti) necessari per la memorizzazione, l’organizzazione, la manipolazione, la navigazione, l’accesso e la lettura dei dati presenti sulla memoria secondaria. Sistemi Software - Ing. Pasquale Rota 25 Caratteristiche dei file system • La memoria secondaria (hard disk) si presenta come un insieme di blocchi di dimensione fissa (settori), tipicamente di 512 byte l'uno. I settori sono a loro volta raggruppati dal punto di vista logico in cluster. • Le operazioni disponibili sono la lettura e la scrittura di un singolo blocco, o talvolta di un insieme di blocchi. • I cluster/ settori sono organizzati in archivi (file) di dimensione variabile, l’utente vede solo i file e non si deve preoccupare di quali siano i settori utilizzati per memorizzarlo, attività gestita dal File System Sistemi Software - Ing. Pasquale Rota 26 Caratteristiche dei file system • Un File System può essere suddiviso in quattro aree: – Area riservata (Master Boot Record), – Tabella di Allocazione dei File – Directory radice – Area dei File. • Il File System mediante livelli di astrazione rende disponibili all’utente le risorse archiviate sui dispositivi di memorizzazione di massa ed organizzate in FILE. Sistemi Software - Ing. Pasquale Rota 27 Caratteristiche dei file I file si caratterizzano per : • Nome del file • Cartella in cui è archiviato • Unità di memoria • Permessi sui file Sistemi Software - Ing. Pasquale Rota 28 Nomi di file e cartelle Il nome del file permette la sua identificazione. E’ costituito normalmente da 2 parti separate da un punto: – un nome che lo identifica – un estensione che ne individua la tipologia. (In realtà è il nome file può anche essere più articolato “Pippo-1.doc.old”) I file vengono raccolti per cartelle. Le strutture delle cartelle possono essere ad un unico livello o avere una struttura gerarchica (ad albero) in cui le cartelle possono a loro volta contenere altre cartelle. I file system hanno tabelle che associano i nomi dei file ai file (dati) mediante un indice detto tabella di allocazione dei file (FAT per sistemi windows). Sistemi Software - Ing. Pasquale Rota 29 Operazioni sui file system • I file system tradizionali offrono degli strumenti per creare, muovere ed eliminare sia i file che le cartelle, inoltre impediscono alcuni tipi di operazioni pericolose per il sistema. • Questi file system tradizionali hanno anche dei metodi per troncare i file, per sostituire o aggiungervi in coda alcuni dati. • I criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL). Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone il singolo utente che accede al sistema. Sistemi Software - Ing. Pasquale Rota 30 Formattazione Formattazione La formattazione riguarda la struttura del supporto magnetico utilizzato per la memorizzazione dei dati, il supporto magnetico viene riorganizzato secondo una diversa struttura-forma. Durante la fase di installazione del sistema operativo la prima operazione è proprio quella della formattazione. L’operazione consiste nel creare la tabella di allocazione dei file (FAT) associando a ciascun indice la porzione fisica di disco corrispondente. Esistono due tipi di formattazioni: • la formattazione completa è distruttiva perché riscrive fisicamente per intero il supporto e proprio per questo motivo necessita di parecchio tempo per essere portata a termine. • la formattazione rapida riscrive solo la tabella di allocazione dei file (FAT) è più veloce ma meno sicura in quanto i dati permangono all’interno del file system fintantoché l’area dati non viene sovrascritta. Sistemi Software - Ing. Pasquale Rota 31 Tabella di allocazione dei File • Sulla FAT sono conservate le tracce delle aree del disco disponibili e quelle già usate dai file o dalle directory. • Ogni voce della Tabella di Allocazione dei File (record), corrisponde ad un cluster dell'area dei file. Nei record vengono indicati la posizione dei cluster e la sequenza esatta per accedere ai file. • I più conosciuti (in ambiente windows) sono: – FAT32, NTFS • In ambiente UNIX/LINUX – JFS, REISER4, EXT4 Sistemi Software - Ing. Pasquale Rota 32 Linguaggio • Che cosa è un linguaggio? Un linguaggio è “un insieme di parole e di metodi di combinazione delle parole” utilizzate e comprese da una comunità di persone. • È una definizione poco precisa: - non evita le ambiguità dei linguaggi naturali - non si presta a descrivere le procedure Sistemi Software - Ing. Pasquale Rota 33 Linguaggio naturale e linguaggio macchina • La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. • Caratteristiche del Linguaggio Naturale: – Vantaggi: Ricchezza, espressiva; – Svantaggi: Ambiguità, Ridondanza. • Caratteristiche del Linguaggio Macchina (codice binario): – Vantaggi: • Legato alla struttura fisica dell’elaboratore; • Potente e veloce; – Svantaggi: • Codifica lunga e di difficile scrittura; • Difficoltà di comprensione per l’uomo. Sistemi Software - Ing. Pasquale Rota 34 Linguaggi di programmazione • Un linguaggio di programmazione è una notazione formale che può essere usata per descrivere algoritmi. Dotato di: – sintassi – semantica • Sintassi: l’insieme di regole formali per la scrittura di programmi in un linguaggio, che dettano le modalità per costruire frasi corrette nel linguaggio stesso. • Semantica: l’insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio. Sistemi Software - Ing. Pasquale Rota 35 Linguaggio di Programmazione • Programma: formulazione di un algoritmo nei termini di un linguaggio di programmazione. • Linguaggio di Programmazione: – Linguaggio intermedio fra il linguaggio macchina e il linguaggio naturale; – Descrive gli algoritmi con una ricchezza espressiva comparabile con quella dei linguaggi naturali; – Descrive gli algoritmi in modo rigoroso. Sistemi Software - Ing. Pasquale Rota 36 Livelli di astrazione del software • Esistono linguaggi a vari livelli (livelli di astrazione) in relazione alla maggiore o minore affinità con il linguaggio utilizzato dal computer. 1. LINGUAGGIO A BASSO LIVELLO 2. LINGUAGGIO AD ALTO LIVELLO Sistemi Software - Ing. Pasquale Rota 37 Linguaggi a basso livello • Si parla di Linguaggi a basso livello quando il linguaggio ha una sintassi che si avvicina a quella della macchina. • I linguaggi a basso livello sono specifici per l’hardware di ciascun processore. set di istruzioni CPU = set istruzioni linguaggio Si parla di Linguaggio Macchina Sistemi Software - Ing. Pasquale Rota 38 Linguaggi ad alto livello • I linguaggi di programmazione ad alto livello, sono più vicini al linguaggio umano scritto (facilitano l’implementazione degli algoritmi da parte dei programmatori), hanno però la proprietà di poter essere ricondotti, in maniera non ambigua, al linguaggio macchina. • Sono indipendenti dalla macchina hardware sottostante. Sistemi Software - Ing. Pasquale Rota 39 Assemblatori e linguaggi assemblativi • Il linguaggio macchina risulta complesso e difficile da comprendere: – Usa codice binario; – È difficile da modificare; – Gli indirizzi di memoria sono numerici (binario); – I dati sono espressi in binario. • Per facilitare lo sviluppo di codice è stato sviluppato un nuovo tipo di linguaggio denominato assemblativo (assembly). L’assembler messo a disposizione è pensato più per l’utilizzatore che per la macchina. Sistemi Software - Ing. Pasquale Rota 40 Linguaggi Assemblativi e Assemblatori • I linguaggi assemblativi sono linguaggi simbolici, in cui le istruzioni sono rappresentate da nomi (codice mnemonico) che richiamano il termine inglese corrispondente e i dati sono identificati da lettere assegnate a campi di memoria centrale; • Sono linguaggi specifici per ciascun tipo di microprocessore. • L'Assembler è un linguaggio orientato alla macchina e per programmare è necessario conoscere a fondo la struttura dell'elaboratore. • Il rapporto tra istruzioni Assembler e istruzioni del linguaggio macchina è in genere 1:1 • Assemblatori: sono i traduttori dei linguaggi assemblativi; Assemblatore Programma sorgente in ling. assemblativo Programma in linguaggio macchina Sistemi Software - Ing. Pasquale Rota Dati Risultati 41 Assembler • Il microprocessore non è in grado di comprendere il codice scritto in assembler, questo deve essere tradotto in linguaggio macchina da un programma detto assemblatore. • L’assemblatore ha una tabella di decodifica che converte i codici mnemonici in codici numerici, costituendo il codice oggetto. Sistemi Software - Ing. Pasquale Rota Codice sorgente (assembler) Assemblatore Codice oggetto (ling. macchina) 42 Linguaggi di terza generazione I linguaggi di terza generazione corrispondono ai linguaggi di alto livello. Il programmatore può non considerare i dettagli legati all’architettura ed esprimere i propri algoritmi in modo simbolico. Sono indipendenti dalla macchina hardware sottostante. Linguaggio Naturale Grammatica Linguaggio di Programmazione Linguaggio Macchina Sistemi Software - Ing. Pasquale Rota Traduttore 43 Traduttore • Il programma viene descritto nei minimi dettagli mediante una procedura (linguaggi procedurali). • I linguaggi di alto livello sono dotati di un insieme di istruzioni complesse più articolate rispetto al set di istruzioni del microprocessore. • La traduzione delle istruzioni in un codice comprensibile dall’elaboratore avviene utilizzano un programma detto traduttore. I traduttori si dividono in: Compilatori Interpreti Sistemi Software - Ing. Pasquale Rota 44 Assemblatori, Compilatori e Interpreti Linguaggi ad alto livello (orientati all’uomo) Linguaggi a basso livello (linguaggi assemblativi, orientati alla macchina) Compilatori o Interpreti Assemblatori Linguaggio macchina Sistemi Software - Ing. Pasquale Rota 45 Compilatori • Intervengono prima che il programma sia eseguito. • Analizzano la sintassi e traducono le istruzioni in istruzioni comprensibili dal microprocessore. • Producono un file contenente il codice oggetto del programma. Programma che può essere quindi eseguito sul sistema di elaborazione. Sistemi Software - Ing. Pasquale Rota 46 Schema di Compilazione • Il Compilatore riceve un intero programma sorgente e produce in un file l’intero programma oggetto. Programma oggetto Programma sorgente Compilatore Programma eseguibile Linker • Il Linker collega più moduli oggetto prodotti dal compilatore in un unico programma eseguibile; – I riferimenti esterni ad ogni modulo non sono risolti dal compilatore – Il linker risolve i riferimenti esterni. Sistemi Software - Ing. Pasquale Rota 47 Interpreti • Gli interpreti eseguono in progressione ogni singola istruzione e la traducono in istruzioni comprensibili dalla macchina. – Legge una singola frase in linguaggio sorgente, la trasforma in una sequenza di istruzioni macchina e le manda in esecuzione; – Traduzione e esecuzione sono contestuali. • Non viene creato il codice oggetto, per utilizzare il programma sul sistema deve sempre essere presente l’interprete. • L’esecuzione generalmente è più lenta. Sistemi Software - Ing. Pasquale Rota 48 Esempio • • • • • Linguaggio Macchina: 0100 0000 0000 1000 0100 0000 0000 1001 0000 0000 0000 1000 Difficile leggere e capire un programma scritto in forma binaria • • • • • • Linguaggio Assembler: … LOAD A H LOAD B Z ADD … Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici (parole chiave). • • • • • • • Linguaggi di Alto Livello: main() { int A; scanf(“%d”,&A); if (A==0) {…} …} Sono indipendenti dalla macchina Sistemi Software - Ing. Pasquale Rota 49 Traduttori • Il linguaggio macchina è l’unico linguaggio compreso dall’elaboratore; • Qualsiasi altro linguaggio di programmazione ha bisogno di un traduttore (non è possibile progettare un traduttore per i linguaggi naturali); • I linguaggio di programmazione sono comprensibili sia dalla macchina (attraverso un traduttore) che dall’uomo. Sistemi Software - Ing. Pasquale Rota 50 Compilatori e Interpreti: caratteristiche • Compilatori: – Codice ottimizzato; – Programmi più veloci da eseguire; – I compilatori sono legati all’architettura dell’elaboratore tramite il sistema operativo. • Interpreti: – Programmi più lenti (traduzione ed esecuzione sono contestuali); – Messa a punto del programma (debugging) migliore (si conosce la riga di programma dove si è verificato un errore); – Gli interpreti sono legati all’architettura dell’elaboratore tramite il sistema operativo. Sistemi Software - Ing. Pasquale Rota 51