Sistem
Berkas
Berkas adalah kumpulan informasi
berkait yang diberi nama dan direkam pada penyimpanan sekunder. Dari sudut
pandang pengguna, berkas merupakan bagian terkecil dari penyimpanan logis,
artinya data tidak dapat ditulis ke penyimpanan sekunder kecuali jika berada di
dalam berkas. Biasanya berkas merepresentasikan program (baik source mau
pun bentuk objek) dan data. Data dari berkas dapat bersifat numerik, alfabetik,
alfanumerik, atau pun biner. Format berkas juga bisa bebas, misalnya berkas
teks, atau dapat juga diformat pasti. Secara umum, berkas adalah urutan bit,
byte, baris, atau catatan yang didefinisikan oleh pembuat berkas dan pengguna.
A.
Struktus
Berkas
Pertimbangan utama dalam perancangan sistem
berkas dan seluruh sistem operasi adalah apakah sistem operasi harus mengenali
dan mendukung jenis berkas. Jika suatu sistem operasi mengenali jenis dari
berkas, maka ia dapat mengoperasikan berkas tersebut.
Teknik yang umum digunakan dalam implementasi
jenis berkas adalah dengan menambahkan jenis berkas dalam nama berkas. Nama
dibagi dua, nama dan akhiran(ekstensi),yang biasanya dipisahkan dengan karakter
titik. Sistem menggunakan akhiran tersebut untuk mengindikasikan jenis berkas
dan jenis operasi yang dapat dilakukan pada berkas tersebut. Contoh, hanya
berkas yang berakhiran .bat. .exe atau .com yang bisa dijalankan (eksekusi).
Program aplikasi juga menggunakan akhiran tersebut untuk mengenali berkas yang
dapat dioperasikannya. Beberapa sistem operasi menyertakan dukungan terhadap
akhiran tetapi beberapa menyerahkan kepada aplikasi untuk mengatur akhiran
berkas yang digunakan, sehingga jenis berkas dapat menjadi petunjuk aplikasi
apa yang dapat mengoperasikannya.
Stuktur
berkas pada Disk
•
Sebuah disk sistem berkas adalah file system
yang dirancang untuk menyimpan file pada perangkat penyimpanan data, paling
sering sebuah disk drive, yang mungkin secara langsung atau tidak langsung
terhubung ke komputer.
•
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 logical record.
Ukuran dari logical record bervariasi.
•
Sebagai contoh, pada sistem operasi UNIX,
semua berkas didefinisikan sebagai kumpulan byte. Setiap byte dialamatkan menurut
batasnya dari awal berkas sampai akhir.
•
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.
B.
Metode Akses
Berkas
Berkas menyimpan informasi. Apabila
sedang digunakan informasi ini harus diakses dan dibaca melalui memori
komputer. Informasi dalam berkas dapat diakses dengan beberapa cara, yaitu:
- Akses sekuensial. Akses ini merupakan yang paling sederhana dan paling umum digunakan. Informasi dalam berkas diproses secara berurutan. Sebagai contoh, editor dan kompilator biasanya mengakses berkas dengan cara ini.
- Akses langsung (relative access) . Sebuah berkas dibuat dari rekaman-rekaman logical yang panjangnya sudah ditentukan, yang mengizinkan program untuk membaca dan menulis rekaman secara cepat tanpa urutan tertentu.
C.
Proteksi
Berkas
Saat sebuah
informasi disimpan di komputer, kita menginginkan agar informasi tersebut aman
dari kerusakan fisik (ketahanan) dan akses yang tidak semestinya (proteksi).
Ketahanan
biasanya disediakan dengan duplikasi dari berkas. Banyak komputer yang
mempunyai program sistem yang secara otomatis menyalin berkas dari disk ke tape dalam
interval tertentu (misalnya sekali dalam sehari, atau seminggu, atau sebulan)
untuk menjaga copy
-an berkas agar tidak rusak secara tidak disengaja. Sistem berkas
dapat rusak karena masalah hardware (seperti error dalam membaca atau menulis), mati listrik, debu,
suhu yang ekstrim, atau perusakan dengan sengaja. Bug dalam software
sistem berkas juga dapat mengakibatkan isi dari dokumen hilang.
1. Tipe-tipe
akses.
Kebutuhan
untuk mengamankan berkas berhubungan langsung dengan kemampuan untuk mengakses
berkas. Kita bisa menyediakan proteksi secara menyeluruh dengan pelarangan
akses. Kita juga dapat menyediakan akses bebas tanpa proteksi. Kedua pendekatan
tersebut terlalu ekstrem untuk penggunaan umum, sehingga yang kita butuhkan
adalah akses yang terkontrol.
Mekanisme
proteksi menyediakan akses yang terkontrol dengan membatasi tipe dari akses
terhadap berkas yang dapat dibuat. Akses diizinkan atau tidak tergantung pada
beberapa faktor, salah satunya adalah tipe dari akses yang diminta. Beberapa tipe
operasi yang bisa dikontrol:
·
Read. membaca dari berkas.
·
Write. menulis atau menulis ulang berkas.
·
Execute. me-load berkas ke memori dan mengeksekusinya..
·
Append. menulis informasi baru di akhir berkas.
·
Delete. menghapus berkas dan mengosongkan spacenya untuk kemungkinan
digunakan kembali.
·
List. mendaftar nama dan atribut berkas.
2. Kontrol
akses.
Pendekatan
paling umum dalam masalah proteksi adalah untuk membuat akses tergantung pada
identitas pengguna. Pengguna yang bervariasi mungkin membutuhkan tipe akses
yang berbeda atas suatu berkas atau direktori. Skema yang paling umum untuk
mengimplementasikannya adalah dengan mengasosiasikan setiap berkas dan
direktori pada sebuah list kontrol akses, yang menspesifikasikan user name
dan tipe akses yang diperbolehkan untuk setiap user. Saat seorang
pengguna meminta untuk mengakses suatu berkas, sistem operasi akan mengecek
daftar akses yang berhubungan dengan berkas tersebut. Apabila pengguna tersebut
ada di dalam daftar, maka akses tersebut diizinkan. Jika tidak, terjadi
pelanggaran proteksi, dan pengguna tidak akan diizinkan untuk mengakses berkas
tersebut.
Masalah utama
dengan pendekatan ini adalah panjang dari daftar yang harus dibuat. Tapi dapat
dipecahkan dengan cara menggunakan daftar dalam versi yang di- condense.
Untuk itu, pengguna dapat diklasifikasikan ke dalam tiga kelas:
·
Owner. pengguna yang membuat berkas tersebut.
·
Group. sekelompok pengguna yang berbagi berkas dan memiliki akses yang
sama.
·
Universe. semua pengguna yang lain.
D.
Operasi
Berkas
a.
Mencari berkas.
Bila pengguna
atau sebuah aplikasi ingin melakukan suatu operasi terhadap suatu berkas, tentu
berkas tersebut harus dibuka terlebih dahulu. Untuk itu, sebuah direktori harus
mencari entri yang bersesuaian dengan file tersebut dengan menelusuri struktur
dari direktori yang bersangkutan.
b. Membuat
berkas.
Saat sebuah
berkas baru dibuat, maka sebuah entri akan ditambahkan ke direktori.
c. Menghapus berkas.
Ketika suatu
berkas tidak dibutuhkan lagi, maka berkas tersebut bisa dihapus dari direktori.
d. Menampilkan
isi direktori.
Menampilkan
seluruh atau sebagian daftar berkas-berkas yang ada di direktori dan atribut
dari berkas-berkas dalam direktori tersebut (misalnya, information
access control, type dan usage information).
e. Mengubah nama
berkas.
Nama suatu
berkas merepresentasikan isi berkas terhadap pengguna. Oleh karena itu, nama
berkas harus bisa diubah ketika isi dan kegunaannya sudah tidak sesuai lagi.
Mengubah nama suatu berkas memungkinkan berpindahnya posisi berkas di dalam
struktur direktori.
f.
Akses sistem berkas.
Pengguna bisa
mengakses setiap direktori dan setiap berkas yang berada dalam struktur
direktori.
g. Update
direktori.
Karena
sebagian atribut dari berkas disimpan dalam direktori, maka perubahan yang
terjadi terhadap suatu berkas akan berpengaruh terhadap atribut dari berkas
yang bersangkutan di direktori tersebut.
Jadi,
pada dasarnya ada beberapa informasi yang terkait
dengan pembukaan berkas
yaitu:
·
Penunjuk Berkas : Pada
sistem yang tidak mengikutkan batas berkas sebagai bagian
dari system call baca dan tulis,
sistem tersebut
harus mengikuti posisi dimana terakhir proses baca dan tulis
sebagai penunjuk. Penunjuk ini
unik untuk setiap operasi pada
berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
·
Penghitung berkas
yang terbuka : Setelah
berkas ditutup,
sistem harus
mengosongkan kembali tabel berkas
yang dibuka yang digunakan oleh berkas tadi
atau tempat di tabel akan habis. Karena mungkin
ada beberapa proses yang membuka
berkas secara bersamaan
dan
sistem harus menunggu sampai
berkas tersebut ditutup sebelum
mengosongkan tempatnya
di tabel. Penghitung ini mencatat
banyaknya berkas yang telah dibuka dan
ditutup, dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel.
·
Lokasi berkas pada disk : Kebanyakan
operasi pada
berkas memerlukan
sistem untuk mengubah
data yang ada pada berkas. Informasi mengenai
lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk
setiap operasi.
Beberapa sistem operasi menyediakan
fasilitas untuk memetakan berkas ke dalam memori pada sistem memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. Operasi
baca dan tulis pada memori dengan alamat tersebut
dianggap sebagai operasi baca dan tulis pada berkas yang ada
di alamat tersebut. Menutup berkas mengakibatkan semua
data yang ada pada alamat memori tersebut dikembalikan ke
disk dan dihilangkan
dari memori virtual
yang digunakan oleh proses.