Scarica Architettura di Base dei Calcolatori: Memoria e Processing e più Schemi e mappe concettuali in PDF di Elementi di Informatica solo su Docsity!
Von Neumann teorizza il funzionamento dei computer moderni. I componenti principali sono:
MEMORIA CENTRALE
Contiene tutta l’informazione che deve essere elaborata “a breve termine”. Ogni elemento di informazione, per poter essere elaborato, deve prima essere acquisito nella memoria centrale. Essa è formata da RAM e ROM:
- RAM (Random Access Memory) indica una memoria ad accesso casuale. La parola random sta ad indicare che qualsiasi sia l’indirizzo di memoria, questo indirizzo verrà raggiunto e il dato potrà essere prelevato, ovvero depositato, nella cella di memoria nello stesso tempo. La RAM deve garantire un tempo di accesso a qualsiasi sua locazione di memoria che è uguale a qualsiasi sia l’indirizzo (caratteristica fondamentale per il funzionamento della CPU);
- ROM (Read Only Memory) indica una memoria a sola lettura. Essa contiene dei software che sono indispensabili per l’avvio del funzionamento dell’elaboratore. Esistono diversi tipi di ROM:
- PROM (Programmable ROM) ROM programmabili;
- ROM non programmabili ;
- EPROM (Erasable Programmable ROM) ROM programmabili e cancellabili;
- EEPROM (Electrical Erasable Programmable ROM) ROM elettroniche, programmabili e cancellabili. All’accensione vi è una fase di BOOTSTRAP in cui il processore accede alla ROM, visto che la RAM a computer spento perde le sue funzionalità. La RAM, infatti, è volatile (tempo di accesso 1ns = 10-^9 s), mentre la ROM è persistente. La memoria principale ha una struttura particolare, perché ogni riga rappresenta il contenuto di una cella, un byte.
BUS
Il bus è il componente del calcolatore dedicato al trasferimento dei dati e delle informazioni di controllo tra i vari componenti del calcolatore. Esistono tre tipi di bus:
- BUS DATI (data bus): è bidirezionale perché i dati devono poter essere trasmessi in lettura e scrittura;
- BUS INDIRIZZI (address bus): è unidirezionale e serve a informare la memoria principale di quale sia l’indirizzo della sua cella coinvolta nella successiva operazione di lettura o scrittura;
- BUS COMANDI (command bus): è unidirezionale e serve per inviare dei comandi attraverso la memoria (dice alla memoria se l’operazione è di lettura o scrittura).
DISPOSITIVI INPUT/OUTPUT
Bisogna, innanzitutto, chiarire cos’è una PERIFERICA : dispositivo accessorio utilizzato per mettere e/o ottenere informazioni da un qualsiasi sistema di elaborazione elettronico. Esistono diversi tipi di periferiche, ma a noi interessano:
- PERIFERICHE DI INPUT (o di ingresso): sono quelle che interagiscono o inviano dei dati dall’utente alla memoria centrale del computer. Tra le periferiche di input troviamo: tastiera, mouse, trackball e touchpad, microfono, tavoletta grafica, webcam, penna ottica e scanner, fotocamera digitale, joystick;
- PERIFERICHE DI OUTPUT (o di uscita): sono quelle che forniscono all’utente dei dati in uscita dalla memoria centrale del computer. Tra le periferiche di output troviamo: monitor, plotter, stampante, casse acustiche, videoproiettore, cuffie.
CPU
Sta per Central Processing Unit; è il processore che svolge una funzione centrale di coordinamento del funzionamento di tutte le unità che compongono il nostro elaboratore. Essa è collegata in maniera bidirezionale con la memoria centrale, attraverso i bus, e la bidirezionalità deriva dalla necessità di leggere e scrivere. Il bus, quindi, collega due unità funzionali alla volta, non può esserci una trasmissione contemporanea perché il processore evita accuratamente che ci siano delle sovrapposizioni negli stessi tempi, cosa che causerebbe una perdita di dati. La CPU è composta da due unità fondamentali di funzionamento:
- L’ UNITA’ DI CONTROLLO , all’interno della quale sono presenti dei registri specializzati:
- PC (Program Counter): registro contatore delle istruzioni, contiene l’indirizzo della prossima istruzione da eseguire;
- IR (Instruction Register): registro delle istruzioni, contiene l’istruzione che deve essere codificata;
- PSW (Processor Status Word): parola di stato del processore, contiene informazioni, opportunamente codificate, circa l’esito dell’ultima istruzione che è stata eseguita. L’unità di controllo fa funzionare l’elaboratore, da quando viene acceso a quando viene spento. Essa esegue in continuazione il cosiddetto CICLO DI ACCESSO/DECODIFICA/ESECUZIONE (fetch/decode/execute):
- FASE DI FETCH : si accede alla prossima istruzione (puntata da PC) e la si porta dalla memoria centrale all’IR;
- FASE DI DECODE : si decodifica il tipo dell’istruzione in base al suo OpCode, si individuano i dati usati dall’istruzione;
- FASE DI EXECUTE : si esegue l’istruzione.
- L’ UNITA’ ARITMETICO-LOGICA (ALU) è quell’unità che esegue operazioni aritmetiche e confronti di dati. Deve lavorare con i dati traferiti nei registri: - MAR (Memory Address Register): registro di indirizzamento della memoria, contiene l’indirizzo della cella di memoria che deve essere acceduta o memorizzata; - MDR (Memory Data Register): registro dati di memoria, dato che è stato prelevato dalla memoria o che deve essere memorizzato; Esiste un clock all’interno della CPU che serve a temporizzare l’esecuzione di ogni istruzione ( cicli di clock ). Le FREQUENZE DI CLOCK si misurano in hertz e nei suoi multipli ; l’unità di misura della VELOCITÀ PER I DISCHI è l’ rpm (rounds/giri per minuto); per la TRASMISSIONE DEI DATI utilizziamo i bit per secondo (bps) e i suoi multipli ; per la VELOCITÀ DEI SISTEMI DI ELABORAZIONE si utilizzano gli “ istruzioni per secondo ” (ips), i milioni di istruzioni al secondo (mips) oppure gli input/output operations per secondo (I/Ops). Tutti i componenti sono realizzati con TECNOLOGIA ELETTRONICA DIGITALE : per questo funzionano solo con due valori distinti di grandezza elettrica, in cui sono sostanzialmente e convenzionalmente associate le due cifre binarie 0 e 1. Dati, operazioni, istruzioni, vengono codificati con sequenze di bit. Generalmente, il trasferimento di dati binari o di istruzioni binarie dalla memoria principale al processore avviene per un multiplo di questi bit, in base alla dimensione del bus dati che collega il processore alla memoria. Questa sequenza di byte viene chiamata WORD (parola) ed è l’unità che permette il trasferimento parallelo in un solo ciclo di clock dei dati o delle istruzioni; la dimensione della parola, cioè la capienza della cella di memoria, è fissa. Ci sono processori che hanno un’architettura da 16 bit, quelli da 32 bit e, quelli più attuali, da 64 bit. 8 bit costituiscono 1 byte , quest’ultimo viene preso come unità di misura. I suoi multipli sono: KB (2^10 byte), MB (2^20 byte), GB (2^30 byte), TB (2^40 byte), PB (2^50 byte).
Ogni blocco del disco è identificato con la TERNA SUPERFICIE-TRACCIA-SETTORE. Per effettuare il trasferimento dei dati in memoria centrale occorre disporre un’area di memoria ( buffer ) di dimensioni pari al blocco. Il trasferimento avviene in tre fasi:
- Spostamento dalla testina (seek) verso la traccia richiesta;
- Attesa che il settore arrivi sotto la testina;
- Trasferimento dei dati in/da memoria centrale tramite il DMA (Direct Memory Access), che permette il trasferimento dei dati in maniera ripetuta senza che il processore sia interrotto ogni volta. DMA : tecnica di gestione del bus che conduce i dati nella RAM, in base alla quale non è necessario l’intervento della CPU per tale trasferimento. Il DMA viene utilizzato quando si hanno periferiche veloci che devono accedere alla memoria perché, se così fosse, il processore potrebbe rallentare il suo funzionamento con la politica ROUND ROBIN (RR), cioè a rotazione. FLOPPY DISK : sono dischi magnetici di piccola capacità, portatili, usati per trasferire informazioni (file) tra computer diversi; sono costituiti da un unico disco con due superfici. CD-ROM : funziona con una tecnica di memorizzazione diversa ( TECNICHE DI OTTICA ). Via via nel tempo è apparso il DVD-ROM. DISCHI OTTICI : usano il raggio laser, la cui caratteristica è la precisione. Il RAGGIO LASER è un raggio di luce polarizzato che vibra su un unico piano e che ha, quindi, una minore interferenza con l’aria riuscendo a mantenere precisa la direzione e a limitare il cono di allargamento che tipicamente accade per una luce non polarizzata. Colpisce, quindi, la superficie del disco e forma un solco a spirale; riesce a leggere se il bit è stato memorizzato con un foro su questa superficie (cifra in posizione 1) o se, riflettendo, il bit non è stato memorizzato (cifra in posizione 0).
MICROPROCESSORI
Sono caratterizzati da un’architettura interna che si misura con il grado di parallelismo. Si hanno degli indicatori di prestazione: il BENCHMARK è un software che è in grado di valutare le prestazioni dei sistemi dando una risposta precisa e misurando il THROUGHPUT (tempo di risposta), la velocitò di un video o il numero di FRAME AL SECONDO.
INTERFACCE
Sono dispositivi di collegamento in grado di assicurare la comunicazione tra due sistemi informatici, altrimenti incompatibili, oppure tra unità centrale e unità periferiche. Un’interfaccia molto vantaggiosa è l’ INTERFACCIA USB (Universal Serial Bus). L’USB è stato introdotto per fornire uno standard che superasse in prestazione le porte seriale e parallela. È, quindi, la soluzione ideale per le periferiche di media velocità. Altra interfaccia è la FIREWIRE : si tratta di uno standard di comunicazione ideato da Apple e sviluppato insieme a IEEE (quindi è conosciuto anche come standard IEEE 1394). Questa interfaccia consente di collegare al computer periferiche ad alta velocità, avendo una velocità di trasferimento in Mbit/secondo. Vi sono poi i CONTROLLER : dispositivi che devono garantire il trasferimento dei dati tra il computer e le periferiche, risolvendo alcuni problemi (tra cui l’adattamento di segnali elettrici, l’adattamento di impedenza, il collegamento fisico tra il bus del computer e quello relativo alla periferica, ecc..). Dunque, il suo ruolo è essenziale al fine di massimizzare il trasferimento dati. SCHEDE VIDEO : hanno delle memorie molto veloci, con risoluzioni molto elevate ed effetti grafici sofisticati. SCHEDE AUDIO : permettono di produrre e analizzare suoni stereo di alta qualità.
METODI DI I/O
Si basano sul meccanismo di INTERRUPT : è un segnale che arriva dall’esterno e che coinvolge la CPU, la quale rileva e gestisce questo segnale. Generalmente, l’interrupt è un SEGNALE ASINCRONO , ovvero un segnale non previsto che va ad interrompere l’attività che il processore sta eseguendo per gestire quello che l’interrupt prevede. Non sempre l’interrupt viene servito, dipende dalla priorità ed importanza che il processore ha rispetto al servizio che sta svolgendo. All’arrivo dell’interrupt si salvano nello STACK , ovvero una zona di memoria gestita con la tecnica chiamata LIFO (Last Input First Output ultimo che viene ad essere introdotto è il primo ad essere estratto), il programma e lo stato complessivo. SALVARE LO STATO COMPLESSIVO significa salvare i contenuti dei registri generali o specifici.
SCHEDA MADRE
La sua funzione principale è quella di permettere a tutti i componenti di un computer di comunicare tra di loro: infatti, proprio sulla scheda madre, sono presenti i bus. Il processore, dopo essere stato inserito e bloccato, potrà:
- Ricevere e trasmettere vari impulsi elettrici corrispondenti ai bit di comando che vengono emessi, per coordinare e controllare tutte le unità montate sulla scheda madre;
- Attivare/disattivare le operazioni di lettura/scrittura dalla memoria tramite il bus di controllo;
- Comunicare con le vie periferiche.
CHIP SET
È un gruppo di circuiti integrati, saldati sulla scheda madre, che si incaricano di tutte le operazioni di normale gestione. Esso non può essere aggiornato perché è caratterizzato dalle soluzioni hardware. In pratica viene progettato sia per una FAMIGLIA SPECIFICA DI PROCESSORI , quindi va di pari passo con questi ultimi e il loro miglioramento sarà supportato da un chip set capace di fornire al processore l’infrastruttura di base, che per una SPECIFICA TECNOLOGIA DI RAM , supporta le frequenze di CPU con una maggiore velocità nel trasferimento dei dati sui bus e le velocità del bus di memoria, che garantiscono performance sempre migliori. Due esempi di chip set:
- NORTHBRIDGE : che si occupa dello scambio di dati tra CPU, RAM e comparto grafico;
- SOUTHBRIDGE : che si occupa dell’I/O, slot PCI (Peripheral Component Interconnect) e varie porte.
BIOS
Il Basic Input Output System (Sistema di base per gli ingressi e per le uscite) è quell’insieme di software disponibile solitamente sulla memoria ROM o comunque in delle memorie non volatili (Flash Memory o EEPROM), così da essere aggiornato. Le funzioni svolte dal BIOS sono:
- Avvio del computer in fase di BOOT ;
- Funzione di POST (al momento dell’avvio questo software fa un controllo su tutti i dispositivi presenti e in caso di errori ne dà un segnale;
- Permette il caricamento dei DRIVER (es. scheda video). Il driver è un particolare tipo di software che si occupa di gestire l’hardware della scheda video, permettendo al sistema operativo di comunicare con questo hardware.
COMPONENTI DEL SISTEMA OPERATIVO
PROGRAMMA : insieme di istruzioni, scritte in un linguaggio di programmazione comprensibile all’elaboratore, che può essere eseguito (entità passiva). Quando il programma può essere eseguito è detto PROCESSO : programma di esecuzione in stato di avanzamento; ogni istruzione modifica tale stato, facendo assumere alla macchina delle configurazioni differenti (entità attiva). Il THREAD è una parte del processo, che scompone quest’ultimo in più parti differenti:
- SINGLE THREAD : vi è un unico flusso di esecuzione che procede in modo sequenziale. Tuttavia, possono esserci delle istruzioni che vengono eseguite più volte, ma si tratta ugualmente di un unico flusso;
- MULTI THREAD : vi sono più flussi che vengono eseguiti in parallelo da più core dei processori. Questo avviene solo quando l’algoritmo prevede la scomposizione in più attività parallele e, quando ciò accade, è il processo stesso che genera altri processi per poi ricongiungersi in un punto in cui tutti ritornano ad un’unica attività. I componenti del sistema operativo sono collegati alle varie funzionalità. Per sviluppare dei programmi bisogna avere un EDITOR DI TESTI , con cui il programma viene scritto, e un COMPILATORE o ASSEMBLATORE , che traduce un programma di altro livello in un linguaggio binario eseguibile; il processo di traduzione è eseguito da strumenti come il LINKING che collega moduli separati. LINK : collegamento tra l'elaboratore centrale e le sue unità periferiche, o tra elaboratori diversi. UNIX nasce come sistema operativo multiutente: la sua struttura si basa su dei controllori dispositivi che hanno l’interfaccia verso l’hardware e un kernel che gestisce i processi e che permette la locazione nella memoria principale; da questo è derivato LINUX , che ne ha riscritto il kernel per ridurre o azzerare i costi elevati per le aziende. La COMMUTAZIONE DI TESTO è il passaggio di esecuzione da un processo ad un altro; avviene in maniera molto veloce e, anche se si ha la sensazione che tutti i processi lavorino in contemporanea, è solo uno il processo che va avanti. Il programma che si occupa della distribuzione del tempo della CPU ai vari processi attivi si chiama SCHEDULER : esso decide la rotazione dei processi che in quel momento vengono eseguiti dal processore, i quali avvengono su dei criteri. Ci sono degli stadi di avanzamento:
- RUNNING , vuol dire che un processo è in esecuzione al momento;
- READY , vuol dire che il processo è pronto per acquisire il tempo di esecuzione che la CPU impiegherà ad eseguirlo e il processo evolve;
- WAIT , in cui il processo è momentaneamente sospeso e non è tra quelli candidati a ricevere il tempo di esecuzione del processore. Le POLITICHE DI SCHEDULING (politiche di schedulazione) utilizzate dallo scheduler possono essere raggruppabili in due grandi categorie:
- PREEMPTIVE : la CPU in uso da parte di un processo può essere tolta e passata ad un altro processo in qualsiasi momento;
- NON PREEMPTIVE : una volta che un processo ha ottenuto l’uso della CPU non può essere interrotto fino a che lui stesso non la rilascia. I SISTEMI MONO-TASKING sono sistemi che gestiscono un solo programma alla volta, ciò significa che i tempi ‘morti’ di esecuzione e le attese non sono sfruttate dal processore. I SISTEMI MULTI-TASKING sono sistemi che prevedono l’esecuzione contemporanea di più programmi; in questo caso abbiamo più processi attivi e il processore viene assegnato ad ogni processo.
Il GESTORE DELLA MEMORIA si riferisce al gestore della memoria principale (in particolare RAM); essa è quella che deve garantire le performance importanti per consentire ad un sistema operativo di essere efficiente. La memoria può essere vista come una semplice SEQUENZA DI CELLE che hanno indirizzi via via crescenti; si parte dall’indirizzo 0 della prima cella e si arriva a quella dell’indirizzo ‘n’ dell’ultima cella di memoria disponibile. FRAMMENTAZIONE : a furia di occupare e liberare spazi di memoria resteranno dei frammenti che nessun altro programma potrà utilizzare. Allora i programmi devono diventare una PAGINAZIONE , cioè si suddivide la memoria principale in blocchi fisici che hanno tutte la stessa dimensione. La MEMORIA VIRTUALE è un meccanismo che permette al sistema operativo di far apparire più memoria di quella che fisicamente possiede il sistema
EXCEL
È un foglio di calcolo del pacchetto Office, cioè un software che permette al computer di lavorare su dati prettamente numerici. Il FOGLIO DI CALCOLO è un programma che consiste in un insieme di righe (sono numerate, partono da uno e arrivano a 65.536, ma il numero può variare) e di colonne (etichettate con le lettere, quando si arriva alla Z si ha un raddoppio), visualizzate sullo schermo in una finestra. La funzione specifica del foglio di calcolo è il RICALCOLO AUTOMATICO : ciò significa che quando le formule fanno riferimento ai dati contenuti dalle celle, variando il valore presente nelle celle-parametro, il risultato verrà automaticamente rielaborato. Ci possono essere dei casi in cui la formula restituisce un VALORE ERRATO :
- (#DIV/0!) La formula sta cercando di eseguire una divisione per zero o per una cella vuota;
- (#NOME?) La formula utilizza un nome che Excel non riconosce;
- (#N/D) La formula fa riferimento, direttamente o indirettamente, a una cella che utilizza la funzione N D per segnalare che non sono disponibili dati;
- (#NULL!) La formula utilizza l’intersezione di due intervalli che non sono intersecanti;
- (#NUM!) Esiste un problema con un valore, per esempio si specifica che un numero negativo invece otteniamo un numero positivo;
- (#RIF!) Fa riferimento ad una cella non valida;
- (#VALORE!) La formula include un argomento operando di tipo sbagliato. Un operando è un valore o riferimento di cella utilizzato da una formula per calcolare un risultato. I file utilizzati da Excel sono noti come CARTELLE DI LAVORO che, generalmente, possono contenere tre fogli, ma possono aumentare generando una terza dimensione. È possibile, dunque, organizzare i nostri dati secondo delle schede poste in maniera successiva. CELLA : è l’elemento contenitore dei nostri dati, quando si lavora in Excel è attiva una sola cella. Una cella può contenere uno di questi tre tipi di dati:
- VALORI : noti anche come numeri, rappresentano vari tipi di quantità. I valori immessi nelle celle possono essere utilizzati in formule o fornire i dati utilizzati per formare un grafico. I valori possono essere costituiti anche da date od ore;
- TESTO : la maggior parte dei fogli di lavoro include in alcune celle un testo non numerico. Anche il testo che inizia con un numero viene considerato testo;
- FORMULE : sono l’elemento che rende Excel un foglio di calcolo. Quando si immette una formula in una cella, il risultato della formula compare nella stessa cella; se si modifica uno dei valori utilizzati dalla formula, la formula viene ricalcolata e nella cella compare il nuovo risultato. Nello specifico , le formule sono delle ESPRESSIONI ALGEBRICHE PARENTESIZZATE : nell’inserimento della formula è indispensabile anticipare il simbolo =.
Nella codifica dei caratteri si usa una convenzione cioè una corrispondenza tra il carattere che deve essere rappresentato e un codice numerico espresso in binario, che è il corrispondente codice della tabella ASCII. Per la rappresentazione dei numeri interi si usa la RAPPRESENTAZIONE POSIZIONALE ; si possono avere problemi di OVERFLOW , ossia si esce dal numero di cifre destinato alla rappresentazione e si genera un errore perché il numero non può essere rappresentato.
ARITMETICA BINARIA
Le regole delle operazioni aritmetiche che si possono effettuare con l’ ARITMETICA BINARIA sono identiche a quelle dell’aritmetica decimale, solo che:
- 0+0 = 0 con riporto 0;
- 0+1 = 1 con riporto 0;
- 1+0 = 1 con riporto 0;
- 1+1 = 0 con riporto 1. Quando si svolgono delle operazioni, può capitare che avvenga un overflow ma non è detto che avvenga egualmente nella base 10 o nella base 2. Si può dire però che l’overflow non è facilmente eliminabile, ma va gestito; può capitare sempre che un’operazione superi la capacità di rappresentazione delle cifre a nostra disposizione e per questo motivo si parla di un overflow che va gestito e non può essere eliminato.
BASI DI DATI
Per la traduzione schema E/R in modello relazionale/logico: ENTITA’ (CHIAVE PRIMARIA, CHIAVI SECONDARIE) Per la create table: CREATE TABLE ENTITA’ ( ATTRIBUTO TIPO DI DATO (VALORE) TIPO DI DATO* … … … ) Per le interrogazioni: SELECT attributi presi in considerazione FROM entità degli attributi WHERE risposta interrogazione DIAGRAMMA RETTANGOLI = ENTITA’ (soggetti storia); ROMBO = ASSOCIAZIONI O RELAZIONI (verbo); OVALI = ATTRIBUTI (caratterizzazione entità); CHIAVI PRIMARIE = TI PERMETTONO DI DEFINIRE L’ENTITA’ (pallino pieno ●) CHIAVI SECONDARIE = (pallino vuoto ○) CARDINALITA’ = RELAZIONE TRA I PUNTI. Può essere:
- UNO A MOLTI = 1: N;
- MOLTI A UNO = N:1;
- MOLTI A MOLTI = N:M (non si usa mai, deve essere trasformato). TIPO DI DATO CHAR(d) : può contenere una stringa di caratteri a lunghezza fissa, pari a d; *NOT NULL : per indicare che una colonna non può assumere valore nullo; VARCHAR2(d) : può contenere una stringa di caratteri a lunghezza variabile, pari a d; DATE : caratterizza un'informazione di tipo data; NUMBER(d,p) : può contenere numeri matematici (interi o decimali, positivi e negativi) formati da d cifre; INTEGER, INT o NUMERIC: numero intero; DOUBLE : numero decimale; *PRIMARY KEY : chiave primaria; FOREIGN KEY : chiave secondaria; REFERENCES : indica, in generale, un valore che identifica univocamente e permette di accedere a un dato; DEFAULT : usato per impostare un valore di default per un attributo, che sia compatibile con il suo dominio. NULL: rappresenta il valore di default di base. UNIQUE : Permette di definire una chiave candidata per la tabella.