Selasa, 23 April 2013

SISTEM BERKAS


1. Sistem Berkas
Semua aplikasi komputer butuh menyimpan dan mengambil informasi. Ketika sebuah
proses sedang berjalan, proses tersebut menyimpan sejumlah informasi yang terbatas,
dibatasi oleh ukuran alamat virtual. Untuk beberapa aplikasi, ukuran ini cukup, namun
untuk lainnya terlalu kecil.
Masalah berikutnya adalah apabila proses tersebut berhenti maka informasinya hilang.
Padahal ada beberapa informasi yang penting dan harus bertahan beberapa waktu bahkan
selamanya.
Adapun masalah ketiga yaitu sangatlah perlu terkadang untuk lebih dari satu proses
mengakses informasi secara berbarengan. Untuk memecahkan masalah ini, informasi
tersebut harus dapat berdiri sendiri tanpa tergantung dengan sebuah proses.
Pada akhirnya kita memiliki masalah-masalah yang cukup signifikan dan penting untuk
dicari solusinya.
Pertama kita harus dapat menyimpan informasi dengan ukuran yang besar. Kedua,
informasi harus tetap ketika proses berhenti. Ketiga, informasi harus dapat diakses oleh
lebih dari satu proses secara bersamaan. Solusi dari ketiga masalah diatas adalah sesuatu
yang disebut berkas.
Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat diakses lebih
dari satu proses, dapat dibaca, dan bahkan menulis yang baru. Informasi yang disimpan
dalam berkas harus persisten, dalam artian tidak hilang sewaktu proses berhenti. Berkasberkas
ini diatur oleh sistem operasi, bagaimana strukturnya, namanya, aksesnya,
penggunaannya, perlindungannya, dan implementasinya. Bagian dari sistem operasi yang
mengatur masalah-masalah ini disebut sistem berkas.
Untuk kebanyakan pengguna, sistem berkas adalah aspek yang paling terlihat dari sebuah
sistem operasi. Dia menyediakan mekanisme untuk penyimpanan online dan akses ke
data dan program. Sistem berkas terbagi menjadi dua bagian yang jelas; koleksi berkas
(masing-masing menyimpan data yang berkaitan) dan struktur direktori (mengatur dan
menyediakan informasi mengenai semua berkas yang berada di sistem). Sekarang
marilah kita memperdalam konsep dari berkas tersebut.

2. Konsep Berkas
Berkas adalah sebuah koleksi informasi berkaitan yang diberi nama dan disimpan di
dalam secondary storage.
Biasanya sebuah berkas merepresentasikan data atau program. Adapun jenis-jenis dari
berkas:
Text file: yaitu urutan dari karakter-karakter yang diatur menjadi barisan dan mungkin
halaman.
Source file: yaitu urutan dari berbagai subroutine dan fungsi yang masing-masing
kemudian diatur sebagai deklarasi-deklarasi diikuti oleh pernyataan-pernyataan yang
dapat diexecute.
Object file: yaitu urutan dari byte-byte yang diatur menjadi blok-blok yang dapat
dipahami oleh penghubung system.
Executable file: adalah kumpulan dari bagian-bagian kode yang dapat dibawa ke
memori dan dijalankan oleh loader.


3. Atribut berkas
Selain nama dan data, sebuah berkas dikaitkan dengan informasi-informasi tertentu yang
juga penting untuk dilihat pengguna, seperti kapan berkas itu dibuat, ukuran berkas, dan
lain-lain. Kita akan sebut informasi-informasi ekstra ini atribut. Setiap sistem mempunyai
sistem atribusi yang berbeda-beda, namun pada dasarnya memiliki atribut-atribut dasar
seperti berikut ini:
1. Nama: nama berkas simbolik ini adalah informasi satu-satunya yang disimpan
dalam format yang dapat dibaca oleh pengguna.
2. Identifier: tanda unik ini yang biasanya merupakan sebuah angka, mengenali
berkas didalam sebuah sistem berkas; tidak dapat dibaca oleh pengguna.
3. Jenis: informasi ini diperlukan untuk sistem-sistem yang mendukung jenis berkas
yang berbeda.
4. Lokasi: informasi ini adalah sebuah penunjuk pada sebuah device dan pada lokasi
berkas pada device tersebut.
5. Ukuran: ukuran dari sebuah berkas (dalam bytes, words, atau blocks) dan
mungkin ukuran maksimum dimasukkan dalam atribut ini juga.
7
6. Proteksi: informasi yang menentukan siapa yang dapat melakukan read, write,
execute, dan lainnya.
7. Waktu dan identifikasi pengguna: informasi ini dapat disimpan untuk pembuatan
berkas, modifikasi terakhir, dan penggunaan terakhir. Data-data ini dapat berguna
untuk proteksi, keamanan, dan monitoring penggunaan.

4. Jenis Berkas
Salah satu atribut dari sebuah berkas yang cukup penting adalah jenis berkas. Saat kita
mendesain sebuah sistem berkas, kita perlu mempertimbangkan bagaimana operating
sistem akan mengenali berkas-berkas dengan jenis yang berbeda. Apabila sistem operasi
dapat mengenali, maka menjalankan berkas tersebut bukan suatu masalah.
Seperti contohnya, apabila kita hendak mengeprint bentuk binary-object dari sebuah
program, yang didapat biasanya adalah sampah, namun hal ini dapat dihindari apabila
sistem operasi telah diberitahu akan adanya jenis berkas tersebut.
Cara yang paling umum untuk mengimplementasikan jenis berkas tersebut adalah dengan
memasukkan jenis berkas tersebut ke dalam nama berkas. Nama berkas dibagi menjadi
dua bagian. Bagian pertama adalah nama dari berkas tersebut, dan yang kedua, atau biasa
disebut extention adalah jenis dari berkas tersebut. Kedua nama ini biasanya dipisahkan
dengan tanda ’.’, contoh: berkas.txt.

5. Operasi Berkas
Fungsi dari berkas adalah untuk menyimpan data dan mengizinkan kita membacanya.
Dalam proses ini ada beberapa operasi yang dapat dilakukan berkas. Adapun operasioperasi
dasar yang dilakukan berkas, yaitu:
1. Membuat Berkas (Create):
Kita perlu dua langkah untuk membuat suatu berkas. Pertama, kita harus temukan
tempat didalam sistem berkas. Kedua, sebuah entri untuk berkas yang baru harus
dibuat dalam direktori. Entri dalam direktori tersebut merekam nama dari berkas
dan lokasinya dalam sistem berkas.

2. Menulis sebuah berkas (Write):
Untuk menulis sebuah berkas, kita membuat sebuah system call yang
menyebutkan nama berkas dan informasi yang akan di-nulis kedalam berkas.
3. Membaca Sebuah berkas (Read):
Untuk membaca sebuah berkas menggunakan sebuah system call yang menyebut
nama berkas yang dimana dalam blok memori berikutnya dari sebuah berkas
harus diposisikan.
4. Memposisikan Sebuah Berkas (Reposition):
Direktori dicari untuk entri yang sesuai dan current-file-position diberi sebuah
nilai. Operasi ini di dalam berkas tidak perlu melibatkan I/O, selain itu juga
diketahui sebagai file seek.
5. Menghapus Berkas (Delete):
Untuk menghapus sebuah berkas kita mencari dalam direktori untuk nama berkas
tersebut. Setelah ditemukan, kita melepaskan semua spasi berkas sehingga dapat
digunakan kembali oleh berkas-berkas lainnya dan menghapus entry direktori.
6. Menghapus Sebagian Isi Berkas (Truncate):
User mungkin mau menghapus isi dari sebuah berkas, namun menyimpan
atributnya. Daripada memaksa pengguna untuk menghapus berkas tersebut dan
membuatnya kembali, fungsi ini tidak akan mengganti atribut, kecuali panjang
berkas dan mendefinisikan ulang panjang berkas tersebut menjadi nol.
Keenam operasi diatas merupakan operasi-operasi dasar dari sebuah berkas yang
nantinya dapat dikombinasikan untuk membentuk operasi-operasi baru lainnya.
Contohnya apabila kita ingin menyalin sebuah berkas, maka kita memakai operasi create
untuk membuat berkas baru, read untuk membaca berkas yang lama, dan write untuk
menulisnya pada berkas yang baru.

6. Struktur Berkas
Berkas dapat di struktur dalam beberapa cara. Cara yang pertama adalah sebuah urutan
bytes yang tidak terstruktur. Akibatnya sistem operasi tidak tahu atau peduli apa yang ada
dalam berkas, yang dilihatnya hanya bytes. Ini menyediakan fleksibilitas yang
maksimum. User dapat menaruh apapun yang mereka mau dalam berkas, dan sistem
operasi tidak membantu, namun tidak juga menghalangi.
Cara berikutnya, adalah dengan record sequence. Dalam model ini, sebuah berkas adalah
sebuah urutan dari rekaman-rekaman yang telah ditentukan panjangnya, masing-masing
dengan beberapa struktur internal. Artinya adalah bahwa sebuah operasi read
membalikan sebuah rekaman dan operasi write menimpa atau menambahkan suatu
rekaman.
Struktur berkas yang ketiga, adalah menggunakan sebuah tree. Dalam struktur ini sebuah
berkas terdiri dari sebuah tree dari rekaman-rekaman tidak perlu dalam panjang yang
sama, tetapi masing-masing memiliki sebuah field key dalam posisi yang telah ditetapkan
dalam rekaman tersebut. Tree ini disort dalam field key dan mengizinkan pencarian yang
cepat untuk sebuah key tertentu.
7. Metode Akses
Berkas menyimpan informasi. Apabila sedang digunakan informasi ini harus diakses dan
dibaca melalui memori komputer. Informasi dalam berkas dapat diakses dengan beberapa
cara. Berikut adalah beberapa caranya:
1. Akses Sekuensial
Akses ini merupakan yang paling sederhana dan paling umum digunakan.
Informasi di dalam berkas diproses secara berurutan. Sebagai contoh, editor dan
kompilator biasanya mengakses berkas dengan cara ini.
2. Akses Langsung
Metode berikutnya adalah akses langsung atau dapat disebut relative access.
Sebuah berkas dibuat dari

Implementasi Sistem Berkas


Struktur Sistem Berkas
Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai
macam berkas, yaitu:

· Data 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 maupun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.
Disk Organization
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.
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.
Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan
menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan
organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi sistem berkas.
Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi program yang ada, 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. Input
didalamnya berisikan perintah tingkat tinggi seperti "ambil blok 133", sedangkan
output-nya adalah perintah tingkat rendah, instruksi spesifik perangkat keras yang
digunakan oleh controller perangkat keras.
· Basic file system, diperlukan untuk mengeluarkan perintah generic ke device
driver untuk read dan write 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 pengguna ingin
menulis berkas ke dalam disk. Di dalam File-organization module juga terdapat
free- space manager.
· Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas,
struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File
Control Block (FCB) menyimpan informasi tentang berkas, termasuk
kepemilikan, izin dan lokasi isi berkas.
Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau
membaca informasi dari disk. Urutan langkahnya:

1. Application program memanggil sistem berkas dengan system call.
Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb dari disk dan menempatkannya ke variabel input.

2. Diteruskan ke system call interface.
System call merupakan software interrupt. Jadi, interrupt handler sistem operasi akan memeriksa apakah system call yang menginterupsi. Interrupt handler ini akan memutuskan bagian dari sistem operasi yang bertanggung jawab untuk
menangani system call. Interrupt handler akan meneruskan system call.

3. Diteruskan ke logical file system.
Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call, operasi
yang akan dilakukan dan jenis berkas. Yang perlu ditentukan selanjutnya adalah
file organization module yang akan meneruskan permintaan ini. File organization
module yang akan digunakan tergantung dari jenis sistem berkas dari berkas yang
diminta.
Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta ada di
Windows 95. Lapisan logical file system akan meneruskan permintaan ke file
organization module dari Windows 95.

4. Diteruskan ke file organization module.
File organization module yang mengetahui pengaturan (organisasi) direktori dan berkas pada disk. Sistem berkas yang berbeda memiliki organisasi yang  berbeda. Windows 95 menggunakan VFAT-32. Windows NT menggunakan format NTFS. Linux menggunakan EXT2. Sistem operasi yang paling modern memiliki beberapa file organization module sehingga dapat membaca format yang berbeda.
Pada contoh di atas, logical file system telah meneruskan permintaan ke file
organization module VFAT32. Modul ini menterjemahkan nama berkas yang
ingin dibaca ke lokasi fisik yang biasanya terdiri dari disk antarmuka, disk drive,
surface, cylinder, track, sector.
5. Diteruskan ke basic file system.
Dengan adanya lokasi fisik, kita dapat memberikan perintah ke piranti keras yang dibutuhkan. Hal ini merupakan tanggungjawab basic file system. Basic file system ini juga memiliki kemampuan tambahan seperti buffering dan caching.
Contoh: Sektor tertentu yang dipakai untuk memenuhi permintaan mungkin saja
berada dalam buffers atau caches yang diatur oleh basic file system. Jika terjadi
hal seperti ini, maka informasi akan didapatkan secara otomatis tanpa perlu
membaca lagi dari disk.
6. I/O Control
Tingkatan yang paling rendah ini yang memiliki cara untuk
memerintah/memberitahu piranti keras yang diperlukan.

Implementasi Sistem Berkas


Implementasi Sistem Berkas

Struktur Sistem Berkas
Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai
macam berkas, yaitu:

· Data 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 maupun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.
Disk Organization
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.
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.
Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan
menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan
organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi sistem berkas.
Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi program yang ada, 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. Input
didalamnya berisikan perintah tingkat tinggi seperti "ambil blok 133", sedangkan
output-nya adalah perintah tingkat rendah, instruksi spesifik perangkat keras yang
digunakan oleh controller perangkat keras.
· Basic file system, diperlukan untuk mengeluarkan perintah generic ke device
driver untuk read dan write 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 pengguna ingin
menulis berkas ke dalam disk. Di dalam File-organization module juga terdapat
free- space manager.
· Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas,
struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File
Control Block (FCB) menyimpan informasi tentang berkas, termasuk
kepemilikan, izin dan lokasi isi berkas.
Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau
membaca informasi dari disk. Urutan langkahnya:

1. Application program memanggil sistem berkas dengan system call.
Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb dari disk dan menempatkannya ke variabel input.

2. Diteruskan ke system call interface.
System call merupakan software interrupt. Jadi, interrupt handler sistem operasi akan memeriksa apakah system call yang menginterupsi. Interrupt handler ini akan memutuskan bagian dari sistem operasi yang bertanggung jawab untuk
menangani system call. Interrupt handler akan meneruskan system call.

3. Diteruskan ke logical file system.
Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call, operasi
yang akan dilakukan dan jenis berkas. Yang perlu ditentukan selanjutnya adalah
file organization module yang akan meneruskan permintaan ini. File organization
module yang akan digunakan tergantung dari jenis sistem berkas dari berkas yang
diminta.
Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta ada di
Windows 95. Lapisan logical file system akan meneruskan permintaan ke file
organization module dari Windows 95.

4. Diteruskan ke file organization module.
File organization module yang mengetahui pengaturan (organisasi) direktori dan berkas pada disk. Sistem berkas yang berbeda memiliki organisasi yang  berbeda. Windows 95 menggunakan VFAT-32. Windows NT menggunakan format NTFS. Linux menggunakan EXT2. Sistem operasi yang paling modern memiliki beberapa file organization module sehingga dapat membaca format yang berbeda.
Pada contoh di atas, logical file system telah meneruskan permintaan ke file
organization module VFAT32. Modul ini menterjemahkan nama berkas yang
ingin dibaca ke lokasi fisik yang biasanya terdiri dari disk antarmuka, disk drive,
surface, cylinder, track, sector.
5. Diteruskan ke basic file system.
Dengan adanya lokasi fisik, kita dapat memberikan perintah ke piranti keras yang dibutuhkan. Hal ini merupakan tanggungjawab basic file system. Basic file system ini juga memiliki kemampuan tambahan seperti buffering dan caching.
Contoh: Sektor tertentu yang dipakai untuk memenuhi permintaan mungkin saja
berada dalam buffers atau caches yang diatur oleh basic file system. Jika terjadi
hal seperti ini, maka informasi akan didapatkan secara otomatis tanpa perlu
membaca lagi dari disk.
6. I/O Control
Tingkatan yang paling rendah ini yang memiliki cara untuk
memerintah/memberitahu piranti keras yang diperlukan.