Penguins

Senin, 17 September 2012

teknologiinformasi

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:
  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.
  6. Proteksi: informasi yang menentukan siapa yang dapat melakukan read, write,
  7. execute, dan lainnya.
  8. 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. 
  9.  
1.3. 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.

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

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
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.

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.

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)

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