Anda di halaman 1dari 11

1.

2.
3.
4.

Sistem operasi modern harus mampu mengimplementasikan berbagai sistem


berkas 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 berkas, dan juga terdapat
sebuah fungsi untuk setiap operasi yang dimiliki sistem berkas. Sehingga,
untuk setiap system call seperti fungsi read(), write(), open(), dan lainnya,
kernel akan mensubstitusikannya menjadi actual function yang dimiliki oleh
setiap sitem berkas dengan berbagai tipe.
VFS
menggunakan
konsep object
oriented dalam
mengimplementasikan sistem berkas. Di dalam VFS terdapat sebuah berkas
yang merepresentasikan seluruh tipe sistem berkas yang ada, berkas ini
dinamakan common file model. Berkas inilah yang menggunakan
konsepobject oriented, yang di dalamnya terdapat struktur data
dan methodyang diimplementasikan.
Terdapat empat objek di dalam common file model, diantaranya :
Superblock object. Objek ini menyimpan informasi tentang mounted file
system atau sistem berkas secara keseluruhan.
Inode object. Objek ini menyimpan informasi umum tentang file tertentu
(individual file).
File object. Objek ini menyimpan informasi tentang file yang sedang dibuka.
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
berkas dengan system call yang mengaksesnya. Oleh karena itu, dalam
mengimplementasikan sistem berkas, terdapat tiga layer utama, seperti
pada Gambar 16.5. Virtual File System Layer.

Gambar 0.1 : Virtual File System Layer

Lapisan yang pertama adalah file system interface. Contohnya adalah


beberapa system call seperti read(), write(), open() dan lainnya. System
callini 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 berkas yang
disebut vnode, yang memiliki numerical designator yang unik untuk
setiap network file.
Lapisan yang ketiga adalah sistem berkas dengan berbagai tipe.
Secara umum, terdapat tiga macam tipe sistem berkas, yaitu:
1. Disk-based file system. Sistem berkas 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 berkas ini terdapat di network, misalnya NFS.
3. Special file system. Sistem berkas ini tidak terdapat di disk space, baik lokal
maupun network, misalnya /proc file system.
A.

Pengertian Virtual File System


Suatu lapisan abstrak di atas sistem berkas yang sesungguhnya, yang
menangani semua system call yang berhubungan dengan suatu sistem
berkas di bawahnya. Tujuan dari VFS yaitu agar berbagai sistem berkas yang
berbeda dapat di akses oleh aplikasi komputer dengan cara yang seragam.
Virtual File System menyediakan antarmuka antara system call dengan sistem
berkas yang sesungguhnya. Keberadaan VFS tentu dapat mengatasi
perbedaan berbagai sistem berkas yang digunakan oleh berbagai sistem
operasi saat ini seperti Windows, Mac OS, Linux, dan sebagainya, sehingga
suatu aplikasi dapat mengakses berkas dari sistem berkas yang berbeda
tanpa perlu mengetahui jenis sistem berkas yang digunakan dan detil
implementasi dari masing-masing sistem berkas tersebut.
Tujuan dari VFS yaitu agar berbagai sistem berkas yang berbeda dapat
di akses oleh aplikasi komputer dengan cara yang seragam.
Setiap berkas, directory, dan data lainnya pada VFS direpresentasikan
oleh satu dan hanya satu VFS inode. VFS inode hanya terdapat di memori
kernel dan disimpan di inode chace selama masih dibutuhkan oleh sistem.
Beberapa informasi yang disimpan oleh VFS inode yaitu:
Device : Menunjukan device identifier dari suatu device yang menyimpan berkas, ataupun directory.
Inode Number : Merupakan nomor inode yang unik dalam sistem berkas.
Mode : Menggambarkan apa yang direpresentasikan oleh VFS inode.
User ID : Merupakan identifier bagi pemilik berkas.

Time : Menunjukkan kapan pembuatan, modifikasi, dan penulisan suatu berkas.


Blocksize : Menunjukkan ukuran dari block yang digunakan oleh berkas.
Inode Operations: Merupakan pointer ke suatu routine yang melakukan berbagai operasi pada inode.
Count : Menunjukkan berapa kali suatu sistem telah menggunakan suatu inode.
Lock : Digunakan untuk mengunci VFS inode.
Dirty : Mengindikasikan bahwa telah terjadi penulisan pada VFS inode, sehingga perubahan yang terjadi
juga harus dituliskan ke sistem berkas yang sesungguhnya.
File System Specific Information : Menunjukkan informasi khusus yang dibutuhkan oleh suatu inode.

Superblock : Setiap sistem berkas yang di-mount akan direpresentasikan oleh sebuah VFS
Superblock. Superblock digunakan untuk menyimpan informasi mengenai partisi tersebut. Pada dasarnya
superblock merupakan suatu struktur data yang menyimpan beberapa informasi sebagai berikut:
Device : Merupakan suatu device identifier, contohnya /dev/hda1 adalah harddisk pertama yang terdapat
pada sistem memiliki device identifier 0300.
Inode Pointer : Merupakan suatu pointer yang menunjuk ke inode pertama pada sistem berkas.
Blocksize : Menunjukkan ukuran suatu block dari sistem berkas, contohnya 1024 bytes.
Superblock Operation : Merupakan suatu pointer ke sekumpulan superblock routine (fungsi) dari sistem
berkas, contohnya read, write, dan sebagainya.

File System type : Menunjukkan tipe dari sistem berkas, contohnya EXT2, FAT, NTFS.
File System Specific : Merupakan suatu pointer ke informasi yang dibutuhkan oleh sistem berkas.

B.

STRUKTUR SISTEM FILE


File adalah unit penyimpan logika yang berisi sekumpulan informasi
yang berhubungan. Sistem file berada pada penyimpan sekunder (disk).
Sistem file diorganisasi ke dalam layer-layer seperti Gambar 1.1.

Gambar 1.1 : Layer System File


Pada level terendah, I/O control berisi device driver dan interrupt
handler untuk mengirim informasi antara memori dan sistem disk. Basic file

system berisi perintah bagi device driver untuk membaca dan menulis blok
fisik pada disk. File organization module berisi modul untuk mengetahui blok
logika pada blok fisik. Logical file systemmenggunakan struktur direktori untuk
memberikan ke file organization module informasi tentang kebutuhan
terakhir.
Informasi mengenai sebuah file disimpan pada struktur penyimpan yang
disebut file control block seperti Gambar 1.2.

Gambar 1.2 : File Control Block


Gambar 1.3 mengilustrasikan pentingnya struktur sistem file disediakan
oleh sistem operasi. Pada saat membuka file (dengan menjalankan
perintah open) blok-blok dari struktur direktori disimpan pada struktur direktori
di memori dan mengubah file control block.Pada saat membaca file
(dengan menjalankan perintah read), indeks yang dibaca di cari lokasi blok
pada disk melalui tabel open file yang berada di memori.

Gambar 1.3 : (a) membuka File, (b) Membaca file

Virtual File Systems (VFS) merupakan implementasi sistem file yang


berorientasi obyek. VFS memungkinkan antarmuka system call (API) yang
sama digunakan untuk sistem file yang berbeda. API adalah lebih sebagai
antarmuka VFS dan bukan untuk tipe sistem file tertentu. Skema VFS dapat
dilihat pada Gambar 1.4

Gambar 1.4 : Skema Virtual File System


C.

IMPLEMENTASI DIREKTORI
Implementasi direktori menggunakan daftar nama file linier dengan
pointer ke blok data. Hal ini berdampak pada pemrograman yang mudah
tetapi memerlukan waktu yang lama untuk eksekusi.
Untuk mempercepat waktu eksekusi digunakan Tabel Hash berupa
daftar linier dengan struktur data hash. Dengan struktur data hash akan
mengurangi waktu pencarian direktori. Tetapi struktur hash mempunyai resiko
bertabrakan apabila terjadi situasi dimana dua nama file hash yang
berbeda berada pada lokasi yang sama. Struktur hash berukuran tetap.

D.

METODE ALOKASI
Metode 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).
Alokasi Berurutan (Contiguous Allocation)
Pada alokasi berurutan, setiap file menempati sekumpulan blok yang
berurutan pada disk (Gambar 1.5). 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.

1)

Gambar 1.5 : Alokasi Berurutan


Beberapa sistem file yang baru (misalnya Veritas File System)
menggunakan skema alokasi berurutan yang dimodifikasi. File sistem Extentbased
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.
2)

Alokasi Berhubungan (Linked Allocation)


Pada alokasi berhubungan, setiap file adalah sebuah linked list dari
blok-blok terpisah pada disk (Gambar 1.6). Pada setiap blok terdapat satu
pointer yang menunjuk ke blok lain
block = pointer

Gambar 1.6 : 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 sistem file yang
menggunakan alokasi berhubungan adalah file-allocation table (FAT) yang
digunakan MS-DOS dan OS/2. Bentuk file allocation tabel dapat dilihat pada
Gambar 1.7.

Gambar 1.7 : File Allocation Table


3)

Alokasi Berindeks (Indexed Allocation)


Pada alokasi berindeks, terdapat satu blok yang berisi pointer ke blokblok file (Gambar 1.8). Alokasi berindeks berupa bentuk logika.

Gambar 1.8 : 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 1.9).
Pada skema two-level indeks terdapat tabel indeks luar dan dalam. Indeks
dipetakan ke tabel indeks luar kemudian dipetakan ke table indeks dalam
setelah itu mengakses blok file yang dimaksud. Sistem operasi UNIX
mengimplementasikan kombinasi alokasi berurutan dan alokasi berindeks
seperti pada Gambar 1.10.

Gambar 1.9 : Skema two level indeks

Gambar 1.10 : Alokasi pada UNIX

E.

MANAJEMEN RUANG BEBAS


Daftar ruang bebas biasanya diimplementasikan sebagai bit
mapatai 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 1.11. 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.

F.

EFISIENSI DAN PERFORMANSI


Efisiensi 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 1.11 : Menghubungkan daftar ruang bebas pada disk


G.

PERBAIKAN
Untuk 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 updata dari disk ke
penyimpan lain (floppy disk, magnetic tape). Perbaikan akan Recover
menghilangkan file atau disk dengan restoring data dari backup.

H.

SISTEM FILE LOG STRUCTURED


Sistem 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.

I.

SUN 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 transparent. 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 tersedian dengan mekanisme mount dan layanan akses file remote
actual.
Misalnya terdapat tiga file sistem yang independent seperti Gambar
1.12. Kemudian dilakukan mount dengan NFS maka file sistem hasil seperti
Gambar 1.13.

Gambar 1.12 : Tiga system file yang independen

Gambar 1.13 : Mounting pada NFS

Anda mungkin juga menyukai