Estratto del documento

INFORMATICA TEORIA

LE ISTRUZIONI

Per eseguire un’istruzione il processore deve estrarla dalla RAM e memorizzarla al proprio interno, in un

registro, che procede alla sua interpretazione. Ogni istruzione è costituita da un certo numero di bit, il cui

significato è il seguente:

- I primi bit consistono nell’opcode (codice operativo) che indica l’istruzione da eseguire, esso è

univoco per ogni istruzione;

- I restanti bit indicano il numero variabile di operandi.

Per ogni istruzione il processore esegue due fasi:

1. Fase di fetch: è la fase in cui l’istruzione viene prelevata dalla RAM, memorizzata in un registro del

processore e interpretata attraverso la decodifica del suo opcode; pertanto, questa fase consiste nel

capire di che tipo di istruzione si tratta ed è uguale per tutte le istruzioni;

2. Fase di execute: è la fase in cui viene eseguita l’istruzione precedentemente interpretata; questa fase

varia in base all’istruzione da eseguire.

Ad oggi i processori sono datati della PU (prefetching unite) che si occupa del prefetching delle istruzioni e

che consiste nell’eseguire la fase fetch prima che termini la fase execute dell’istruzione precedente. Quindi

mentre il processore è impegnato nella fase execute la PU si occupa della fase fetch delle istruzioni successive,

in questo modo quando il processore terminerà la fase execute dell’i-esima istruzione potrà dedicarsi alla

fase execute dell’istruzione successiva.

Le istruzioni, insieme alle costanti e alle variabili formano un algoritmo e rappresentano gli step da eseguire

della strategia. Le istruzioni possono essere:

- Istruzioni di inizio programma;

- Istruzioni di assegnazione (A = 0), esse hanno lo scopo di assegnare ad una variabile (posta a sinistra

del simbolo =) un valore determinato dall’espressione posta a sinistra dell’= (tale espressione può

essere un’altra variabile una costante o un’espressione algebrica;

- Istruzioni di input/output (es. inserimento di una variabile da parte dell’utente oppure visualizza

“ciao”;

- Istruzioni condizionali, esse consentono al processore di operare delle scelte sulla base della

veridicità o meno di una condizione;

- Istruzioni iterative, esse consentono al processore di eseguire più volte il “corpo del ciclo” in base al

verificarsi o meno di una condizione (es. “visualizza errore” if A=0);

- Istruzioni di fine programma.

LA TRADUZIONE DEI PROGRAMMI

Il programmatore formalizza le istruzioni scrivendole in un linguaggio simbolico detto linguaggio di

programmazione. Esistono due tipi di linguaggi di programmazione:

- Di alto livello - HLL (HIGHT LEVEL LANGUAGE): esso è compatibile con qualsiasi processore (quindi è

portabile);

- Di basso livello - LLL (LOW LEE LANGUAGE): esso è compatibile con un solo processore (quindi non è

portabile) un esempio è il linguaggio assembly (assembler è il traduttore);

I programmi per essere eseguiti devono essere tradotti dal linguaggio di programmazione al linguaggio

macchina. Il programma scritto dal programmatore e che deve essere tradotto prende il nome di codice (o

programma) sorgente. La traduzione, fatta dal traduttore (esso può tradurre un solo linguaggio di

programmazione), può essere svolta attraverso:

- La compilazione, in questo caso il traduttore prende il nome di compilatore; la compilazione del

codice sorgente da origine al programma eseguibile (es. primo.exe) che può essere generato da uno

o più codici sorgenti compilati; i programmi compilati sono mono piattaforma, eseguibili quindi su

una sola piattaforma (sistema operativo); la compilazione si divide in 2 fasi:

 Nella prima fase il compilatore traduce il codice sorgente in linguaggio macchina generando

il programma oggetto (OBJ), questo programma non è eseguibile in quanto contiene sia

istruzioni che funzioni;

 Nella seconda fase il programma oggetto viene dato al linker che unisce l’obj con le librerie

(DLL – dinamic library link) generando il programma eseguibile.

 Esempio: COMPILA PRIMO.C → PRIMO.OBJ (OGGETTO)

LIKER FAI PRIMO.OBJ + LIBRERIA 1 + LIBRERIA 2 → PRIMO.EXE (ESEGUIBILE)

- l’interpretazione, in questo caso il traduttore prende il nome di interprete; in questo caso il

programma sorgente viene tradotto durante l’esecuzione (come nel caso della pagina web, il cui

interprete è il browser), pertanto è multipiattaforma (può essere eseguito su qualsiasi piattaforma).

ERRORI DEL SOFTWARE

- SINTATTICO: è un errore inerente alla sintattica del software (es. mancanza di…), questo errore

può essere presente solo nei programmi interpretati ed è un errore che non blocca l’esecuzione del

programma.

- SEMANTICO: è un errore inerente alla semantica del programma e si presenta quando non v’è

coerenza tra il tipo di variabile e il campo utilizzato per la stessa; come per l’errore sintattico, può

essere presente solo nei programmi interpretati e non blocca l’esecuzione del programma.

- LOGICO: è un errore che si presenta quando non è rispettata la logica del programma; quindi,

l’istruzione non genera il risultato atteso ed esatto; questo errore non può essere rilevato dal

traduttore, quindi, può essere presente sia nei programmi compilati che interpretati e non ne blocca

l’esecuzione

- RUN TIME: è un errore che si manifesta durante l’esecuzione del programma quando si tenta di

eseguire un’operazione che non può essere portata a termine; pertanto, blocca l’esecuzione del

programma; come quello logico non può essere rilevato da traduttore, quindi, può essere presente

sia nei programmi compilati che nei programmi interpretati;

- DI LOOP: è un errore che non comporta l’interruzione del programma ma che fa si che una o più

istruzioni contenute nel corpo del ciclo vengano eseguite all’infinito; come per l’errore logico e di

run time non è evidenziato dal traduttore, quindi, può essere presente sia nei programmi compilati

che interpretati.

La correzione di un errore attraverso la manutenzione correttiva rappresenta un costo per chi ha

acquistato u software se l’errore è presente in una funzione non specificata nell’analisi dei requisiti.

CARATTERISTICHE DEL SOFTWARE

Il software è la parte intangibile del computer. Esistono 2 tipologie di software:

- software di base: il sistema operativo che è il gestore di tutte le risorse (hardware e software);

proprio per questo è orizzontale;

- software applicativo: i programmi e le app che servono per svolgere delle funzioni (es. per scrivere

un testo si utilizza word).

Nello specifico il software consiste nella formalizzazione di un algoritmo (strategia da seguire per

risolvere un problema) attraverso un linguaggio di programmazione. Esso è composto dai seguenti

elementi:

- il codice del programma;

- l’analisi dei requisiti, che consiste nell’elenco delle funzioni che il software può svolgere;

- programmi di configurazione per l’impostazione iniziale;

- documentazione per l’utente;

- sito web che permette di scaricare gli aggiornamenti.

La prestazione di un software consiste nel tempo che impiega per raggiungere un obiettivo (es.

visualizzare un risultato). I software hanno prestazioni differenti e ovviamente il software compilato

è più veloce di quello interpretato.

La qualità di un software è misurata dalle seguenti caratteristiche:

- correttezza: un software è corretto quando non ci sono errori nelle funzioni specificate nell’analisi

dei requisiti; questa qualità del software è assoluta;

- affidabilità: un software è affidabile nella misura in cui un utente può fare o meno affidamento

sulle sue funzionalità; questa qualità del software è relativa perché dipende dalle funzioni che

l’utente utilizza (es. se l’utente non utilizza le funzioni che contengono errori lo riterrà affidabile

anche se il software non è corretto), pertanto un software corretto è sicuramente affidabile mentre

un software affidabile non è detto che sia corretto.

- robustezza: un software è robusto quando contiene delle funzioni aggiuntive rispetto quelle

specificate nell’analisi dei requisiti;

- efficienza: un software è efficiente quando ha delle buone prestazioni, queste variano a seconda

del peso che lo stesso ha sulle risorse che utilizza;

- usabilità: un software è usabile quando è semplice da utilizzare e per esserlo deve seguire delle

best practice (standard);

- accessibilità: un software è accessibile quando può essere utilizzato anche dalle persone affette

da stabilità; l’usabilità del software è disciplinata dalla legge 4/2004 (es. le immagini devono

contenere l’equivalente testuale per i non vedenti;

- mantenibilità: un software è mantenibile quando per effettuare la manutenzione si impiegano

poche risorse (intese come tempo e danaro), la manutenzione può essere:

*correttiva, quando serve per correggere degli errori presenti nel software ed è a carico della

software house se l’errore fa parte di una funzione specificata nell’analisi dei requisiti;

*evolutiva, quando serve per implementare ulteriori funzioni ed è sempre a carico del cliente;

*adattiva, quando serva a adattare il software a nuove disposizioni di legge e il costo dipende dal

contratto stipulato.

IL PROCESSORE - IL COMPUTER (SISTEMA CENTRALE E PERIFERICO)

1. il processore o CPU (acronimo di Central Processing Unit) o microprocessore;

2. la memoria centrale o RAM (acronimo di Random Access Memory);

3. i dispositivi di I/O (acronimo di Input/Output) o periferiche;

4. le memorie di massa;

5. i programmi.

1, 2, 3, 4 compongono l’hardware del computer, mentre il 5 il software.

Il computer può essere visto come un sistema costituito dai seguenti sottosistemi:

- il sottosistema centrale, costituito da:

 processore: è il componente del computer che esegue i programmi (insieme di istruzioni e funzioni); un

programma per essere eseguito deve risiedere in memoria centrale in cui trovano posto due diverse entità,

i programmi e i dati su cui gli stessi programmi agiscono; il processore è composto da tre unità:

- ALU - unità aritmetico-logica (arithmetic and logic unit), essa ha il compito di eseguire tutti i calcoli

aritmetici e i controlli logici del tipo “minore di”, “uguale a”, ecc. I dati su cui vengono svolti i calcoli devono

essere preventivamente memorizzati nella memoria centrale del calcolatore.

- CU - unità di controllo (control unit), essa controlla il funzionamento del sottosistema centrale

permettendo la sincronizzazione tra le varie unità e controllando lo stato di avanzamento dell’esecuzione

di un programma in modo tale da sapere sempre quale sarà la prossima istruzione da eseguire.

- MU - unità di memoria (memory unit) ha il compito di interagire con la memoria centrale per prelevare,

da quest’ultima, le istruzioni e i dati e scriverci i risultati delle operazioni effettuate. Tutti i processori sono

dotati di registri, piccoli circuiti di memorizzazione che hanno la funzione di memorizzare dati e/o istruzioni.

I registri sono, dunque, delle memorie velocissime e piccolissime interne al processore. Ogni processore ha

un numero prefissato di registri di dimensione opportuna e con specifica funzione. Il numero e la grandezza

dei registri varia da processore a processore e ne vincola in modo sensibile le potenzialità.

Nel processore inoltre è integrata la MEMORIA CACHE (detta anche memoria cuscinetto) che viene

utilizzata dallo stesso processore per memorizzarci i dati che utilizza più spesso. Essa è posta tra CPU e RAM

e permette di migliorare le prestazioni della CPU diminuendone la degradazione (causata dalla differenza

di velocità tra la RAM e il

Anteprima
Vedrai una selezione di 4 pagine su 12
Informatica Pag. 1 Informatica Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Informatica Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Informatica Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher f.demarco27 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bari o del prof Gianniti Luigi.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community