A.implementasi Direktori Linier
Pemilihan algoritma untuk pencarian sebuah direktori merupakan
salah satu penentu tingkat efisiensi dan performance
suatu sistem berkas.
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 berkas yang memiliki pointer ke blok-blok data.
Namun, algoritma ini tidak efisien apabila digunakan pada suatu
direktori yang memiliki jumlah berkas yang sangat banyak karena proses eksekusi
berkas membutuhkan waktu yang lama.
Misalnya, untuk membuat berkas, kita harus memastikan bahwa dalam
direktori tidak ada berkas yang mempunyai nama yang sama. Kemudian,
berkas yang baru tersebut ditambahkan pada akhir direktori tersebut.
Untuk menghapus sebuah berkas, kita mencari terlebih dahulu nama
berkas yang hendak dihapus dalam direktori, kemudian membebaskan
space yang dialokasikan pada berkas
tersebut. Apabila kita menginginkan untuk menggunakan kembali entry
berkas tersebut,
ada beberapa alternatif yang bisa kita gunakan, yaitu:
- kita bisa menandai berkas tersebut misalnya melalui pemberian nama berkas yang khusus pada berkas tersebut.
- Kedua, kita bisa menempatkan berkas tersebut pada sebuah list of free directory entries.
- 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 berkas 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.
Berkas-berkas yang terurut dapat mengurangi rata-rata waktu pencarian
karena dilakukan secara binary search.
Namun, untuk
menjaga agar berkas-berkas selalu dalam keadaan terurut, pembuatan
maupun penghapusan berkas akan lebih rumit.
Struktur data tree
seperti B-tree bisa digunakan untuk mengatasi masalah ini.
B.Virtual File System
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 konsep object oriented, yang di dalamnya terdapat struktur data dan method yang 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 Gambar16.5, “Virtual File System Layer”.
virtual 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:
- Memisahkan operasi-operasi file system generic dari implementasi detailnya, dengan cara mendefinisikan virtual file system interface.
- 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:
- 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.
- Network file system. Sistem berkas ini terdapat di network, misalnya NFS.
- Special file system. Sistem berkas ini tidak terdapat di disk space, baik lokal maupun network, misalnya /proc file system.
C.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
berkas dan mengembalikan sebuah pointer
ke nama berkas
yang ada di linier list. Oleh karena
itu, waktu pencarian berkas bisa dikurangi. Akan tetapi,
ada suatu keadaan yang menyebabkan terjadinya peristiwa
collisions,
yaitu suatu kondisi di mana terdapat dua berkas 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 berkas menjadi bilangan bulat dari 0 s.d. 31, misalnya dengan
menggunakan fungsi
modulo 32. Jika kita ingin untuk menambahkan sebuah berkas
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, berkas-berkas yang
sebelumnya sudah ditempatkan di suatu lokasi pada hash
table yang lama harus dicari tempat yang bersesuaian
dengan menggunakan fungsi hash yang
baru.
2.Keunggulan File System UNIX dan Windows
Keunggulan dari UNIX yaitu:
- Portabilitas yaitu dapat diadaptasikan dengan mudah ke komputer lain
- Multiuser, dapat digunakan oleh banyak pengguna sekaligus
- Multitasking, dapat menjalankan tugas secara bersamaan dalam satu waktu
- Sistem file hirarkikal, pengorganisasian informasi atau data dalam bentuk yang mudah untuk diingat dan diakses.
- Sistem file stabil untuk database, server Internet, Intranet, file-server, Internet-client pengembangan Java.
- Mempunyai kinerja yang lebih baik daripada Windows NT
- UNIX adalah sistem operasi yang hampir gratis
Keunggulan dari Windows yaitu:
- FAT16 adalah sebuah file system yang kompatibel hampir di semua Operating System baik itu Windows 95/98/me, OS/2 , Linux dan bahkan Unix.
- FAT32 menawarkan kemampuan menampung jumlat cluster yang lebih besar dalam partisi. Selain itu juga mengembangkan kemampuan harddisk menjadi lebih baik dibanding FAT16.
- NTFS menawarkan security yang jauh lebih baik , kompresi file , cluster dan bahkan support enkripsi data. NTFS merupakan file system standar untuk Windows Xp dan apabila anda melakukan upgrade Windows biasa anda akan di tanyakan apakah ingin mengupgrade ke NTFS atau tetap menggunakan FAT. NTFS juga memiliki fitur untuk menampung lebih dari satu buah ruangan data dalam sebuah berkas. Fitur ini disebut dengan Alternate Data Stream.
Sumber:
- https://fikrilookup.wordpress.com/2012/01/02/jawaban-so-sistem-file/
- http://openstorage.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch16s05.html
- http://www.teorikomputer.com/2013/03/kelebihan-dan-kelemahan-unix-sistem.html
- https://perawatancomputer.wordpress.com/file-sistem-pada-windows/