Minggu, 17 Maret 2013

Sistem Berkas





 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   (sehingg 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    berka 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.

Tekni yan umum   digunaka dalam   implementasi   jeni 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   berka yang  nama-nam 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  malapetakbagi  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