Salve, sto studiando la teoria dei sistemi operativi e attualmente sono al capitolo sul file system. Non riesco a capire il funzionamento della free-list per tener traccia dei blocchi logici cui viene suddiviso un disco. Ho capito che consiste in una lista di blocchi liberi che deve essere consultata ogni volta che il OS deve trovare un blocco nel quale memorizzare un file, ma non capisco né il perché sia necessaria una lista per fare ciò e né come funziona la memorizzazione di questa free-list nei blocchi liberi stessi così da consumare meno spazio possibile.
Inoltre, data la grande dimensione della free-list, il libro spiega che questa non può essere memorizzata completamente in memoria centrale, e di conseguenza ne viene caricata in memoria solamente una piccola parte mentre la restante rimane sul disco. La parte memorizzata in memoria centrale verrà poi riportata sul disco quando completamente piene o vuota. Ciò comporta un numero troppo elevato di operazione sul disco e quindi un calo di prestazioni, che il libro propone di risolvere memorizzando in memoria, quando possibile, una parte della free-list per metà piena così da diminuire in media il numero di accessi al disco. Non capisco però come facciano ad esserci delle parti della free-list piene per metà, ciò non è impossibile?
Inoltre, data la grande dimensione della free-list, il libro spiega che questa non può essere memorizzata completamente in memoria centrale, e di conseguenza ne viene caricata in memoria solamente una piccola parte mentre la restante rimane sul disco. La parte memorizzata in memoria centrale verrà poi riportata sul disco quando completamente piene o vuota. Ciò comporta un numero troppo elevato di operazione sul disco e quindi un calo di prestazioni, che il libro propone di risolvere memorizzando in memoria, quando possibile, una parte della free-list per metà piena così da diminuire in media il numero di accessi al disco. Non capisco però come facciano ad esserci delle parti della free-list piene per metà, ciò non è impossibile?