Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio Galli ([email protected]) La memoria centrale BUS Il bus è un canale di comunicazione che permette a periferiche e componenti di un sistema elettronico di inviare/ricevere dati attraverso la trasmissione di segnali. Diversamente dalle connessioni punto-punto (due componenti collegate da una linea dedicata), un solo bus può collegare tra loro più dispositivi (più componenti condividono la stessa linea di comunicazione). Particolare importanza per la performance generale di un sistema di calcolo è l'ampiezza del BUS (misurata in bit). Tanto maggiore è l'ampiezza del bus tanto maggiori sono i bit che parallelamente vengono trasmessi tra le componenti del computer. La memoria centrale (o primaria) Programmi, processi e dati • Programma: entità passiva (statica) che descrive le azioni da compiere • Processo: entità attiva che rappresenta l’esecuzione di tali azioni • Dati: valori sui quali vengono applicate le azioni RAM (Random Access Memory) Memoria centrale RAM Caratteristiche: • permette la lettura e scrittura dei dati • accesso casuale ai dati • accesso e trasferimento dati in tempi veloci • volatile • contiene programmi in esecuzione e i dati Maggiore è la quantità di RAM maggiori saranno le prestazioni complessive del sistema di calcolo Memoria centrale vs CPU Le prestazioni delle CPU (v. legge di Moore) sono cresciute molto più rapidamente delle memorie. Memoria centrale - gerarchie di memoria CPU RAM - CACHE RAM Ai nostri giorni, per aumentare le prestazioni del sistema di calcolo, si rende necessario organizzare gerarchie di memoria: la CPU scambia bit con la memoria cache (più veloce e costosa); la memoria cache scambia bit con la RAM (più lenta ma economica). ROM (Read Only Memory) Caratteristiche: • permette solo lettura dei contenuti • non volatile • contiene le istruzioni e i dati per avviare il sistema di calcolo (bootstrap) Bootstrap In informatica il termine di origine inglese bootstrap (o boot, o più raramente booting) indica, in generale, l'insieme dei processi che vengono eseguiti da un computer durante la fase di avvio, in particolare dall'accensione fino al completo caricamento in memoria centrale del nucleo (kernel) del sistema operativo. Il termine originale inglese bootstrap (la fascetta di cuoio cucita sul bordo posteriore degli stivali per aiutarsi a calzarli) è dovuto al modo di dire inglese pull yourself up by your bootstraps ("tirati su da solo prendendoti per le stringhe degli stivali"), che significa "risolvi da solo i tuoi problemi, senza aspettare l'aiuto di altri". L'analogia è con il fatto (solo apparentemente paradossale) che, durante il bootstrap, il computer esegue un determinato processo allo scopo di mettersi in condizione di operare (eseguire processi). In italiano si può rendere questo concetto anche come "avvio" ("riavvio"), sebbene questi termini (come i loro corrispondenti diretti inglese "start" e "restart") abbiano generalmente una connotazione meno tecnica. Dalle espressioni boot e bootstrap anche in italiano sono derivati alcuni termini di gergo informatico come il verbo bootare (o boottare) o l'aggettivo bootabile (o boottabile) che si riferisce a un supporto di memorizzazione (per esempio un CD o un altro genere di disco) dal quale sia possibile caricare il sistema operativo all'avvio del computer (e quindi completare il boot). All'accensione di un computer il processore resta inizialmente sospeso nello stato di reset dall'hardware, che tiene attivo il corrispondente ingresso della CPU finché le tensioni di alimentazione non sono stabili. Appena il segnale di reset viene disattivato il processore carica la sua prima istruzione da una locazione fissa del suo spazio di memoria, a cui di solito corrisponde una ROM o altra memoria non volatile. Si tratta quasi sempre di una istruzione di salto incondizionato che porta l'esecuzione al vero inizio del programma che poi prende il controllo del computer. Da Wikipedia, l'enciclopedia libera. Central Processing Unit CPU La CPU CU Unità di controllo ALU Arithmetic Logic Unit Registri La CPU • Unità di controllo: il compito di coordinare tutte le azioni necessarie per l'esecuzione di una istruzione e di insiemi di istruzioni. • Unità aritmetico logica: è la parte specializzata per l'esecuzione delle operazioni aritmetiche (somme, moltiplicazioni, …) e logiche (ad esempio confronto di valori); • Registri: sono unità di memoria interne alla CPU che contengono le istruzioni in corso di esecuzione, i dati necessarie per le istruzioni in esecuzione, lo stato dell'esecuzione, l'indirizzo della prossima istruzione da eseguire, ecc. Ciclo accesso [fetch]-decodifica [decode]-esecuzione [excecute] E' la sequenza di passi nella quale la CPU: accede all’istruzione successiva prelevandola dalla memoria per caricarla nell’apposito registro; decodifica il tipo di istruzione individua i dati usati dall’istruzione, che vengono caricati negli opportuni registri esegue l’istruzione L'esecutore (programmi) Programma (Applicazione) Viene eseguito Implementazione dell'algoritmo La calcolatrice a corredo del sistema operativo Windows è un programma (sequenza di istruzioni) che viene eseguito dalla CPU (hardware) del computer. Hardware L'esecutore (script) Script (Applicazione) Viene eseguito Software Implementazione dell'algoritmo La calcolatrice on line è uno script (sequenza di istruzioni) che viene eseguito dal browser (software) che a sua volta viene eseguito dalla CPU (hardware) del computer. http://www.calcolatriceonline.it Il processore: prestazioni (1) Esistono diversi criteri per valutare la performance di un processore. Frequenza di clock. Indica il numero di operazioni elementari per secondo che la CPU è in grado di eseguire. In generale un'operazione come A=10+B viene scomposta in più operazioni elementari. Il processore: prestazioni (2) Esistono diversi criteri per valutare la performance di un processore. MIPS (Acronimo di Million Instructions Per Second, milioni di istruzioni per secondo) è un'unità di misura della frequenza di esecuzione delle istruzioni effettuata da un microprocessore. Le istruzioni a cui si fa riferimento sono quelle assembly del processore in esame. Tali istruzioni sono in genere molto semplici, ad esempio una singola somma o un singolo test per decidere se una condizione è vera o è falsa. Da Wikipedia, l'enciclopedia libera. Il processore: prestazioni (3) Esistono diversi criteri per valutare la performance di un processore. FLOPS è un'abbreviazione di FLoating point Operations Per Second e indica il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU. Le performance dei supercomputer viene tipicamente misurata in FLOPS http://it.wikipedia.org/wiki/Supercomputer Il processore: prestazioni (3) Esistono diversi criteri per valutare la performance di un processore. FLOPS è un'abbreviazione di FLoating point Operations Per Second e indica il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU. Le performance dei supercomputer viene tipicamente misurata in FLOPS http://it.wikipedia.org/wiki/Supercomputer