Memahami
konsep dasar sistem berkas
Mengetahui metode akses pada
sistem berkas
Memahami struktur direktori
Memahami struktur berkas
Memahami proteksi sistem berkas
1.
Konsep
Dasar
Seperti yang telah kita ketahui, komputer dapat menyimpan
informasi ke beberapa media penyimpanan yang berbeda, seperti magnetic disks, magnetic
tapes, dan optical disks. Agar komputer dapat
digunakan dengan nyaman, sistem
operasi menyediakan sistem penyimpanan dengan
sistematika yang
seragam. Sistem Operasi mengabstraksi properti fisik
dari media penyimpanannya dan mendefinisikan unit penyimpanan logis, yaitu berkas. Berkas dipetakan ke media fisik oleh sistem operasi. Media penyimpanan ini
umumnya bersifat
non-volatile, sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik mau
pun system reboot.
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.
Informasi dalam berkas
ditentukan oleh pembuatnya. Ada banyak beragam
jenis informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu
yang dimiliki oleh berkas,
sesuai dengan
jenisnya masing-masing. Contohnya:
• Text file;
yaitu urutan karakter
yang disusun ke dalam baris-baris.
• Source file;
yaitu urutan subroutine
dan fungsi, yang nantinya
akan dideklarasikan.
• Object
file; merupakan urutan byte yang diatur ke dalam blok-blok yang dikenali
oleh
linker dari sistem.
• Executable file; adalah rangkaian code section yang dapat dibawa loader ke dalam
memori dandieksekusi.
a.
Atribut
Pada Berkas
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.
Informasi tentang seluruh
berkas disimpan dalam struktur direktori yang terdapat
pada penyimpanan sekunder. Direktori, seperti
berkas, harus bersifat non-volatile, sehingga keduanya
harus
disimpan pada sebuah device dan baru dibawa bagian per
bagian ke memori pada saat dibutuhkan.
b.
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.
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.
c.
Jenis Berkas
Pertimbangan utama dalam perancangan sistem berkas dan
seluruh sistem operasi,
apakah sistem operasi harus mengenali dan mendukung jenis berkas. Jika suatu sistem operasi mengenali jenis dari berkas, maka ia dapat mengoperasikan berkas tersebut.
Contoh apabila pengguna
mencoba mencetak berkas yang merupakan kode biner
dari program yang pasti akan menghasilkan sampah, hal ini dapat dicegah
apabila sistem operasi sudah diberitahu bahwa berkas tersebut merupakan kode biner.
Teknik yang umum digunakan dalam implementasi jenis berkas
adalah menambahkan jenis berkas dalam
nama berkas. Nama dibagi
dua, nama dan akhiran (ekstensi), biasanya dipisahkan
dengan karakter titik. Sistem
menggunakan akhiran tersebut untuk mengindikasikan jenis berkas dan jenis operasi
yang dapat dilakukan
pada berkas tersebut. Sebagai
contoh hanya berkas
yang berakhiran .bat, .exe atau
.com
yang bisa dijalankan (eksekusi).
Program aplikasi juga menggunakan akhiran tersebut untuk mengenal berkas yang
dapat dioperasikannya. Akhiran
ini dapat ditimpa atau diganti jika diperbolehkan
oleh sistem operasi.
Beberapa sistem operasi
menyertakan dukungan terhadap akhiran, tetapi beberapa
menyerahkan kepada aplikasi untuk mengatur akhiran berkas yang digunakan, sehingga
jenis dari berkas dapat menjadi petunjuk aplikasi
apa yang dapat mengoperasikannya.
Sistem
UNIX tidak dapat
menyediakan dukungan untuk akhiran berkas karena
menggunakan angka ajaib yang disimpan di depan berkas untuk mengenali jenis berkas. Tidak semua berkas memiliki angka ini, jadi sistem tidak bisa bergantung pada informasi
ini. Tetapi UNIX memperbolehkan akhiran berkas
tetapi hal ini tidak dipaksakan atau tergantung sistem operasi, kebanyakan hanya untuk membantu
pengguna mengenali jenis isi
dari suatu berkas.
Tabel 5-1. Tabel Jenis Berkas
Jenis berkas
|
Akhiran
|
Fungsi
|
executable
|
exe, com, bat, bin
|
program yang siap dijalankan
|
objek
|
obj, o
|
bahasa mesin,
kode terkompilasi
|
kode asal (source
code)
|
c, cc, pas,
java, asm, a
|
kode asal dari berbagai
bahasa
|
batch
|
bat, sh
|
perintah
pada shell
|
text
|
txt, doc
|
data text, document
|
pengolah
kata
|
wpd,
tex, doc
|
format jenis pengolah data
|
library
|
lib, a, DLL
|
library untuk
rutin program
|
print, gambar
|
ps, dvi, gif
|
format aSCII
atau biner untuk dicetak
|
archive
|
arc, zip, tar
|
beberapa berkas yang dikumpulkan menjadi satu
berkas. Terkadang dimampatkan
untuk
penyimpanan
|
d.
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.
e.
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 ’logical
record’. 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
secara otomatis 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.
Semua sistem berkas pasti mempunyai fragmentasi dalam disk, semakin
besar ukuran blok akan semakin besar
fragmentasi dalam disknya.
f.
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.
2.
Metode Akses
a.
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).
b.
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.
c.
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.
3.
Struktur Direktori
a.
Operasi
Pada Direktori
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.
b.
Direktori Satu Tingkat
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.
c.
Direktori Dua Tingkat
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.
Ketika seorang pengguna
login, master direktori
berkas (MFD)
dicari. Isi dari MFD adalah indeks dari
nama pengguna atau nomor rekening,
dan tiap entri menunjuk pada
UFD untuk pengguna tersebut.
Ketika
seorang pengguna
ingin mengakses suatu berkas,
hanya UFD-nya sendiri yang diakses. Jadi pada
setiap UFD yang berbeda, boleh terdapat nama
berkas yang sama.
d.
Direktori Dengan
Struktur
Tree
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.
e.
Direktori Dengan Struktur Acyclic-Graph
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.
f.
Direktori Dengan Struktur Graph
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.
Proses pencarian pada direktori dengan
struktur "Acyclic-Graph", apabila
tidak ditangani dengan baik (algoritma tidak bagus) dapat menyebabkan proses pencarian
yang berulang dan menghabiskan banyak waktu. Oleh
karena itu, diperlukan skema
pengumpulan sampah ("garbage-collection scheme"). Skema ini menyangkut memeriksa seluruh
sistem berkas dengan menandai tiap
berkas yang dapat diakses.Kemudian
mengumpulkan apa pun yang
tidak ditandai sebagai tempat kosong. Hal ini
tentunya dapat menghabiskan
banyak waktu.
4.
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.
a.
Tipe Akses Pada
Berkas
Salah
satu cara untuk melindungi berkas dalam komputer kita adalah dengan
melakukan pembatasan akses pada berkas tersebut.
Pembatasan akses yang dimaksudkan
adalah kita,
sebagai pemilik
dari
sebuah berkas, dapat
menentukan operasi apa saja yang dapat dilakukan oleh
pengguna lain terhadap berkas tersebut.
Pembatasan ini berupa sebuah permission atau pun not
permitted operation, tergantung
pada kebutuhan pengguna
lain terhadap berkas tersebut.
Di bawah ini adalah
beberapa operasi berkas yang dapat
diatur aksesnya:
1.
Read: Membaca dari berkas
2.
Write: Menulis berkas
3.
Execute: Meload berkas kedalam
memori untuk dieksekusi.
4. Append: Menambahkan informasi kedalam
berkas di akhir berkas.
5.
Delete: Menghapus berkas.
6.
List: Mendaftar properti
dari sebuah berkas.
7. Rename: Mengganti nama sebuah
berkas.
8.
Copy: Menduplikasikan sebuah
berkas.
9.
Edit: Mengedit sebuah berkas.
Selain operasi-operasi berkas diatas, perlindungan terhadap
berkas dapat
dilakukan
dengan mekanisme yang
lain.
Namun setiap mekanisme memiliki kelebihan dan
kekurangan. Pemilihan
mekanisme sangatlah tergantung pada kebutuhan
dan spesifikasi sistem.
b.
Akses List
dan Group
Hal yang paling umum dari sistem proteksi adalah membuat
akses tergantung pada identitas pengguna yang
bersangkutan. Implementasi
dari akses ini adalah dengan membuat daftar akses yang berisi keterangan setiap pengguna dan
keterangan akses berkas dari
pengguna yang bersangkutan. Daftar akses ini akan diperiksa setiap kali seorang pengguna meminta akses
ke sebuah berkas. Jika pengguna tersebut memiliki akses yang diminta pada
berkas tersebut, maka diperbolehkan untuk
mengakses berkas
tersebut. Proses ini juga
berlaku untuk hal yang sebaliknya. Akses pengguna
terhadap berkas akan
ditolak, dan sistem operasi akan mengeluarkan peringatan Protection Violation.
Masalah
baru yang timbul
adalah panjang
dari
daftar akses yang
harus dibuat. Seperti telah disebutkan, kita harus mendaftarkan semua pengguna dalam daftar akses tersebut hanya untuk akses pada
satu berkas saja. Oleh
karena itu, teknik ini mengakibatkan 2 konsekuensi yang
tidak dapat dihindarkan:
1. Pembuatan daftar yang sangat panjang ini dapat menjadi pekerjaan yang sangat melelahkan sekaligus membosankan, terutama jika jumlah pengguna dalam sistem
tidak dapat diketahui secara
pasti.
2. Manajemen ruang harddisk yang lebih rumit,
karena ukuran sebuah direktori dapat
berubah-ubah, tidak memiliki ukuran yang tetap.
Kedua konsekuensi diatas melahirkan sebuah teknik daftar akses yang lebih singkat.
Teknik inimengelompokkan
pengguna berdasarkan tiga
kategori:
1. Owner: User yang membuat berkas.
2. Group:
Sekelompok pengguna yang
memiliki
akses yang
sama terhadap
sebuah berkas,
atau men-share sebuah
berkas.
3. Universe:
Seluruh pengguna yang terdapat dalam sistem komputer.
Dengan adanya pengelompokkan pengguna
seperti ini, maka kita hanya membutuhkan tiga field untukmelindungi sebuah
berkas. Field ini diasosiasikan
dengan 3 buah bit untuk setiap kategori. Dalam
sistem UNIX dikenal bit rwx dengan bit r untuk
mengontrol akses baca, bit w sebagai
kontrol menulis dan bit x sebagai
bit kontrol untuk
pengeksekusian. Setiap
field dipisahkan dengan field separator. Dibawah ini adalah contoh
dari sistem proteksi dengan
daftar akses pada sistem UNIX.
Tabel 5-2. Contoh sistem daftar akses pada
UNIX
drwx
|
rwx
|
rwx
|
1
|
pbg
|
staff
|
512
|
Apr16
22.25
|
bekas.txt
|
owner
|
group
|
universe
|
|
group
|
owner
|
ukuran
|
waktu
|
Nama berkas
|
c.
Pendekatan
Sistem Proteksi yang Lain
Sistem
proteksi yang lazim digunakan pada sistem komputer selain diatas adalah
dengan menggunakan password
(kata sandi) pada setiap berkas.
Beberapa sistem operasi mengimplementasikan hal ini
bukan hanya pada berkas,
melainkan pada
direktori. Dengan sistem ini, sebuah
berkas tidak akan dapat diakses selain oleh
pengguna yang telah mengetahui
password untuk berkas tersebut. Akan tetapi, masalah
yang muncul dari sistem ini adalah jumlah password yang
harus diingat oleh seorang pengguna untuk mengakses berkas dalam sebuah sistem operasi. Masalah yang lain
adalah keamanan password itu
sendiri. Jika hanya satu password yang
digunakan, maka
kebocoran password tersebut
merupakan malapetaka bagi pengguna yang
bersangkutan. Sekali lagi, maka
kita harus menggunakan password yang berbeda untuk
setiap tingkatan yang berbeda.
5.
Struktur Sistem 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.
a.
Organisasi Sistem Berkas
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
perantarakomunikasi 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.
Gambar
5-1.
Lapisan pada sistem berkas.
b.
Mounting Sistem
Berkas
Seperti
halnya sebuah berkas yang harus dibuka terlebih
dahulu sebelum digunakan, sistem berkas harus di mount terlebih dahulu sebelum sistem
berkas tersebut siap untuk memproses dalam sistem. Sistem operasi
diberikan sebuah alamat mounting (mount
point) yang berisi nama device yang bersangkutan dan lokasi
dari device tersebut.
Tidak ada komentar:
Posting Komentar