Sei sulla pagina 1di 6

Giovanotti

 e  signorine,  ecco  a  voi  tutto  il  materiale  di  teoria  di  Informatica,  necessario  
da  sapere  per  l’esame.  
Spero  vi  torni  utile  e  che  prendiate  tutti  un  bel  voto.  

E’  il  frutto  di  appunti  presi  durante  tutto  il  corso,  se  decidete  di  diffonderli,  siete  pregati  di  
non  intaccare  la  mia  5irma  alla  5ine.  Voglio  i  Big  Like  come  al  solito.  Buona  serata.  

L’informatica  deve  avere  un  linguaggio  per  poter  rappresentare  le  informazioni,  ciò  è  
rappresentato  dal  linguaggio  binario  (costituito  dai  due  simboli  “0”  e  “1”).  

L’alfabeto  del  calcolatore  è  costituito  da  due  soli  simboli  che  sono  i  bit  che  sono  due  perché  
rappresentano  l’interruttore  aperto  (0)  e  chiuso  (1)  in  quanto  tutto  è  basato  su  circuiti  
elettrici.  

Un  carattere  alfabetico  ad  esempio,  necessita  di  8  bit,  che  costituisce  1  byte.  
A  volte  8  bit  non  bastano  per  alcune  parole,  pertanto  servono  16  bit  (come  ad  esempio  un  
numero  intero).  
La  codiIica  di  un  informazione  come  ad  esempio  un  numero  reale,  necessita  di  4  byte  ovvero  
32  bit.  

L’elaborazione  è  intesa  come  “far  di  conto”  si  misura  in  milioni  di  istruzioni  al  secondo  (MIPS)  
ed  in  milioni  di  istruzioni  aritmetiche  su  numeri  reali  al  secondo  (MFLOPS)  

La  memorizzazione  si  misura  in  capacità  di  bit  e  si  misura  con  le  potenze  di  2  in  quanto  il  
calcolatore  lavora  in  base  2.  

La  trasmissione  si  misura  in  bit  al  secondo  (bps).  

Ogni  transistor  all’interno  di  un  processore  misura  20  milionesimi  di  millimetro  in  un  Intel  i7.  

Dato  che  sta  diventando  difIicoltoso  scendere  sotto  i  20nm  per  i  transistor,  si  sta  pensando  di  
passare  al  carbonio,  in  particolare  al  grafene.  

Esistono  due  grandi  classi  di  elaboratori:  general-­‐purpose  (calcolatori  di  uso  generale)  che  
sono  i  calcolatori  programmabili  dall’utente  e  special-­‐purpose  (calcolatori  dedicati)  chiamati  
anche  embedded.  

La  memoria  su  cui  si  caricano  i  programmi  è  di  tipo  RAM  per  i  general-­‐purpose  e  di  tipo  ROM  
per  i  special-­‐purpose.  

Un  algoritmo  è  una  descrizione  precisa  di  una  sequenza  Iinita  di  azioni  che  devono  essere  
eseguite  per  giungere  alla  soluzione  di  un  problema.  

I  programmi  stanno  inizialmente  in  un  Iile  ma  sono  dormienti  Iino  a  quando  non  verranno  
lanciati  e  verranno  posizionati  nella  RAM  ed  a  quel  punto  verranno  eseguiti  dal  processore.  

Per  essere  “capito”  dal  processore,  un  programma  è  necessario  che  sia  scritto  in  linguaggio  
macchina.  
Per  evitare  di  scrivere  interi  programmi  in  linguaggio  macchina,  utilizziamo  quelli  che  si  
chiamano  linguaggi  di  programmazione,  in  particolare  utilizziamo  linguaggi  di  alto  livello  
(molto  simili  al  linguaggio  umano)  che  mediante  un  traduttore  diventano  linguaggio  
macchina.  

Il  Iile  sorgente  viene  gestito  da  un  compilatore  che  genera  un  Iile  intermedio  che  viene  preso  
da  un  altro  programma  (linker)  che  lo  unisce  alle  librerie  di  sistema  e  genera  il  Iile  eseguibile  
che  è  un  Iile  che  può  essere  messo  in  esecuzione  in  quanto  quando  viene  avviato  lo  trasferisce  
nella  memoria  RAM  e  da  il  comando  di  avvio  al  processore  (CPU).  
Quando  consideriamo  un  elaboratore  andiamo  ad  articolarlo  in  4  blocchi  fondamentali  che  
sono  unità  di  ingresso  ed  uscita,  memoria  (2  tipi:  memorie  di  massa  che  sono  permanenti,  
memoria  centrale  RAM  dove  sono  allocate  le  informazioni  che  devono  essere  elaborate  e  
memoria  centrale  ROM  che  è  studiata  come  un  qualcosa  che  deve  essere  solo  letta)  ed  unità  di  
elaborazione  (Central  Processing  Unity:  il  blocco  di  circuiti  che  manipola  l’informazione,  
esegue  le  istruzioni  binarie).  

I  componenti  fondamentali  di  un  elaboratore  sono  il  processore  (microprocessore  quando  il  
chip  è  un  solo  elemento)  e  dalla  memoria  centrale  RAM.  

Il  processore  è  costituito  da  vari  blocchi:  ALU  (si  occupa  dei  calcoli,  Arithmetic  and  Logic  
Unity,  la  cui  evoluzione  è  la  FPU  che  sta  per  Floating  Point  Unity,  che  lavora  anche  con  le  
funzioni  elementari),  i  registri  divisi  in  celle  che  è  la  memoria  locale  in  cui  egli  tiene  i  dati  da  
elaborare  nel  momento  corrente  (i  calcolatori  più  potenti  hanno  una  lunghezza  di  memoria  
pari  a  32  bit  o  64  bit);  ci  sono  poi  i  blocchi  che  gestiscono  le  istruzioni  che  sono  l’unità  di  
decodiIica  istruzioni  e  l’unità  di  gestione  indirizzi:  la  prima  si  occupa  di  capire  cosa  fare  di  un  
programma,  la  seconda  si  occupa  di  ricavare  i  dati  che  possono  essere  allocati  nel  registro  o  
nella  RAM;  vi  è  l’unità  di  gestione  di  BUS  che  si  occupa  dei  collegamenti  con  i  vari  componenti.  

Caratteristiche  del  BUS:  passa  un  solo  dato  per  volta  ma  ampiezza  e  frequenza  determinano  il  
numero  di  bit  ed  il  numero  di  dati  trasportabili  in  funzione  del  tempo.  

Il  Control  BUS  dice  cosa  bisogna  fare  (leggere  o  scrivere)  


L’Address  BUS  dice  dove  è  allocata  l’informazione  
Il  Data  BUS  che  trasmette  il  dato  da  leggere  o  scrivere  

I  collegamenti  sono  di  due  tipi:  i  BUS  interni  che  sono  quelli  che  collegano  i  circuiti  interni  al  
pc,  ed  i  BUS  esterni  che  collegano  ad  esempio  stampanti,  pen  drive,  mouse  eccetera.  

Un  calcolatore,  o  meglio  un  processore  fa  cicli  che  constano  nel  prelevare  un  istruzione  dalla  
memoria  centrale  (fase  di  Fetch),  interpretare  l’istruzione  (fase  di  Decode),  eseguier  (fase  di  
Execution).  

Il  Clock  scandisce  il  tempo  per  eseguire  tutte  le  operazioni  che  devono  avvenire  all’interno  di  
un  elaboratore.  

Le  memorie  sono  degli  elementi  che  memorizzano  l’informazione  e  sono  costiuite  da  tre  
elementi:  devono  essere  indirizzate  (costituite  da  tante  locazioni  numerate,  tante  celle),  hanno  
come  caratteristica  il  parallelismo  ovvero  la  misura  che  costituisce  ogni  cella,  l’accesso  che  è  o  
sequenziale  o  casuale  (sequenziale  che  consiste  nel  leggere  tutte  le  celle  in  ordine  Iino  ad  
arrivare  alla  cella  desiderata,  casuale  che  consiste  nel  raggiungere  direttamente  la  cella  
desiderata).  
La  memoria  centrale  è  costituita  da  RAM,  RAM  Video  e  ROM.  La  prima  si  occupa  del  software,  
la  seconda  dei  video,  la  terza  dei  programmi  di  boot.  

Quando  accendiamo  il  pc,  viene  data  alimentazione  a  tutte  le  componenti  interne  del  pc.  
Appena  si  avvia  il  pc,  il  processore  “vuole”  eseguire  delle  istruzioni,  e  va  a  cercarle  all’interno  
della  ROM,  e  si  avvia  il  BIOS  che  fa  la  diagnostica  iniziale  del  sistema  prima  di  avviare  il  
sistema  operativo,  calcola  anche  la  quantità  di  memoria  a  disposizione.  Va  a  leggere  il  master  
boot  sector  dove  sono  allocati  tutti  i  Iiles  del  sistema  operativo  e  li  trasferisce  all’interno  della  
RAM.  
Quando  viene  avviata  una  applicazione,  il  processore  cerca  il  Iile  all’interno  del  disco  e  lo  
trasferisce  sulla  RAM  rendendolo  eseguibile.  

La  RAM  può  essere  realizzata  con  due  tecnologie:  SRAM  e  DRAM.  

Le  ROM  si  dividono  in  PROM  e  Flash  Memory.  La  differenza  è  la  velocità  di  cancellazione  e  
sono  rappresentate  dalle  Pen  Drive  USB  ad  esempio.  
Le  Flash  Memory  sono  molto  veloci  ad  essere  lette,  ma  estremamente  lente  quando  devono  
essere  scritte.  

Le  SSD  (Solid  State  Devices)  sono  di  derivazione  dalla  memoria  ROM.  Si  parte  dalla  ROM  -­‐>  
EEPROM  -­‐>  Flash  Memory  -­‐>  SSD.  
La  caratteristica  principale  è  la  velocità,  ma  soprattutto  i  consumi  ridotti;  sono  dischi  di  tipo  
magnetico.  

La  RAM  è  veloce  circa  70  ns,  a  differenza  del  processore  che  lavora  circa  a  10  ns.  
Per  evitare  questi  rallentamenti  si  è  pensato  di  inserire  tra  la  RAM  ed  il  Processore  uno  spazio  
dove  vengono  allocate  le  istruzioni  con  più  probabilità  di  essere  eseguite  in  seguito  ad  una  
data  (probabilità  del  98%),  questo  spazio  si  chiama  CACHE  che  ha  una  velocità  pari  a  2  ns.  

I  processori  MultiCore  consentono  l’esecuzione  di  più  programmi  in  parallelo.  


Il  MultiCore  è  costituito  da  più  CPU  aventi  ognuno  una  parte  di  CACHE  che  viene  denominata  
L1  (ovvero  di  primo  livello),  la  parte  esterna  invece  viene  considerata  di  L2,  ed  al  di  fuori  del  
processore  c’è  una  di  L3.    
La  L1  si  separa  in  due  parti  che  si  occupano  in  parte  delle  istruzioni,  in  parte  dei  dati.  

Dati  N  bit  si  hanno  2N  combinazioni  binarie  differenti.  

I  numeri  binari  si  scrivono  con  la  cifra  meno  signiIicativa  a  destra  che  prende  il  nome  di  LSB  
(Less  SigniIicant  Bit)  esattamente  come  nella  notazione  decimale.  

Per  sommare  i  binari  sappiamo  che  la  somma  0+1=1+0=1,  che  0+0=0  e  che  1+1=0  con  il  
riporto  di  1.  

Sommati  due  numeri  rappresentabili  su  N  bit,  dobbiamo  ottenere  un  numero  rappresentabili  
su  N  bit.  Quando  però  il  calcolo  restituisce  un  numero  rappresentabile  solo  con  un  numero  di  
Bit  superiore  si  genera  un  OVERFLOW  (tracimazione)  ed  il  calcolatore  restituisce  un  errore.  

Quando  facciamo  una  sottrazione  sappiamo  che  0-­‐0=1-­‐1=0,  che  1-­‐0=1  e  che  0-­‐1=1  con  il  
prestito  di  1.  

Per  indicare  un  numero  con  segno  si  utilizza  generalmente  uno  0  per  indicare  un  +  ed  un  1  per  
indicare  un  –,  si  mette  alla  sinistra  del  numero,  questo  metodo  si  chiama  modulo  e  segno.  
Nel  complemento  a  due  si  fa  in  modo  che  il  bit  che  identiIica  il  segno,  venga  attribuito  un  peso,  
corrisponde  al  MSB  che  ha  un  meno  davanti.  Ciò  ci  consente  di  avere  una  trasformazione  da  
binario  in  decimale  ad  esempio  del  numero  101101  che  diventa  -­‐32+8+4+1  =  -­‐19  
Dipende  dal  tipo  di  codiIica  se  viene  trasformato  un  numero  in  complemento  a  due  o  modulo  e  
segno.  

Se  il  bit  a  sinistra  è  uno  0  otteniamo  quindi  un  numero  positivo,  viceversa  se  vi  è  un  1,  
abbiamo  un  numero  negativo.  

Per  passare  da  un  numero  positivo  al  suo  corrispondente  negativo,  si  parte  dal  numero  in  
binario  come  ad  esempio  0011  che  è  3,  e  si  scambiano  gli  0  con  gli  1  e  viceversa,  quindi  
otteniamo  1100  e  lo  si  somma  con  un  singolo  bit  nella  posizione  del  LSB.  Quindi  otteniamo  
1100  +  0001  =  1101  che  corrisponde  a  -­‐3.  

Non  si  ha  mai  overIlow  quando  si  sommano  operandi  con  segno  discorde,  e  c’è  quando  il  
segno  è  concorde.  

E’  possibile  rappresentare  un  numero  decimale,  in  base  2,  mediante  3  entità:  segno,  mantissa  
(numero  assoluto)  ed  esponente  (numero  relativo).    
Un  esempio    
1|111|000101  
S|Exp|Mantissa  
Quindi  abbiamo  5  *  2111  con  segno  negativo  ovvero  -­‐5  *  2-­‐1  =  -­‐2.5  

Un  numero  in  questa  notazione  utilizza  di  norma  32  bit  che  corrisponde  ad  un  intervallo  
compreso  tra  -­‐1038  e  1038  

Nei  calcolatori,  i  numeri  con  virgola  mobile,  i  32  bit  vengono  ripartiti  con  1  bit  per  il  segno,  8  
bit  per  l’esponente,  e  23  bit  per  la  mantissa..  

Il  codice  ASCII  consente  di  rappresentare  52  caratteri  alfabetici,  10  cifre,  segni  di  
interpunzione,  caratteri  di  controllo.  

I  codici  ASCII  sono  rappresentati  su  1  byte.  

Con  lo  standard  ASCII  Unicode  per  esempio,  per  esprimere  tutti  i  caratteri  del  mondo,  
vengono  utilizzati  2  byte  per  ogni  carattere.  

ASCII  però  non  riesce  a  gestire  la  formattazione  del  foglio  e  si  distinguono  due  tipi  di  Iile  
quindi,  quelli  formattati  ed  i  non  formattati.  

I  documenti  formattati  hanno  aggiunto  ad  ogni  carattere  un  byte  che  ne  deIinisce  il  font  e  tutte  
le  caratteristiche.  

La  logica  Booleana  prende  il  nome  da  George  Boole,  che  nel  1847  introdusse  un  nuovo  tipo  di  
logica  formale,  basata  su  enunciati  di  cui  è  possibile  veriIicare  in  modo  inequivocabile  la  verità  
o  la  falsità.  
La  veridicità  viene  rappresentata  da  un  1  (interr.  Chiuso),  e  la  falsità  da  uno  0  (interr.  Aperto).  

Nell’algebra  Booleana  le  operazioni  fondamentali  sono  gestite  dagli  operatori  and  
(moltiplicazione  logica),  or  (somma  logica)  e  not  (negazione  logica).  
Le  immagini  vengono  rappresentate  all’interno  di  un  sistema  digitale  attraverso  una  sequenza  
discreta  di  elementi  luminosi.  Si  può  immaginare  un  immagine  come  una  matrice  avente  per  
ogni  elemento  un  colore.  Ogni  elemento  prende  il  nome  di  pixel.  Ogni  pixel  viene  
rappresentato  da  un  certo  numero  di  bit.  
Per  le  immagini  complesse  ed  irregolari  si  adotta  una  codiIica  raster  (detta  anche  bitmap  o  
pixmap)  che  le  deIinisce  punto  per  punto  (pixel  o  dot).  Per  le  immagini  create  all’interno  dei  
computer,  come  ad  esempio  cartoni  animati,  o  comunque  per  qualsiasi  cosa  basata  su  Iigure  
geometriche  regolari,  si  utilizza  una  codiIica  vettoriale.  

I  colori  vengono  rappresentati  secondo  la  teoria  additiva  della  colometria,  secondo  la  quale  
ogni  colore  è  realizzabile  a  partire  dai  tre  colori  primari  Rosso,  Verde  e  Blu.  Pertanto  si  utilizza  
il  sistema  RGB  (red,  green,  blue).  

Bisogna  quindi  associare  a  ciascun  pixel,  una  sequenza  di  bit.  In  particolare  ad  ogni  colore  
viene  assegnata  una  quantità  di  bit  per  ogni  colore  primario  che  lo  compone.    
La  codiIica  che  da  una  precisione  maggiore  dell’immagine,  si  chiama  true  color,  ed  utilizza  3  
byte  a  pixel,  suddivisi  con  8  bit  per  ognuno  dei  colori  primari.  
La  codiIica  true  color  quindi  è  caratterizzata  da  24  bpp  che  sarebbero  bit  per  pixel.  
La  dimensione,  intesa  come  spazio  occupato  da  ogni  immagine  è  dato  dal  prodotto  tra  
risoluzione  ed  il  numero  di  bit  necessari  per  ogni  pixel.  

Per  rappresentare  le  immagini  direttamente  a  partire  dal  pc,  si  adottano  Iigure  geometriche  
regolari  come  ad  esempio  linee  e  Iigure  geometriche.  Tutta  la  semantica  di  queste  Iigure  viene  
salvata  all’interno  di  un  Iile  che  prende  il  nome  di  Iile  vector.  

Durante  l’elaborazione  di  un  videogioco,  ad  esempio,  si  ha  una  trasformazione  di  un  immagine  
vettoriale  in  un  immagine  raster,  ovvero  bidimensionale.  

Le  immagini  di  tipo  raster,  sfruttano  una  grande  quantità  di  dati  per  essere  deIinite,  allora  
vengono  adottate  quelle  che  si  chiamano  metodi  di  compressione  per  alleggerire  il  peso  delle  
immagini.  Queste  ultime  vengono  suddivise  in  due  tipi:  quelle  che  comprimono  con  perdita  di  
dati  (lossy  compression),  e  quelle  che  senza  perdita  (loseless  compression).  

Le  immagini  in  movimento,  o  video,  sono  costituiti  da  una  sequenza  di  immagini  che  
prendono  il  nome  di  fotogramma  o  frame,  le  quali  vengono  proiettate  con  una  frequenza  pari  a  
25  fps,  ovvero  25  Hz.  

La  codiIica  dei  Iilmati  è  la  mpg.  Ogni  frame  catturato  come  bitmap,  viene  compresso  e  
trasformato  in  jpg,  ogni  pixel  viene  confrontato  tra  le  immagini  adiacenti  e  vengono  trasmessi  
solo  i  dati  che  hanno  subito  una  variazione.  

In  ogni  cd  audio,  il  campione  sonoro  viene  espresso  attraverso  16  bit  e  rappresenta  44100  
campioni  al  secondo.  Dato  che  il  cd  audio  è  stereo,  si  ha  la  frequenza  di  1.5  Mbps  circa.  
E’  evidente  come  la  codiIica  cd  audio  non  sia  opportuna  per  una  trasmissione  attraverso  la  
rete.  
Si  è  pensato  quindi  di  sfruttare  la  compressione  anche  per  l’audio,  come  l’MP3  che  comprime  
con  perdita.  

I  dischi  degli  hard  disk  sono  ricoperti  da  ossido  di  ferro,  in  quanto  si  ha  la  necessità  di  avere  
un  materiale  magnetico,  caratterizzato  dall’isteresi,  che  consente  di  “mantenere”  
l’informazione.  Questi  cerchi  concentrici  di  ossido  di  ferro  prendono  il  nome  di  tracce,  le  quali  
vengono  suddivise  in  porzioni.  Ogni  porzione  è  equivalente  ad  una  calamita,  avendo  quindi  
polarità.  In  base  alla  posizione,  sappiamo  se  è  uno  0  oppure  un  1.  Ogni  porzione  della  traccia  
rappresenta  un  unico  bit.  
Per  rendere  i  Iile  leggibili  più  facilmente,  i  dischi  degli  HD  vengono  divisi  in  settori.  Ogni  
settore  è  costituito  da  512byte.  
Su  ogni  disco,  nella  prima  parte,  è  immagazzinata  la  tabella  che  prende  il  nome  di  Directory,  
che  immagazzina  le  informazioni  riguardanti  tutti  i  Iiles  presenti  sul  disco.  
L’accesso  sequenziale  signiIica  che  per  leggere  il  Iile  in  posizione  N  bisogna  scorrere  tutte  le  
informazioni  Iino  ad  arrivare  alla  N.  L’informazione  è  suddivisa  in  blocchi  logici  che  prendono  
il  nome  di  record.  

Esempio  Esercizio  sui  Numeri  Binari  

MS:    
+25:  0…….  -­‐>  o  per  divisioni  successive  o  per  scomposizione  di  potenze  di  2  
+25=+16+8+1  -­‐>  1=2^0,  8=2^3,  16=2^4  -­‐>  0001  1001  
+25  in  modulo  e  segno  è  00011001  

-­‐18:  1…….  -­‐>  -­‐18=16+2=  2=2^1,  16=2^4  -­‐>  1001  0010  


-­‐18  in  modulo  e  segno  è  10010010  

CD:  
+25  essendo  positivo  è  uguale  a  MS:  0001  1001  
-­‐18  si  fa  diventare  positivo  partendo  da  MS  e  diventa  0001  0010,  per  calcolare  l’opposto  si  
invertono  e  gli  si  somma  1  -­‐>  si  calcola  l’opposto  1110  1101  e  gli  sommo  1  -­‐>  1110  1110  
-­‐18  in  CD  è  1110  1110  

Se  faccio  la  somma  di  due  numeri  con  segno  opposto,  è  come  se  facessi  la  differenza,  allora  il  
numero  viene  in  modulo  più  piccolo  di  quello  che  era  il  più  grande,  pertanto  è  evidente  che  
overIlow  non  ci  sarà  quando  effettueremo  la  somma  in  MS.  
Per  CD  facciamo  la  somma  bit  a  bit:  0001  1001  +  1110  1110  =  1  0000  0111  OVERFLOW  

Esempio  di  sercizio  su  architettura:  


Uno  schermo  di  risoluzione  100px*200px  ed  ogni  pixel  può  mostrare  256  colori.  Quanto  
occupa  in  memoria  una  schermata?  
Numero  pixel  totali  20mila.  
Sapendo  che  dobbiamo  rappresentare  256  colori,  abbiamo  la  necessità  di  256  “numeri”  
pertanto  sappiamo  che  per  esprimere  il  numero  256  abbiamo  bisogno  di  8  bit  perché  
log2(256)=8,  ovvero  1  byte.  
Pertanto  per  una  schermata  abbiamo  bisogno  di  20mila  Byte  oppure  160mila  bit.  

-­‐P4tChEr-­‐

Potrebbero piacerti anche