Sistem berkas merupakan mekanisme penyimpanan on-line
serta untuk akses, baik data mau pun program yang berada dalam Sistem
Operasi. Terdapat dua bagian penting dalam sistem berkas, yaitu:
- kumpulan berkas, sebagai tempat penyimpanan data, serta
- struktur direktori, yang mengatur dan menyediakan informasi mengenai seluruh berkas dalam sistem.
Berkas
diberi nama, untuk kenyamanan bagi pengguna, dan untuk acuan bagi data
yang terkandung di dalamnya. Nama berkas biasanya berupa string atau
karakter. Beberapa sistem membedakan penggunaan huruf besar dan kecil
dalam penamaan sebuah berkas, sementara sistem yang lain menganggap
kedua hal di atas sama.Ketika berkas diberi nama, maka berkas tersebut
akan menjadi mandiri terhadap proses, pengguna, bahkan sistem yang
membuatnya. Atribut berkas terdiri dari:
· Nama; merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form)
· Type; dibutuhkan untuk sistem yang mendukung beberapa type berbeda
· Lokasi; merupakan pointer ke device dan ke lokasi berkas pada device tersebut
· Ukuran (size); yaitu ukuran berkas pada saat itu, baik dalam byte, huruf, atau pun blok
· Proteksi; adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis, dan mengeksekusi berkas
· Waktu, tanggal dan identifikasi pengguna; informasi ini biasanya disimpan untuk:
1. pembuatan berkas,
2. modifikasi terakhir yang dilakukan pada berkas, dan
3. penggunaan terakhir berkas.
Data tersebut dapat berguna untuk proteksi, keamanan, dan monitoring penggunaan dari berkas.
Sebuah
berkas adalah jenis data abstrak. Untuk mendefinisikan berkas secara
tepat, kita perlu melihat operasi yang dapat dilakukan pada berkas
tersebut. Sistem operasi menyediakan
system calls untuk
membuat, membaca, menulis, mencari, menghapus, dan sebagainya. Berikut
dapat kita lihat apa yang harus dilakukan sistem operasi pada keenam
operasi dasar pada berkas.
· Membuat sebuah berkas:
Ada dua cara dalam membuat berkas. Pertama, tempat baru di dalam sistem
berkas harus di alokasikan untuk berkas yang akan dibuat. Kedua, sebuah
direktori harus mempersiapkan tempat untuk berkas baru, kemudian
direktori tersebut akan mencatat nama berkas dan lokasinya pada sistem
berkas.
· Menulis pada sebuah berkas: Untuk menulis pada berkas, kita menggunakan system call beserta
nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada
berkas. Ketika diberi nama berkas, sistem mencari ke direktori untuk
mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk tulis
pada berkas dimana penulisan berikut akan ditempatkan. Penunjuk tulis
harus diperbaharui setiap terjadi penulisan pada berkas.
· Membaca sebuah berkas: Untuk dapat membaca berkas, kita menggunakan system call beserta
nama berkas dan di blok memori mana berkas berikutnya diletakkan. Sama
seperti menulis, direktori mencari berkas yang akan dibaca, dan sistem
menyimpan penunjuk baca pada berkas dimana pembacaan berikutnya akan
terjadi. Ketika pembacaan dimulai, penunjuk baca harus diperbaharui.
Sehingga secara umum, suatu berkas ketika sedang dibaca atau ditulis,
kebanyakan sistem hanya mempunyai satu penunjuk, baca dan tulis
menggunakan penunjuk yang sama, hal ini menghemat tempat dan mengurangi
kompleksitas sistem.
· Menempatkan kembali sebuah berkas:
Direktori yang bertugas untuk mencari berkas yang bersesuaian, dan
mengembalikan lokasi berkas pada saat itu. Menempatkan berkas tidak
perlu melibatkan proses I/O. Operasi sering disebut pencarian berkas.
· Menghapus sebuah berkas:
Untuk menghapus berkas kita perlu mencari berkas tersebut di dalam
direktori. Setelah ditemukan kita membebaskan tempat yang dipakai berkas
tersebut (sehingga dapat digunakkan oleh berkas lain) dan menghapus
tempatnya di direktori.
· Memendekkan berkas:
Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas
tetap sama tetapi ingin menghapus isi dari berkas tersebut. Fungsi ini
mengizinkan semua atribut tetap sama tetapi panjang berkas menjadi nol,
hal ini lebih baik dari pada memaksa pengguna untuk menghapus berkas dan
membuatnya lagi.
Ketika
digunakan, informasi penyimpanan berkas harus dapat diakses dan dibaca
ke dalam memori komputer. Beberapa sistem hanya menyediakan satu metode
akses untuk berkas. Pada sistem yang lain, contohnya IBM, terdapat
banyak dukungan metode akses yang berbeda. Masalah pada sistem tersebut
adalah memilih yang mana yang tepat untuk digunakan pada satu aplikasi
tertentu.
Sequential Access merupakan
metode yang paling sederhana. Informasi yang disimpan dalam berkas
diproses berdasarkan urutan. Operasi dasar pada suatu berkas adalah
tulis dan baca. Operasi baca membaca berkas dan meningkatkan pointer
berkas selama di jalur lokasi I/O. Operasi tulis menambahkan ke akhir
berkas dan meningkatkan ke akhir berkas yang baru. Metode ini didasarkan
pada tape model sebuah berkas, dan dapat bekerja pada kedua jenis
device akses (urut mau pun acak).
Direct Access merupakan metode yang membiarkan program membaca dan menulis dengan cepat pada berkas yang dibuat dengan
fixed-length logical order tanpa
adanya urutan. Metode ini sangat berguna untuk mengakses informasi
dalam jumlah besar. Biasanya database memerlukan hal seperti ini.
Operasi berkas pada metode ini harus dimodifikasi untuk menambahkan
nomor blok sebagai parameter. Pengguna menyediakan nomor blok ke sistem
operasi biasanya sebagai nomor blok relatif, yaitu indeks relatif
terhadap awal berkas. Penggunaan nomor blok relatif bagi sistem operasi
adalah untuk memutuskan lokasi berkas diletakkan dan membantu mencegah
pengguna dari pengaksesan suatu bagian sistem berkas yang bukan bagian
pengguna tersebut.
Metode ini merupakan hasil dari pengembangan metode
direct access.
Metode ini memasukkan indeks untuk mengakses berkas. Jadi untuk
mendapatkan suatu informasi suatu berkas, kita mencari dahulu di indeks,
lalu menggunakan pointer untuk mengakses berkas dan mendapatkan
informasi tersebut. Namun metode ini memiliki kekurangan, yaitu apabila
berkas-berkas besar, maka indeks berkas tersebut akan semakin besar.
Jadi solusinya adalah dengan membuat 2 indeks, indeks primer dan indeks
sekunder. Indeks primer memuat pointer ke indeks sekunder, lalu indeks
sekunder menunjuk ke data yang dimaksud.
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1. Mencari
berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur
direktori. Karena berkas-berkas memiliki nama simbolik dan nama yang
sama dapat mengindikasikan keterkaitan antara setiap berkas-berkas
tersebut, mungkin kita berkeinginan untuk dapat menemukan seluruh berkas
yang nama-nama berkas membentuk pola khusus.
2. Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori.
3. Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.
4. Menampilkan
isi direktori, kita dapat menampilkan seluruh berkas dalam direktori,
dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
5. Mengganti
nama berkas, karena nama berkas merepresentasikan isi dari berkas
kepada user, maka user dapat merubah nama berkas ketika isi atau
penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas
dalam direktori.
6. Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.
Ini
adalah struktur direktori yang paling sederhana. Semua berkas disimpan
di dalam direktori yang sama. Struktur ini tentunya memiliki kelemahan
jika jumlah berkasnya bertambah banyak, karena tiap berkas mesti
memiliki nama yang unik.
Kelemahan
yang ada pada direktori tingkat satu dapat diatas pada sistem direktori
dua tingkat. Caranya ialah dengan membuat direktori secara terpisah.
Pada direktori tingkat dua, setiap pengguna memiliki direktori berkas
sendiri (UFD). Setiap UFD memiliki struktur yang serupa, tapi hanya
berisi berkas-berkas dari seorang pengguna.
Struktur
direktori dua tingkat bisa dikatakan sebagai pohon dua tingkat. Sebuah
direktori dengan struktur pohon memiliki sejumlah berkas atau
subdirektori lagi. Pada penggunaan yang normal setiap pengguna memiliki
direktorinya sendiri-sendiri. Selain itu pengguna tersebut dapat
memiliki subdirektori sendiri lagi.
Dalam struktur ini dikenal dua istilah, yaitu
path relatif dan
path mutlak.
Path relatif adalah
path yang dimulai dari direktori yang aktif. Sedangkan
path mutlak adalah
path yang dimulai dari direktori akar.
Jika ada sebuah berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas "
sharing",
yaitu penggunaan sebuah berkas secara bersama-sama. Hal ini tentunya
berbeda dengan struktur pohon, dimana pada struktur tersebut penggunaan
berkas atau direktori secara bersama-sama dilarang. Pada struktur "
Acyclic-Graph",
penggunaan berkas atau direktori secara bersama-sama diperbolehkan.
Tapi pada umumnya struktur ini mirip dengan struktur pohon.
Masalah yang sangat utama pada struktur direktori "
Acyclic-Graph"
adalah kemampuan untuk memastikan tidak-adanya siklus. Jika pada
struktur 2 tingkat direktori, seorang pengguna dapat membuat
subdirektori, maka akan kita dapatkan direktori dengan struktur pohon.
Sangatlah mudah untuk tetap mempertahankan sifat pohon setiap kali ada
penambahan berkas atau subdirektori pada direktori dengan struktur
pohon. Tapi jika kita menambahkan sambungan pada direktori dengan
struktur pohon, maka akan kita dapatkan direktori dengan struktur
graph sederhana.
Ketika
kita menyimpan informasi dalam sebuah sistem komputer, ada dua hal yang
harus menjadi perhatian utama kita. Hal tersebut adalah:
1. Reabilitas dari sebuah sistem
Maksud
dari reabilitas sistem adalah kemampuan sebuah sistem untuk melindungi
informasi yang telah disimpan agar terhindar dari kerusakan, dalam hal
ini adalah perlindungan secara fisik pada sebuah berkas. Reabilitas
sistem dapat dijaga dengan membuat cadangan dari setiap berkas secara
manual atau pun otomatis, sesuai dengan layanan yang dari sebuah sistem
operasi. Reabilitas Sistem akan dibahas lebih lanjut pada
bagian berjudul Kehandalan Disk di Bab 6.
2. Proteksi (Perlindungan) terhadap sebuah berkas
Perlindungan
terhadap berkas dapat dilakukan dengan berbagai macam cara. Pada bagian
ini, kita akan membahas secara detil mekanisme yang diterapkan dalam
melindungi sebuah berkas.
Disk
menyediakan sebagian besar tempat penyimpanan dimana sistem berkas
dikelola dikelola. 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. Disk memiliki dua
karakteristik penting yang menjadikan disk sebagai media yang tepat
untuk menyimpan berbagai macam berkas, yaitu:
· Disk
tersebut 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 mau pun tidak berurut, dan
berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head
disk dan menunggu disk berputar.
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. Pada
dasarnya sistem berkas tersusun atas beberapa tingkatan, 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.
· Basic file system, diperlukan untuk mengeluarkan perintah generik ke device driver untuk baca dan tulis 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 user ingin menulis
berkas ke dalam disk.
· Logical file system,
tingkat ini berisi informasi tentang simbol nama berkas, struktur dari
direktori, dan proteksi dan sekuriti dari berkas tersebut.
Sumber :
http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/i5.html