Tugas Mata Kuliah : Sistem Berkas
STMIK WIDYA UTAMA PURWOKERTO
Struktur
Berkas
Kita juga dapat menggunakan jenis berkas
untuk mengidentifikasi struktur dalam dari berkas. Berkas berupa source dan objek memiliki struktur yang
cocok dengan harapan program yang membaca berkas tersebut. Suatu
berkas harus memiliki struktur yang dikenali oleh sistem operasi.
Sebagai contoh, sistem operasi menginginkan suatu berkas yang dapat dieksekusi memiliki
struktur tertentu agar dapat diketahui dimana berkas tersebut akan ditempatkan di memori
dan di mana letak instruksi pertama berkas tersebut. Beberapa sistem operasi mengembangkan ide
ini sehingga mendukung beberapa struktur berkas, dengan beberapa operasi khusus untuk
memanipulasi berkas dengan struktur tersebut.
Kelemahan memiliki dukungan terhadap beberapa
struktur berkas adalah: Ukuran dari sistem operasi
dapat menjadi besar, jika sistem operasi mendefinisikan lima struktur berkas yang berbeda maka ia perlu menampung kode untuk
yang diperlukan untuk mendukung semuanya. Setiap berkas harus dapat menerapkan
salah satu struktur berkas tersebut. Masalah
akan timbul ketika
terdapat aplikasi yang
membutuhkan struktur informasi yang
tidak didukung oleh sistem operasi tersebut.
Beberapa sistem operasi
menerapkan dan mendukung struktur
berkas sedikit
struktur berkas. Pendekatan ini digunakan
pada MS-DOS dan UNIX. UNIX menganggap
setiap berkas sebagai urutan 8-bit
byte, tidak ada interpretasi sistem operasi terhadap
dari bit-bit ini. Skema tersebut
menawarkan fleksibilitas tinggi tetapi dukungan yang
terbatas. Setiap aplikasi harus
menambahkan sendiri kode untuk menerjemahkan berkas
masukan ke dalam struktur yang sesuai.
Walau bagaimana pun juga sebuah sistem
operasi harus memiliki minimal satu
struktur berkas yaitu untuk berkas yang dapat dieksekusi sehingga sistem dapat
memuat berkas dalam memori dan menjalankannya. Sangat berguna
bagi sistem operasi untuk mendukung struktur berkas yang sering digunakan karena
akan menghemat pekerjaan
pemrogram. Terlalu sedikit
struktur berkas yang didukung akan
mempersulit pembuatan program, terlalu banyak akan membuat sistem operasi terlalu besar dan
pemrogram akan bingung
Struktur Berkas Pada Disk
Menempatkan batas dalam berkas
dapat menjadi rumit bagi sistem operasi. Sistem disk biasanya memiliki ukuran blok yang
sudah ditetapkan dari ukuran sektor. Semua I/O dari disk dilakukan dalam satuan blok dan semua blok (’physical record’) memiliki ukuran yang sama. Tetapi ukuran dari ’physical record’ tidak akan sama dengan ukuran ’logicalrecord’. Ukuran dari ’logical record’ akan
bervariasi.Memuatkan beberapa ’logical record’ ke dalam ’physical record’ merupakan solusi umum dari masalah ini.
Sebagai contoh pada sistem operasi UNIX, semua
berkas didefinisikan sebagai kumpulan byte. Setiap byte dialamatkan menurut batasnya dari awal berkas sampai
akhir. Pada kasus ini ukuran ’logical record’ adalah 1 byte. Sistem berkas secaraotomatis memuatkan byte-byte tersebut kedalam blok pada
disk.
Ukuran ’logical record’, ukuran
blok pada disk, dan teknik untuk memuatkannya menjelaskan berapa banyak ’logical record’
dalam tiap-tiap ’physical record’. Teknik memuatkan
dapat dilakukan oleh aplikasi pengguna atau oleh sistem operasi.
Berkas juga dapat dianggap
sebagai urutan dari beberapa blok pada disk. Konversi dari ’logical
record’ ke ’physical record’ merupakan masalah
perangkat lunak. Tempat pada disk selalu berada pada blok, sehingga beberapa
bagian dari blok terakhir yang ditempati berkas dapat terbuang. Jika setiap
blok berukuran 512 byte, sebuah berkas berukuran
1.949 byte akan menempati empat blok (2.048 byte) dan akan tersisa 99 byte pada blok terakhir. Byte yang terbuang tersebut
dipertahankan agar ukuran dari unit tetap blok
bukan byte disebut fragmentasi dalam disk
Penggunaan Berkas Secara Bersama-sama
Konsistensi semantik adalah parameter yang penting untuk evaluasi
sistem berkas yang
mendukung penggunaan berkas
secara bersama. Hal
ini juga merupakan karakterisasi dari sistem yang
menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara
bersama-sama. Lebih khusus, semantik ini seharusnya dapat menspesifikasi kapan suatu modifikasi suatu data oleh satu pengguna dapat
diketahui oleh pengguna lain.
Terdapat beberapa macam konsistensi semantik.
Di bawah ini akan dijelaskan kriteria yang digunakan
dalam UNIX.
Berkas sistem UNIX mengikuti konsistensi semantik:
Penulisan ke
berkas yang dibuka
oleh pengguna dapat
dilihat langsung oleh pengguna lain yang sedang mengakses ke
berkas yang sama.
ü Terdapat bentuk pembagian dimana pengguna
membagi pointer lokasi ke berkas tersebut.
Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya
Operasi Pada 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.
Enam operasi dasar ini sudah mencakup operasi
minimum yang di butuhkan. Operasi umum lainnya adalah menyambung informasi baru
di akhir suatu berkas, mengubah nama suatu berkas, dan lain-lain.
Operasi dasar
ini kemudian digabung untuk melakukan operasi lainnya. Sebagai contoh
misalnya kita menginginkan salinan dari suatu berkas, atau menyalin berkas ke peralatan I/O lainnya seperti printer, dengan cara
membuat berkas lalu membaca dari berkas lama
dan menulis ke berkas yang baru.
Hampir semua operasi pada berkas melibatkan
pencarian berkas pada direktori. Untuk menghindari pencarian yang lama, kebanyakan sistem akan membuka berkas apabila berkas tersebut digunakan secara
aktif. Sistem operasi akan menyimpan tabel kecil yang berisi informasi semua berkas yang
dibuka yang disebut "tabel berkas terbuka". Ketika berkas
sudah tidak digunakan
lagi dan sudah
ditutup oleh yang menggunakan, maka sistem operasi mengeluarkan
berkas tersebut dari tabel berkas terbuka.
Beberapa sistem terkadang
langsung membuka berkas
ketika berkas tersebut digunakan dan
otomatis menutup berkas
tersebut jika program
atau pemakainya dimatikan. Tetapi pada sistem lainnya terkadang
membutuhkan pembukaan berkas secara
tersurat dengan system
call (open) sebelum berkas dapat
digunakan.
Implementasi dari
buka dan tutup
berkas dalam lingkungan
dengan banyak perngguna seperti UNIX, lebih rumit. Dalam sistem seperti itu
pengguna yang membuka berkas mungkin lebih dari satu dan pada waktu
yang hampir bersamaan. Umumnya sistem operasi menggunakan tabel
internal dua level. Ada tabel yang mendata proses mana saja yang membuka berkas tersebut, kemudian tabel tersebut menunjuk
ke tabel yang lebih besar yang berisi informasi yang
berdiri sendiri seperti lokasi berkas pada disk,
tanggal akses dan ukuran berkas. Biasanya tabel tersebut juga memiliki
data berapa banyak proses yang membuka
berkas tersebut.
Metode Akses
Akses Secara
Berurutan
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)
Akses
Langsung
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.
Akses Dengan
Menggunakan Indeks
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
Proteksi
Berkas
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 yangtelah 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
secaramanual atau pun otomatis, sesuai
dengan layanan yang dari sebuah sistem operasi. Reabilitas Sistemakan dibahas lebih lanjut pada Bagian 6.10.
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.