Laman

Senin, 31 Januari 2011

Konsep Dasar Sistem Berkas

Sistem Berkas

Konsep Dasar Sistem Berkas


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 nonvolatile , sehingga kandungan di dalamnya
tidak akan hilang jika terjadi gagal listrik maupun 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 maupun bentuk objek) dan data. Data dari
berkas dapat bersifat numerik, alfabetik, alfanumerik, ataupun 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
tipe informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur
tertentu yang dimiliki oleh berkas, sesuai dengan tipenya masing-masing.
Contohnya:
• Text file; yaitu urutan karakter yang disusun ke dalam baris-baris.
Sistem Berkas
• 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 dan dieksekusi.
 
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,
ataupun block
• 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:
o pembuatan berkas
o modifikasi terakhir yang dilakukan pada berkas, dan
o penggunaan terakhir berkas
 
Data-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 nonvolatile , sehingga keduanya harus disimpan pada
sebuah device dan baru dibawa bagian per bagian ke memori pada saat
dibutuhkan.
 
Operasi Pada Berkas
Sebuah berkas adalah tipe 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
Sistem Berkas
4
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 mengijinkan 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
Sistem Berkas
5
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 virtual-memory systems . Hal tersebut mengijinkan bagian dari
berkas ditempatkan pada suatu alamat di virtual memory . 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 virtual memory yang digunakan oleh proses.
 
Tipe Berkas

Pertimbangan utama dalam perancangan sistem berkas dan seluruh sistem
operasi, apakah sistem operasi harus mengenali dan mendukung tipe berkas. Jika
suatu sistem operasi mengenali tipe 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 tipe berkas adalah
menambahkan tipe berkas dalam nama berkas. Nama dibagi dua, nama dan
akhiran (ekstensi), biasanya dipisahkan dengan karakter titik. Sistem menggunakan
akhiran tersebut untuk mengindikasikan tipe berkas dan tipe 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 tipe dari berkas dapat menjadi petunjuk aplikasi apa yang
dapat mengoperasikannya.
Sistem UNIX tidak dapat menyediakan dukungan untuk akhiran berkas
karena menggunakan angka-angkaajaib yang disimpan di depan berkas untuk
mengenali tipe 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 tipe isi dari suatu berkas.

Struktur Berkas
Kita juga dapat menggunakan tipe berkas untuk mengidentifikasi struktur
dalam dari berkas. Berkas berupa source dan objek memiliki struktur yang cocok
dengan harapan program yang membaca berkas tersebut. Suatu berkas harus
memiliki struktur yang dikenali oleh sistem operasi. Sebagai contoh, sistem operasi
menginginkan suatu berkas yang dapat dieksekusi memiliki struktur tertentu agar
dapat diketahui dimana berkas tersebut akan ditempatkan di memori dan di mana
letak instruksi pertama berkas tersebut. Beberapa sistem operasi mengembangkan
ide ini sehingga mendukung beberapa struktur berkas, dengan beberapa operasi
khusus untuk memanipulasi berkas dengan struktur tersebut.
Kelemahan memiliki dukungan terhadap beberapa struktur berkas adalah:
Ukuran dari sistem operasi dapat menjadi besar, jika sistem operasi
mendefinisikan lima struktur berkas yang berbeda maka ia perlu menampung kode
untuk yang diperlukan untuk mendukung semuanya. Setiap berkas harus dapat
menerapkan salah satu struktur berkas tersebut. Masalah akan timbul ketika
terdapat aplikasi yang membutuhkan struktur informasi yang tidak didukung oleh
sistem operasi tersebut.
 
Beberapa sistem operasi menerapkan dan mendukung struktur berkas
sedikit struktur berkas. Pendekatan ini digunakan pada MS-DOS dan UNIX. UNIX
menganggap setiap berkas sebagai urutan 8-bit byte, tidak ada interpretasi sistem
operasi terhadap dari bit-bit ini. Skema tersebut menawarkan fleksibilitas tinggi
tetapi dukungan yang terbatas. Setiap aplikasi harus menambahkan sendiri kode
untuk menerjemahkan berkas masukan ke dalam struktur yang sesuai. Walau
bagaimana pun juga sebuah sistem operasi harus memiliki minimal satu struktur
berkas yaitu untuk berkas yang dapat dieksekusi sehingga sistem dapat memuat
berkas dalam memori dan menjalankannya.
Sangat berguna bagi sistem operasi untuk mendukung struktur berkas yang
sering digunakan karena akan menghemat pekerjaan pemrogram. Terlalu sedikit
struktur berkas yang didukung akan mempersulit pembuatan program, terlalu
banyak akan membuat sistem operasi terlalu besar dan pemrogram akan bingung.
 
Struktur Berkas Pada Disk
Menempatkan batas dalam berkas dapat menjadi rumit bagi sistem operasi.
Sistem disk biasanya memiliki ukuran blok yang sudah ditetapkan dari ukuran
sektor. Semua I/O dari disk dilakukan dalam satuan blok dan semua blok
(‘physical record’) memiliki ukuran yang sama. Tetapi ukuran dari ‘physical record’
tidak akan sama dengan ukuran ‘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.

0 komentar:

Posting Komentar

Thanx dah mau komen