title: System availability
text: # System availability
  
  ## Definizione informale
  
  La disponibilità di un sistema rappresenta, in ambito informatico, la quantità di tempo che il suddetto rimane online rispetto al tempo totale. Con sistema intendiamo un qualsiasi insieme di componenti hardware e software che svolgono un compito specifico, come potrebbe essere un webserver, una macchina ATM e via dicendo.
  
  ## Definizione formale
  
  Formalmente possiamo definire la sistem availability come segue: ${\frac {MTTF}{MTBF}}$= ${\frac {MTTF}{MTTF+MTTR}}$
  
  Dove con MTBF intendiamo il Mean Time Between Failures, ovvero il tempo medio tra un fallimento ed un altro del sistema (quindi l'uptime) e con MTTR intendiamo il Mean Time To Repair, ovvero il tempo medio per riparare il sistema dopo il suo fallimento.
  
  Chiaramente questa formula rappresenta la percentuale di tempo che il sistema rimane funzionante.
  
  ## Utilizzo
  
  Questa caratteristica è un indice molto importante per valutare la bontà di un sistema in quanto permette di stimare quanto lo stesso sarà disponibile all'esterno. A differenza della system safety questo indice spesso non è obbligatoriamente necessario ma auspicabile.
  
  Ad esempio, supponiamo di avere una macchina ATM per il prelievo dei soldi; è chiaro che avere una system availability del 60% indicherebbe che 2 volte su 5 la macchina non è funzionante, e sarebbe un risultato piuttosto deludente. In certe situazioni è necessario garantire una disponibilità molto alta, basti supporre un centralino di smistamento chiamate.
  
  ## Disponibilità in serie
  
  In caso di elementi del sistema posti in serie uno dopo l'altro la disponibilità dello stesso dipenderà dal primo fallimento che si presenta. Se abbiamo ad esempio due componenti successive, come una stampante collegata ad un print server, lo stesso smetterà di funzionare non appena uno dei due elementi falliscono nel loro funzionamento.
  
  ## Disponibilità in parallelo
  
  Al contrario della disponibilità in serie, quella in parallelo permette di creare una ridondanza che garantisce un uptime maggiore. Supponiamo di avere un server con 2 processori ridondanti; nel caso in cui uno dei due fallisca è sempre presente il secondo che può sostituire il primo e l'unico caso in cui il sistema smette di funzionare è quello in cui uno dei due fallisce e successivamente fallisce anche il secondo prima che il primo venga riparato.
  
  