artikelmawar/teknologiinformsi
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.
1.1. 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 kememori dan dijalankan oleh loader.
1.2. 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:
- Nama: nama berkas simbolik ini adalah informasi satu-satunya yang disimpan dalam format yang dapat dibaca oleh pengguna.
- Identifier: tanda unik ini yang biasanya merupakan sebuah angka, mengenali berkas didalam sebuah sistem berkas; tidak dapat dibaca oleh pengguna.
- Jenis: informasi ini diperlukan untuk sistem-sistem yang mendukung jenis berkas yang berbeda.
- Lokasi: informasi ini adalah sebuah penunjuk pada sebuah device dan pada lokasi berkas pada device tersebut.
- Ukuran: ukuran dari sebuah berkas (dalam bytes, words, atau blocks) dan mungkin ukuran maksimum dimasukkan dalam atribut ini juga.
- Proteksi: informasi yang menentukan siapa yang dapat melakukan read, write,
- execute, dan lainnya.
- 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.
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.
1.4. 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.4. 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.
1.5. Struktur Berkas
1.5. 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.
9
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.
2. Struktur Direktori
2. Struktur Direktori
Beberapa sistem komputer menyimpan banyak sekali berkas-berkas dalam disk, sehingga
diperlukan suatu struktur pengorganisasian data-data agar lebih mudah diatur.
2.1. Operasi Direktori
Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap direktori sebagai berikut:
1. Mencari Berkas
Mencari lewat struktur direktori untuk dapat menemukan entri untuk suatu berkas
tertentu. berkas-berkas dengan nama yang simbolik dan mirip, mengindikasikan
adanya keterkaitan diantara berkas-berkas tersebut.
Oleh karena itu, tentunya perlu suatu cara untuk menemukan semua berkas yang
benar-benar memenuhi kriteria khusus yang diminta.
2. Membuat berkas
berkas-berkas baru perlu untuk dibuat dan ditambahkan ke dalam direktori.
3. Menghapus berkas
Saat suatu berkas tidak diperlukan lagi, berkas tsb perlu dihapus dari direktori.
4. Menampillkan isi direktori
Menampilkan daftar berkas-berkas yang ada di direktori, dan semua isi direktori
dari berkas-berkas dalam daftar tsb.
5. Mengubah nama berkas
Nama berkas mencerminkan isi berkas terhadap pengguna. Oleh karena itu, nama
berkas harus dapat diubah-ubah ketika isi dan kegunaannya sudah berubah atau
tidak sesuai lagi. Mengubah nama berkas memungkinkan posisinya berpindah
dalam struktur direktori.
6. Akses Sistem berkas
Mengakses tiap direktori dan tiap berkas dalam struktur direktori. Sangatlah dianjurkan
untuk menyimpan isi dan stuktur dari keseluruhan sistem berkas setiap jangka waktu
tertentu. Menyimpan juga dapat berarti menyalin seluruh berkas ke pita magnetik. Teknik
ini membuat suatu cadangan salinan dari berkas tersebut jika terjadi kegagalan sistem
atau jika berkas itu tidak diperlukan lagi.
2.1. Operasi Direktori
Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap direktori sebagai berikut:
1. Mencari Berkas
Mencari lewat struktur direktori untuk dapat menemukan entri untuk suatu berkas
tertentu. berkas-berkas dengan nama yang simbolik dan mirip, mengindikasikan
adanya keterkaitan diantara berkas-berkas tersebut.
Oleh karena itu, tentunya perlu suatu cara untuk menemukan semua berkas yang
benar-benar memenuhi kriteria khusus yang diminta.
2. Membuat berkas
berkas-berkas baru perlu untuk dibuat dan ditambahkan ke dalam direktori.
3. Menghapus berkas
Saat suatu berkas tidak diperlukan lagi, berkas tsb perlu dihapus dari direktori.
4. Menampillkan isi direktori
Menampilkan daftar berkas-berkas yang ada di direktori, dan semua isi direktori
dari berkas-berkas dalam daftar tsb.
5. Mengubah nama berkas
Nama berkas mencerminkan isi berkas terhadap pengguna. Oleh karena itu, nama
berkas harus dapat diubah-ubah ketika isi dan kegunaannya sudah berubah atau
tidak sesuai lagi. Mengubah nama berkas memungkinkan posisinya berpindah
dalam struktur direktori.
6. Akses Sistem berkas
Mengakses tiap direktori dan tiap berkas dalam struktur direktori. Sangatlah dianjurkan
untuk menyimpan isi dan stuktur dari keseluruhan sistem berkas setiap jangka waktu
tertentu. Menyimpan juga dapat berarti menyalin seluruh berkas ke pita magnetik. Teknik
ini membuat suatu cadangan salinan dari berkas tersebut jika terjadi kegagalan sistem
atau jika berkas itu tidak diperlukan lagi.
Sedangkan Tanenbaum juga menambahkan hal-hal berikut sebagai operasi yang dapat
dilakukan terhadap direktori tersebut:
• Membuka direktori
• Menutup direktori
• Menambah direktori
• Mengubah nama direktori
• Menghubungkan berkas-berkas di direktori berbeda
• Menghapus hubungan berkas-berkas di direktori berbeda
2.2. Direktori Satu Tingkat (Single Level Directory)
Struktur Direktori ini merupakan struktur direktori yang paling sederhana. Semua berkas disimpan dalam direktori yang sama.
Direktori satu tingkat memiliki keterbatasan, yaitu bila berkas bertambah banyak atau bila sistem memiliki lebih dari satu pengguna. Hal ini disebabkan karena tiap berkas harus memiliki nama yang unik.
2.3. Direktori Dua Tingkat (Two Level Directory)
Membuat direktori yang terpisah untuk tiap pengguna, yang disebut User File Directory (UFD). Ketika pengguna login, master directory berkas dipanggil. MFD memiliki indeks berdasarkan nama pengguna dan setiap entri menunjuk pada UFD pengguna tersebut. Maka, pengguna boleh memiliki nama berkas yang sama dengan berkas lain.
• Membuka direktori
• Menutup direktori
• Menambah direktori
• Mengubah nama direktori
• Menghubungkan berkas-berkas di direktori berbeda
• Menghapus hubungan berkas-berkas di direktori berbeda
2.2. Direktori Satu Tingkat (Single Level Directory)
Struktur Direktori ini merupakan struktur direktori yang paling sederhana. Semua berkas disimpan dalam direktori yang sama.
Direktori satu tingkat memiliki keterbatasan, yaitu bila berkas bertambah banyak atau bila sistem memiliki lebih dari satu pengguna. Hal ini disebabkan karena tiap berkas harus memiliki nama yang unik.
2.3. Direktori Dua Tingkat (Two Level Directory)
Membuat direktori yang terpisah untuk tiap pengguna, yang disebut User File Directory (UFD). Ketika pengguna login, master directory berkas dipanggil. MFD memiliki indeks berdasarkan nama pengguna dan setiap entri menunjuk pada UFD pengguna tersebut. Maka, pengguna boleh memiliki nama berkas yang sama dengan berkas lain.
Meskipun begitu, struktur ini masih memiliki kerugian, terutama bila beberapa pengguna
ingin mengerjakan tugas secara kerjasama dan ingin mengakses berkas dari salah satu
pengguna lain. Beberapa sistem secara sederhana tidak mengizinkan berkas seorang
pengguna diakses oleh pengguna lain.
2.4. Direktori dengan Struktur Tree (Tree-Structured Directory)Dalam struktur ini, setiap pengguna dapat membuat subdirektori sendiri dan mengorganisasikan berkas-berkasnya. Dalam penggunaan normal, tiap pengguna memiliki apa yang disebut direktori saat ini. Direktori saat ini mengandung berkas-berkas yang baru-baru ini digunakan oleh pengguna.
Terdapat dua istilah, path (lintasan) relatif dan lintasan mutlak. Lintasan relatif adalah
lintasan yang dimulai dari direktori saat ini, sedangkan lintasan mutlak adalah path yang
dimulai dari root directory.
2.5. Direktori dengan Struktur Graf Asiklik (Acyclic structured Directory)
2.5. Direktori dengan Struktur Graf Asiklik (Acyclic structured Directory)
Direktori dengan struktur tree melarang pembagian berkas/direktori. Oleh karena itu,
struktur graf asiklik memperbolehkan direktori untuk berbagi berkas atau subdirektori.
Jika ada berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini
menyediakan fasilitas sharing.
2.6. Direktori dengan Struktur Graf Umum
Masalah yang timbul dalam penggunaan struktur graf asiklik adalah meyakinkan apakah tidak ada siklus. Bila kita mulai dengan struktur direktori tingkat dua dan memperbolehkan pengguna untuk membuat subdirektori, maka kita akan mendapatkan struktur direktori tree. Sangatlah mudah untuk mempertahankan sifat pohon, akan tetapi, bila kita tambahkan sambungan pada direktori dengan struktur pohon, maka sifat pohon akan musnah dan menghasilkan struktur graf sederhana.
Bila siklus diperbolehkan dalam direktori, tentunya kita tidak ingin mencari sebuah
berkas 2 kali. Algoritma yang tidak baik akan menghasilkan infinite loop dan tidak
pernah berakhir. Oleh karena itu diperlukan skema pengumpulan sampah (garbagecollection
scheme).
Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai tiap berkas
yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak ditandai pada tempat
yang kosong. Hal ini tentunya dapat menghabiskan banyak waktu.
Tidak ada komentar:
Posting Komentar