77
GESTIONE MEMORIA SECONDARIA

GESTIONE(MEMORIASECONDARIA - lepillole.it · Lememorie2’ ’ • Iparametri’fondamentali’che’definiscono’unamemoria sono:’ – Dimensione’dellaparola(locazione’di’memoria)’

  • Upload
    vohanh

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

GESTIONE  MEMORIA  SECONDARIA  

Ges$one  della  memoria  secondaria  (file  system)  

•  Realizzata  dal  modulo  del  Sistema  Opera$vo,  de<o  file  system,  che  si  occupa  di:  – Associare  un  nome  di  file  ad  una  parte  dello  spazio  del  disco  

– Fornire  metodi  per  accedere  ai  file  – Rendere  trasparente  la  stru<ura  fisica  del  disco  

Gestore  del  File  System  

•  Il  gestore  del  file  system  è  quel  modulo  del  sistema  opera$vo  incaricato  di  ges$re  le  informazioni  memorizzate  sui  disposi$vi  di  memoria  di  massa  à  DISCO  

•  Il  gestore  del  file  system  deve  garan$re:  –  la  corre<ezza  –  la  coerenza  –  Il  recupero  efficiente  delle  informazioni  memorizzate  

Gestore  del  File  System  

•  Insieme  di  programmi  per  l’organizzazione  – Logica:    fornire  all’utente  una  visione  logica  dei  file  (che  astrae  dall’organizzazione  fisica)  

– Fisica:    ges:re  i  file  nella  memoria  secondaria  (dischi)  e  oHmizzare  l’u$lizzo  dello  spazio  disponibile  

Organizzazione  logica  

•  L’utente  deve  poter  – Organizzare  le  proprie  informazioni  in  file  e  insiemi  di  file  

– Accedere  ai  da$  –  Iden$ficare  ogni  file  con  un  nome  logico  – Operare  sui  file  (creare,  eliminare,  cambiare  nome,  modificare)  

– Proteggere  i  propri  file  (da  accessi  non  desidera$)  

Organizzazione  fisica  

•  Il  Sistema  Opera$vo  deve:  – Tener  traccia  dei  file  memorizza$  e  della  loro  posizione  fisica  sui  dischi  

– OHmizzare  l’u$lizzo  dello  spazio  su  disco  – Ges$re  le  comunicazioni  tra  la  memoria  principale  e  la  memoria  secondaria  (disco)  

Altre  funzioni  

•  Nei  sistemi  mul$-­‐utente,  deve  me<ere  a  disposizione  dei  meccanismi  di  protezione  in  modo  tale  da  consen$re  agli  uten$  di  proteggere  i  propri  da$  dall’accesso  da  parte  di  altri  uten$  non  autorizza$.  

Interfaccia  grafica  

File  

•  Unica  unità  logica  di  informazione  usata  dal  Sistema  Opera$vo  

•  Fisicamente:  –  Sequenza  di  byte  che  con$ene  informazioni  omogenee  

–  Es.,  programma,  testo,  da$  simili,  …  –  Byte  =  8  bit  

•  TuH  i  da$  vengono  suddivisi  in  file  •  I  file  vengono  memorizza$  nelle  memorie  di  massa  

File  •  Un  insieme  di  informazioni  (da$,  documen$)  memorizzate  su  suppor$  di  memoria  secondaria  

•  Una  sequenza  di  bit,  byte,  record  logici,  record  fisici  (dipende  dal  $po  del  file  e  dal  punto  di  vista),  il  cui  significato  è  definito  dal  creatore  del  file  

Tipo  di  file  

•  Ogni  file  è  composto  $picamente  da:  – Nome:  stringa  arbitraria  decisa  dall’utente  –  Estensione:  insieme  (fissato)  di  cara<eri  che    definiscono  il  TIPO  di  un  file  

•  Esempi  –  relazione.doc  –  report.txt  –  foto.jpg  –  ar$colo.pdf  – …  

Operazioni  su  file  •  Creazione  •  Apertura  •  Chiusura  •  Cancellazione  •  Copia  •  Rinomina  •  Visualizzazione  •  Le<ura  •  Scri<ura  •  Modifica  •  …  

Organizzazione  di  più  file  

•  Quasi  tuH  i  sistemi  opera$vi  u$lizzano  un’organizzazione  gerarchica  del  File  System  

•  L’elemento  u$lizzato  per  raggruppare  più  file  insieme  è  la  directory  

•  L’insieme  gerarchico  delle  directory  e  dei  file  può  essere  rappresentato  a<raverso  un  grafo  delle  directory  

Organizzazione  dei  file  

•  Possibilità  di  organizzare  i  file  in  Directory  (de<e  anche  Cartelle),  ovvero  come  insiemi  di:  – file  – altre  directory  

•  Il  tu<o  arricchito  da  un  elenco  dei  contenu$  •  Organizzazione  a<ualmente  scelta:  gerarchica  •  Organizzazione  solo  logica.  Non  c’è  alcuna  relazione  con  la  posizione  fisica  dei  file  di  una  directory  (cartella)  sul  disco  

Organizzazione  ad  albero  •  Albero  rovesciato  (come  genealogico)  •  Nodi  e  collegamen$  padre-­‐figlio  tra  nodi  •  Nodo:  file  o  directory  •  Nodi  divisi  per  livelli  •  Collegamen$  tra  nodi  di  livelli  vicini:  –  nodo  sopra  =  padre  –  nodo  so<o  =  figlio  

•  Ogni  nodo  ha  un  solo  padre  •  Padre  più  in  alto  =  radice  •  I  nodi  file  non  hanno  figli  •  Cammino  assoluto  o  rela$vo  (per  file)  

Albero  delle  Directory  

Esempio:  Albero  delle  directory  in  Unix  

Operazioni  su  directory  

•  Organizzazione  di  file  in  stru<ure  chiamate  cartelle  (directory)  

•  Creazione  directory  •  Eliminazione  directory  •  Elenco  file  di  una  directory  •  Ricerca  –  di  un  par$colare  file  –  di  tuH  i  file  che  soddisfano  una  par$colare  relazione  – Operazioni  più  complesse:  backup,  …  

WINDOWS  8  

•  Windows  8  è  l'ul$ma  versione  del  sistema  opera$vo  Windows  

•  introduce  una  nuova  interfaccia  utente,  simile  a  quella  di  Windows  Phone,  proge<ata  per  ada<arsi  meglio  all'input  da  touchscreen  e  u$lizzabile  anche  con  mouse  e  tas$era.    

•  Inoltre,  l'edizione  RT  di  Windows  8  aggiunge  il  supporto  all'archite<ura  di  processori  ARM.  

•  L'interfaccia  utente  è  oHmizzata  per  i  touchscreen,  ma  u$lizzabile  anche  con  mouse  e  tas$era  

ANDROID    

•  Android  è  un  sistema  opera$vo  per  disposi$vi  mobili  cos$tuito  da  uno  stack  sodware  che  include  un  sistema  opera$vo  di  base,  i  middleware  per  le  comunicazioni  e  le  applicazioni  di  base.    

•  Cara<eris$che  principali  di  Android  sono  la  stru<ura  open  source  (escluse  alcune  versioni  intermedie),  e  il  suo  basarsi  su  kernel  Linux.  

ANDROID  •  L'interfaccia  utente  di  Android  è  basata  sul  conce<o  di  direct  manipula$on,  per  cui  si  u$lizzano  gli  ingressi  mono  e  mul$-­‐touch  come  strisciate,  tocchi  e  pizzichi  sullo  schermo  per  manipolare  gli  oggeH  visibili  sullo  stesso.  

•  Android  è  stato  proge<ato  principalmente  per  smartphone  e  tablet,  il  cara<ere  aperto  e  personalizzabile  del  sistema  opera$vo  perme<e  di  essere  u$lizzato  su  altri  disposi$vi  ele<ronici,  tra  cui  porta$li  e  netbook,    ebook  reader,  e  smart  TV.  

MEMORIE  

Tipologie  di  memorie  •  Le  memorie  sono  disposi$vi  per  immagazzinare  informazioni  

•  Ogni  memoria  è  cos$tuita  da  celle,  a  cui  si  accede  tramite  un  indirizzo  

•  In  ogni  elaboratore  vi  sono  tre  $pi  di  memorie:  –  Registri:  contengono  informazioni  necessarie  alla  elaborazione  della  singola  istruzione  

– Memoria  centrale:  con$ene  da$  e  istruzioni  a<ualmente  elabora$  dal  processore  

– Memorie  di  massa:  contengono  da$  e  programmi  che  non  sono  ogge<o  di  elaborazione  immediata  

Cara<eris$che    •  Modalità  o  ordine  di  accesso  (memorie  ad  accesso  dire<o  o  sequenziale);  

•  Possibilità  di  scri<ura  (memorie  a  le<ura-­‐scri<ura,  memorie  scrivibili  una  sola  volta,  memorie  a  sola  le<ura);  

•  Velocità  di  le<ura;  •  Velocità  di  scri<ura;  •  Costo  unitario;  •  Vola$lità;  •  Tecnologia  (ele<ronica,  magne$ca,  oHca,  magnetooHca).  

Principali  disposi$vi  di  memoria  •  Due  tecnologie  di  memorizzazione  di  informazioni  digitali  si  sono  

affermate  in  base  alle  loro  cara@erisAche  economiche  e  tecniche:  –  le  memorie  a  semicondu@ore  –  le  memorie  a  supporto  magneAco  

•  Entrambe  queste  memorie  si  basano  su  bistabili,  cioè  elemen/  cara@erizzaA  da  un  diagramma  energeAco  del  Apo  di  quello  rappresentato  in  figura  

Principali  disposi$vi  di  memoria  •  Da  un  punto  di  vista  matema$co,  il  diagramma  energe$co  di  un  

bistabile  deve  presentare  due  minimi  rela:vi  separa:  da  un  massimo  rela:vo  di  ampiezza  significa$va  

•  In  termini  pra$ci,  questo  si  traduce  in  un  elemento  che  è  in  grado  di  permanere,  per  un  tempo  a  priori  indeterminato,  in  uno  dei  due  sta$  stabili  (cioè  di  minima  energia)  finché  non  interviene  un  fenomeno  di  en$tà  sufficiente  a  far  commutare  il  bistabile,  cioè  a  farlo  passare  da  uno  stato  a  minima  energia  all’altro.  

•  Associando  convenzionalmente  il  valore  logico  ZERO  ad  uno  dei  due  sta$  ed  il  valore  logico  UNO  all’altro,  è  possibile  memorizzare  un’informazione  binaria  (bit)  in  ogni  bistabile.  

•  La  classificazione  delle  memorie  si  basa  su:  –  modalità  di  accesso  (a  cui  è  legata  la  velocità  di  risposta)  –  stabilità  dell’informazione  memorizzata  

Le  memorie  -­‐  2    

•  I  parametri  fondamentali  che  definiscono  una  memoria  sono:  –  Dimensione  della  parola  (locazione  di  memoria)  –  Modalità  di  accesso  (dire<o  o  sequenziale)  –  Permanenza  o  vola$lità  dei  da$  –  Capacità  (numero  di  locazioni  disponibili),  espressa  in  KB,  MB,  GB,  etc.  

–  Tempo  di  accesso,  necessario  per  accedere  ad  una  locazione  di  memoria  per  un’operazione  di  le<ura  o  scri<ura,  espresso  in  nsec,  millisec,  sec  

•  In  base  agli  ul$mi  due  parametri,  le  memorie  si  collocano  a  diversi  livelli  di  una  gerarchia,  che  va  da  memorie  più  capaci  ma  più  lente  (memorie  di  massa)  a  memorie  piccole  e  veloci  (registri)  

La  memoria  centrale  -­‐  1    

•  La  memoria  centrale  o  memoria  principale,  de<a  anche  RAM  (Random  Access  Memory,  ovvero  memoria  ad  accesso  casuale,  perché  qualsiasi  cella  può  essere  le<a/scri<a  in  un  tempo,  mediamente,  costante),  è  la  memoria  in  linea  con  il  processore,  che  con$ene  i  da$  e  i  programmi  che  sono  a<ualmente  u$lizza$/in  esecuzione  

•  Un  programma,  quando  non  è  ogge<o  di  elaborazione,  è  memorizzato  su  memoria  di  massa  (dischi)  

•  Quando  deve  essere  eseguito,  viene  caricato  tu<o  o  in  parte,  in  memoria  centrale  (memoria  virtuale)  

La  memoria  centrale  -­‐  2    

•  Le  cara<eris$che  fondamentali  della  memoria  centrale  sono:  –  accesso  dire<o  alle  informazioni  –  velocità  elevata  e  vola$lità:  quando  il  computer  viene  spento,  i  da$  e  i  programmi  presen$  in  memoria  vengono  cancella$  

•  La  tecnologia  u$lizzata  per  la  memoria  centrale  è  quella  dei  disposi$vi  a  semicondu<ori,  che  la  fanno  apparire  come  una  matrice  di  bit  

•  Ogni  bit  è  presente  come  stato  (alto  o  basso)  di  tensione  

La  memoria  centrale  -­‐  3  

•  La  memoria  principale  è  un  insieme  di  locazioni  o  celle  

•  L’unità  di  memorizzazione,  la  dimensione  della  singola  cella,  è  il  byte  

•  Ciascun  byte  nella  memoria  è  individuato  da  un  indirizzo  che  lo  dis$ngue  da  tuH  gli  altri,  cos$tuito  da  un  numero  variabile  da  0  a  2N-­‐1  dove  N  è  la  dimensione  in  bit  dell’indirizzo  (es.  numero  di  bit/fili  sul  bus  indirizzi)  

Memorie  a  semicondu<ore  •  Memorie  RAM  (Random  Access  Memory)  •  Ne  esistono  di  due  $pi:  

–  Sta$che:  Sta$c  RAM  (SRAM)  –  Dinamiche:  Dynamic  RAM  (DRAM)  

•  SRAM:  la  cella  elementare  che  memorizza  un  bit  è  cos$tuita  da  un  circuito  contenente  diversi  transistor.  L’informazione  scri<a  si  man$ene  finché  sono  alimentate.  

•  DRAM:  basta  un  solo  transistor.  L’informazione  tende  a  cancellarsi  e  va  rinfrescata,  riscrivendola,  ogni  pochi  msec  (refresh).  Serve  un  controllore  che  ges$sca  l’operazione  di  riscri<ura  (Dynamic  RAM  Controller)  

•  Le  SRAM  sono  più  veloci  delle  DRAM,  più  costose  e  di  minore  capacità  •  RAM  sincrone  (SDRAM  e  SSRAM):  offrono  la  possibilità  di  trasferire  blocchi  

di  da$  presen$  in  memoria  a  indirizzi  consecu$vi,  specificando  un  indirizzo  di  partenza  e  una  lunghezza.  Il  trasferimento  è  più  veloce  perché  si  genera  solo  il  primo  indirizzo  e  un  segnale  di  clock  sincronizza  la  sequenzializzazione  dei  da$.  

Memorie  a  semicondu<ore  •  Memorie  ROM  (Read  Only  Memory):  memorie  a  sola  le<ura  che  

contengono  in  genere  solo  programmi,  $picamente  di  funzionamento  per  applicazioni  embedded  o  di  inizializzazione  dei  calcolatori  

•  Mantengono  l’informazione  anche  se  sono  disalimentate  •  Ne  esistono  di  vari  $pi:  

–  ROM  :  l’informazione  viene  scri<a  in  fabbrica  durante  il  processo  di  fabbricazione  e  non  è  più  modificabile  

–  PROM  (Programmable  ROM):  possono  essere  scri<e  una  volta  sola  dall’utente  a<raverso  una  par$colare  apparecchiatura  de<a  programmatore  di  PROM  

–  EPROM  (Erasable  Programmable  ROM):  come  la  PROM,  può  essere  programmata  dall’utente,  ma  può  essere  cancellata  tramite  esposizione  ai  raggi  ultravioleH.  Per  questo  mo$vo,  i  contenitori  di  EPROM  hanno  sempre  una  finestrella  che  lascia  vedere  il  chip  

Memorie  a  semicondu<ore  –  OTP  ROM  (One  Time  Programmable  ROM):  iden$che  alle  EPROM,  ma  prive  della  finestrella  trasparente  (per  produzioni  in  serie)  

–  EEPROM  o  E2PROM  (Electrically  Erasable  Programmable  ROM):  come  la  EPROM,  ma  la  cancellazione  viene  effe<uata  con  segnali  ele<rici  

–  EAROM  (Electrically  Alterable  ROM):  alterabili  ele<ricamente.  Non  è  più  necessaria  la  cancellazione  di  tu<o  il  contenuto  della  memoria  quando  si  vogliono  modificare  anche  solo  poche  celle  

–  FLASH:  offrono  significa$vi  vantaggi  rispe<o  alle  EPROM.  U$lizzano  una  tecnica  di  cancellazione  tramite  impulsi  ele<rici,  al  posto  della  radiazione  UV.  Perme<ono  cancellazioni  parziali,  dire<amente  sulla  scheda  e  rapide.  Supportano  più  operazioni  di  scri<ure/cancellazioni.  Meno  veloci  della  RAM.  

La  memoria  ROM  •  Una  parte  della  memoria  centrale  è  la  ROM  (Read  Only  Memory),  una  memoria  a  sola  le<ura,  des$nata  a  contenere  informazioni  non  variabili  

•  Cara<eris$che  delle  memorie  ROM:  –  accesso  casuale  alle  informazioni  –  velocità  elevata  (inferiore  alle  RAM)  

•  La  ROM  viene  scri<a  in  modo  permanente  in  fase  costruHva:  le  celle  della  ROM  possono  essere  successivamente  le<e,  ma  mai  riscri<e  

•  Viene  usata  per  memorizzare  programmi  di  sistema  

Il  sodware  della  ROM  -­‐  1  •  La  ROM  con$ene  il  sodware  e  i  da$  necessari  ad  inizializzare  il  computer  ed  a  far  funzionare  i  disposi$vi  periferici  

•  Il  nucleo  del  sodware  della  ROM  è  cos$tuito  dalle  rou$ne  di  avviamento  che  comprendono  il  caricatore  di  boot-­‐strap  ed  il  ROM  BIOS  

•  Le  rou$ne  di  avviamento  realizzano  l’inizializzazione  del  calcolatore:  –  Ne  effe<uano  un  rapido  controllo  di  affidabilità,  per  accertare  che  tu<e  le  componen$  hardware  siano  perfe<amente  funzionan$  

–  Caricano  il  sistema  opera$vo  dal  disco  (caricatore  di  boot-­‐strap)  

Il  sodware  della  ROM  -­‐  2  

•  Il  caricatore  di  boot-­‐strap  ha  la  funzione  di  leggere  un  programma  di  lancio  dal  disco,  de<o  bootstrap,  e  di  trasferire  ad  esso  il  controllo:  il  boostrap  carica  il  nucleo  del  sistema  opera$vo  e  lo  manda  in  esecuzione  

•  Il  ROM  BIOS  (Binary  Input-­‐Output  System)  è  la  parte  della  ROM  aHva  quando  il  computer  è  al  lavoro:  il  suo  ruolo  è  quello  di  fornire  un  insieme  di  servizi  di  base  richies$  per  il  funzionamento  delle  periferiche  

Operazioni  sulla  memoria  centrale  •  Le  operazioni  che  si  effe<uano  sulla  memoria  centrale  sono  operazioni  di  le<ura  e  scri<ura  

•  Entrambe  presuppongono  l’u$lizzo  di  un  indirizzo  che  iden$fica  univocamente  la  cella  interessata  all’operazione  

•  L’operazione  di  scri<ura  è  distruHva,  cioè  cancella  l’informazione  precedentemente  contenuta  nella  cella  

•  L’operazione  di  le<ura  preserva  il  contenuto  della  cella  indirizzata:  all’esterno  della  memoria  centrale  viene  trasferita  copia  dell’informazione  

La  memoria  secondaria  •  Esistono  diversi  disposi$vi  di  memoria  secondaria:  dischi  magne$ci  (hard  disk),  dischi  oHci  (CD,  DVD),  disposi$vi  USB,  memorie  flash  

•  Memoria  non  vola$le  ad  alta  capacità  •  Il  disco  fisso  è  cos$tuito  da  uno  o  più  piaH  metallici  ricoper$  di  materiale  magne$co  su  entrambe  le  facce  

•  Ciascuna  superficie  è  associata  ad  una  o  più  tes$ne  di  le<ura/scri<ura  che  si  muovono  radialmente  per  leggere/  scrivere  l’informazione  organizzata  in  tracce  concentriche  

I  dischi  magne$ci  -­‐  1  •  I  dischi  magne$ci  rappresentano  il  mezzo  fondamentale  per  la  memorizzazione  di  massa      

•  I  dischi  ruotano  ad  una  velocità  (costante)  compresa  tra  i  60  e  i  200  giri  al  secondo  

I  dischi  magne$ci  -­‐  2  •  L’informazione  è  disposta  sul  

disco  in  tracce,  ovvero  in  cerchi  concentrici  

•  La  densità  dei  bit  decresce  dalle  tracce  interne  alle  più  esterne  per  mantenere  costante  la  quan$tà  di  da$  che  passano  so<o  le  tes$ne  nell’unità  di  tempo  

•  Le  tracce  sono  divise  in  se<ori  

•  La  capacità  di  memorizzazione  dei  dischi  cresce  in  conseguenza  allo  sviluppo  tecnologico  

I  dischi  magne$ci  -­‐  3  •  Il  numero  di  bit  contenu$  in  una  traccia  è  dell’ordine  delle  cen$naia  di  migliaia  (512/4096  byte  a  se<ore)  

•  Cen$naia  di  se<ori  (512/1024  per  traccia)  •  Decine  di  migliaia  di  cilindri  (tracce  concentriche  disposte  sulle  diverse  facce  dei  diversi  dischi)  

•  Per  leggere  (o  scrivere)  sul  disco,  la  tes$na  si  deve  posizionare  sulla  traccia  che  con$ene  il  dato,  ed  a<endere  che  il  dato  passi  so<o  di  essa  –  Le  operazioni  di  le<ura/scri<ura  si  basano  sulla  proprietà  del  campo  magne$co  di  indurre/essere  indo<o  il/dal  passaggio  di  corrente  in  una  bobina  

I  dischi  magne$ci  -­‐  4  •  La  magne$zzazione  avviene  

mediante  la  tes$na  magne$ca  (una  piccola  bobina  racchiusa  in  un  involucro  di  metallo  dotato  di  una  minuscola  fessura,  il  traferro)  

•  Facendo  passare  corrente  nella  bobina  si  induce  un  campo  magne$co  nel  traferro  (invertendo  la  corrente  si  inverte  anche  il  campo)  

•  Quando  si  fa  passare  corrente  a<raverso  la  tes$na  alternandone  la  direzione,  le  aree  del  disco  al  di  so<o  della  tes$na  si  magne$zzano  in  una  delle  due  direzioni:  questo  procedimento  rappresenta  la  scri<ura  su  disco  

I  dischi  magne$ci  -­‐  5  •  I  da$  binari  che  l’unità  scrive  sul  disco  sono  tradoH  in  un  formato  cos$tuito  da  una  serie  di  aree  magne$zzate  in  un  senso  o  nell'altro  

•  Le<ura  da  disco:  poiché  le  par$celle  magne$zzate  sono  circondate  da  un  campo  magne$co,  quando  il  traferro  passa  sul  disco  le  variazioni  del  campo  inducono  sulla  tes$na  una  corrente  che  si  manifesta  con  variazioni  di  voltaggio  alle  estremità  della  bobina;  i  circui$  di  le<ura  decodificano  le  variazioni  nell’andamento  dell’intensità  di  corrente  riconducendole  a  0/1  

Accesso  al  disco  •  Il  tempo  medio  di  accesso  all’informazione  memorizzata  su  disco  è  dato  da  

•  T  =  tseek  +  tlat  +  ttr  •  tseek  è  il  tempo  di  ricerca,  necessario  per  posizionare  la  tes$na  sulla  traccia  che  con$ene  l’informazione;  dipende  dall’ampiezza  dello  spostamento  

•  tlat  è  il  tempo  di  latenza,  necessario  perché  l’informazione  ricercata  passi  so<o  la  tes$na;  dipende  dalla  velocità  di  rotazione  dei  dischi  

•  ttr  è  il  tempo  di  trasferimento;  dipende  dalla  velocità  di  rotazione,  dalla  densità  di  registrazione  e  dalla  quan$tà  di  informazione  da  trasferire  

Memorie  a  supporto  magne$co:  hard  disk  

•  Parametri  $pici:  –  densità  lineare  di  memorizzazione:  >  500.000  bit/pollice  

–  numero  di  tracce  per  pollice:  >  10.000  –  velocità  di  rotazione:  da  7200  a  15.000  rpm  (giri/minuto)  

–  velocità  di  spostamento  del  braccio:  30  ms  a<raverso  tu<e  le  tracce  

–  velocità  di  trasferimento:  10  -­‐  60  MByte/secondo  –  capacità  di  memorizzazione:  20  Gbyte-­‐Terabyte  

I  dischi  oHci  -­‐  1  

•  Sui  dischi  oHci  si  u$lizza  la  tecnologia  laser  per  realizzare  le  operazioni  di  le<ura/scri<ura  

•  Densità  dei  bit  per  traccia  uniforme  – Un’unica  traccia  elicoidale  o…  – …tracce  più  lontane  dal  centro  del  disco  sono  più  lunghe  e  contengono  un  maggior  numero  di  se<ori  (fino  al  40%  in  più  rispe<o  alle  tracce  vicine  al  centro  di  rotazione)  

I  dischi  oHci  -­‐  2  •  Sui  dischi  di  le<ura/scri<ura  i  da$  possono  essere  modifica$  più  e  più  volte  (dischi  a  cambio  di  fase)  

•  I  dischi  WORM,  Write  Once-­‐Read  Many,  si  possono  scrivere  una  sola  volta  

•  La  tecnologia  originale  per  dischi  WORM  consiste  nell’inserire  una  pellicola  di  alluminio  tra  due  piaH  di  plas$ca  o  di  vetro  (o  un  pigmento  polimerico)  

•  Per  scrivere  un  bit,  l’unità  usa  un  raggio  laser  per  pra$care  un  piccolo  foro  nell’alluminio  (o  opacizzare  il  pigmento):  l’informazione  può  venir  distru<a  ma  non  alterata  

Memorie  a  supporto  magne$co:  nastri  

•  Il  materiale  ferromagne$co  è  depositato  su  nastri  di  plas$ca  avvol$  su  opportune  bobine;  sono  suddivisi  generalmente,  in  senso  trasversale,  in  9  strisce  (piste)  parallele,  ciascuna  assegnata  ad  una  tes$na  che  consentono  la  memorizzazione  di  un  byte  dotato  del  bit  di  parità  

Memorie  a  supporto  magne$co:  nastri  

•  In  senso  longitudinale,  invece,  le  informazioni  sono  organizzate  in  blocchi,  suddivisi  in  record,  intercala$  da  zone  non  magne$zzate  (interrecord  gap)  

•  Il  nastro  è  normalmente  fermo  e  trasferisce  un  blocco  per  volta  

•  Parametri  $pici:  –  i  forma$  più  usuali  sono:  bobine  da  1/2  pollice,  cartucce  da  ¼  pollice,  casse<e  (simili  alle  casse<e  audio)  

–  velocità  di  trascinamento:  100  –  200  pollici/secondo  –  larghezza  del  nastro:  ¼  –  ½  pollice  –  lunghezza  del  nastro:  350  –  1.000  m  –  densità  di  memorizzazione:  25  MByte/pollice  –  capacità:  100  GByte  –  1  TByte  

Processore  e  RAM  •  La  connessione  tra  memoria  e  processore  rappresenta  un  

limite  degli  elaboratori  di  Von  Neumann    –  Limite  archite<urale:  il  bus  perme<e  l’accesso  ad  una  sola  informazione  per  volta  (“collo  di  boHglia”)  

–  Limite  tecnologico:  la  velocità  con  cui  il  processore  oHene  le  informazioni  dalla  memoria  centrale  (velocità  di  accesso  della  RAM)  è  inferiore  alla  velocità  con  cui  è  in  grado  di  elaborarle  

•  Soluzioni  –  Allargamento  del  bus  da$,  in  modo  da  poter  estrarre  più  istruzioni  e/o  da$  per  volta  

–  Superamento  del  limite  tecnologico  mediante  introduzione  di  una  memoria  intermedia  tra  memoria  centrale  e  processore  che  approssimi  la  velocità  del  processore  

Tempi  di  accesso  

•  Il  tempo  di  accesso  varia  da  disposi$vo  a  disposi$vo:  – memoria  centrale  di  $po  cache:  circa  1  nsec  – memoria  centrale:  circa  5  nsec  – dischi  magne$ci:  fino  a  1-­‐5  msec  – discheH  e  dischi  oHci:  20-­‐100  msec  – nastro:  secondi  

Tipi  di  accesso  •  Uniforme  o  casuale:  $pico  della  memoria  centrale.  L’accesso  ai  da$  avviene  in  modo  dire<o  tramite  il  loro  indirizzo  e  in  un  tempo  costante  che  non  dipende  dalla  loro  posizione  

•  Sequenziale:  $pico  dei  nastri.  I  da$  vengono  scriH  e  leH  uno  dopo  l’altro  in  posizione  con$gua  sul  supporto  

•  Dire<o  o  misto:  $pico  dei  dischi.  L’accesso  ai  da$  avviene  in  modo  dire<o,  ma  il  tempo  di  accesso  varia  a  seconda  della  posizione  corrente  rela$va  tra  dato  e  tes$na  di  le<ura/scri<ura  

Riassumendo    

SSD  

•  Un'unità  a  stato  solido  o  drive  a  stato  solido,  in  sigla  SSD  (solid-­‐state  drive),  è  una  $pologia  di  disposi$vo  di  memoria  di  massa  che  u$lizza  memoria  a  stato  solido  (in  par$colare  memoria  flash)  per  l'archiviazione  dei  da$.    

•  L'importante  differenza  con  i  classici  dischi  è  la  possibilità  di  memorizzare  in  modo  non  vola$le  grandi  quan$tà  di  da$,  senza  u$lizzare  organi  meccanici.  

Vantaggi  SSD  •  La  totale  assenza  di  par$  meccaniche  in  movimento  porta  diversi  

vantaggi,  di  cui  i  principali  sono:  –  rumorosità  assente;  –  minore  possibilità  di  ro<ura;  –  minori  consumi  durante  le  operazioni  di  le<ura  e  scri<ura;  –  tempo  di  accesso  rido<o:  si  lavora  nell'ordine  dei  decimi  di  

millisecondo;  il  tempo  di  accesso  dei  dischi  magne$ci  è  oltre  50  volte  maggiore,  a<estandosi  invece  tra  i  5  e  i  10  millisecondi;  

–  maggiore  resistenza  agli  ur$:  le  specifiche  di  alcuni  produ<ori  arrivano  a  dichiarare  resistenza  a  shock  di  1500;  

–  Maggiore  durata:  le  unità  a  stato  solido  hanno  mediamente  un  tasso  di  ro<ura  inferiore  a  quelli  degli  hard  disk.  Questo  tasso  oscilla  tra  lo  0.5%  fino  a  3%  mentre  negli  hard  disk  può  raggiungere  il  10%.  

–  minore  produzione  di  calore  

Svantaggi  SSD  •  A  fronte  di  una  maggiore  resistenza  agli  ur$  e  a  un  minor  consumo,  le  unità  a  stato  solido  hanno  due  svantaggi  principali:  –  un  maggiore  prezzo  per  bit,  pari  a  circa  dieci  volte  il  costo  di  un  disco  rigido  tradizionale.  

–  una  possibile  minore  durata  dell'unità,  a  causa  del  limite  di  riscri<ure  delle  memorie  flash.  I  disposi$vi  a<uali  dichiarano  un  numero  massimo  di  riscri<ure  consecu$ve  dello  stesso  bit  che  va  da  10.000  a  1.000.000  di  cicli,  a  seconda  del  modello  e  degli  u$lizzi  ipo$zza$.  

•  Entrambi  i  problemi  sembrano  però  des$na$  a  risolversi  in  futuro.    

Memoria  centrale  e  di  massa  •  Due  parametri  molto  u$li  per  qualificare  i  diversi  $pi  di  disposi$vi  sono  il  costo  per  bit  memorizzato  e  il  tempo  di  accesso  (la  velocità  di  risposta  alla  richiesta  di  trasferimento  di  informazioni)  

Memoria  centrale  e  di  massa  •  Una  considerazione  che  discende  dall’esame  del  grafico  è  il  

costo  rela$vamente  elevato  dei  disposi$vi  a  semicondu<ore,  tale  da  rendere  troppo  onerosa  e  quindi  improponibile  la  realizzazione  di  calcolatori  con  grandi  quan$tà  di  memoria  di  lavoro  

•  Un  problema  ulteriore  è  rela$vo  alla  vola$lità  delle  informazioni  (vengono  perse  quando  il  disposi$vo  viene  disalimentato).  

•  Un’ampia  disponibilità  di  memoria  è  par$colarmente  u$le  perché:  –  uno  spazio  di  indirizzamento  ampio  consente  di  u$lizzare  stru<ure  da$  complesse  ed  estese;  

–  i  calcolatori  usa$  da  più  uten$  devono  soddisfare  la  presenza  contemporanea  di  vari  programmi  e  dei  rela$vi  da$  in  memoria  

Memoria  centrale  e  di  massa  •  Da  un  punto  di  vista  funzionale,  ogni  disposi$vo  di    memorizzazione  cos$tuisce  un  serbatoio  di  sequenze  di  bit  (parole)  accessibili  mediante  il  loro  indirizzo  

•  Da  un  punto  di  vista  comportamentale,  esistono  invece  significa$ve  differenze  fra  memorie  basate  su  principi  fisici  diversi  o  realizzate  con  diverse  tecnologie  e  tali  differenze  separano  in  modo  ne<o  i  campi  applica$vi  delle  diverse  memorie  

•  Il  conce<o  di  gerarchia  di  memoria  nasce  dal  tenta:vo  di  fornire  il  calcolatore  di  un  supporto  di  memorizzazione  dotato  delle  migliori  cara<eris$che  di  tuH  i  $pi  di  memoria  disponibili  

Necessità  di  ges$re  la  memoria  

•  La  memoria  è  una  risorsa  importante  e  deve  essere  ges$ta  a<entamente  

•  Un  programmatore  vorrebbe:  – una  memoria  infinita  – veloce  – non  vola$le  – poco  costosa  

•  Ques$  desideri  possono  essere  solo  parzialmente  soddisfaH  (sono  contraddi<ori)  

Principio  di  località  degli  accessi  •  Una  soluzione  economicamente  valida  sarebbe  quella  di  

u$lizzare  disposi$vi  a  supporto  magne$co  (ad  esempio  dischi)  per  realizzare,  a  parità  di  costo,  memorie  di  lavoro  molto  estese.  Purtroppo  i  tempi  di  accesso  necessari  per  o<enere  l’informazione  ricercata  sono  tali  da  impedirne  l’uso  come  supporto  di  memoria  di  lavoro  

•  Tu<avia  la  distribuzione  degli  indirizzi  genera$  durante  l’esecuzione  di  programmi  non  è  di  fa<o  casuale    

•  Principio  di  località  degli  accessi:  esiste  un’elevata  probabilità  che,  a  par$re  dalla  generazione  di  un  certo  indirizzo  di  memoria,  ne  venga  generato  uno  uguale  o  simile  entro  breve  tempo,  cioè  a  distanza  di  pochi  accessi  in  memoria  

Località  temporale  e  sequenziale  

•  Il  principio  di  località  degli  accessi  deriva  da:  – una  località  temporale,  dovuta  al  fa<o  che  ogni  programma  ha  un’elevata  probabilità  di  riu$lizzare  a  breve  le  informazioni  appena  acquisite  

– una  località  sequenziale,  dovuta  al  fa<o  che  l’esecuzione  di  un’istruzione  ha  un’elevata  probabilità  di  essere  seguita  dall’istruzione  immediatamente  successiva  nel  programma;  discorso  analogo  vale  per  i  da$  

Memoria  virtuale  •  Grazie  al  principio  di  località  degli  accessi  è  possibile  realizzare  un  

sistema  di  ges$one  della  memoria  di  lavoro  virtuale,  nella  quale  lo  spazio  u$lizzabile  da  ogni  singolo  programma  è  largamente  superiore  alle  dimensioni  fisiche  della  memoria  centrale  effeHvamente  presente  nel  calcolatore.  

•  Il  termine  virtuale  deriva  dal  fa>o  che  in  questa  organizzazione  di  memoria  lo  spazio  di  indirizzamento  dell’unità  centrale  non  ha  un  riscontro  fisico  nella  memoria  centrale,  che  è  solo  una  parte  della  memoria  reale  del  sistema,  ma  fa  riferimento  ad  una  memoria  di  lavoro  virtuale  (corrispondente  in  pra$ca  alla  memoria  di  massa)  

•  Questo  meccanismo  prevede  che  le  informazioni  correntemente  u$lizzate  dalla  CPU  vengano  temporaneamente  ricopiate  dalla  memoria  più  ampia  e  lenta  (memoria  di  massa)  alla  più  veloce  e  più  piccola  (memoria  centrale)  

Schema$camente    

Ges$one  della  memoria  virtuale  •  Nei  computer  senza  memoria  virtuale,  l'indirizzo  virtuale  viene  

messo  dire<amente  sul  bus  di  memoria,  quindi  la  parola  di  memoria  fisica  con  lo  stesso  indirizzo  viene  le<a  o  scri<a  

•  Nei  calcolatori  che  implementano  una  ges$one  della  memoria  virtuale  (cioè  che  vedono  una  memoria  più  ampia  di  quella  fisica  di  lavoro),  ogni  programma  può  produrre  un  insieme  di  indirizzi  di  memoria,  deH  Indirizzi  Virtuali,  e  formano  lo  Spazio  di  Indirizzamento  Virtuale.  

•  Questo  richiede  una  poli$ca  di  ges$one  della  memoria  virtuale,  che  consiste  in  un  metodo  di  conversione  dell’indirizzo  virtuale,  emesso  dall’unità  centrale,  nell’indirizzo  fisico  della  cella  di  memoria  di  lavoro  nella  quale  è  stato  ricopiato  il  valore  della  locazione  virtuale  cercata.  

•  Tale  compito  è  demandato  ad  un’unità  dedicata,  l’unità  di  ges:one  della  memoria  (MMU:  Memory  Management  Unit)  

Spazi  di  indirizzamento  •  Al  tempo  di  esecuzione  del  programma  P  il  processore  genera  indirizzi  logici  appartenen$  allo  spazio  N  assegnato  dal  compilatore  al  programma  

•  N  è  ampio  al  più  2p  indirizzi  dove  p  è  l’ampiezza  in  bit  dell’indirizzo  logico  

•  La  memoria  principale  offre  uno  spazio  di  indirizzamento  fisico  M  al  programma  caricato  per  l’esecuzione  

•  L’ampiezza  di  M  non  coincide  necessariamente  con  quella  di  N  

Spazi  di  indirizzamento  

•  Nel  caso  di  allocazione  sta$ca  N  ed  M  coincidono  – Una  traduzione  sta$ca  può  essere  necessaria  se  N  ed  M  usano  una  base  diversa  

– Tale  traduzione  avviene  nelle  fase  di  caricamento  (linking  loader)  

•  Nel  caso  di  allocazione  dinamica  M  varia  sia  in  ampiezza  che  in  posizionamento:  – Ciò  richiede  l’uso  di  una  funzione  di  rilocazione            f  :  N  à  M  di  cui  si  occupa  il  gestore  della  memoria  

Memoria  centrale  e  di  massa  •  Quando  l’unità  centrale  richiede  l’accesso  ad  una  locazione  di  memoria  virtuale  non  presente  in  una  cella  di  memoria  reale,  si  rende  necessario  effe<uare  una  ricopiatura  della  memoria  virtuale  desiderata  da  memoria  di  massa  a  memoria  centrale,  eventualmente  preceduta  da  una  ricopiatura  in  senso  inverso  per  liberare  spazio  nella  memoria  centrale  (swapping)  

•  Per  oHmizzare  le  prestazioni,  si  sfru<a  in  queste  situazioni  il  principio  della  località  degli  accessi  e  si  trasferisce  da  memoria  di  massa  un  intero  blocco  di  locazioni  adiacen$,  contando  su  un’elevata  probabilità  di  usarle  a  breve  

Memory  Management  Unit  (MMU)  •  Quando  viene  u$lizzata  la  memoria  virtuale  gli  indirizzi  virtuali  non  vengono  messi  dire<amente  sul  bus  di  indirizzi,  ma  vengono  manda$  alla  Memory  Management  Unit  (MMU)  un  chip  che  mappa  gli  indirizzi  virtuali  sugli  indirizzi  della  memoria  fisica  

•  La  MMU  svolge  i  seguen$  compi$:  –  Traduce  l'indirizzo  logico  in  indirizzo  fisico;  –  Controlla  che  l'indirizzo  fisico  corrisponda  a  una  zona  di  memoria  fisicamente  presente  nella  memoria  centrale;  

–  Se  invece  la  zona  in  ques$one  è  nello  spazio  di  swap,  la  MMU  lo  segnala  al  processore  e  si  occupa  di  caricarla  in  memoria  centrale,  scartando  una  pagina  già  presente.  

Meccanismi  di  ges$one  

•  La  funzione  di  rilocazione  f  può  u$lizzare  – Paginazione:  decomponendo  sia  N  che  M  in  blocchi  di  ampiezza  fissa  e  contenen$  informazioni  con$gue  (pagine)  

– Segmentazione:  decomponendo  N  ed  M  in  aree  di  ampiezza  variabile,  contenen$  informazioni  con$gue  e  corrisponden$  a  specifiche  en$tà  del  programma  (segmen$)  

– Segmentazione  paginata  

Ges$one  della  memoria:  paginazione  

•  Si  basa  sul  conce<o  di  pagina,  cioè  di  blocco  di  parole  consecu:ve,  di  dimensione  prefissata  (pochi  Kbyte)  che  cos$tuisce  l’unità  minima  di  informazione  trasferita  durante  le  operazioni  di  swapping  richieste  dalla  ges$one  virtuale  della  memoria  

•  In  questa  modalità  di  ges$one  della  memoria,  sia  la  memoria  virtuale,  sia  la  memoria  fisica  vengono  suddivise  in  pagine  di  uguali  dimensioni  e  ogni  programma  occupa  in  genere  più  pagine  la  cui  dislocazione  è  libera  dal  vincolo  di  consecu$vità  

•  I  trasferimen$  fra  la  memoria  ed  il  disco  avvengono  sempre  per  unità  di  una  pagina  

•  L’operazione  di  conversione  da  indirizzo  virtuale  a  indirizzo  fisico  consiste  nella  ricerca  della  posizione  di  memoria  fisica  nella  quale  la  pagina  virtuale  referenziata  è  stata  inserita  

•  Questo  si  fa  costruendo  una  tabella  che  fornisce  la  corrispondenza  fra  pagine  virtuali  e  quelle  fisiche  

Ges$one  della  memoria:  paginazione  

•  Tale  tabella  ha  un  elemento  (riga)  per  ogni  pagina  virtuale  referenziabile  dal  programma;  il  contenuto  è  un  bit  che  indica  se  la  pagina  è  presente  o  meno  nella  memoria  centrale  ed,  eventualmente,  la  posizione  occupata  da  tale  pagina  virtuale  nella  memoria  centrale  

•  Ogni  accesso  a  memoria  da  parte  della  CPU  comporta  la  le<ura  dell’elemento  della  tabella  corrispondente  alla  pagina  virtuale  referenziata  e  la  verifica  del  bit  di  presenza:  –  se  la  pagina  è  presente,  l’indirizzo  fisico  è  ricavabile  dalla  tabella  –  se  la  pagina  non  è  presente,  deve  essere  caricata  dalla  memoria  di  massa  per  essere  usata.  In  questo  caso  si  deve  iden$ficare  una  pagina  di  memoria  centrale  libera  in  cui  caricare  la  pagina  richiesta  

Esempio  

•  La  macchina  ha  64K  di  memoria  virtuale  e  32K  di  memoria  fisica,  le  pagine  sono  di  4K  

Poli$ca  di  swapping  •  Se  tu<e  le  pagine  sono  occupate,  la  poli$ca  di  scelta  più  usata  prevede  di  

eliminare  la  pagina  non  u$lizzata  da  più  tempo  (LRU:  Least  Recently  Used)  

•  Il  problema  principale  della  ges$one  a  pagine  è  l’eccessiva  dimensione  della  tabella  quando  lo  spazio  di  indirizzamento  virtuale  è  molto  esteso  

•  Questo  problema  non  può  essere  risolto  aumentando  la  dimensione  delle  singole  pagine,  se  si  vuole  evitare  un  eccessivo  spreco  di  memoria  dovuto  al  fa<o  che  l’ul$ma  pagina  di  un  programma  è  u$lizzata  solo  in  parte  

Ges$one  della  memoria:  segmentazione  

•  La  suddivisione  non  è  in  blocchi  di  uguale  dimensione,  ma  in  unità  logicamente  separate,  i  segmen:  (moduli  di  cui  è  composto  un  programma,  stru<ure  da$  usate  da  un  programma,  ecc.)  

•  La  conversione  di  indirizzo  richiede  che  ad  ogni  programma  venga  associata  una  tabella  che,  per  ogni  segmento  del  programma,  riporta  il  bit  di  presenza,  l’indirizzo  di  tale  segmento  in  memoria  centrale  e  la  lunghezza  del  segmento  

•  La  conversione  comporta  quindi  la  le<ura  della  tabella:  –  se  il  segmento  è  presente,  si  oHene  dalla  tabella  l’indirizzo  di  memoria  centrale  in  cui  il  segmento  interessato  è  stato  caricato  

Ges$one  della  memoria:  segmentazione  

–  se  il  segmento  è  assente,  si  rende  necessario  il  caricamento  dalla  memoria  di  massa:  la  differente  lunghezza  dei  segmen$  comporta  una  suddivisione  molto  più  ar$colata  della  memoria  fisica,  non  più  par$zionata  in  pagine  di  uguale  lunghezza,  ma  assegnata  in  base  alla  richieste  dei  programmi  in  esecuzione  

•  Nasce  un  problema:  ogni  caricamento  di  un  nuovo  segmento  va  ad  occupare  lo  spazio  lasciato  libero  da  un  segmento  di  dimensioni  maggiori  di  quello  che  si  sta  caricando,  con  il  risultato  di  lasciare  inu$lizzata  la  parte  di  memoria  corrispondente  alla  differenza  fra  segmen$  vecchio  e  nuovo  

Ges$one  della  memoria:  segmentazione  

•  Dopo  un  certo  numero  di  operazioni  di  swapping,  la  memoria  appare  frammentata,  cioè  piena  di  “buchi”  residui  dei  vari  caricamen$,  singolarmente  piccoli,  ma  abbastanza  numerosi  da  ridurre  in  modo  inacce<abile  lo  spazio  di  memoria  centrale  u$lizzabile  

•  Una  compa<azione  periodica  della  memoria  implica  una  ricopiatura  dell’intero  contenuto  della  memoria  ed  è  quindi  un’operazione  estremamente  lenta