Fai XOR dei valori vecchi delle strip che stanno per essere modificate con i valori nuovi delle strip, in più ci aggiungi la vecchia parity, il risultato è la nuova parity strip.
**Trovare il punto di pareggio (RAID 4 e 5):**
Sappiamo che:
- $\text{Parità Additiva} = (n-1)-B$, dove $B$ sono le strip modificate;
Se le strip modificate sono $> (n-2)/2$ allora conviene usare la parità additiva, se invece è $<$ allora conviene la sottrattiva. Se sono uguali è indifferente.
In entrambi i casi il numero di WRITE rimane lo stesso, cambia soltanto il numero di READ.
**Ricavare una strip danneggiata:**
Usi la additive parity con anche il valore della parity strip, quello che ottiene è il valore della strip danneggiata.
### RAID 6:
Usa due dischi per la parità, il resto è identico.
Se viene richiesto Overhead e Wasted Space continua sotto.
5. Wasted Space [bytes]: $\text{Dim Fat}-\text{Dim File F}$
6. Wasted Space [percentuale]: $(\text{Wasted Space in Bytes}/\text{Dim Partizione}) * 100$
### I-Node:
1. Converti tutti i dati in potenze di due, ricordandoti di trasformare eventuali bit in byte;
2. Calcolare il numero di puntatori I-Node in un blocco [bytes]: $\text{Dim Blocco} / \text{Dim Puntatore}$;
3. Calcolare la Dim File Possibile [bytes]:
$(\text{Num Puntatori Diretti} + \text{Num Puntatori in un blocco} + \text{Num Puntatori in un blocco}^2 ...) *\text{Dim Blocco}$
La formula cambia in base a quanti puntatori indirtti ci sono, per esempio se c'è solo un puntatore indiretto singolo ti fermi a $\text{Num Puntatori in un blocco}$, sennò vai avanti, se è triplo aggiungi $+ \text{Num Puntatori in un blocco}^3$.
Se l'esercizio richiede la dimensione in blocchi allora fai il risultato del punto 3 diviso $\text{Dim Blocco}$.
---
## FSCK:
### Consistenza blocchi:
> 2 tabelle, in uso e liberi
- Entrambi 0 = missing block, FSCK lo assegna alla struttura dati dei blocchi liberi e aggiorna il contatore
- Entrambi 1 = blocco sia in uso che libero, FSCK può scegliere se rimuoverlo dai blocchi allocati o dai blocchi liberi
- Valore > 1 nei blocchi liberi = Blocco libero duplicato, FSCK ricostruisce la struttura dati dei blocchi liberi e aggiorna il contatore
- Valore > 1 nei blocchi in uso = Blocco in uso duplicato, è l’inconsistenza peggiore, FSCK alloca n-1 blocchi (da quelli liberi), ci copia i dati del blocco inconsistente e fa puntare n-1 file ai nuovi blocchi allocati, poi aggiorna le tabelle.
### Consistenza su file:
> Solo una tabella del file in uso, ammessi valori > 1
- Se il Link counter > Counter file in uso, ci può essere spreco di spazio se tutti gli utenti eliminano quel file perché il sistema operativo non libera il blocco, FSCK mette il link counter = al Counter dei file in uso
- Se il Link counter < counter file in uso, ci può essere un problema di sicurezza, quando quell’i-node verrà rimosso una directory gli punterà ancora e quindi quando verrà riallocato quella directory avrà accesso a dei dati che magari non dovevano essere condivisi, FSCK setta il link counter = al counter della tabella dei file in uso.