Introduzione. Ullteriiorii consiideraziionii

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione. Ullteriiorii consiideraziionii"

Transcript

1 Appunti di Calcolatori Elettronici Appendice 1 Concetti vari STRUTTURE ASTRATTE DI DATI... 1 Introduzione... 1 Ulteriori considerazioni... 1 Lista... 2 Coda, Pila, Doppia Coda... 3 Matrice o Array... 3 Tavola... 4 Grafi... 4 APPUNTI VARI... 6 Argomenti vari... 6 Rappresentazione grafica degli stadi di esecuzione di una istruzione Gestione delle interruzioni Strutture astratte dii datii Introduzione E utile esaminare i principali tipi di insiemi di dati dotati di una propria struttura logica (insiemi ai quali si dà il nome di strutture astratte di dati) e i principali sistemi per la loro rappresentazione nella memoria di un calcolatore (ossia le cosiddette strutture concrete di dati adatte a contenere le strutture astratte). In seguito, useremo il termine elemento (o anche nodo) per indicare la componente base di una struttura astratta di dati: potrà trattarsi di un dato semplice di un certo tipo oppure di una sequenza di dati semplici, anche di tipo diverso (ossia di ciò a cui viene dato il nome di record). Ricordiamo, infine, prima di procedere, che con il termine struttura astratta di dati si indica un insieme finito di elementi e un insieme di leggi che definiscono le relazioni esistenti tra gli elementi dell'insieme. Ullteriiorii consiideraziionii Se bisogna risolvere un certo problema, è necessario considerare due aspetti fondamentali: i dati sui quali si intende lavorare e le operazioni che si intende compiere su tali dati. I due aspetti sono evidentemente collegati tra loro: infatti, la scelta della struttura dati influenza non poco l'algoritmo, il quale riguarda l'

2 Appunti di Calcolatori Elettronici Appendice 1 "aspetto delle operazioni da eseguire". In molti casi sono possibili più strutture alternative, tutte apparentemente idonee a risolvere bene uno stesso problema. Tuttavia, una attenta analisi sul costo, in termini di operazioni necessarie a seconda della struttura scelta, porta poi a preferire una struttura rispetto alle altre. Viceversa, una scelta sbagliata potrebbe condizionare parecchio la scrittura dell'algoritmo. Esistono due tipi fondamentali di strutture astratte di dati: le strutture statiche richiedono che il massimo numero di elementi appartenenti alla struttura stessa sia stabilito alla creazione e non possa venire in alcun modo modificato; le strutture dinamiche, invece, non impongono questo tipo di vincolo e perciò presentano dimensioni potenzialmente illimitate (che poi in realtà sono comunque limitate dalla memoria disponibile). Lista Con il termine lista si indica un insieme finito di dati nel quale è definita una legge di ordinamento, ossia un insieme per il quale è stabilita una corrispondenza biunivoca tra i suoi elementi e l'insieme dei primi n numeri naturali. In base a questa legge, è possibile stabilire quale è il primo elemento di questo insieme e quale l'ultimo ed è inoltre possibile stabilire quale, tra due elementi qualsiasi dell'insieme, precede l'altro e quale segue. La caratteristica principale di una lista è nell'accesso ai suoi elementi: infatti, l'accesso ad un elemento qualsiasi di una lista avviene tramite una ricerca sequenziale a partire dal primo elemento della lista per finire all'elemento considerato. Come vedremo, altre strutture dati come la pila o la matrice presentano un metodo di accesso diverso. Esempio semplicissimo di lista è un normale testo letterario: in questo caso, gli elementi che costituiscono l'insieme sono le singole parole e i segni di interpunzione, mentre l'ordinamento è definito dalla posizione fisica che gli elementi occupano nel testo. Un tipo particolare di lista è la stringa: si tratta di una lista i cui elementi componenti sono caratteri di un determinato alfabeto. Gli elementi di una lista possono essere indicati con una notazione del tipo A1, A2,..., Ai-1, Ai, Ai+1,..., An-1, An che mette in rilievo la loro sequenzialità. Tuttavia questo tipo di notazione non deve indurre a pensare che l'accesso all'elemento Ai avvenga in base all'indice, ma, come detto prima, esso avviene in modo sequenziale a partire dall'elemento A1. Se il numero dei dati che compongono una lista rimane costante nel tempo, allora si parla di lista a lunghezza fissa; se invece il numero di dati cambia (a seguito di operazioni di inserimento o di cancellazione), allora si parla di lista a lunghezza variabile. Le liste a lunghezza variabile sono quelle più usate e più interessanti dal punto di vista applicativo: questa loro caratteristica fa sì che le liste vengano considerate strutture di dati di tipo dinamico (in seguito si tornerà su questa definizione). Su di una lista possono essere eseguite due diverse categorie di operazioni: ci sono operazioni globali che interessano tutti gli elementi della lista e operazioni locali che interessano invece i singoli elementi della lista stessa. Tra le operazioni globali c'è per esempio la completa fusione di due liste in una sola, oppure la suddivisione di una lista in più parti o anche l'ordinamento degli elementi della lista secondo un ordine differente da quello iniziale e così via. aggiornamento: 7 luglio

3 Concetti vari Tra le operazioni locali, distinguiamo inviamo le seguenti operazioni fondamentali: l'accesso ad un elemento per determinarne il "valore" oppure per modificarlo; l'inserimento di un nuovo elemento tra altri due elementi, oppure all'inizio o alla fine della lista; l'eliminazione di un elemento, magari quello iniziale o quello finale. Infine, ricordiamo che la nozione di lista può essere ulteriormente generalizzata: si possono infatti considerare liste i cui elementi sono a loro volta liste con elementi e così via. Coda, Pila, Doppia Coda Con il termine coda indichiamo una lista di lunghezza variabile, in cui tutti gli inserimenti vengono effettuati dopo l'ultimo elemento (chiamato fondo della coda) mentre tutte le estrazioni con eventuale eliminazione avvengono sul primo elemento (chiamato testa della coda). Questo significa che il primo elemento che può essere estratto in un determinato istante è quello che è stato inserito per primo: ecco perchè si parla di metodo F.I.F.O, che sta per First In First Out. Con il termine pila (oppure stack in inglese) si indica una lista di lunghezza variabile nella quale sia gli inserimenti dei dati sia le estrazioni avvengono solo ad un estremo. Di conseguenza,in una pila il primo elemento estraibile ad un determinato istante è quello che è stato inserito per ultimo: esso viene chiamato elemento affiorante e il metodo con cui un calcolatore accede ad una pila di dati viene detto metodo L.I.F.O., cioè Last In First Out. Per coerenza con il nome che è stato assegnato, le pile vengono in generale rappresentate come un insieme di elementi disposti verticalmente uno sull'altro, cioè come avverrebbe ad esempio per la rappresentazione di una pila di pratiche disposte sopra una scrivania se le aggiunte venissero fatte, così come i prelevamenti, in cima. L'immissione di un nuovo elemento in una pila è una operazione che in inglese viene indicata con il termine push down (o semplicemente push): infatti si immagina che l'elemento da inserire venga semplicemente affondato. Per analogia l'operazione di estrazione dell'elemento affiorante viene chiamata pop up (o semplicemente pop), come se in fondo alla pila ci fosse una molla che fa schizzare fuori l'ultimo elemento inserito non appena si apre una valvola o qualcosa del genere. Matrice o Array Una matrice a n dimensioni è un insieme finito di elementi in corrispondenza biunivoca con un insieme di n-ple ordinate di numeri interi chiamati indici. Nel caso di n=2, si parla di matrice a 2 dimensioni; nel caso di n=1 si parla di vettore (array in inglese). Caratteristica essenziale della matrice, che è una struttura a lunghezza fissa, è l'accesso ad un suo elemento tramite la n-pla di indici che lo contraddistingue, aggiornamento: 7 luglio

4 Appunti di Calcolatori Elettronici Appendice 1 senza passare attraverso operazioni di ricerca sequenziale come accadeva nelle liste. Questo significa che un vettore si distingue da una lista per il fatto che l'accesso all'elemento Ai di una matrice unidimensionale avviene in modo diretto, specificando semplicemente l'indice i, mentre l'accesso allo stesso elemento di una lista avviene tramite una ricerca sequenziale che partendo da A1 scorre gli elementi A2,A3,..,Ai-1 fino ad arrivare ad Ai. Tavola Con il nome tavola (o tabella) si intende un insieme finito di elementi, ciascuno dei quali è un "record" costituito da due parti: la prima di queste viene chiamata chiave dell'elemento; la seconda è chiamata valore ed è costituita da uno o più dati associati alla chiave. Usualmente, le chiavi sono tutte diverse tra loro e quindi l'accesso ad un elemento della tavola avviene tramite la sua chiave. Le tavole si presentano con frequenza molto elevata nei problemi di elaborazione automatica dei dati. Pensiamo ad esempio al listino prezzi di un negozio: il codice articolo costituisce la chiave mentre il valore può comprendere sia il prezzo sia anche una breve descrizione del prodotto. Un altro esempio semplice quanto comune è una tavola in cui ogni elemento è costituito dai vocaboli che individuano lo stesso oggetto in due lingue diverse. Ad esempio, la chiave potrebbe essere il termine in italiano mentre il valore potrebbe essere il corrispondente termine inglese: si ha così una tavola per la traduzione dall'italiano all'inglese. Le tavole giocano un ruolo molto importante anche nella realizzazione di assemblatori e di compilatori e, in generale, in tutti i casi di corrispondenze tra insieme esprimibili mediante formule matematiche. Grafi Il termine grafo viene usato per indicare una particolare figura geometrica, costituita da un insieme finito di punti, detti nodi (oppure vertici), e da segmenti o archi, detti lati (o spigoli), che congiungono coppie di nodi. Possiamo subito fare le seguenti considerazioni: possiamo supporre, ad esempio, che ciascun nodo del grafo sia il supporto di un dato o di un intero record e possiamo inoltre supporre che ciascun lato dello stesso grafo sia la rappresentazione di una relazione esistente tra i dati contenuti nei nodi che si trovano alle estremità del lato stesso; allora, visto in quest'ottica, un grafo può tranquillamente essere visto come la rappresentazione di una particolare struttura astratta di dati. Sia dato quindi un grafo qualsiasi, con un numero qualsiasi (purché ovviamente finito) di nodi e di lati. Vediamo qualche definizione: aggiornamento: 7 luglio

5 Concetti vari due nodi del grafo si diranno adiacenti se esiste un lato che li congiunge; una successione di nodi sarà perciò costituita da un certo numero di nodi adiacenti a due a due collegati tra loro; in particolare, se la successione data non contiene due volte lo stesso lato, allora si parla di cammino; a sua volta un cammino può essere di vari tipi: si parla di cammino semplice se contiene tutti nodi distinti fatta eccezione, al più, per il primo e l'ultimo nodo che potrebbero anche coincidere; inoltre, un cammino che congiunge un nodo con se stesso si dice cammino ciclico. In particolare, un cammino ciclico che è anche semplice viene brevemente chiamato ciclo (oppure circuito); un particolare tipo di grafo è il cosiddetto grafo connesso: se, dato un grafo qualsiasi e presi due qualsiasi suoi punti, è sempre possibile congiungere tali nodi mediante un cammino, allora il grafo si definisce appunto connesso. E' possibile che ogni lato di un grafo sia dotato di un orientamento, ossia di un qualcosa che precisa la relazione logica che intercorre tra i dati contenuti nei due nodi congiunti dal lato stesso. Allora, se i lati di un grafo sono tutti orientati, si parla di grafo orientato: in questo caso, i lati vengono graficamente rappresentati mediante un arco che termina con una freccia. Per i grafi orientati, così come per i grafi normali, si definiscono le nozioni di cammino orientato (successione di nodi adiacenti contenente ogni lato 1 sola volta) e di cammino ciclico orientato(cammino orientato che congiunge un nodo con se stesso). aggiornamento: 7 luglio

6 Appunti di Calcolatori Elettronici Appendice 1 Appuntii varii Argomenti vari Un processo è rappresentato da un modello matematico. Possono esserci processi di diversi tipi. I programmi, che costituiscono il processo da realizzare, sono informazioni. Le informazioni trovano posto nella memoria, che è una struttura sequenziale di byte. Ciò che distingue una calcolatrice da un calcolatore è che la calcolatrice ha una continua interazione con l utente (il quale scandisce le operazioni ed i loro operandi), mentre il calcolatore ha un programma in memoria che attive le operazioni con una sua precisa sequenza. Il calcolatore ha dunque il processo memorizzato. L intelligenza di un programma è tanto maggiore quanto maggiore è il numero di diramazioni possibili. La memoria principale di un calcolatore è dotata di accesso random (casuale): questo perché è possibile accedervi per posizione casuale in ingresso, grazie al meccanismo degli indirizzi. L architettura di un calcolatore è l insieme delle soluzioni tecniche secondo cui il calcolatore è stato realizzato. Un calcolatore funziona come una specie di catena di montaggio: è uno scorrere di processi, una serie di passaggi. Il passaggio da un sistema ad un altro del calcolatore crea una codifica e decodifica. Ogni sistema fa da interfaccia tra altri due sistemi, uno a monte ed uno a valle. In generale, una interfaccia è un sistema che adatta la comunicazione tra due dispositivi che differiscono tra loro per tecnologia, velocità o codice. Data una struttura di dati a pila (stack), la sua dimensione è pari a MAX- MIN+1, dove MAX è l elemento in cima, mentre MIN è l elemento in fondo. Ad esempio, in presenza di due elementi, si ha MAX=2 e MIN=1, per cui la dimensione è 2. A proposito della memoria, ricordiamo che non esiste una operazione di cancellazione di una locazione di memoria; le uniche due operazioni possibili sono la scrittura e la lettura. La scrittura di un bit in memoria è una operazione di SET al nuovo valore del flip-flop rappresentativo della cella di memoria destinata ad accogliere quel bit. Tutti i calcolatori usano una struttura a bus (eventualmente a più bus), in cui tutti i dispositivi sono collegati tra loro tramite un unico fascio di cavi, il bus appunto. L alternativa sarebbe un collegamento stellare, nel quale cioè il processore (che fungerebbe da centro stella) sia collegato a tutti i dispositivi (memoria, video, stampante, tastiera, altre periferiche di I/O). Un collegamento di questo tipo ( 1 ) non sarebbe sicuramente quello ottimale dal 1 Un classico esempio si ha con i contatori ENEL nelle abitazioni, da cui partono tutti i cavi per eliminare gli apparecchi a muro nonché le prese elettriche. aggiornamento: 7 luglio

7 Concetti vari punto di vista dell ottimizzazione dei percorsi ed è inoltre molto costoso, dato che per ogni dispositivo è necessario avere una nuova linea di comunicazione con il processore. Dal punto di vista del risparmio energetico, invece, il collegamento stellare appare come la soluzione migliore: infatti, nel collegamento con bus unico, mettere più impianti sullo stesso cavo significa determinare un maggiore assorbimento di potenza attraverso un unico filo e quindi maggior riscaldamento e quindi anche maggior consumo. Nonostante quest ultima considerazione, il collegamento a bus viene preferito in quanto è quello che crea una migliore ottimizzazione delle risorse. Diamo qualche concetto relativo al collegamento delle periferiche di I/O ad un calcolatore elettronico: se vogliamo collegare una periferica che lavori alla massima velocità, è opportuno collegarla tramite una porta parallela. In alternativa, possiamo pensare di adottare una scheda, detta SCSI, che riconosce in maniera esclusiva le periferiche connesse ad un bus esterno. Esistono ovviamente dei limiti al numero di dispositivi collegabili su una stessa linea; ci sono comunque degli standard, come l HPIB (HP Interface Bus), che consentono di utilizzare fino a 256 dispositivi diversi. Lo svantaggio di queste tecniche è che comunque i dispositivi possono parlare uno per volta. Con il nuovo standard USB (Universal Serial Bus) si possono creare dei festoni di dispositivi: se il fan out non è tale da consentire il collegamento di un nuovo dispositivo, viene usata una interfaccia USB per ogni unità. Teoricamente, lo standard USB potrebbe dunque funzionare come la SCSI, anche se per il momento viene usato per singoli dispositivi, nonostante il fan out sia maggiore rispetto a SCSI. L unità aritmetica e logica (ALU) di una CPU funziona nel modo seguente: svolge tutte le possibili operazioni (aritmetiche e logiche) che è in grado di svolgere sugli operandi in ingresso; successivamente, tramite il codice dell operazione richiesta, la logica di controllo seleziona quale, di tutti i risultati prodotti, è quello di interesse: tale risultato è quello effettivamente prelevato in uscita dalla ALU. Questo è peraltro il meccanismo di funzionamento di tutti i circuiti che hanno un funzionamento continuo: spesso essi lavorano a vuoto, ma devono comunque trovarsi sempre in condizione di regime. Inoltre, dato proprio il fatto che la ALU sia una rete combinatoria, è necessario predisporre due latch che mantengano stabili gli ingressi, in modo tale che anche l uscita sia stabile e vengano evitate le cosiddette corse (dette anche alee) ( 2 ). RTL (Register Transfer Language) è il linguaggio che noi usiamo per descrivere il movimento dei dati nel calcolatore (in particolare nella CPU). Ricordiamo che proprio il movimento dei dati che crea l intelligenza di un processo: è cioè importante l attività a valle del dispositivo, ossia l attività di selezione ed instradamento. Nel capitolo sulle gerarchie di memoria abbiamo osservato che la più piccola unità di informazione che può essere presente (o meno) nella gerarchia a due livelli prende il nome di linea (o anche blocco ) quando si parla di memoria cache e di pagina quando si parla di memoria virtuale. Scendendo ulteriormente nella gerarchia di memorie, dato che al di sotto della memoria secondaria (il disco fisso) troviamo la rete (network), il termine corretto diventa pacchetto. 2 Si vedano, in proposito, i concetti trattati nel corso di Elettronica dei Sistemi Digitali aggiornamento: 7 luglio

8 Appunti di Calcolatori Elettronici Appendice 1 Esistono diversi modi di realizzare la multiprogrammazione, ossia quella tecnica per cui, su un calcolatore dotato di singolo processore, sia possibile far coesistere contemporaneamente più processi, che si alternano nell uso della CPU e delle risorse. Nei primi tempi, la strategia di multiprogrammazione utilizzata era quella cosiddetta a lotti (o anche batch): nel corso dell esecuzione di un dato processo (o programma), non appena la CPU diventa in operativa (ad esempio perché ha avviato una operazione di I/O e resta in attesa della sua conclusione), il sistema operativa passa all esecuzione di un altro programma, poi torna al precedente oppure va a servirne un altro e così via. Questo modo di operare è chiaramente di tipo asincrono, in quanto i passaggi da un processo all altro dipendono dalle evenienze, legate essenzialmente alle operazioni di I/O. Nei sistemi più recenti, invece, ha preso piede una valida alternativa, detta di time sharing (condivisione del tempo): in presenza di un sistema unico usato da più utenti (ad esempio ciascuno dotato di un proprio terminale), la CPU serve in modo paritario ogni utente, assegnando uno slot temporale a ciascuno. Il sistema operativo, quindi, tratta i vari processi assegnando a ciascuno un certo numero di cicli di clock. Il problema, di un meccanismo del genere, è che si corre il rischio che la CPU sia inattiva per alcuni cicli di clock, tipicamente quando è stata richiesta una operazione di I/O e la si sta completando. Un ulteriore strategia di multiprogrammazione è il cosiddetto multitasking, implementato ad esempio nei sistemi operativi Windows: ogni volta che viene aperta una data finestra, l attenzione della CPU e delle risorse è rivolta ad essa, anche se non si sta facendo niente, mentre le altre finestre aperte vengono sospese. Da notare, del resto, che questa strategia non esclude il funzionamento a lotti, con la differenza che, nel multitasking, è l utente stesso sostanzialmente a generare le interruzioni (quando passa da una finestra all altra), mentre invece nell altro sistema tutto dipende dall evolversi degli eventi. A volte, quando c è da stampare un documento molto lungo, si preferisce non occupare la memoria principale, salvando il documento su disco (nella cosiddetta area di spool) e lasciando che sia il DMA a gestire il passaggio del documento verso la stampante. In presenza di più documenti, essi vengono accodati, in modo da essere stampati con il classico metodo FIFO. A proposito della memoria virtuale, è compito del sistema operativo stabilire quanta parte della memoria secondaria (cioè generalmente del disco rigido) destinare alla memoria virtuale. Nel caso del sistema operativo Windows, poi, esso chiede all utente di indicare quanto spazio riservare alla memoria virtuale. In un calcolatore che usa la memoria virtuale, tutti gli indirizzi generati dalla CPU sono indirizzi virtuali, che devono necessariamente essere tradotti in indirizzi fisici, usando le apposite tabelle. In presenza di più processi contemporaneamente attivi (multiprogrammazione), è il gestore dei processi a gestire i riferimenti tra processi e tabelle di traduzione. Spesso, la memoria viene suddivisa in una parte riservata solo ai dati ed una riservata solo alle istruzioni. In questi casi, ci si può organizzare in diversi modi: ad esempio, si possono avere due tabelle per ogni processo (una di programma ed una di dati), a ciascuna delle quali sarà ovviamente associato un corrispondente TLB. Fino a qualche tempo fa, la densità di codice è banalmente rappresentata dal cosiddetto LOC (Line Of Code), ossia semplicemente dal numero di righe aggiornamento: 7 luglio

9 Concetti vari da cui erano composti i programmi: quindi, per stabilire quanto pagare un programma, si usava valutare il numero di linee di codice, il che naturalmente spingeva alcuni programmatori a pompare artificiosamente il loro codice, con il paradosso che chi invece si sforzava di ottimizzare il proprio codice veniva pagato di meno. Oggi, la valutazione dei programmi è stata decisamente rivisitata e razionalizzata. Un possibile metodo consiste nell introdurre artificiosamente nei programmi i cosiddetti break point: essi consentono di interrompere il programma in punti predefiniti e di effettuarne un debug. In questo modo, si ottiene una verifica a passi del programma, individuando i punti di test in modo opportuno. Così facendo, si riescono a individuare i punti funzionali del programma (definiti da funzioni autoconsistenti, ossia funzioni costituite da insiemi di istruzioni ciascuna di importanza critica, nel senso che l eliminazione di anche una sola di tali istruzioni comprometterebbe l intera funzione) e si paga in base a questi. Non esiste la prestazione assoluta di un processore rispetto ad un altro; bisogna invece confrontare i due processori nello svolgimento di una determinata funzione. Nel linguaggio C esistono due particolari istruzioni di incremento: l istruzione di pre-incremento (a=b++, corrispondente ad a=b e b=b+1) e quella di post-incremento (a=++b, corrispondente a b=b+1 e a=b). Un processore microprogrammabile è un processore per il quale è possibile definire il set di istruzioni. Questi processori sono a non più di 4 bit. Mettendone diversi in parallelo, si ottiene una cosiddetta bit slice. Il firmware è un software fisso, residente in hardware. A volte, impropriamente viene definito come firmware tutto ciò che si trova in una memoria ROM: questo è scorretto, in quanto ad esempio il kernel si trova nella ROM ma non è firmware, in quanto lo si programma separatamente. Più correttamente, firmware è tutto il software che si trova nella piastrina del processore. Uno stesso processore può essere dotato di più set di istruzioni. Il software viene sempre modularizzato tramite subroutine, cioè moduli del programma. Quanto più un programma è modularizzato, tanto più è leggibile, documentabile, testabile e manutenibile. Inoltre, la modularizzazione conferisce al software maggiore robustezza, nel senso che si riescono a prevedere tutte le possibili situazioni, anche quelle non previste. Ad esempio, bisogna sempre prevedere il caso in cui vengano immessi dei dati sbagliati. Nei codici operativi dei processori, possono esserci combinazioni di bit non utilizzabili: queste possono essere riconosciute come NOP, in modo tale che il programma possa continuare a funzionare. Siamo sempre nell ambito della robustezza del software. TRAP è una interruzione interna: avviene sempre in uno stesso punto se vengono adoperati gli stessi dati in ingresso al programma in esecuzione. Consideriamo una CPU dotata di memoria cache e supponiamo che la CPU richieda un dato che la cache non possiede. Si può pensare allora a tre strategie diverse: la prima è quella per cui la cache prende il dato dalla memoria principale e lo fornisce alla CPU, dopodiché carica l intero blocco a partire dalla prima parola; la seconda strategia è che la cache comincia aggiornamento: 7 luglio

10 Appunti di Calcolatori Elettronici Appendice 1 subito a caricare il blocco dalla prima parola, ma, appena arriva al dato richiesto, lo fornisce alla CPU, dopodiché procede a caricare il resto del blocco; la terza ed ultima strategia è che la cache comincia a carica il blocco a partire dal dato richiesto, fornendo quest ultimo subito alla CPU, dopodiché carica la parte rimanente del blocco. E evidente che la prima e la terza strategia forniscono la penalizzazione di fallimento più bassa, dato che il dato richiesto viene consegnato il prima possibile alla CPU, ma sono anche quelle più complesse da implementare. Il DMA può impegnare il bus dei dati solo se non lo impegna la cache, in quanto questa ha priorità di accesso più alta. Nel frattempo, il processore non è comunque fermo, essendo una macchina a regime. Il buffer è una struttura di memoria di tipo FIFO, che riceve dati e non ha bisogno di indirizzi. E possibile realizzare una unità di calcolo che, invece di tre bus come il DLX, abbia un unico bus interno? Per farlo, è fondamentale anteporre un latch davanti ad uno degli ingressi della ALU, mentre l altro ingresso riceve direttamente l operando dal bus. Serve anche un latch all uscita della ALU. Al fine di migliorare le prestazioni di un calcolatore, a parità di tecnologia di realizzazione, dobbiamo cercare di ottenere la massima sovrapposizione in termini di tempi, stadi, eventi e così via. Questo è il principio guida che porta, ad esempio, alla pipeline o alla memoria cache. In informatica, risulta sempre A+B=A quando B è molto minore di A. Si definisce kernel il nucleo del sistema operativo. Si tratta però di un termine abbastanza generale, che assume di volta in volta nomi diversi: ad esempio, nel caso dei sistemi DOS e Windows, si parla di bios. Il kernel contiene ad esempio il cosiddetto bootstrap, che permette di caricare, quando il computer viene avviato, i driver di tutte le periferiche; permette anche di verificare quanta memoria risulta disponibile. Al giorno d oggi, alcuni hard disk professionali sono dotati di una loro memoria cache, che serve da interfaccia con la memoria principale. Tra le altre cose, questa cache consente di rendere l hard disk meno stressato, evitando che stia continuamente a leggere e scrivere. In un sistema multiprocessore a memoria condivisa, tale memoria fa in modo che i processori possano scambiarsi i dati, dato che stanno lavorando allo stesso processo. Se invece non ci fosse la memoria condivisa, allora un processore dovrebbe prendere i dati da un altro attraverso linee di comunicazione apposite. In un sistema multiprocessore, il tempo di elaborazione può aumentare a causa di una frazione del processo non parallelizzabile o anche perché si verifica uno stato di attesa di risultati provenienti da altri processori. Così come il processore ha registri MAR e MDR per comunicare con la memoria cache, anche la cache ha analoghi registri per comunicare con la memoria principale. Tra le varie differenze tra macchine RISC e CISC, c è anche quella per cui, nelle macchine RISC, il controllo può essere fatto in logica dedicata (ne abbiamo visto un esempio proprio sul DLX). aggiornamento: 7 luglio

11 Concetti vari La memoria virtuale non viene introdotta nei calcolatori solo per garantire che anche programmi più grandi della memoria fisica a disposizione possano essere eseguiti; al contrario, essa è stata introdotta fondamentalmente per garantire la presenza contemporanea di più processi in memoria. Con il termine mapping intendiamo fondamentalmente un processo che riceve un dato in ingresso e lo traduce in un dato in uscita. Ad esempio, nel controllo microprogrammato, il codice operativo dell istruzione situata nel registro IR viene tradotta nell indirizzo della prima microistruzione da eseguire (indirizzo relativo alla memoria di controllo). Una memoria a doppia porta, essendo destinata a due utenze contemporanee, è collegata necessariamente a due bus indirizzi e due bus dati. Ciò non esclude, comunque, che le due utenze siano in realtà riconducibili allo stesso processore. Rappresentazione grafica degli stadi di esecuzione di una istruzione Abbiamo sempre schematizzato graficamente i vari stadi di esecuzione di una istruzione nel modo seguente: Schematizzazione grafica semplificata delle varie fasi di esecuzione di una istruzione In effetti, avremmo potuto usare una rappresentazione leggermente più complessa, al fine di evidenziare alcuni particolari in più relativamente alle operazioni che vengono effettuate nei vari stadi ed al fatto che non tutte le istruzioni sono attive in tutti gli stadi; avremmo ad esempio potuto usare la seguente rappresentazione: Schematizzazione grafica dettagliata delle varie fasi di esecuzione di una istruzione Le frecce che collegano ciascuno stadio al successivo indicano uno trasferimento delle informazioni contenute nell istruzione. Dallo stato IF allo stadio ID è stato indicato uno sdoppiamento del percorso perché l informazione va sia al circuito di decodifica dell istruzione sia anche all indirizzamento del banco registri (in quanto ricordiamo che lo stadio ID comporta anche l esecuzione delle operazioni A Rs1 e B Rs2). aggiornamento: 7 luglio

12 Appunti di Calcolatori Elettronici Appendice 1 Il bypass dello stadio MEM indice invece il fatto che non tutte le istruzioni accedono alla memoria, anche se ribadiamo che, in una macchina con pipeline, la sincronizzazione degli stadi impone che, comunque, tutte le istruzioni attraversino tutti gli stadi della pipeline, pur senza richiedere il compimento di alcuna operazione. Il doppio percorso tra lo stadio ID e lo stadio EX è dovuto al fatto che lo stadio EX richiede sempre l intervento della ALU, che vuole in ingresso sempre due operandi, da scegliersi (tramite i multiplexer all ingresso dell ALU stessa) in base all istruzione. Da notare che istruzioni e dati, nella rappresentazione appena descritta, si muovono sempre da sinistra e destra attraverso il percorso ; concettualmente, fa eccezione a questo l ultimo stadio (WB, Write Back), in quanto il dato che viene eventualmente scritto nel banco dei registri potrebbe essere letto da una istruzione successiva, in corrispondenza dello stadio ID. Gestione delle interruzioni Quando si presenta una istruzione, per un processore dotato di pipeline come ad esempio quella del DLX, a prescindere dal tipo di interruzioni esistono tre distinte modalità di procedere: quella più drastica consiste nello svuotare la pipeline: bisogna cioè terminare l esecuzione delle istruzioni precedenti a quella che ha causato l interruzione, dopodiché l interruzione viene servita e si riprende l esecuzione a partire dalla stessa istruzione che l ha causata; una soluzione meno drastica consiste nel congelare la pipeline così com è, ossia nell arrestare tutti gli stadi in corso: viene servita l interruzione e poi tutti gli stadi sospesi vengono ripresi; infine, c è anche la possibilità di effettuare il cosiddetto switch del processore: si passa da un processore ad un altro di gestione interrupt (il quale non deve ulteriormente essere suscettibile di interrupt). Nella figura seguente è illustrata la prima strategia, ipotizzando che sia l istruzione i+2 a determinare l interruzione, in corrispondenza della fase ID: Istruzione i Istruzione i+1 Istruzione i+2 Istruzione i+3 IF ID EX MEM WB IF ID stallo stallo Istruzione i+4 Istruzione i+5 interruzione tempo (cicli di clock) Quando l interruzione viene rilevata, si provvede a servirla mentre si termina l esecuzione delle istruzioni precedenti, dopodiché si riprende dalla fase IF aggiornamento: 7 luglio

13 Concetti vari dell istruzione che ha provocato l interruzione. Un esempio di possibile applicazione di questa strategia sono le situazioni di mancanza di pagina. Nella figura seguente viene invece schematizzata la seconda strategia, supponendo che sia sempre la fase ID dell istruzione i+2 a determinare l interruzione: Istruzione i Istruzione i+1 ID EX MEM WB Istruzione i+2 IF ID stallo EX MEM WB Istruzione i+3 IF stallo ID EX MEM WB Istruzione i+4 Istruzione i Una volta servita l interruzione (qui si suppone che basti un solo ciclo di clock), si riprende dagli stadi che erano stati bloccati. Un esempio di possibile applicazione di questa strategia sono le situazioni di accesso incompleto a memoria, anche se, in realtà, queste non sono da considerarsi come dei veri e propri interrupt, visto che si tratta semplicemente di prolungare la durata di un singolo stadio di esecuzione. Da notare che, se l interruzione è esterna, la soluzione si presenza abbastanza semplice: infatti, essa viene rilevata prima della fase IF della prossima istruzione, per cui quest ultima viene sostituita dalla prima istruzione della routine di interrupt, che viene anch essa posta nella pipeline. Le interruzioni esterne asincrone (come le richieste dal sistema di I/O, un calo della tensione di alimentazione o altro) vengono sempre rilevata alla fine dell istruzione in corso e quindi servite prima della fase IF dell istruzione successiva. Se invece l interruzione è interna, allora il discorso è più complesso. Consideriamo, ad esempio, un processore con controllo microprogrammato, il che significa che l esecuzione di ogni istruzione corrisponde sostanzialmente all esecuzione di un microprogramma, cioè di una sequenza di microistruzioni: se si dovesse verificare una interruzione interna, come ad esempio una mancanza di pagina, il microprogramma in corso di esecuzione viene arrestato nel mezzo ed avviene un salto ad una subroutine di gestione dell interruzione che è un altro microprogramma. sandry@iol.it sito personale: aggiornamento: 7 luglio

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

Dettagli

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM Il computer è un apparecchio elettronico che riceve dati di ingresso (input), li memorizza e gli elabora e fornisce in uscita i risultati (output). Il computer è quindi un sistema per elaborare informazioni

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE CORSO INTRODUTTIVO DI INFORMATICA NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE Dott. Paolo Righetto 1 CORSO INTRODUTTIVO DI INFORMATICA Percorso dell incontro: 1) Alcuni elementi della configurazione hardware

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Laboratorio di Informatica di Base Archivi e Basi di Dati

Laboratorio di Informatica di Base Archivi e Basi di Dati Laboratorio di Informatica di Base Archivi e Basi di Dati Introduzione La memorizzazione dei dati è un aspetto molto importante dell informatica Oggi, mediante i computer, è possibile memorizzare e modificare

Dettagli

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica I componenti di un Sistema di elaborazione. Memoria centrale Memorizza : istruzioni dati In forma BINARIA : 10001010101000110101... È costituita da una serie di CHIP disposti su una scheda elettronica

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli