Disk merupakan tempat penyimpanan sekunder dimana sistem berkas disimpan. Ada dua karakteristik dalam penyimpanan banyak berkas, yaitu:
- Sebuah disk dapat ditulis kembali, memungkinkan untuk membaca, memodifikasi, dan menulis blok kembali pada tempat yang sama.
- Sebuah blok yang menyimpan informasi yang kita cari, dapat diakses secara langsung. Dalam aplikasinya, kita dapat mengakses berkas secara random maupun sequential.
Setiap level menggunakan feature-feature dari lapisan di bawahnya untuk digunakan sebagai feature baru bagi lapisan di atasnya. Level terbawah adalah I/O control yang terdiri dari beberapa device driver dan penanganan interupsi untuk memindahkan informasi antara memori utama dan disk system. Device driver dapat dianggap sebagai penerjemah. Inputnya terdiri dari perintah-perintah high level, misalkan “ambil blok 123″. Outputnya berupa instruksi-instruksi hardware yang lebih spesifik. Instruksi ini digunakan oleh pengendali hardware yang menghubungkan I/O device dengan sistem lainnya.
Basic file system bertugas dalam hal menyampaikan perintah-perintah generic ke device driver yang dituju untuk membaca dan menulis blok-blok fisik pada disk. Masing-masing blok fisik diidentifikasi dengan alamat disknya.
File organization modul adalah lapisan dalam sistem berkas yang mengetahui tentang berkas, blok-blok logis, dan blok-blok fisik. Dengan mengetahui tipe dan lokasi dari berkas yang digunakan, file organization modul dapat menerjemahkan alamat blok logis ke alamat blok fisik untuk selanjutnya diteruskan ke lapisan basic file system. File organization modul juga mengandung free space manager yang mencatat jejak blok-blok yang tidak dialokasikan dan menyediakannya ke file organization modul ketika dibutuhkan.
Lapisan yang terhubung dengan program aplikasi yaitu logical file system yang bertugas dalam mengatur informasi metadata. Metadata meliputi semua struktur dari sistem berkas, kecuali data sebenarnya (isi dari berkas). Lapisan ini juga mengatur struktur direktori untuk menyediakan informasi yang dibutuhkan file organization modul. Struktur dari sebuah berkas ditentukan oleh lapisan ini dengan adanya file control block.
Berkas-berkas tertentu harus mempunyai struktur yang dimengerti oleh sistem operasi. Contohnya, sistem operasi mungkin mensyaratkan bahwa sebuah berkas executable harus mempunyai struktur yang spesifik sehingga dapat ditentukan dimana berkas tersebut dapat di-load dari memori dan dimana lokasi dari instruksi pertama. Berkas dapat distruktur 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 yang kedua adalah dengan record sequence. Dalam model ini semua berkas adalah sebuah urutan dari rekaman-rekaman yang telah ditentukan panjangnya, masing-masing dengan beberapa struktur internal. Artinya bahwa sebuah operasi read membalikkan sebuah rekaman dan operasi write menimpa atau menambahkan suatu rekaman.
Cara 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 diterapkan dalam rekaman tersebut. Tree ini di-sort dalam field key dan mengizinkan pencarian yang cepat untuk sebuah key tertentu.
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
Tidak ada komentar:
Posting Komentar