• Non ci sono risultati.

Informatica!! appunti dalla lezione del 22/10/2013!

N/A
N/A
Protected

Academic year: 2022

Condividi "Informatica!! appunti dalla lezione del 22/10/2013!"

Copied!
24
0
0

Testo completo

(1)

Informatica !!

appunti dalla lezione


del 22/10/2013!

(2)

La maggior parte degli strumenti informatici oggi in uso si basano sull’architettura di 


Von Neumann!

E’ un modello astratto che include tutti i componenti funzionali (ossia distinti dagli altri per la funzione che svolgono) di un computer!

(3)

CPU   CPU:  Central  Processing  Unit,   processore  

Read   Only   Memory  

ROM  

RAM   RAM:  Random   Access    Memory,   Memoria  Centrale  

memoria  ele)ronica,   vola.le,  

veloce,  costosa   unità  controllo    

ALU  

HD:  Hard  Disk,   Hard  Drive,   disco  rigido,   disco  fisso  

memoria  magne.ca,     non  vola.le,  lenta,   economica*  

  *adesso  ci  sono  anche  i  dischi  SSD   (solid  state  disk):  memoria  

ele)ronica,  non  vola.le,  più   veloce  dell’HD  ma  meno  della   RAM,  ancora  molto  costosa  

output   input   periferiche  

alcune,  come  il  touch-­‐

screen  sono  sia  di  input   sia  di  output  

bus  

(4)

L’architettura del calcolatore!

•  Per descrivere le diverse parti di un calcolatore e le loro connessioni, si fa tuttora riferimento all’architettura di Von Neumann, proposta per la prima volta in un rapporto tecnico del 1945 (John von Neumann, Budapest 1903 – Wahington D.C. 1957)!

•  Su tale architettura si basa la maggior

parte dei calcolatori odierni!

(5)

Architettura di von Neumann!

•  I componenti dell’architettura sono:!

–  la CPU (Central Processing Unit), che esegue le istruzioni dei programmi!

–  la RAM (Random Access Memory), la memoria principale di tipo elettronico dove sono scritte le

istruzioni da eseguire e i dati da elaborare mentre il calcolatore è acceso!

–  il disco fisso, la memoria secondaria di tipo

magnetico dove sono conservate le istruzioni e i dati anche quando il calcolatore è spento!

–  le periferiche, componenti addizionali che

permettono all’utente di trasferire informazione verso il calcolatore (input) o di ottenere informazione dal calcolatore (output)!

–  il bus, il canale di comunicazione che connette tutti i componenti di cui sopra!

(6)

Il funzionamento della CPU!

•  La CPU funziona a ciclo continuo,

dall’accensione del calcolatore fino allo spegnimento, eseguendo le seguenti azioni a ripetizione:!

– fetch, prelevamento dell’istruzione da eseguire!

– decode, decodifica del codice dell’istruzione prelevata!

– execute, esecuzione dell’istruzione

decodificata!

(7)

CPU ↔ RAM!

•  La CPU preleva le istruzioni da eseguire sempre dalla RAM!

•  Per questo motivo, ogni programma in esecuzione deve essere presente nella RAM!

•  Le istruzioni (e anche i dati su cui eseguire le

istruzioni) sono trasferire dalla RAM verso dispositivi di memoria presenti nella CPU, chiamati registri!

•  L’unità di controllo della CPU supervisiona il

trasferimento e la decodifica dell’istruzione, e ordina alla ALU (unità aritmetico logica) l’operazione da

eseguire!

•  I risultati sono salvati sui registri, e da lì trasferiti alla RAM!

(8)

RAM ↔ disco!

•  La RAM è basata su dispositivi elettronici, che funzionano con tempi molto rapidi, ma che necessitano di alimentazione elettrica per

preservare l’informazione in essi contenuta!

•  Il disco fisso è invece costituito da materiale ferro-magnetico, la cui lettura e scrittura è molto più lenta, ma le informazioni salvate

permangono anche a calcolatore spento!

•  Per questo motivo, tutti i programmi sono conservati nel disco fisso, e trasferiti alla RAM quando il calcolatore è acceso e vengono

mandati in esecuzione !

•  Tutte le modifiche ai dati fatte tramite un programma in esecuzione, se sono presenti solo nella RAM ma non nel disco fisso sono perse se l’alimentazione elettrica viene meno!

•  Quando si salva un file (di fatto, un insieme di dati), si ordina il trasferimento dei dati dalla RAM al disco, in modo da conservare l’ultima versione anche dopo lo spegnimento del calcolatore!

•  All’accensione del calcolatore, il primo programma che viene

“caricato” (cioè trasferito dal disco alla RAM) è il sistema operativo, che funziona per tutto il tempo in cui il calcolatore è acceso e serve a gestire tutte le sue risorse!

(9)

periferiche→RAM!

•  Per inserire dati all’interno del calcolatore, l’utente deve usare le periferiche di input!

•  Ad esempio, durante l’esecuzione di una istruzione “cin >> x”, il calcolatore attende un valore inserito tramite tastiera, da

inviare in una particolare cella di memoria RAM, corrispondente alla variabile x!

•  Da lì, il valore sarà mandato alla CPU per

essere elaborato (ad es. per eseguire x =

x + 5)!

(10)

RAM→periferiche!

•  Le periferiche di output ricevono dati

provenienti dalla RAM e li inviano verso il mondo esterno al calcolatore (ad es.

visualizzandoli su uno schermo o stampandoli su carta)!

•  Istruzioni come cout << x prevedono il

trasferimento del contenuto di una cella di

memoria RAM (corrispondente alla variabile

x) verso una specifica periferica (lo schermo)!

(11)

Sistema Operativo!

•  Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc!

•  Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti in un calcolatore!

•  Risorse: periferiche, memorie, CPU. !

•  Le risorse sono usate dai vari programmi in

funzionamento sul calcolatore. Tra questi il più

importante è il sistema operativo, che gestisce tali risorse.!

•  Il sistema operativo è il PRIMO* programma ad

entrare in funzione.

*con la precisazione nella seguente slide!

(12)

Il problema del bootstrap!

•  Il problema di come avviare un calcolatore!

•  Fortunatamente, ci sono anche memorie elettroniche che conservano l’informazione.


(ad es.: la scheda SD della vostra macchina fotografica digitale)!

•  All’accensione, la CPU esegue un programma scritto nella ROM che fa

trasferire le istruzioni del sistema operativo dal disco fisso alla RAM!

•  Una volta nella RAM, il sistema operativo può essere eseguito dalla CPU e il computer si

avvia a disposizione dell’utente!

(13)

Random vs Sequenziale!

RAM  

info  

Accesso  sequenziale  

Accesso  random  

(14)

Il concetto di codifica!

•  La codifica è una corrispondenza biunivoca tra entità di qualunque genere e numeri interi!

•  Visto che il processore elabora numeri, tutto ciò che può essere descritto mediante tali

numeri può essere oggetto di elaborazione da parte del calcolatore:!

–  testi!

–  immagini!

–  suoni!

(15)

Codifica di testi!

•  Bisogna far corrispondere a ogni carattere un particolare numero!

•  Esistono molte convenzioni a riguardo, tra cui ad esempio la tabella ASCII (American Standard Code for Information

Interchange), oggi inglobata nella più nuova codifica UTF-8 (vedi slide

seguente)!

(16)

UTF-8!

Universal Character Set Transformation Format – 8bit!

(17)

Codifica di immagini!

•  Nel far corrispondere a ogni immagine un numero, si può procedere in 2 modi diversi!

•  Approccio “raster”: si divide l’immagine in elementi di dimensioni molto ridotte, caratterizzati da un unico colore (pixel: picture element), a ogni colore si

corrispondere una codifica (ad es. RGB: terna di valori numeri che indicano quanto rosso, quanto verde,

quando blu ci sia nel colore codificato). L’immagine diventa una sequenza di numeri che descrive i colori di ciascun pixel che la compone!

•  Approccio “vettoriale”: l’immagine viene vista come un insieme di figure geometriche colorate. La codifica

avviene grazie alle formule matematiche che

descrivono le figure, e alla già menzionata codifica del colore.!

(18)

Un’immagine divisa in pixel!

(19)

Tabella RGB!

(20)

Grafica vettoriale: 


dai rudimenti ai risultati finali!

(21)

Codifica di suoni!

•  Sapendo che i suoni sono prodotti da onde che si muovono in un fluido (solitamente

aria), basta avere una descrizione

matematica di tali onde per avere una codifica!

•  L’ampiezza dell’onda corrisponde all’intensità del suono (suono forte/suono debole)!

•  La frequenza dell’onda all’altezza del suono (note alte/note basse)!

•  La forma dell’onda al timbro del suono (voce/

pianoforte/motore/etc…)!

(22)

frequenza!

ampiezza!

forma!

(23)

Campionamento!

•  Per avere una descrizione numerica dei valori

dell’onda dobbiamo campionarla, ossia registrare il

suo valore un certo numero di volte nell’unità di tempo!

•  Il numero di campioni nell’unità di tempo prende il nome di frequenza di campionamento!

•  Più è alta la frequenza di campionamento, migliore + la ricostruzione dell’onda originale, perché abbiamo a disposizione più campioni!

•  Avere più campioni naturalmente vuol dire che la

descrizione dell’onda risulta più lunga (ad es. un file MP3 di una canzone diventa più grande se la canzone è camionata a frequenza più elevata)!

(24)

Riferimenti

Documenti correlati

Il sistema più sicuro è quello di usare una lampada germicida o un neon di W ood (la famosa luce nera delle discoteche); si può usare anche una lampada

Prima della visita posso (se per qualche motivo non posso farlo direttamente lo farà la persona che mi accompagna):.  chiedere se ho dubbi

Se torno a casa e non sono in grado di ricevere informazioni, la persona che mi accompagna chiede cosa mi è stato trovato, come devo comportarmi, se devo andare dal mio medico

•  Un programma in C++, prima di essere eseguito dal calcolatore, deve essere compilato, ossia elaborato da

ogni singolo oggetto pu`o essere coinvolto in al pi`u blog nc (per via del raddoppiamento), quindi un totale di O(n log n) crediti `e sufficiente a pagare qualunque sequenza di

Nel caso di forze non conservative come l’attrito o la resistenza dell’aria (forze dissipative) il lavoro è sempre negativo e porta ad un aumento dell’energia interna del

L’energia cinetica del proiettile (che è anche l’energia cinetica del sistema proiettile +blocco) viene completamente dissipata dalla forza d’attrito e ricompare sotto forma

 nella funzione stessa, a cui viene passato il puntatore al primo elemento della matrice perché la funzione possa creare e inizializzare il vettore dinamico, il puntatore