Friday 30 January 2009

File Sistem Linux (Part 2)




Gambaran Umum File Sistem

Selain format fisik, hard disk juga menyimpan struktur datanya dalam suatu format logika. Format yang dipakai ini diberi nama File Sistem. Jadi, File Sistem adalah suatu struktur yang digunakan sistem operasi untuk menyimpan dan membaca data dari hard disk.
Adapun contoh-contoh format file system sebagai berikut : FAT (File Allocation Table), FAT32 (File Allocation Table 32), NTFS (New Technology File System) (Ketiga varian ini umum digunakan untuk platform Windows), Ext, Ext2, Ext3 (Ketiga varian ini umum digunakan untuk platform Linux), OS/2, HPFS, Reiser dll.


Pembagian File Sistem Secara Ortogonal

Shareable dan Unshareable

1. Shareable
Isinya dapat di-share (digunakan bersama) dengan sistem lain, gunanya untuk menghemat tempat.

2. Unshareable
Isinya tidak dapat di-share(digunakan bersama) dengan sistem lain, biasanya untuk alasan keamanan.

Variabel dan Static

1. Variabel
Isinya sering berubah-ubah.

2. Static
Sekali dibuat, kecil kemungkinan isinya akan berubah. Bisa berubah jika ada campur tangan sistem admin.

Langkah-langkah Optimasi File Sistem
  • Kurangi jumlah I/O yang mengakses storage device sebanyak mungkin
  • Kelompokkan I/O menjadi kelompok yang besar
  • Optimasi pola pencarian blok untuk mengurangi seek time
  • Gunakan cache semaksimal mungkin untuk mengurangi beban I/O device

Virtual File System pada Linux


Kernel Linux telah mengembangkan VFS (Virtual File System) yang dapat mengenali data yang menggunakan File Sistem lain. File Sistem yang dikenali oleh Virtual File System Linux terbagi menjadi 3jenis, yaitu:

1. Disk Based filesystem

Tipe file sistem ini memanage space memori yang bisa digunakan pada partisi disk local. Tipe file sistem ini yang lumrah adalah Ext2. Tipe lain yang dikenal dengan baik oleh VFS adalah :
  • File system bagi varian Unix seperti system V dan BSD.
  • Microsoft filesystem seperti MS-DOS, VFAT (Windows 98) dan NTFS (Windows NT).
  • File system ISO96660 CD-ROM.
  • File system lain seperti HPFS (IBM’s, OS/2), HFS (Apple Machintosh), FFS (Amiga’s Fast Filesystem) dan ADFS (Acorn’s machines).
2. Network Filesystem

Tipe sistem file ini memungkinkan akses yang mudah ke suatu file yang terdapat pada jaringan komputer lain. Beberapa filesystem jenis ini yang dikenal dengan baik oleh VFS adalah : NFS, Coda, AFS (Andrews Filesystem), SMB (Microsoft’s Windows dan IBM’s OS/2 LAN Manager) dan NCP (Novell’s NetWare Core Protocol).

3. Special Filesystem

Tipe ini tidak mengijinkan mengatur space disk. Pada direktori /proc menyediakan interface yang mengijinkan user untuk mengakses struktur data kernel. Direktori /dev/pts digunakan sebagai pendukung terminal semu. Seperti yang digambarkan pada standar Open Group’s Unix98.


Registri File System



Jika kita ingin membangun kernel Linux, kita akan ditanya apakah kita ingin setiap file didukung oleh sistem. Ketika kernel dibangun, sistem starup file berisi kode panggilan ke inisialisasi dari semua rutinitas yang di bangun oleh file sistem.

Linux file sistem juga dapat dikembangkan sebagai modul. Setiap file sistem menginisialisasi rutin registernya dengan Virtual File System dan diwakili oleh data file_system_type yang berisi nama file sistem dan pointernya. Diagram di atas menunjukkan bahwa struktur data file_system_type yang dimasukkan ke dalam daftar file_systems oleh pointer. Setiap file_system_type berisi informasi sabagai berikut:

1. Read routin superblock
Rutin ini disebut sebagai Virtual File System, contohnya adalah mounting.

2. File name system
Nama file sistem, misal Ext2.

3. Device needed
Namun File system pada Linux tidak memerlukan alat pendukung. Seperti, /proc file system yang tidak memerlukan blok.


Mounting dan Unmounting

Agar suatu file system dapat dikenali oleh Virtual File System Linux, perlu dilakukan suatu proses yang disebut mounting. Proses mounting sebenarnya adalah merepresentasikan file yang terdapat pada device eksternal (misal: disket) yang menggunakan file sistem lain menjadi inode sementara agar dapat dibaca seperti layaknya file lainnya oleh Virtual File System Linux.

Sedangkan ketika kita melakukan perubahan pada file (menambah, mengurangi, mengganti), hal tersebut tidak dilakukan langsung pada device tapi disimpan dalam media sementara. Untuk meyimpan perubahan tersebut, harus dilakukan proses unmounting, yaitu menghapus inode sementara yang dipakai sebelumnya dan menyimpan perubahan (jika ada) yang telah dilakukan pada device. Oleh karena itu proses unmounting sangat perlu dilakukan.


Buffer Cache

Mount file sistem digunakan untuk menghasilkan banyak permintaan ke block device untuk membaca dan menulis blok data. Permintaan membaca dan menulis diberikan kepada driver device dalam bentuk struktur data buffer_head, melalui standar kernel. Hal ini memberikan semua informasi yang diperlukan oleh block device driver. Semua linear block device sebagai kumpulan blok-blok yang sama ukurannya. Untuk mempercepat akses ke blok perangkat fisik, Linux menanam cache dari buffer block. Seluruh blok buffer dalam suatu sistem disimpan dalam buffer cache. Dimana cache dibagi untuk seluruh physical block device, setiap satu waktu terdapat banyak blok di buffer cache, yang merupakan milik salah satu dari sistem. Jika data valid tersedia dalam buffer cache maka proses penyimpan, maka sebuah sistem mengaksesnya ke perangkat fisik. Setiap blok buffer telah digunakan untuk membaca data dari block device atau menulis data ke dalam buffer cache akan dihapus dari cache untuk membuat jalan bagi blok buffer yang memiliki hak ases selanjutnya atau memang harus berada dalam cache seperti blok buffer yang sering diakses.

Blok dalam buffer cache diidentifikasikan secara unik oleh perangkat identifier dan nilai blok buffer. Buffer cache terdiri dari dua bagian fungsional. Yang pertama adalah bagian dari daftar blok bebas buffer. Memiliki satu list setiap supported buffer size dan bebas dari sistem blok buffer yang antri ke list ketika pertama kali dibuat atau ketika harus dibuang. Yang kedua adalah bagian fungsional cache itu sendiri. Blok buffer yang baik adalah salah satu free list atau yang berada dalam buffer cache. Ketika berada dalam buffer cache, blok buffer juga harus antre ke Least Recently Used (LRU).

Seperti cache, buffer cache harus dijaga agar berjalan secara efisien dan sesuai dalam mengalokasikan cache masukan antara device block yang menggunakan buffer cache. Oleh karena itu, Linux menggunakan ‘bdflush’ .


Cetak Halaman Ini

Komentar :

ada 0 comments ke “File Sistem Linux (Part 2)”

Post a Comment

 

Development by Sigit Widiyanto '@2009'