Download - Implementasi Sistem File
MAKALAHSISTEM OPERASI
(IMPLEMENTASI SISTEM FILE)
DI SUSUN
OLEH:
KELOMPOK 10:
Nama Anggota : 1. Muhammad Zulfan Azhari (090412026)2. Nurul Nova Rina (090412050)
Kelas : G2Jurusan : T. ElektroProdi : T. Informatika
POLITEKNIK NEGERI LHOKSUEMAWEJURUSAN TEKNIK ELEKTRO
PRODI TEKNIK INFORMATIKA2011
KATA PENGANTAR
Puji syukur mari sama-sama kita panjatkan kehadirat Allah swt yang telah memberi kita
kesempatan dan kesehatan kepada kita semua sehingga penulis dapat menyelesaikan sebuah
makalah yang sangat sederhana ini dengan judul Implementasi Sistem File.
Selanjutnya salawat dan salam kita limpahkan kepada junjungan kita Nabi Muhammad saw
yang telah membawa kita dari alam kebodohan ke alam yang penuh dengan ilmu
pengetahuan dan rahmat seperti yang dapat kita rasakan sekarang ini.
Penulis menyadari sepenuhnya bahwa makalah ini masih jauh dari kesempurnaan, baik dari
segi tata bahasa maupun dari segi-segi lainnya, oleh sebab itu penulis mengharapkan saran
dan kritikannya yang bersifat positif dan membangun dari semua pihak.
Akhirnya semoga Allah swt memberikan yang layak atas seluruh jasa dan kebijakan yang
penulis terima. Semoga hasil karya ini bermanfaat bagi penulis sendiri maupun bagi pihak
yang lain.
Wassalam
Implementasi Sistem
File
PENDAHULUANSalah satu bagian yang sangat tampak pada sebuah sistem operasi adalah sistem file. Banyak
program yang membaca atau menulis setidaknya pada sebuah file. Bagi kebanyakan
pengguna, performance dari sebuah sistem operasi sangat ditentukan oleh interface,
structure, dan reliability dari sistem file-nya. Hal ini disebabkan oleh kemampuan yang
dimiliki sistem file dalam menyediakan mekanisme penyimpanan secara online dan
pengaksesan isi file, yaitu data atau program. Sistem file terdapat pada secondary storage
yang dirancang agar mampu menampung data dalam jumlah yang besar secara permanen.
Setiap file yang telah kita simpan, dalam implementasinya membutuhkan sebuah struktur
direktori untuk mengaksesnya kembali. Sistem operasi harus mampu mengimplementasikan
sistem file dengan berbagai tipe yang berbeda. Pada bab ini akan dibahas bagaimana
penanganan yang dilakukan oleh sistem operasi. Bab ini juga membahas mengenai
implementasi sistem file, implementasi direktori, serta beberapa lapisan yang ada di file
system dan virtual file system.
STRUKTUR SISTEM FILEDisk merupakan tempat penyimpanan sekunder dimana sistem file disimpan. Ada dua
karakteristik dalam penyimpanan banyak file, yaitu:
1. Sebuah disk dapat ditulis kembali, memungkinkan untuk membaca, memodifikasi,
dan menulis blok kembali pada tempat yang sama.
2. Sebuah blok yang menyimpan informasi yang kita cari, dapat diakses secara
langsung. Dalam aplikasinya, kita dapat mengakses file secara random maupun
sequential.
Sistem operasi menyediakan satu atau lebih sistem file untuk menyimpan dan mengambil
data dengan mudah. Struktur file itu sendiri terdiri dari beberapa layer. Strukturnya dapat
dilihat pada Gambar 1, “Layered File System”.
Gambar 1. Layered File System
Setiap level menggunakan feature-feature dari lapisan di bawahnya untuk digunakan sebagai
feature baru bagi lapisan di atasnya. Level terbawah adalah I/O control yang terdiri dari
beberapa device driver dan penanganan interupsi untuk memindahkan informasi antara
memori utama dan disk system. Device driver dapat dianggap sebagai penerjemah. Inputnya
terdiri dari perintah-perintah high level, misalkan "ambil blok 123". Outputnya berupa
instruksi-instruksi hardware yang lebih spesifik. Instruksi ini digunakan oleh pengendali
hardware yang menghubungkan I/O device dengan sistem lainnya.
Basic file system bertugas dalam hal menyampaikan perintah-perintah generic ke device
driver yang dituju untuk membaca dan menulis blok-blok fisik pada disk. Masing-masing
blok fisik diidentifikasi dengan alamat disknya.
File organization modul adalah lapisan dalam sistem file yang mengetahui tentang file, blok-
blok logis, dan blok-blok fisik. Dengan mengetahui tipe dan lokasi dari file yang digunakan,
file organization modul dapat menerjemahkan alamat blok logis ke alamat blok fisik untuk
selanjutnya diteruskan ke lapisan basic file system. File organization modul juga
mengandung free space manager yang mencatat jejak blok-blok yang tidak dialokasikan dan
menyediakannya ke file organization modul ketika dibutuhkan.
Lapisan yang terhubung dengan program aplikasi yaitu logical file system yang bertugas
dalam mengatur informasi metadata. Metadata meliputi semua struktur dari sistem file,
kecuali data sebenarnya (isi dari file). Lapisan ini juga mengatur struktur direktori untuk
menyediakan informasi yang dibutuhkan file organization modul. Struktur dari sebuah file
ditentukan oleh lapisan ini dengan adanya file control block.
FILE CONTROL BLOCKPada disk, sistem file bisa mengandung informasi mengenai bagaimana cara mem-boot
sistem operasi, jumlah total blok, jumlah dan lokasi dari free blocks, struktur direktori dan
file individu. Berikut ini penjelasan dari struktur-struktur tersebut.
Sebuah boot control block (per volume)
Mengandung informasi yang dibutuhkan oleh sistem untuk mem-boot sistem operasi
dari volume yang dimilikinya. Jika disk tidak mempunyai sistem operasi, blok disknya
bisa saja kosong. Pada UFS, ini disebut boot block, sedangkan pada NTFS, ini disebut
partition boot sector.
Volume control block (per volume)
Mengandung informasi khusus mengenai partisi, misalnya jumlah blok yang dipartisi,
ukuran blok, free block count dan free block pointer, free FCB count, dan FCB
pointer. Pada UFS, disebut superblock, dan pada NTFS, disimpan di tabel master file.
Directory structure per file system
Digunakan untuk mengorganisasi file. Pada UFS, struktur direktori ini meliputi nama
file serta jumlah inode yang terkait dan disimpan dalam tabel master file.
Per-file FCB
Mengandung semua informasi tentang file yaitu meliputi file permission,
kepemilikan, ukuran, dan lokasi dari blok data.
Informasi yang ada di dalam memori digunakan untuk pengaturan sistem file dan
peningkatan performance dengan caching. Berikut ini adalah penjelasan mengenai
strukturnya :
In-memory mount table mengandung informasi setiap volume yang di-mount.
In-memory directory structure cache menyimpan informasi direktori yang baru
diakses.
System-wide open file table menyimpan hasil copy FCB.
Untuk membuat file baru, program aplikasi memanggil logical file system karena logical file
system mengetahui format dari struktur direktori. Kemudian, FCB yang baru dialokasikan
dan sistem membaca direktori yang dituju ke memori, mengubahnya dengan nama file, dan
FCB yang baru menulisnya ke dalam disk. Contoh struktur FCB, bisa dilihat pada
Gambar 16.2, “File Control Block”
Gambar 2. File Control Block
Beberapa sistem operasi termasuk UNIX, memperlakukan file sama seperti direktori. Sistem
operasi yang lain, seperti Windows NT, mengimplementasikan system call yang terpisah
untuk file dan direktori, direktori diperlakukan sebagai objek yang berbeda dari file.
Pada tahap selanjutnya, logical file system memanggil file organization module untuk
memetakan direktori M/K ke disk-block number yang dikirimkan ke sistem file dasar dan
sistem kendali M/K.
Setelah file berhasil dibuat, file tersebut dapat digunakan untuk operasi M/K. Pertama, tentu
saja file tersebut harus dibuka terlebih dahulu. Perintah open() mengirim nama file ke sistem
file. System call open() mencari system-wide open-file table untuk melihat apakah file yang
ingin dibuka sedang digunakan oleh proses lain. Jika benar, maka entry dari per-process
open-file table menunjuk system-wide open-file table yang sedang eksis.
Ketika file sedang dibuka, nama file tersebut dicari dalam struktur direktori. Setelah nama
file ditemukan, FCB dari file tersebut disalin ke dalam system-wide open-file table di
memori. Pada tahapan selanjutnya, sebuah entry dibuat dalam per-process open-file table di
mana entry tersebut menunjuk ke system-wide open-file table. Semua bentuk operasi yang
melibatkan file dilakukan oleh pointer dari entry ini. Selama file tersebut belum ditutup,
semua operasi dari file dilakukan pada open-file table.
Ketika sebuah file ditutup, entry dari per-process table dihapus, dan jumlah entry dari
system-wide open-file table dikurangi. Ketika semua pengguna yang menggunakan file
menutup file tersebut, semua metadata yang telah diubah disalin kembali ke disk berdasarkan
struktur direktori, dan yang terakhir, entry dari system-wide open-file dihilangkan atau
dihapus. Gambar 3. “Fungsi open Sebuah File ” mengilustrasikan pembukaan sebuah file.
Gambar 3. Fungsi open Sebuah File
Sedangkan pada Gambar 4, “Reading a File” mengilustrasikan pembacaan sebuah file.
Gambar 4. Reading a File
VIRTUAL FILE SYSTEM (VFS)Sistem operasi modern harus mampu mengimplementasikan berbagai sistem file dengan tipe
yang berbeda dalam waktu yang bersamaan. Salah satu teknik yang digunakan sebagai
solusinya adalah dengan menggunakan virtual file system (VFS). VFS saat ini banyak
digunakan oleh berbagai sistem operasi. Ide dari VFS adalah meletakkan informasi di kernel
untuk merepresentasikan keseluruhan tipe sistem file, dan juga terdapat sebuah fungsi untuk
setiap operasi yang dimiliki sistem file. Sehingga, untuk setiap system call seperti fungsi
read(), write(), open(), dan lainnya, kernel akan mensubstitusikannya menjadi actual function
yang dimiliki oleh setiap sitem file dengan berbagai tipe.
VFS menggunakan konsep object oriented dalam mengimplementasikan sistem file. Di
dalam VFS terdapat sebuah file yang merepresentasikan seluruh tipe sistem file yang ada, file
ini dinamakan common file model. File inilah yang menggunakan konsep object oriented,
yang di dalamnya terdapat struktur data dan method yang diimplementasikan.
Terdapat empat objek di dalam common file model, diantaranya :
1. Superblock object. Objek ini menyimpan informasi tentang mounted file system atau
sistem file secara keseluruhan.
2. Inode object. Objek ini menyimpan informasi umum tentang file tertentu (individual
file).
3. File object. Objek ini menyimpan informasi tentang file yang sedang dibuka.
4. Dentry object. Objek ini menyimpan informasi tentang link-link dari sebuah entry
directory file.
Struktur data dan method yang diimplementasikan, digunakan untuk menyembunyikan
implementasi detail dari actual function pada sistem file dengan system call yang
mengaksesnya. Oleh karena itu, dalam mengimplementasikan sistem file, terdapat tiga layer
utama, seperti pada Gambar 5, “Virtual File System Layer”.
Gambar 5. Virtual File System Layer
Lapisan yang pertama adalah file system interface. Contohnya adalah beberapa system call
seperti read(), write(), open() dan lainnya. System call ini tidak berhubungan langsung dengan
sistem, namun terhubung melalui sebuah lapisan abstrak yaitu virtual file system.
Lapisan yang Kedua adalah VFS Interface. Virtual file system memiliki dua fungsi penting,
yaitu:
1. Memisahkan operasi-operasi file system generic dari implementasi detailnya, dengan
cara mendefinisikan virtual file system interface.
2. Virtual file system interface didasarkan pada struktur representasi file yang disebut
vnode, yang memiliki numerical designator yang unik untuk setiap network file.
Lapisan yang ketiga adalah sistem file dengan berbagai tipe. Secara umum, terdapat tiga
macam tipe sistem file, yaitu:
1. Disk-based file system. Sistem file ini mengatur ruang memori yang tersedia di
dalam partisi disk lokal. Misalnya, Ext2 (Second Extended file system), Ext3 (Third
Extended file system), dan Reiser file system yang tedapat di Linux.
2. Network file system. Sistem file ini terdapat di network, misalnya NFS.
3. Special file system. Sistem file ini tidak terdapat di disk space, baik lokal maupun
network, misalnya /proc file system.
IMPLEMENTASI SISTEM FILEFile berisi sekumpulan blok. Sistem manajemen file bertanggung jawab untuk alokasi blok-
blok disk ke file. Dua hal penting yang harus ditangani adalah pencatatan ruang yang
dialokasikan untuk file, pencatatan ruang bebas yang tersedia di disk. Sistem file meliputi
alokasi file, pencatatan ruang disk, shared file, kehandalan system file, serta kinerja sistem
file.
Masalah pokok dalam alokasi file adalah pencatatan blok-blok yang digunakan file. Beragam
metode dapat digunakan, diantaranya alokasi berturutan/kontigu (contigous allocation).
Teknik ini merupakan skema alokasi paling sederhana, yaitu menyimpan file sebagai blok-
blok data berturutan (kontigu) di disk.
Keunggulannya adalah sederhana dalam implementasi karena pencatatan dimana blok-blok
file berada direduksi menjadi hanya mengingat alamat awal file dan panjang file, yaitu
jumlah blok dari file. Kinerjanya luar biasa bagus Karena seluruh file dapat dibaca dari disk
dengan satu operasi. Tak ada metode alokasi lain yang dapat menandingi kinerja
pengaksesan. Keunggulan ini diperoleh karena rekord-rekord yang secara logik berturutan
biasanya juga saling berdekatan secara fisik.
Kelemahannya adalah Hanya bila ukuran maksimum diketahui pada saat file diciptakan.
Layak digunakan kecuali bila ukuran maksimum diketahui pada saat file diciptakan. Tanpa
informasi itu, sistem operasi tidak mengetahui berapa banyak ruang disk yang digunakan
untuk suatu file. Kelemahan lain adalah Terjadi fragmentasi disk. Fragmentasi disk dapat
dihasilkan metode alokasi ini, ruang yang disiakan seharusnya dapat digunakan.
Metode kedua adalah alokasi blok-blok file sebagai senarai berkait yang mencatat blok-blok
file dengan senarai berkait blok-blok didisk. Word pertama di blok data sebagai pointer ke
blok berikutnya, sisanya untuk menyimpan data. Skema ini disebut rantai blok (block
chaining) karena blok pertama merantai blok kedua, blok kedua merantai blok ketiga, dan
seterusnya. Blok sebelumnya merantai blok berikutnya. Direktori mencatat blok pertama file.
Keunggulan metode ini adalah Setiap blok di disk dapat digunakan. Tak ada ruang yang
hilang karena fragmentasi eksternal. Isian/elemen direktori cukup menyimpan alamat blok
pertama file.
Kelemahannya adalah Pembacaan sekuen cukup merepotkan karena harus menelusuri blok
satu per satu. Blok data tidak lagi berukuran 2k, karena pointer memerlukan beberapa byte.
Masalah ini tidak fatal. Ukuran yang janggal (bukan berukuran 2k) kurang efisien karena
program membaca dan menulis blok tidak dapat memanfaatkan sifat bilangan biner.
Metode ketiga adalah alokasi blok-blok sebagai senarai berkait menggunakan indeks (FAT).
Kelemahan alokasi senarai berkait dieliminasi dengna menghilangkan pointer di blok dan
meletakkan sebagai tabel tersendiri di memori. Seluruh blok tersedia untuk data. Skema ini
disebut block oriented file mapping. Tabel yang mencatat nomor blok data disebut FAT (File
Allocation Table).
Keunggulan metode ini adalah pengaksesan acak lebih mudah. Meski masih harus menelusuri
rantai berkait untuk menemukan lokasi blok file, rantai blok seluruhnya di memori sehingga
dapat dilakukan secara cepat tanpa membuat pengaksesan ke disk. Direktori cukup
menyimpan bilangan bulat nomor blok awal. Blok awal ini digunakan untuk menemukan
seluruh blok, tak peduli jumlah blok file itu. Direktori menunjuk blok pertama file dan FAT
menunjukkan blok-blok file berikutnya.
Kelemahannya adalah seluruh tabel (FAT) harus disimpan di memori. Jika penyimpanan
berukuran besar mengakibatkan tabel berukuran besar dan harus ditaruh di memori utama
meskipun hanya satu file yang dibuka. MS-DOS menggunakan metode ini.
IMPLEMENTASI DIREKTORIIsian direktori menyediakan informasi untuk menemukan blok-blok disk. Informasi isian direktori
bergantung sistem pencatatan blok-blok yang digunakan. Informasi ini dapat berupa alamat disk dari
seluruh file, nomor blok pertama atau i-node. Implementasi direktori tebagi dua jenis yaitu
implementasi direktori linier dan implementasi direktori hash.
a. Implementasi Direktori Linier
Pemilihan algoritma untuk pencarian sebuah direktori merupakan salah satu penentu
tingkat efisiensi dan performance suatu sistem file. Salah satu algoritma itu adalah
implementasi direktori linier. Algoritma ini merupakan algoritma yang paling sederhana
dalam pembuatan program yang mengimplementasikan linier list dari nama-nama file
yang memiliki pointer ke blok-blok data. Namun, algoritma ini tidak efisien apabila
digunakan pada suatu direktori yang memiliki jumlah file yang sangat banyak karena
proses eksekusi file membutuhkan waktu yang lama. Misalnya, untuk membuat file, kita
harus memastikan bahwa dalam direktori tidak ada file yang mempunyai nama yang sama.
Kemudian, file yang baru tersebut ditambahkan pada akhir direktori tersebut. Untuk
menghapus sebuah file, kita mencari terlebih dahulu nama file yang hendak dihapus dalam
direktori, kemudian membebaskan space yang dialokasikan pada file tersebut. Apabila kita
menginginkan untuk menggunakan kembali entry file tersebut, ada beberapa alternatif
yang bisa kita gunakan, yaitu:
1. kita bisa menandai file tersebut misalnya melalui pemberian nama file yang khusus
pada file tersebut.
2. Kedua, kita bisa menempatkan file tersebut pada sebuah list of free directory entries.
3. alternatif yang ketiga adalah dengan menyalin entry terakhir dalam direktori ke suatu
freed location.
Salah satu kerugian yang ditimbulkan dalam penggunaan algoritma ini adalah pencarian
file dilakukan secara linier search. Oleh karena itu, banyak sistem operasi yang
mengimplementasikan sebuah software cache yang menyimpan informasi tentang
direktori yang paling sering digunakan, sehingga pengaksesan ke disk bisa dikurangi. File-
file yang terurut dapat mengurangi rata-rata waktu pencarian karena dilakukan secara
binary search. Namun, untuk menjaga agar file-file selalu dalam keadaan terurut,
pembuatan maupun penghapusan file akan lebih rumit. Struktur data tree seperti B-tree
bisa digunakan untuk mengatasi masalah ini.
b. Implementasi Direktori Hash
Pada implementasi ini, linier list tetap digunakan untuk menyimpan direktori, hanya saja
ada tambahan berupa struktur data hash. Prosesnya yaitu hash table mengambil nilai yang
dihitung dari nama file dan mengembalikan sebuah pointer ke nama file yang ada di linier
list. Oleh karena itu, waktu pencarian file bisa dikurangi. Akan tetapi, ada suatu keadaan
yang menyebabkan terjadinya peristiwa collisions, yaitu suatu kondisi di mana terdapat
dua file yang memiliki nilai hash yang sama, sehingga menempati lokasi yang sama.
Solusi yang dipakai untuk mengatasi hal tersebut yaitu dengan menggunakan chained-
overflow hash table, yaitu setiap hash table mempunyai linked list dari nilai individual dan
crash dapat diatasi dengan menambah tempat pada linked list tersebut. Efek samping dari
penambahan chained-overflow tersebut adalah dapat memperlambat pencarian.
Ada beberapa kelemahan dari implementasi direktori hash, yaitu ukurannya yang tetap
dan adanya ketergantungan fungsi hash dengan ukuran hash table. Sebagai contoh,
misalnya kita membuat sebuah linear-probing hash table yang memiliki 32 entry. Sebuah
fungsi hash dibutuhkan untuk mengubah nama file menjadi bilangan bulat dari 0 s.d. 31,
misalnya dengan menggunakan fungsi modulo 32. Jika kita ingin untuk menambahkan
sebuah file yang harus diletakkan pada lokasi yang ke-33, kita harus memperbesar ukuran
dari hash table tersebut, sehingga diperlukan sebuah fungsi hash baru untuk disesuaikan
dengan ukuran hash table tersebut. Oleh karena itu, file-file yang sebelumnya sudah
ditempatkan di suatu lokasi pada hash table yang lama harus dicari tempat yang
bersesuaian dengan menggunakan fungsi hash yang baru.
METODE ALOKASIMetode alokasi berhubungan dengan bagaimana blok-blok pada disk dialokasikan untuk file.
Terdapat beberapa metode alokasi antara lain alokasi berurutan (contiguous allocation),
alokasi berhubungan (linked allocation) dan alokasi berindeks (indexed allocation).
a. Alokasi Berurutan (Contiguous Allocation)
Pada alokasi berurutan, setiap file menempati sekumpulan blok yang berurutan pada disk
(Gambar 6). Model ini sangat sederhana karena hanya membutuhkan lokasi awal (block
#) dan panjang (jumlah blok). Akses pada blok disk dilakukan secara random dan
memakan banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan
secara berurutan tidak dapat berkembang.
Gambar 6. Alokasi Berurutan
Beberapa sistem file yang baru (misalnya Veritas File System) menggunakan skema
alokasi berurutan yang dimodifikasi. File sistem Extent-based mengalokasikan blok pada
disk secara berkembang (extent). Extent adalah blok berurutan pada disk. Extent
dialokasikan untuk alokasi file. Sebuah file terdiri dari satu atau lebih extent.
b. Alokasi Berhubungan (Linked Allocation)
Pada alokasi berhubungan, setiap file adalah sebuah linked list dari blok-blok terpisah
pada disk (Gambar 7). Pada setiap blok terdapat satu pointer yang menunjuk ke blok lain.
Gambar 7. Alokasi Berhubungan
Alokasi berhubungan mempunyai bentuk yang sederhana, hanya memerlukan alamat
awal. Sistem manajemen ruang bebas pada alokasi berhubungan tidak memakan banyak
ruang. Model ini tidak menggunakan random access. Blok yang diakses adalah blok ke-Q
pada rantai link dari blok pada file. Perpindahan ke blok = R + 1. Contoh ystem file yang
menggunakan alokasi berhubungan adalah file-allocation table (FAT) yang digunaka MS-
DOS dan OS/2. Bentuk file allocation tabel dapat dilihat pada Gambar 8.
Gambar 8. File Allocation Table
c. Alokasi Berindeks (Indexed Allocation)
Pada alokasi berindeks, terdapat satu blok yang berisi pointer ke blok-blok file (Gambar
9). Alokasi berindeks berupa bentuk logika.
Gambar 9. Alokasi berindeks
Pada alokasi berindeks, memerlukan tabel indeks yang membawa pointer ke blok-blok
file yang lain. Akses dilakukan secara random. Merupakan akses dinamis tanpa
fragmentasi eksternal, tetapi mempunyai blok indeks yang berlebih. Pemetaan dari logika
ke fisik dalam file ukuran maksimum 256K word dan ukuran blok 512 word hanya
memerlukan 1 blok untuk tabel indeks.
Apabila pemetaan dari logika ke fisik dalam sebuah file dari ukuran tak hingga (ukuran
blok adalah 512 word) maka digunakan skema menghubungkan blok link dari tabel
indeks (ukuran tak terbatas). Untuk ukuran file maksimum 5123 digunakan skema two-
level indeks (Gambar 10). Pada skema two-level indeks terdapat tabel indeks luar dan
dalam. Indeks dipetakan ke tabel indeks luar kemudian dipetakan ke tabel indeks dalam
setelah itu mengakses blok file yang dimaksud. Sistem operasi UNIX
mengimplementasikan kombinasi alokasi berurutan dan alokasi berindeks seperti pada
Gambar 11.
Gambar 10. Skema two level indeks
Gambar 11. Alokasi Pada UNIX
MANAJEMEN RUANG BEBASDaftar ruang bebas biasanya diimplementasikan sebagai bit map atai bit vector (vektor bit).
Setiap blok direpresentasikan dengan 1 bit. Jika blok bebas, maka bit bernilai 1, sebaliknya
jika blok dialokasikan, bit bernilai 0. Sebagai contoh, misalnya disk dengan blok 2, 3, 4, 5, 8,
9, 10, 11, 12, 13, 17, 18, 25, 26 dan 27 bebas dan sisanya dialokasikan. Maka bit map dari
ruang bebas adalah :
001111001111110001100000011100000…
Perhitungan nomor blok yang bebas adalah sebagai berikut :
(jumlah bit per word) * (jumlah nilai-0 word) + offset dari bit 1 pertama Pemetaan bit
biasanya membutuhkan ruang tambahan, misalnya ukuran blok =
212 byte, ukuran disk = 230 byte (1 gigabyte) maka
n = 230/212 = 218 bit (atau 32K byte)
Dengan menggunakan vector bit mudah untuk mendapatkan file yang berurutan.
Pengembangan dari vector bit adalah dengan menggunakan linked list (free list) seperti
Gambar 12. Akan tetapi model ini tidak mendapatkan ruang berurutan dengan mudah
meskipun tidak memakan tempat. Modifikasi berikutnya melakukan pengelompokan blok
yang bebas agar lebih mudah untuk mendapakan ruang yang berurutan.
EFISIENSI DAN PERFOMANSIEfisiensi penggunaan ruang disk tergantung pada alokasi disk dan algoritma directori serta
tipe data disimpan pada entry direktory dari file. Untuk meningkatkan performansi
penggunaan ruang disk digunakan disk cache yang digunakan pada bagian terpisah dari main
memory untuk penggunaan blok yang sering. Selain itu juga menggunakan teknik untuk
optimasi akses berurutan yang disebut free-behind dan read-ahead. – teknik untuk optimasi
akses berurutan. Untuk meningkatkan performansi PC juga dapat menggunakan bagian
tertentu dari memory sebagai virtual disk atau RAM disk.
Gambar 12 : Menghubungkan daftar ruang bebas pada disk
RECOVERYUntuk memperbaiki sistem file dilakukan dengan memeriksa konsistensi dengan cara
membandingkan data pada struktur direktori dengan blok data pada disk dan mencoba
memperbaiki inkonsistensi. Selain itu juga dapat menggunakan program sistem untuk back
up data dari disk ke penyimpan lain (floppy disk, magnetic tape). Perbaikan akan Recover
menghilangkan file atau disk dengan restoring data dari backup.
SISTEM FILE LOG STRUCTUREDSistem file Log structured (atau journaling) menyhimpan semua update ke file sistem
sebagai transaksi. Semua transaksi ditulis ke log. Sebuah transaksi dijadikan committed jika
ditulis ke log. Tetapi, kemngkinan sistem file tidak diupdate.
Transaksi pada log ditulis secara tidak beraturan ke sistem file. Jika sistem file dimodifikasi,
transaksi dihapus dari log. Jika file bertabrakan, semua transaksi yang tersisa pada log harus
dibentuk.
NETWORK FILE SYSTEM (NFS)Network file system adalah implementasi dan spesifikasi dari sistem perangkat lunak untuk
mengakses remote files melalui LAN (atau WAN). NFS merupakan bagian dari Solaris and
SunOS yang berjalan pada Sun workstations menggunakan unreliable datagram protocol
(UDP/IP) protocol dan Ethernet.
Workstation yang saling berhubungan dipandang sebagai mesin independent dengan file
sistem yang independent, memungkinkan sharing diantara sistem file secara transparan.
Directory remote di-mount ke directory sistem file lokal. Mounted directory terlihat sebagai
subtree dari sistem file lokal, mengubah subtree secara descending dari directory lokal.
Spesifikasi dari remote directory untuk operasi mount tidak transparant; host name dari
remote directory harus disediakan. File pada remote directory dapat diakses secara
transparant. Subyek ke akreditasi akses yang benar, sembarang sistem file (atau directory
dalam sistem file), dapat di-mount secara remote ke top dari sembaran directory lokal.
NFS didesain untuk operasi pada lingkungan heterogen dari mesin, SO dan arsitektur
network yang berbeda; spesifikasi NFS tidak tergantung dari media tersebut. Ketidak
tergantungan dilakukan melalui penggunaan RPC pada bagian tertinggi dari protokol
External Data Representation (XDR) yang digunakan antara 2 antarmuka independent.
Spesifikasi NFS berbeda antara layanan tersedia dengan mekanisme mount dan layanan akses
file remote actual.
Misalnya terdapat tiga file sistem yang independent seperti Gambar 13. Kemudian dilakukan
mount dengan NFS maka file sistem hasil seperti Gambar 14.
Gambar 13 : Tiga sistem file yang independen
Gambar 10-12 : Mounting pada NFS
RANGKUMANUntuk memberikan akses yang efisien ke disk, sistem operasi mengizinkan satu atau lebih
sistem file yang digunakan untuk menyimpan, meletakkan, dan mengambil data dengan
mudah. Sistem file tersebut terdiri dari beberapa lapisan yang mana setiap lapisan akan
menyediakan fitur-fitur untuk dipergunakan pada lapisan di atasnya. Lapisan tersebut (dari
tingkat yang terbawah) antara lain device driver, I/O control, basic file system, file-
organization module, logical file system, dan application program. Berbagai operasi yang
dilakukan pada sistem file, seperti membuka maupun membaca file, sangat membutuhkan
informasi tentang file yang hendak digunakan. Semua informasi tentang file tersebut
didapatkan pada file control block.
Dalam pengimplementasiannya, sistem operasi harus mampu mendukung berbagai jenis
sistem file. Teknik yang digunakan oleh sistem operasi untuk mendukung kemampuan ini
disebut Virtual File System (VFS). Konsep dalam mengimplementasikan VFS ini adalah
konsep object oriented yaitu menggunakan sebuah file yang dapat merepresentasikan seluruh
tipe file. File ini disebut common file model. Oleh karena itu, digunakanlah tiga lapisan utama
dalam mengimplementasikan sistem file, diantaranya file system interface, VFS interface, dan
file system types.
Algoritma untuk mencari file dalam sebuah direktori juga digunakan sebagai parameter
performance dari sebuah sistem operasi. Ada dua algoritma yang sering digunakan dalam
pengimplementasian direktori, yaitu implementasi direktori linier dan hash. Masing-masing
bentuk implementasi ini memiliki kelebihan dan kekurangan tersendiri. Untuk implementasi
linier, kelebihannya adalah sederhana dalam pembuatan programnya dan kekurangannya
adalah lamanya mengakses file apabila terdapat banyak sekali file dalam sebuah direktori.
Sedangkan pada implementasi direktori hash, kecepatan pencarian file lebih cepat
dibandingkan dengan pencarian dalam direktori linier dan kekurangannya adalah ukuran tabel
yang statis, sehingga perlu dilakukan pengubahan fungsi hash apabila ingin mengubah
ukuran tabel hash.