Introdução: – Como o espaço em disco é limitado, devemos reutilizar o espaço de arquivos excluídos para novos arquivos. Para acompanhar o espaço livre em disco, o sistema mantém uma lista de espaço livre. A lista de espaço livre registra todos os blocos de disco livre aqueles não alocados para algum arquivo ou diretório. Esta lista de espaço livre pode ser implementada como uma das seguintes:
a) bit vector – free space list é implementada como um mapa de bits ou um vetor de bits. Cada bloco é representado por um bit. Se o bloco estiver livre, o bit é 1, Se o bloco estiver alocado, o bit é 0.
a principal vantagem dessa abordagem é sua relativa simplicidade e sua eficiência em encontrar o primeiro bloco livre ou n blocos livres consecutivos no disco. O cálculo do número de bloco é (Número de bits por palavra) * (número de valor de 0 palavras) deslocamento de 1 bit
b) lista Ligada – uma Outra abordagem para a livre gestão do espaço é a de unir todos os blocos do disco manter um ponteiro para o primeiro bloco livre em um local especial no disco e o cache em memória. O primeiro bloco contém um ponteiro para o próximo bloco de disco livre.
C) Agrupamento – uma modificação da abordagem de Lista livre é armazenar os endereços de N blocos livres no primeiro bloco livre.
D) Contagem – outra abordagem é aproveitar o fato de que vários blocos contíguos podem ser alocados ou liberados simultaneamente quando o espaço é alocado com o algoritmo de alocação contígua ou agrupamento.
eficiência e desempenho
os discos tendem a representar um grande gargalo no desempenho do sistema, pois são o componente principal do computador mais lento. Eficiência:- O uso eficiente de espaço em disco depende muito da alocação de disco e algoritmos de diretório em uso.
desempenho: – a maioria dos controladores de disco incluem memória local para formar um cache on Board que é grande o suficiente para armazenar faixas inteiras de cada vez. Uma vez que uma busca é realizada, a faixa é lida no cache do disco começando no setor sob a cabeça do disco. O controlador de disco então transfere todas as solicitações do setor para o sistema operacional. Alguns sistemas mantêm uma seção separada da memória principal para um cache de buffer onde os blocos são mantidos sob a suposição de que serão usados novamente. Outros sistemas armazenam dados de arquivos em cache usando um cache de página. O Cache de página usa técnicas de memória virtual para armazenar em cache os dados do arquivo como páginas, em vez de como um sistema de arquivos blocos orientados. O armazenamento em cache de dados de arquivos usando endereços virtuais é mais eficiente do que o armazenamento em cache por meio de blocos de disco físicos, pois acessa a interface com memória virtual em vez do sistema de arquivos. Vários sistemas usam o Cache de páginas para armazenar em cache as páginas de processo e os dados do arquivo. Isso é conhecido como cache de buffer unificado.
existem outros problemas que podem afetar o desempenho de E/S, como se as gravações no sistema de arquivos ocorrem de forma síncrona ou assíncrona. As gravações síncronas ocorrem na ordem em que o subsistema de disco as recebe e as gravações não são armazenadas em buffer. As gravações assíncronas são feitas na maioria das vezes. Alguns sistemas otimizam seu cache de página usando diferentes algoritmos de substituição, dependendo do tipo de acesso do arquivo. O acesso sequencial pode ser otimizado por técnicas conhecidas como Free behind E read ahead. Free behind remove uma página do buffer assim que a próxima página for solicitada. Com read ahead, uma página solicitada e várias páginas subsequentes são lidas e armazenadas em cache.