Articles

File System

In Uncategorized on June 5, 2011 by Barock

Semua aplikasi komputer membutuhkan penyimpanan dan pengambilan informasi. Ketika sebuah proses sedang berjalan, proses tersebut menyimpan sejumlah informasi yang dibatasi oleh ukuran alamat virtual. Untuk beberapa aplikasi, ukuran ini cukup, namun untuk yang lainnya terlalu kecil.

Masalah berikutnya adalah apabila proses tersebut berhenti, maka informasinya akan hilang. Padahal ada beberapa informasi yang penting dan harus bertahan beberapa waktu, bahkan selamanya. Adapun masalah ketiga adalah terkadang sangat perlu lebih dari satu proses untuk mengakses satu informasi secara bersamaan. Untuk memecahkan masalah ini, informasi ini harus dapat berdiri sendiri tanpa bergantung pada sebuah proses.

Pada akhirnya, kita memiliki masalah- masalah yang cukup signifikan dan penting untuk dicari solusinya yaitu :

  1. Kita harus dapat menyimpan informasi dengan ukuran yang besar.
  2. Informasi harus tetap ada, meskipun proses berhenti.
  3. Informasi harus dapat diakses oleh lebih dari satu proses secara bersamaan.

Solusi dari ketiga masalah diatas adalah dengan kehadiran File System.

File Concept

File atau dalam bahasa indonesia disebu Berkas adalah kumpulan dari informasi yang saling berhubungan yang disimpan di secondary storage. Berkas dapat dipandang sebagai bagian terkecil dari secondary storage, sehingga dapat dikatakan bahwa data tidak dapat disimpan di secondary storage kecuali jika data tadi ditulis dalam berkas.

Setiap berkas mempunyai struktur tersendiri tergantung dari apa tipe berkas tersebut, diantaranya:

  • Text File Barisan dari karakter-karakter yang berurutan yang disusun dalam baris-baris atau halaman-halaman
  • Source File Sekumpulan barisan subrutin dan fungsi yang disusun atas deklarasi disusul dengan pernyataan atau statement yang dapat dijalankan.
  • Object FileSebarisan byte yang diatur menjadi blok-blok yang dapat dimengerti oleh penghubung sistem (linker system).
  • Executable FileSekumpulan bagian kode yang dapat dibawa ke memori untuk dijalankan oleh loader.

Attribute File

Setiap File diberi nama agar mempermudah kita untuk membedakannya. Nama file biasanya terdiri dari sederetan karakter. Dalam beberapa sistem, huruf besar dan huruf kecil dari nama berkas tersebut dianggap sama, sedangkan untuk sistem yang lain, hal itu dianggap berbeda. Setelah file diberi nama, nama dari file tersebut menjadi independen terhadap proses. Maksud dari independen disini adalah bahwa tindakan yang dilakukan user terhadap berkas, misalnya mengedit isinya, menyalin file tersebut ke disk, mengirimkannya lewat email dan tindakan-tindakan lainnya tidak akan mengubah nama dari file tersebut.

File mempunyai bermacam-macam atribut, yang dapat berbeda-beda antar satu sistem operasi dengan sistem operasi lainnya. Tapi umumnya, sebuah file memiliki atribut sebagai berikut:

  • Nama. Nama dari file yang dituliskan secara simbolik adalah satu-satunya informasi yang disimpan dalam bentuk yang dapat dibaca oleh kita.
  • IdentifierTag unik yang biasanya berupa angka, yang mengidentifikasikan file dalam sistem berkas. Identifier ini tidak dapat dibaca oleh manusia.
  • Jenis. Informasi yang dibutuhkan sistem yang biasanya medukung bermacam-macam tipe file yang berbeda.
  • Lokasi. Informasi yang berisi pointer ke device dan lokasi dari file dalam device tersebut.
  • Ukuran. Ukuran dari file saat ini, dan mungkin ukuran maksimum file juga dimasukkan dalam atribut ini.
  • Waktu, tanggal dan identifikasi pengguna . Informasi yang disimpan untuk pembuatan, modifikasi terakhir dan kapan file terakhir digunakan. Data-data ini dapat berguna dalam proteksi, keamanan dan monitoring penggunaan file.

Operasi File

Fungsi dari File adalah sebagai penyimpanan data dan mengijinkan kita untuk membacanya lagi nantinya. Adapun operasi-operasi dasar yang dapat dilakukan File adalah sebagai berikut:

  • Membuat File (Create File). Terdapat dua hal yang harus kita lakukan untuk membuat suatu File. Pertama, kita harus menemukan tempat dalam sistem File untuk File yang akan kita buat tadi. Kedua, adalah membuat entry untuk File tersebut. Entry ini mencatat nama dari File dan lokasinya dalam sistem.
  • Menulis sebuah File (Write File). Untuk menulis File, kita membuat sebuah system call yang meyebutkan nama File dan informasi apa yang akan kita tulis dalam File tersebut. Setelah diberikan nama Filenya, sistem akan mencari File yang akan kita tulis tadi dan meletakkan pointer di lokasi yang akan kita write berikutnya. Pointer write harus diupdate setiap kali write dilakukan.
  • Membaca sebuah File (Read File). Untuk membaca File, kita menggunakan sebuah system call yang menspesifikasikan nama file dan di blok mana di memori File harus diletakkan. Lalu direktori kembali dicari hingga ditemukan entry yang bersesuaian. Sistem harus menjaga agar pointer berada di posisi dimana read berikutnya akan dilakukan. Setelah pembacaan File selesai, maka pointer akan di-update.
  • Memposisikan sebuah File (Reposition). Direktori dicari untuk entry yang bersesuaian, lalu kemudian current file position dari File di set ke suatu nilai tertentu. Operasi File ini dikenal juga sebagai file seek.
  • Menghapus File (Delete). Untuk menghapus sebuah File, kita mencari direktori dari File yang ingin kita hapus tersebut, dan setelah ditemukan, semua tempat yang dipakai File tadi kita lepaskan sehingga dapat digunakan oleh File lainnya. Entry dari direktori itu kemudian dihapus.
  • Menghapus sebagian isi File (Truncate). User mungkin ingin menghapus isi dari sebuah File, tapi tetap ingin menjaga atribut-atributnya. Truncating file mengijinkan pendefinisian ulang panjang File menjadi nol tanpa mengubah atribut lainnya sehingga tempat yang digunakan oleh File dapat dilepaskan dan dipergunakan oleh File lain.

Membuka File

Setelah File dibuat, File tersebut dapat digunakan sebagai M/K. Pertama-tama, File tersebut harus dibuka. Perintah open() memberikan nama File kepada sistem, lalu sistem mencari direktori untuk nama yang diberikan tadi. Perintah open mengembalikan sebuah pointer ke entry yang bersesuaian. Pointer inilah yang kemudian akan digunakan untuk operasi-operasi pada File.

Informasi-informasi yang berkaitan dengan membuka File adalah sebagai berikut:

  1. File Pointer Dalam sistem yang tidak memasukkan file offset sebagai bagian dari system call read dan write, sistem harus mengetahui lokasi terakhir dari read dan write sebagai current-file-posistion pointer. Pointer dari tiap proses pada file sifatnya unik.
  2. File Open Count Ketika sebuah File ditutup, sistem operasi harus bisa menggunakan lagi tabel entry open-file agar entry dalam tabel tersebut tidak habis. Karena suatu File dapat dibuka oleh berbagai proses, sistem harus mengunggu hingga seluruh proses yang menggunakan File tersebut selesai untuk bisa menghapus entry di tabel open-file.
  3. Disc Location of the File Kebanyakan operasi yang kita lakukan akan mengubah data di dalam File. Oleh karena itu, informasi yang diperlukan untuk menentukan lokasi File di dalam disk disimpan di memori untuk mecegah pembacaan berulang dari disk untuk setiap operasi.
  4. Access Right Tiap proses membuka File dalam access mode . Informasi ini disimpan pada tabel per-process sehingga sistem operasi dapat mengijinkan atau menolak permintaan M/K.

Jenis File

Jenis File merupakan salah satu atribut File yang cukup penting. Saat kita mendesain sebuah sistem File, kita perlu mempertimbangkan bagaimana sistem operasi akan mengenali File-File dengan jenis yang berbeda. Apabila sistem operasi dapat mengenali, maka membuka File tersebut bukan suatu masalah. Seperti contohnya, apabila kita hendak mencari bentuk obyek biner sebuah program, yang tercetak biasanya tidak dapat dibaca, namun hal ini dapat dihindari apabila sistem operasi telah diberitahu akan adanya jenis File tersebut.

Cara yang paling umum untuk mengimplementasikan jenis bekas tersebut adalah dengan memasukkan jenis File tersebut ke dalam nama File. Nama File dibagi menjadi dua bagian. Bagian pertama adalah nama dari jenis File tersebut, dan yang kedua, atau biasa disebut extension adalah jenis dari File tersebut. Kedua nama ini biasanya dipisahkan dengan tanda ‘.’, contoh: “File.txt”.
stye=”border-bottom:1px solid #ccc;”
contoh Jenis-jenis File

JENIS FILE EXTENSION FUNGSI
Executable exe, com, bin, atau tidak ada Siap menjalankan program bahasa mesin
Object obj atau o Dikompilasi, bahasa mesin, tidak terhubung (link)
Source code c, cc, java, asm, pas Kode-kode program dalam berbagai bahasa pemrograman
Batch bat, sh Memerintahkan ke command intepreter
Text txt, doc Data text, dokumen
Word processor wp, tex, rtf, doc Macam-macam format dari text processor
Library lib, a, sol, dll Libraries dan routine untuk programmer
Print/ view jpg, pdf, ps File ASCII/binary dalam format untuk mencetak atau melihat
Archive zip, tar File-File yang berhubungan dikelompokkan ke dalam satu File, dikompres, untuk pengarsipan
Multimedia mpeg, mov, rm File binary yang berisi informasi audio atau A/V

Struktur File

File-File tertentu harus mempunyai struktur yang dimengerti oleh sistem operasi. Contohnya, sistem operasi mungkin mensyaratkan bahwa sebuah File executable harus mempunyai struktur yang spesifik sehingga dapat ditentukan dimana File tersebut dapat di-load dari memori dan dimana lokasi dari instruksi pertama. File 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 File, yang dilihatnya hanya bytes. Ini menyediakan fleksibilitas yang maksimum. User dapat menaruh apapun yang mereka mau dalam File, dan sistem operasi tidak membantu, namun tidak juga menghalangi.

Cara yang kedua adalah dengan record sequence. Dalam model ini semua File 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 File 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.

Metode Akses File

File menyimpan informasi. Apabila sedang digunakan informasi ini harus diakses dan dibaca melalui memori komputer. Informasi dalam File dapat diakses dengan beberapa cara, yaitu:

  1. Akses sekuensial. Akses ini merupakan yang paling sederhana dan paling umum digunakan. Informasi dalam File diproses secara berurutan. Sebagai contoh, editor dan kompilator biasanya mengakses File dengan cara ini.
  2. Akses langsung (relative access) . Sebuah File dibuat dari rekaman-rekaman logical yang panjangnya sudah ditentukan, yang mengizinkan program untuk membaca dan menulis rekaman secara cepat tanpa urutan tertentu.

Proteksi File

Saat sebuah informasi disimpan di komputer, kita menginginkan agar informasi tersebut aman dari kerusakan fisik (ketahanan) dan akses yang tidak semestinya (proteksi).

Ketahanan biasanya disediakan dengan duplikasi dari File. Banyak komputer yang mempunyai program sistem yang secara otomatis menyalin File dari disk ke tape dalam interval tertentu (misalnya sekali dalam sehari, atau seminggu, atau sebulan) untuk menjaga copy -an File agar tidak rusak secara tidak disengaja. Sistem File dapat rusak karena masalah hardware (seperti error dalam membaca atau menulis), mati listrik, debu, suhu yang ekstrim, atau perusakan dengan sengaja. Bug dalam software sistem File juga dapat mengakibatkan isi dari dokumen hilang.

  1. Tipe-tipe akses. Kebutuhan untuk mengamankan File berhubungan langsung dengan kemampuan untuk mengakses File. Kita bisa menyediakan proteksi secara menyeluruh dengan pelarangan akses. Kita juga dapat menyediakan akses bebas tanpa proteksi. Kedua pendekatan tersebut terlalu ekstrem untuk penggunaan umum, sehingga yang kita butuhkan adalah akses yang terkontrol.

Mekanisme proteksi menyediakan akses yang terkontrol dengan membatasi tipe dari akses terhadap File yang dapat dibuat. Akses diizinkan atau tidak tergantung pada beberapa faktor, salah satunya adalah tipe dari akses yang diminta. Beberapa tipe operasi yang bisa dikontrol:

  • Read. membaca dari File.
  • Write. menulis atau menulis ulang File.
  • Execute. me-load File ke memori dan mengeksekusinya..
  • Append. menulis informasi baru di akhir File.
  • Delete. menghapus File dan mengosongkan spacenya untuk kemungkinan digunakan kembali.
  • List. mendaftar nama dan atribut File.
  1. Kontrol akses.  Pendekatan paling umum dalam masalah proteksi adalah untuk membuat akses tergantung pada identitas pengguna. Pengguna yang bervariasi mungkin membutuhkan tipe akses yang berbeda atas suatu File atau direktori. Skema yang paling umum untuk mengimplementasikannya adalah dengan mengasosiasikan setiap File dan direktori pada sebuah list kontrol akses, yang menspesifikasikan user name dan tipe akses yang diperbolehkan untuk setiap user. Saat seorang pengguna meminta untuk mengakses suatu File, sistem operasi akan mengecek daftar akses yang berhubungan dengan File tersebut. Apabila pengguna tersebut ada di dalam daftar, maka akses tersebut diizinkan. Jika tidak, terjadi pelanggaran proteksi, dan pengguna tidak akan diizinkan untuk mengakses File tersebut.

Masalah utama dengan pendekatan ini adalah panjang dari daftar yang harus dibuat. Tapi dapat dipecahkan dengan cara menggunakan daftar dalam versi yang di- condense. Untuk itu, pengguna dapat diklasifikasikan ke dalam tiga kelas:

  • Owner. pengguna yang membuat File tersebut.
  • Group. sekelompok pengguna yang berbagi File dan memiliki akses yang sama.
  • Universe. semua pengguna yang lain.
  1. Pendekatan lain.  Pendekatan lain dalam masalah proteksi adalah dengan memberikan kata kunci untuk setiap File.

Leave a comment

Design a site like this with WordPress.com
Get started