Penyimpanan yang tidak berkesinambungan dan adanya penghapusan data menyebabkan adanya ruang-ruang bebas di disk. oleh karena itu diperlukan manajemen ruang bebas. Caranya, dengan membuat daftar ruang-ruang kosong. Apabila ada berkas baru yang ingin disimpan, maka ruang bebas dicari pada daftar ini.
Ada empat jenis daftar ruang bebas:
Blok yang kosong ditandai dengan angka 1 dan blok yang ada isinya ditandai dengan angka 0. Contoh: 0100100, ini berarti blok yang kosong adalah blok ke 1 dan 4.
Perhitungan nomor blok kosong pada vektor bit ini adalah:
(jumlah bit per word)*(jumlah nilai-0 word)+offset dari bit pertama.
Kelemahan dari cara ini adalah pemetaan bit-nya membutuhkan ruang tambahan (blok tersendiri).
Contoh:
ukuran blok = 2^12 byte,
ukuran disk = 2^30 byte (1 gigabyte),
ruang untuk vektor bit=2^30/2^12 bit (atau 32Kbyte).
Dengan menggunakan vektor bit bisa terjadi kesalahan dimana bit[i]=1 pada memory dan bit[i]=0 pada disk. Untuk mencegah terjadinya perbedaan ini, maka pada saat pengalokasian suatu ruang kosong untuk suatu berkas dilakukan cara berikut:
set bit[i]=0 pada disk
alokasikan blok[i]
set bit[i]=0 pada memory
Blok kosong pertama pointer ke blok kosong kedua, dan blok kosong kedua pointer ke blok ketiga yang kosong.
Keunggulan linked-list adalah linked- list tidak membutuhkan terlalu banyak ruang khusus untuk pointer seperti pada vektor bit yang membutuhkan banyak ruang kosong untuk menyimpan bit-bit yang menyatakan status dari setiap blok. Kelemahannya adalah sulit untuk mendapatkan ruang kosong berurutan dengan mudah.
Menggunakan satu blok untuk menyimpan alamat blok-blok kosong di dekatnya. Jika blok telah terisi, maka akan terhapus dari blok alamat kosong.
Ruang kosong list berupa urutan blok-blok kosong, maka dilakukan pendaftaran rangkaian blok kosong dengan memasukkan alamat blok kosong pertama dari rangkaian tersebut, lalu disertakan jumlah blok kosong yang bersebelahan dengannya.