Implementasi Sistem Berkas PDF
Implementasi Sistem Berkas PDF
Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca,
memodifikasi, dan menulis di disk tersebut.
Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk
mengakses setiap berkas baik secara berurut maupun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.
Untuk meningkatkan efisiensi I/O, pengiriman data antara memori dan disk dilakukan
dalam setiap blok. Setiap blok merupakan satu atau lebih sektor. Setiap disk memiliki
ukuran yang berbeda-beda, biasanya berukuran 512 bytes.
Sistem operasi menyediakan sistem berkas agar data mudah disimpan, diletakkan dan
diambil kembali dengan mudah. Terdapat dua masalah desain dalam membangun suatu
sistem berkas. Masalah pertama adalah definisi dari sistem berkas. Hal ini mencakup
definisi berkas dan atributnya, operasi ke berkas, dan struktur direktori dalam
mengorganisasikan berkas-berkas. Masalah kedua adalah membuat algoritma dan
struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan
sekunder.
Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan
menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang
dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi
yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan
organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi
sistem berkas.
Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi
program yang ada, yaitu (dari yang terendah):
I/O control, terdiri atas driver device dan interrupt handler. Driver device adalah
perantara komunikasi antara sistem operasi dengan perangkat keras. Input
didalamnya berisikan perintah tingkat tinggi seperti "ambil blok 133", sedangkan
output-nya adalah perintah tingkat rendah, instruksi spesifik perangkat keras yang
digunakan oleh controller perangkat keras.
Basic file system, diperlukan untuk mengeluarkan perintah generic ke device
driver untuk read dan write pada suatu blok dalam disk.
File-organization module, informasi tentang alamat logika dan alamat fisik dari
berkas tersebut. Modul ini juga mengatur sisa disk dengan melacak alamat yang
belum dialokasikan dan menyediakan alamat tersebut saat pengguna ingin
menulis berkas ke dalam disk. Di dalam File-organization module juga terdapat
free- space manager.
Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas,
struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File
Control Block (FCB) menyimpan informasi tentang berkas, termasuk
kepemilikan, izin dan lokasi isi berkas.
Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau
membaca informasi dari disk. Urutan langkahnya:
1. Application program memanggil sistem berkas dengan system call.
Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb dari disk dan
menempatkannya ke variabel input.
2. Diteruskan ke system call interface.
System call merupakan software interrupt. Jadi, interrupt handler sistem operasi
akan memeriksa apakah system call yang menginterupsi. Interrupt handler ini
akan memutuskan bagian dari sistem operasi yang bertanggung jawab untuk
menangani system call. Interrupt handler akan meneruskan system call.
3. Diteruskan ke logical file system.
Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call, operasi
yang akan dilakukan dan jenis berkas. Yang perlu ditentukan selanjutnya adalah
file organization module yang akan meneruskan permintaan ini. File organization
module yang akan digunakan tergantung dari jenis sistem berkas dari berkas yang
diminta.
Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta ada di
Windows 95. Lapisan logical file system akan meneruskan permintaan ke file
organization module dari Windows 95.
4. Diteruskan ke file organization module.
File organization module yang mengetahui pengaturan (organisasi) direktori dan
berkas pada disk. Sistem berkas yang berbeda memiliki organisasi yang berbeda.
cara
untuk
Spesifikasi atau detil-detil dari partisi (jumlah blok dalam partisi, ukuran blok,
ukuran blok, dsb). Dalam UPS disebut superblock. Dalam NTFS disebut tabel
master file.
Struktur direktori
Mengatur berkas-berkas.
Struktur in-memory:
Untuk membuat suatu berkas baru, program aplikasi memanggil logical file system.
Logical file system mengetahui format dari struktur direktori. Untuk membuat berkas
baru, logical file system akan mengalokasikan FCB, membaca direktori yang benar ke
memori, memperbaharui dengan nama berkas dan FCB yang baru dan menulisnya
kembali ke dalam disk.
Beberapa sistem operasi, termasuk UNIX, memperlakukan berkas sebagai direktori.
Sistem operasi Windows NT mengimplementasi beberapa system calls untuk berkas dan
direktori. Windows NT memperlakukan direktori sebagai sebuah kesatuan yang berbeda
dengan berkas. Logical file system dapat memanggil file-organization module untuk
memetakan direktori I/O ke disk-block numbers, yang dikirimkan ke sistem berkas dasar
dan I/O control system. File- organization module juga mengalokasikan blok untuk
penyimpanan data-data berkas.
Setelah berkas selesai dibuat, mula-mula harus dibuka terlebih dahulu. Perintah open
dikirim nama berkas ke sistem berkas. Ketika sebuah berkas dibuka, struktur direktori
mencari nama berkas yang diinginkan. Ketika berkas ditemukan, FCD disalin ke ke tabel
system-wide open-file pada memori. Tabel ini juga mempunyai entri untuk jumlah proses
yang membuka berkas tersebut.
Selanjutnya, entri dibuat di tabel per-process open-file dengan penunjuk ke entri di dalam
tabel system-wide open-file. Seluruh operasi pada berkas akan diarahkan melalui
penunjuk ini.
Interface sistem berkas: perintahopen, read, write, close dan file descriptor.
Virtual File System(VFS)
Virtual file system adalah suatu lapisan perangkat lunak dalam kernel yang
menyediakan antar muka sistem berkas untuk program userspace. VFS juga
menyediakan suatu abstraksi dalam kernel yang mengijinkan implementasi sistem
berkas yang berbeda untuk muncul.
VFS ini memiliki 2 fungsi yang penting yaitu:
Memisahkan operasi berkas generic dari implementasinya dengan
mendefinisikan VFS antar muka yang masih baru.
o VFS didasarkan pada struktur file-representation yang dinamakan vnode,
yang terdiri dari designator numerik untuk berkas unik network-wide.
Sistem berkas lokal dan sistem berkas remote untuk jaringan.
o
Implementasi Direktori
Sebelum sebuah berkas dapat dibaca, berkas tersebut harus dibuka terlebih dahulu. Saat
berkas tersebut dibuka, sistem operasi menggunakan path name yang dimasukkan oleh
pengguna untuk mengalokasikan direktori entri yang menyediakan informasi yang
dibutuhkan untuk menemukan block disk tempat berkas itu berada. Tergantung dari
sistem tersebut, informasi ini dapat berupa alamat disk dari berkas yang bersangkutan
(contiguous allocation), nomor dari blok yang pertama (kedua skema linked list), atau
nomor dari inode. Dalam semua kasus, fungsi utama dari direktori entri adalah untuk
memetakan nama ASCII dari berkas yang bersangkutan kepada informasi yang
dibutuhkan untuk mengalokasikan data.
Masalah berikutnya yang kemudian muncul adalah dimana atribut yang dimaksud akan
disimpan. Kemungkinan paling nyata adalah menyimpan secara langsung di dalam
direktori entri, dimana kebanyakan sistem menggunakannya. Untuk sistem yang
menggunakan inodes, kemungkinan lain adalah menyimpan atribut ke dalam inode,
selain dari direktori entri. Cara yang terakhir ini mempunyai keuntungan lebih
dibandingkan menyimpan dalam direktori entri.
Cara pengalokasian direktori dan pengaturan direktori dapat meningkatkan efisiensi,
performa dan kehandalan. Ada beberapa macam algoritma yang dapat digunakan.
Ukuran tetap:
Adanya ketergantungan fungsi hash dengan ukuran hash table
Alternatif:
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.
Namun penambahan ini dapat memperlambat.
User Code
Merupakan bagian yang menetapkan track dari user mana yang mempunyai
berkas yang bersangkutan, saat melakukan pencarian, hanya entri tersebut yang
menuju kepada logged-in user yang bersangkutan. Dua bagian berikutnya terdiri
dari nama berkas dan ekstensi dari berkas.
Extent
Bagian ini diperlukan oleh berkas karena berkas yang berukuran lebih dari 16
blok menempati direktori entri yang banyak. Bagian ini digunakan untuk
memberitahukan entri mana yang datang pertama, kedua, dan seterusnya.
Block Count
Bagian ini memberitahukan seberapa banyak dari ke-enambelas block disk
potensial, sedang digunakan. Enambelas bagian akhir berisi nomor block disk
yang bersangkutan. Bagian blok yang terakhir dapat saja penuh, jadi sistem tidak
dapat menentukan kapasitas pasti dari berkas sampai ke byte yang terakhir.
Saat CP/M menemukan entri, CP/M juga memakai nomor block disk, saat berkas
disimpan dalam direktori entri, dan juga semua atributnya. Jika berkas
menggunakan block disk lebih dari satu entri, berkas dialokasikan dalam direktori
yang ditambahkan.