Pengertian E-commerce
Electronic Commerce (E-Commerce) didefinisikan sebagai proses pembelian dan penjualan produk, jasa dan informasi yang dilakukan secara elektronik dengan memanfaatkan jaringan komputer. Salah satu jaringan yang digunakan adalah internet.
Sementara itu Kalakota dan Whinston mendefinisikan E-Commerce dari beberapa perspektif, yaitu:
1. Dari perspektif komunikasi, E-Commerce adalah pengiriman informasi, produk/jasa, atau pembayaran melalui jaringan telepon, atau jalur komunikasi lainnya;
2. Dari perspektif proses bisnis, E-Commerce adalah aplikasi teknologi menuju otomatisasi transaksi bisnis dan work flow;
3. Dari perspektif pelayanan, E-Commerce adalah alat yang digunakan untuk mengurangi biaya dalam pemesanan dan pengiriman barang; dan
4. Dari perspektif online, E-Commerce menyediakan kemampuan untuk menjual dan membeli produk serta informasi melalui internet dan jaringan jasa online lainnya.
Selanjutnya Yuan Gao dalam Encyclopedia of Information Science and Technology (2005), menyatakan E-Commerce adalah penggunaan jaringan komputer untuk melakukan komunikasi bisnis dan transksaksi komersial. Kemudian di website E-Commerce Net, E-Commerce didefinisikan sebagai kegiatan menjual barang dagangan dan/atau jasa melalui internet. Seluruh komponen yang terlibat dalam bisnis praktis diaplikasikan disini, seperti customer service, produk yang tersedia, cara pembayaran, jaminan atas produk yang dijual, cara promosi dan sebagainya.
Seluruh definisi yang dijelaskan di atas pada dasarnya memiliki kesamaan yang mencakup komponen transaksi (pembeli, penjual, barang, jasa dan informasi), subyek dan obyek yang terlibat, serta media yang digunakan (dalam hal ini adalah internet).
Perkembangan teknologi informasi terutama internet, merupakan faktor pendorong perkembangan e-commerce. Internet merupakan jaringan global yang menyatukan jaringan komputer di seluruh dunia, sehingga memungkinkan terjalinnya komunikasi dan interaksi antara satu dengan yang lain diseluruh dunia. Dengan menghubungkan jaringan komputer perusahaan dengan internet, perusahaan dapat menjalin hubungan bisnis dengan rekan bisnis atau konsumen secara lebih efisien. Sampai saat ini internet merupakan infrastruktur yang ideal untuk menjalankan e-commerce, sehingga istilah E-Commerce pun menjadi identik dengan menjalankan bisnis di internet.
Pertukaran informasi dalam E-Commerce dilakukan dalam format dijital sehingga kebutuhan akan pengiriman data dalam bentuk cetak dapat dihilangkan. Dengan menggunakan sistem komputer yang saling terhubung melalui jaringan telekomunikasi, transaksi bisnis dapat dilakukan secara otomatis dan dalam waktu yang singkat. Akibatnya informasi yang dibutuhkan untuk keperluan transaksi bisnis tersedia pada saat diperlukan. Dengan melakukan bisnis secara elektronik, perusahaan dapat menekan biaya yang harus dikeluarkan untuk keperluan pengiriman informasi. Proses transaksi yang berlangsung secara cepat juga mengakibatkan meningkatnya produktifitas perusahaan.
Dengan menggunakan teknologi informasi, E-Commerce dapat dijadikan sebagai solusi untuk membantu perusahaan dalam mengembangkan perusahaan dan menghadapi tekanan bisnis. Tingginya tekanan bisnis yang muncul akibat tingginya tingkat persaingan mengharuskan perusahaan untuk dapat memberikan respon. Penggunaan E-Commerce dapat meningkatkan efisiensi biaya dan produktifitas perusahaan, sehingga dapat meningkatkan kemampuan perusahaan dalam bersaing.
Sumber : http://www.balinter.net
Selasa, 30 Juni 2009
Sabtu, 23 Mei 2009
Sistem Berkas
Berkas
Konsep Dasar
Seperti yang telah kita ketahui, 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 non-volatile, sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik mau pun 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 mau pun bentuk objek) dan data. Data dari berkas dapat bersifat numerik, alfabetik, alfanumerik, atau pun 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 jenis informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas, sesuai dengan jenisnya masing-masing. Contohnya:
Text file; yaitu urutan karakter yang disusun ke dalam baris-baris.
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, atau pun blok
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:
pembuatan berkas,
modifikasi terakhir yang dilakukan pada berkas, dan
penggunaan terakhir berkas.
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 non-volatile, sehingga keduanya harus disimpan pada sebuah device dan baru dibawa bagian per bagian ke memori pada saat dibutuhkan.
Operasi Pada Berkas
Sebuah berkas adalah jenis 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 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 mengizinkan 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 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 sistem memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. 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 memori virtual yang digunakan oleh proses.
Jenis Berkas
Pertimbangan utama dalam perancangan sistem berkas dan seluruh sistem operasi, apakah sistem operasi harus mengenali dan mendukung jenis berkas. Jika suatu sistem operasi mengenali jenis 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 jenis berkas adalah menambahkan jenis berkas dalam nama berkas. Nama dibagi dua, nama dan akhiran (ekstensi), biasanya dipisahkan dengan karakter titik. Sistem menggunakan akhiran tersebut untuk mengindikasikan jenis berkas dan jenis 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 jenis dari berkas dapat menjadi petunjuk aplikasi apa yang dapat mengoperasikannya.
Sistem UNIX tidak dapat menyediakan dukungan untuk akhiran berkas karena menggunakan angka ajaib yang disimpan di depan berkas untuk mengenali jenis 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 jenis isi dari suatu berkas.
Struktur Berkas
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.
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.
Penggunaan Berkas Secara Bersama-sama
Konsistensi semantik adalah parameter yang penting untuk evaluasi sistem berkas yang mendukung penggunaan berkas secara bersama. Hal ini juga merupakan karakterisasi dari sistem yang menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara bersama-sama. Lebih khusus, semantik ini seharusnya dapat menspesifikasi kapan suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain. Terdapat beberapa macam konsistensi semantik. Di bawah ini akan dijelaskan kriteria yang digunakan dalam UNIX.
Berkas sistem UNIX mengikuti konsistensi semantik:
Penulisan ke berkas yang dibuka oleh pengguna dapat dilihat langsung oleh pengguna lain yang sedang mengakses ke berkas yang sama.
Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi ke berkas tersebut. Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya.
Metode Akses
Akses Secara Berurutan
Ketika digunakan, informasi penyimpanan berkas harus dapat diakses dan dibaca ke dalam memori komputer. Beberapa sistem hanya menyediakan satu metode akses untuk berkas. Pada sistem yang lain, contohnya IBM, terdapat banyak dukungan metode akses yang berbeda. Masalah pada sistem tersebut adalah memilih yang mana yang tepat untuk digunakan pada satu aplikasi tertentu.
Sequential Access merupakan metode yang paling sederhana. Informasi yang disimpan dalam berkas diproses berdasarkan urutan. Operasi dasar pada suatu berkas adalah tulis dan baca. Operasi baca membaca berkas dan meningkatkan pointer berkas selama di jalur lokasi I/O. Operasi tulis menambahkan ke akhir berkas dan meningkatkan ke akhir berkas yang baru. Metode ini didasarkan pada tape model sebuah berkas, dan dapat bekerja pada kedua jenis device akses (urut mau pun acak).
Akses Langsung
Direct Access merupakan metode yang membiarkan program membaca dan menulis dengan cepat pada berkas yang dibuat dengan fixed-length logical order tanpa adanya urutan. Metode ini sangat berguna untuk mengakses informasi dalam jumlah besar. Biasanya database memerlukan hal seperti ini. Operasi berkas pada metode ini harus dimodifikasi untuk menambahkan nomor blok sebagai parameter. Pengguna menyediakan nomor blok ke sistem operasi biasanya sebagai nomor blok relatif, yaitu indeks relatif terhadap awal berkas. Penggunaan nomor blok relatif bagi sistem operasi adalah untuk memutuskan lokasi berkas diletakkan dan membantu mencegah pengguna dari pengaksesan suatu bagian sistem berkas yang bukan bagian pengguna tersebut.
Akses Dengan Menggunakan Indeks
Metode ini merupakan hasil dari pengembangan metode direct access. Metode ini memasukkan indeks untuk mengakses berkas. Jadi untuk mendapatkan suatu informasi suatu berkas, kita mencari dahulu di indeks, lalu menggunakan pointer untuk mengakses berkas dan mendapatkan informasi tersebut. Namun metode ini memiliki kekurangan, yaitu apabila berkas-berkas besar, maka indeks berkas tersebut akan semakin besar. Jadi solusinya adalah dengan membuat 2 indeks, indeks primer dan indeks sekunder. Indeks primer memuat pointer ke indeks sekunder, lalu indeks sekunder menunjuk ke data yang dimaksud.
Struktur Direktori
Operasi Pada Direktori
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1.Mencari berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori. Karena berkas-berkas memiliki nama simbolik dan nama yang sama dapat mengindikasikan keterkaitan antara setiap berkas-berkas tersebut, mungkin kita berkeinginan untuk dapat menemukan seluruh berkas yang nama-nama berkas membentuk pola khusus.
2.Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori.
3.Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.
4.Menampilkan isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
5.Mengganti nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user, maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas dalam direktori.
6.Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.
Direktori Satu Tingkat
Ini adalah struktur direktori yang paling sederhana. Semua berkas disimpan di dalam direktori yang sama. Struktur ini tentunya memiliki kelemahan jika jumlah berkasnya bertambah banyak, karena tiap berkas mesti memiliki nama yang unik.
Direktori Dua Tingkat
Kelemahan yang ada pada direktori tingkat satu dapat diatas pada sistem direktori dua tingkat. Caranya ialah dengan membuat direktori secara terpisah. Pada direktori tingkat dua, setiap pengguna memiliki direktori berkas sendiri (UFD). Setiap UFD memiliki struktur yang serupa, tapi hanya berisi berkas-berkas dari seorang pengguna.
Ketika seorang pengguna login, master direktori berkas (MFD) dicari. Isi dari MFD adalah indeks dari nama pengguna atau nomor rekening, dan tiap entri menunjuk pada UFD untuk pengguna tersebut. Ketika seorang pengguna ingin mengakses suatu berkas, hanya UFD-nya sendiri yang diakses. Jadi pada setiap UFD yang berbeda, boleh terdapat nama berkas yang sama.
Direktori Dengan Struktur Tree
Struktur direktori dua tingkat bisa dikatakan sebagai pohon dua tingkat. Sebuah direktori dengan struktur pohon memiliki sejumlah berkas atau subdirektori lagi. Pada penggunaan yang normal setiap pengguna memiliki direktorinya sendiri-sendiri. Selain itu pengguna tersebut dapat memiliki subdirektori sendiri lagi.
Dalam struktur ini dikenal dua istilah, yaitu path relatif dan path mutlak. Path relatif adalah path yang dimulai dari direktori yang aktif. Sedangkan path mutlak adalah path yang dimulai dari direktori akar.
Direktori Dengan Struktur Acyclic-Graph
Jika ada sebuah berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas "sharing", yaitu penggunaan sebuah berkas secara bersama-sama. Hal ini tentunya berbeda dengan struktur pohon, dimana pada struktur tersebut penggunaan berkas atau direktori secara bersama-sama dilarang. Pada struktur "Acyclic-Graph", penggunaan berkas atau direktori secara bersama-sama diperbolehkan. Tapi pada umumnya struktur ini mirip dengan struktur pohon.
Direktori Dengan Struktur Graph
Masalah yang sangat utama pada struktur direktori "Acyclic-Graph" adalah kemampuan untuk memastikan tidak-adanya siklus. Jika pada struktur 2 tingkat direktori, seorang pengguna dapat membuat subdirektori, maka akan kita dapatkan direktori dengan struktur pohon. Sangatlah mudah untuk tetap mempertahankan sifat pohon setiap kali ada penambahan berkas atau subdirektori pada direktori dengan struktur pohon. Tapi jika kita menambahkan sambungan pada direktori dengan struktur pohon, maka akan kita dapatkan direktori dengan struktur graph sederhana.
Proses pencarian pada direktori dengan struktur "Acyclic-Graph", apabila tidak ditangani dengan baik (algoritma tidak bagus) dapat menyebabkan proses pencarian yang berulang dan menghabiskan banyak waktu. Oleh karena itu, diperlukan skema pengumpulan sampah ("garbage-collection scheme"). Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai tiap berkas yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak ditandai sebagai tempat kosong. Hal ini tentunya dapat menghabiskan banyak waktu.
Proteksi Berkas
Ketika kita menyimpan informasi dalam sebuah sistem komputer, ada dua hal yang harus menjadi perhatian utama kita. Hal tersebut adalah:
1.Reabilitas dari sebuah sistem
Maksud dari reabilitas sistem adalah kemampuan sebuah sistem untuk melindungi informasi yang telah disimpan agar terhindar dari kerusakan, dalam hal ini adalah perlindungan secara fisik pada sebuah berkas. Reabilitas sistem dapat dijaga dengan membuat cadangan dari setiap berkas secara manual atau pun otomatis, sesuai dengan layanan yang dari sebuah sistem operasi. Reabilitas Sistem akan dibahas lebih lanjut pada bagian berjudul Kehandalan Disk di Bab 6.
2.Proteksi (Perlindungan) terhadap sebuah berkas
Perlindungan terhadap berkas dapat dilakukan dengan berbagai macam cara. Pada bagian ini, kita akan membahas secara detil mekanisme yang diterapkan dalam melindungi sebuah berkas.
Tipe Akses Pada Berkas
Salah satu cara untuk melindungi berkas dalam komputer kita adalah dengan melakukan pembatasan akses pada berkas tersebut. Pembatasan akses yang dimaksudkan adalah kita, sebagai pemilik dari sebuah berkas, dapat menentukan operasi apa saja yang dapat dilakukan oleh pengguna lain terhadap berkas tersebut. Pembatasan ini berupa sebuah permission atau pun not permitted operation, tergantung pada kebutuhan pengguna lain terhadap berkas tersebut. Di bawah ini adalah beberapa operasi berkas yang dapat diatur aksesnya:
1.Read: Membaca dari berkas
2.Write: Menulis berkas
3.Execute: Meload berkas kedalam memori untuk dieksekusi.
4.Append: Menambahkan informasi kedalam berkas di akhir berkas.
5.Delete: Menghapus berkas.
6.List: Mendaftar properti dari sebuah berkas.
7.Rename: Mengganti nama sebuah berkas.
8.Copy: Menduplikasikan sebuah berkas.
9.Edit: Mengedit sebuah berkas.
Selain operasi-operasi berkas diatas, perlindungan terhadap berkas dapat dilakukan dengan mekanisme yang lain. Namun setiap mekanisme memiliki kelebihan dan kekurangan. Pemilihan mekanisme sangatlah tergantung pada kebutuhan dan spesifikasi sistem.
Akses List dan Group
Hal yang paling umum dari sistem proteksi adalah membuat akses tergantung pada identitas pengguna yang bersangkutan. Implementasi dari akses ini adalah dengan membuat daftar akses yang berisi keterangan setiap pengguna dan keterangan akses berkas dari pengguna yang bersangkutan. Daftar akses ini akan diperiksa setiap kali seorang pengguna meminta akses ke sebuah berkas. Jika pengguna tersebut memiliki akses yang diminta pada berkas tersebut, maka diperbolehkan untuk mengakses berkas tersebut. Proses ini juga berlaku untuk hal yang sebaliknya. Akses pengguna terhadap berkas akan ditolak, dan sistem operasi akan mengeluarkan peringatan Protection Violation.
Masalah baru yang timbul adalah panjang dari daftar akses yang harus dibuat. Seperti telah disebutkan, kita harus mendaftarkan semua pengguna dalam daftar akses tersebut hanya untuk akses pada satu berkas saja. Oleh karena itu, teknik ini mengakibatkan 2 konsekuensi yang tidak dapat dihindarkan:
1.Pembuatan daftar yang sangat panjang ini dapat menjadi pekerjaan yang sangat melelahkan sekaligus membosankan, terutama jika jumlah pengguna dalam sistem tidak dapat diketahui secara pasti.
2.Manajemen ruang harddisk yang lebih rumit, karena ukuran sebuah direktori dapat berubah-ubah, tidak memiliki ukuran yang tetap.
Kedua konsekuensi diatas melahirkan sebuah teknik daftar akses yang lebih singkat. Teknik ini mengelompokkan pengguna berdasarkan tiga kategori:
1.Owner: User yang membuat berkas.
2.Group: Sekelompok pengguna yang memiliki akses yang sama terhadap sebuah berkas, atau men-share sebuah berkas.
3.Universe: Seluruh pengguna yang terdapat dalam sistem komputer.
Dengan adanya pengelompokkan pengguna seperti ini, maka kita hanya membutuhkan tiga field untuk melindungi sebuah berkas. Field ini diasosiasikan dengan 3 buah bit untuk setiap kategori. Dalam sistem UNIX dikenal bit rwx dengan bit r untuk mengontrol akses baca, bit w sebagai kontrol menulis dan bit x sebagai bit kontrol untuk pengeksekusian. Setiap field dipisahkan dengan field separator. Dibawah ini adalah contoh dari sistem proteksi dengan daftar akses pada sistem UNIX.
Pendekatan Sistem Proteksi yang Lain
Sistem proteksi yang lazim digunakan pada sistem komputer selain diatas adalah dengan menggunakan password (kata sandi) pada setiap berkas. Beberapa sistem operasi mengimplementasikan hal ini bukan hanya pada berkas, melainkan pada direktori. Dengan sistem ini, sebuah berkas tidak akan dapat diakses selain oleh pengguna yang telah mengetahui password untuk berkas tersebut. Akan tetapi, masalah yang muncul dari sistem ini adalah jumlah password yang harus diingat oleh seorang pengguna untuk mengakses berkas dalam sebuah sistem operasi. Masalah yang lain adalah keamanan password itu sendiri. Jika hanya satu password yang digunakan, maka kebocoran password tersebut merupakan malapetaka bagi pengguna yang bersangkutan. Sekali lagi, maka kita harus menggunakan password yang berbeda untuk setiap tingkatan yang berbeda.
Struktur Sistem Berkas
Disk menyediakan sebagian besar tempat penyimpanan dimana sistem berkas dikelola dikelola. Untuk meningkatkan efisiensi I/O, pengiriman data antara memori dan disk dilakukan dalam setiap blok. Setiap blok merupakan satu atau lebih sektor. Setiap disk memiliki ukuran yang berbeda-beda, biasanya berukuran 512 bytes. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas, yaitu:
Disk tersebut dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut.
Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut mau pun tidak berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar.
Organisasi Sistem Berkas
Sistem operasi menyediakan sistem berkas agar data mudah disimpan, diletakkan dan diambil kembali dengan mudah. Terdapat dua masalah desain dalam membangun suatu sistem berkas. Masalah pertama adalah definisi dari sistem berkas. Hal ini mencakup definisi berkas dan atributnya, operasi ke berkas, dan struktur direktori dalam mengorganisasikan berkas-berkas. Masalah kedua adalah membuat algoritma dan struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan sekunder. Pada dasarnya sistem berkas tersusun atas beberapa tingkatan, yaitu (dari yang terendah):
I/O control, terdiri atas driver device dan interrupt handler. Driver device adalah perantara komunikasi antara sistem operasi dengan perangkat keras.
Basic file system, diperlukan untuk mengeluarkan perintah generik ke device driver untuk baca dan tulis pada suatu blok dalam disk.
File-organization module, informasi tentang alamat logika dan alamat fisik dari berkas tersebut. Modul ini juga mengatur sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat user ingin menulis berkas ke dalam disk.
Logical file system, tingkat ini berisi informasi tentang simbol nama berkas, struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut.
Gambar 5-1. Lapisan pada sistem berkas. Sumber: . . .
Mounting Sistem Berkas
Seperti halnya sebuah berkas yang harus dibuka terlebih dahulu sebelum digunakan, sistem berkas harus di mount terlebih dahulu sebelum sistem berkas tersebut siap untuk memproses dalam sistem. Sistem operasi diberikan sebuah alamat mounting (mount point) yang berisi nama device yang bersangkutan dan lokasi dari device tersebut.
Metode Alokasi Berkas
Kemudahan dalam mengakses langsung suatu disk memberikan fleksibilitas dalam mengimplementasikan sebuah berkas. Masalah utama dalam implementasi adalah bagaimana mengalokasikan berkas-berkas ke dalam disk, sehingga disk dapat terutilisasi dengan efektif dan berkas dapat diakses dengan cepat. Ada tiga metode utama, menurut buku "Applied Operating System Concepts: First Edition" oleh Avi Silberschatz, Peter Galvin dan Greg Gagne untuk mengalokasi ruang disk yang digunakan secara luas yaitu, contiguous, linked, dan indexed.
Alokasi Secara Berdampingan (Contiguous Allocation)
Metode ini menempatkan setiap berkas pada satu himpunan blok yang berurut di dalam disk. Alamat disk menyatakan sebuah urutan linier. Dengan urutan linier ini maka head disk hanya bergerak jika mengakses dari sektor terakhir suatu silinder ke sektor pertama silinder berikutnya. Waktu pencarian (seek time) dan banyak disk seek yang dibutuhkan untuk mengakses berkas yang di alokasi secara berdampingan ini sangat minimal. Contoh dari sistem operasi yang menggunakan contiguous allocation adalah IBM VM/ CMS karena pendekatan ini menghasilkan performa yang baik.
Contiguous allocation dari suatu berkas diketahui melalui alamat dan panjang disk (dalam unit blok) dari blok pertama. Jadi, misalkan ada berkas dengan panjang n blok dan mulai dari lokasi b maka berkas tersebut menempati blok b, b+1, b+2, ..., b+n-1. Direktori untuk setiap berkas mengindikasikan alamat blok awal dan panjang area yang dialokasikan untuk berkas tersebut. Terdapat dua macam cara untuk mengakses berkas yang dialokasi dengan metode ini, yaitu:
Sequential access, sistem berkas mengetahui alamat blok terakhir dari disk dan membaca blok berikutnya jika diperlukan.
Direct access, untuk akses langsung ke blok i dari suatu berkas yang dimulai pada blok b, dapat langsung mengakses blok b+i.
Kesulitan dari metode alokasi secara berdampingan ini adalah menemukan ruang untuk berkas baru. Masalah pengalokasian ruang disk dengan metode ini merupakan aplikasi masalah dari dynamic storage-allocation (alokasi tempat penyimpanan secara dinamik), yaitu bagaimana memenuhi permintaan ukuran n dari daftar ruang kosong. Strategi-strategi yang umum adalah first fit dan best fit. Kedua strategi tersebut mengalami masalah fragmentasi eksternal, dimana jika berkas dialokasi dan dihapus maka ruang kosong disk terpecah menjadi kepingan-kepingan kecil. Hal ini akan menjadi masalah ketika banyak kepingan kecil tidak dapat memenuhi permintaan karena kepingan-kepingan kecil tidak cukup besar untuk menyimpan berkas, sehingga terdapat banyak ruang yang terbuang.
Masalah yang lain adalah menentukan berapa banyak ruang yang diperlukan untuk suatu berkas. Ketika berkas dibuat, jumlah dari ruang berkas harus ditentukan dan dialokasikan. Jika ruang yang dialokasikan terlalu kecil maka berkas tidak dapat diperbesar dari yang telah dialokasikan. Untuk mengatasi hal ini ada dua kemungkinan. Pertama, program pengguna dapat diakhiri dengan pesan error yang sesuai. Lalu, pengguna harus mengalokasikan tambahan ruang dan menjalankan programnya lagi, tetapi hal ini cost yang dihasilkan lebih mahal. Untuk mengatasinya, pengguna dapat melakukan estimasi yang lebih terhadap ruang yang harus dialokasikan pada suatu berkas tetapi hal ini akan membuang ruang disk. Kemungkinan yang kedua adalah mencari ruang kosong yang lebih besar, lalu menyalin isi dari berkas ke ruang yang baru dan mengkosongkan ruang yang sebelumnya. Hal ini menghabiskan waktu yang cukup banyak. Walau pun jumlah ruang yang diperlukan untuk suatu berkas dapat diketahui, pengalokasian awal akan tidak efisien. Ukuran berkas yang bertambah dalam periode yang lama harus dapat dialokasi ke ruang yang cukup untuk ukuran akhirnya, walau pun ruang tersebut tidak akan digunakan dalam waktu yang lama. Hal ini akan menyebabkan berkas dengan jumlah fragmentasi internal yang besar.
Untuk menghindari hal-hal tersebut, beberapa sistem operasi memodifikasi skema metode alokasi secara berdampingan, dimana kepingan kecil yang berurut dalam ruang disk diinisialisasi terlebih dahulu, kemudian ketika jumlah ruang disk kurang besar, kepingan kecil yang berurut lainnya, ditambahkan pada alokasi awal. Kejadian seperti ini disebut perpanjangan. Fragmentasi internal masih dapat terjadi jika perpanjangan-perpanjangan ini terlalu besar dan fragmentasi eksternal masih menjadi masalah begitu perpanjangan-perpanjangan dengan ukuran yang bervariasi dialokasikan dan didealokasi.
Alokasi Secara Berangkai (Linked Allocation)
Metode ini menyelesaikan semua masalah yang terdapat pada contiguous allocation. Dengan metode ini, setiap berkas merupakan linked list dari blok-blok disk, dimana blok-blok disk dapat tersebar di dalam disk. Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan akhir blok sebuah berkas. Setiap blok mempunyai penunjuk ke blok berikutnya. Untuk membuat berkas baru, kita dengan mudah membuat masukan baru dalam direktori. Dengan metode ini, setiap direktori masukan mempunyai penunjuk ke awal blok disk dari berkas. Penunjuk ini diinisialisasi menjadi nil (nilai penunjuk untuk akhir dari list) untuk menandakan berkas kosong. Ukurannya juga diset menjadi 0. Penulisan suatu berkas menyebabkan ditemukannya blok yang kosong melalui sistem manajemen ruang kosong (free-space management system), dan blok baru ini ditulis dan disambungkan ke akhir berkas. Untuk membaca suatu berkas, cukup dengan membaca blok-blok dengan mengikuti pergerakan penunjuk.
Metode ini tidak mengalami fragmentasi eksternal dan kita dapat menggunakan blok kosong yang terdapat dalam daftar ruang kosong untuk memenuhi permintaan pengguna. Ukuran dari berkas tidak perlu ditentukan ketika berkas pertama kali dibuat, sehingga ukuran berkas dapat bertambah selama masih ada blok-blok kosong.
Metode ini tentunya mempunyai kerugian, yaitu metode ini hanya dapat digunakan secara efektif untuk pengaksesan berkas secara sequential (sequential-access file). Untuk mencari blok ke-i dari suatu berkas, harus dimulai dari awal berkas dan mengikuti penunjuk sampai berada di blok ke-i. Setiap akses ke penunjuk akan membaca disk dan kadang melakukan pencarian disk (disk seek). Hal ini sangat tidak efisien untuk mendukung kemampuan akses langsung (direct-access) terhadap berkas yang menggunakan metode alokasi link. Kerugian yang lain dari metode ini adalah ruang yang harus disediakan untuk penunjuk. Solusi yang umum untuk masalah ini adalah mengumpulkan blok-blok persekutuan terkecil dinamakan clusters dan mengalokasikan cluster-cluster daripada blok. Dengan solusi ini maka, penunjuk menggunakan ruang disk berkas dengan persentase yang sangat kecil. Metode ini membuat mapping logikal ke fisikal blok tetap sederhana, tetapi meningkatkan disk throughput dan memperkecil ruang yang diperlukan untuk alokasi blok dan management daftar kosong (free-list management). Akibat dari pendekatan ini adalah meningkatnya fragmentasi internal, karena lebih banyak ruang yang terbuang jika sebuah cluster sebagian penuh daripada ketika sebuah blok sebagian penuh. Alasan cluster digunakan oleh kebanyakan sistem operasi adalah kemampuannya yang dapat meningkatkan waktu akses disk untuk berbagai macam algoritma.
Masalah yang lain adalah masalah daya tahan metode ini. Karena semua berkas saling berhubungan dengan penunjuk yang tersebar di semua bagian disk, apa yang terjadi jika sebuah penunjuk rusak atau hilang. Hal ini menyebabkan berkas menyambung ke daftar ruang kosong atau ke berkas yang lain. Salah satu solusinya adalah menggunakan linked list ganda atau menyimpan nama berkas dan nomor relatif blok dalam setiap blok, tetapi solusi ini membutuhkan perhatian lebih untuk setiap berkas.
Variasi penting dari metode ini adalah penggunaan file allocation table (FAT), yang digunakan oleh sistem operasi MS-DOS dan OS/2. Bagian awal disk pada setiap partisi disingkirkan untuk menempatkan tabelnya. Tabel ini mempunyai satu masukkan untuk setiap blok disk, dan diberi indeks oleh nomor blok. Masukkan direktori mengandung nomor blok dari blok awal berkas. Masukkan tabel diberi indeks oleh nomor blok itu lalu mengandung nomor blok untuk blok berikutnya dari berkas. Rantai ini berlanjut sampai blok terakhir, yang mempunyai nilai akhir berkas yang khusus sebagai masukkan tabel. Blok yang tidak digunakan diberi nilai 0. Untuk mengalokasi blok baru untuk suatu berkas hanya dengan mencari nilai 0 pertama dalam tabel, dan mengganti nilai akhir berkas sebelumnya dengan alamat blok yang baru. Metode pengalokasian FAT ini dapat menghasilkan jumlah pencarian head disk yang signifikan, jika berkas tidak di cache. Head disk harus bergerak dari awal partisi untuk membaca FAT dan menemukan lokasi blok yang ditanyakan, lalu menemukan lokasi blok itu sendiri. Kasus buruknya, kedua pergerakan terjadi untuk setiap blok. Keuntungannya waktu random akses meningkat, akibat dari head disk dapat mencari lokasi blok apa saja dengan membaca informasi dalam FAT.
Alokasi Dengan Indeks (Indexed Allocation)
Metode alokasi dengan berangkai dapat menyelesaikan masalah fragmentasi eksternal dan pendeklarasian ukuran dari metode alokasi berdampingan. Bagaimana pun tanpa FAT, metode alokasi berangkai tidak mendukung keefisiensian akses langsung, karena penunjuk ke bloknya berserakan dengan bloknya didalam disk dan perlu didapatkan secara berurutan. Metode alokasi dengan indeks menyelesaikan masalah ini dengan mengumpulkan semua penunjuk menjadi dalam satu lokasi yang dinamakan blok indeks (index block). Setiap berkas mempunyai blok indeks, yang merupakan sebuah larik array dari alamat-alamat disk-blok. Direktori mempunyai alamat dari blok indeks. Ketika berkas dibuat, semua penunjuk dalam blok indeks di set menjadi nil. Ketika blok ke-i pertama kali ditulis, sebuah blok didapat dari pengatur ruang kosong free-space manager dan alamatnya diletakkan ke dalam blok indeks ke-i.
Metode ini mendukung akses secara langsung, tanpa mengalami fragmentasi eksternal karena blok kosong mana pun dalam disk dapat memenuhi permintaan ruang tambahan. Tetapi metode ini dapat menyebabkan ada ruang yang terbuang. Penunjuk yang berlebihan dari blok indeks secara umum lebih besar dari yang terjadi pada metode alokasi berangkai.
Mekanisme untuk menghadapi masalah berapa besar blok indeks yang diperlukan sebagai berikut:
Linked scheme: untuk berkas-berkas yang besar, dilakukan dengan menyambung beberapa blok indeks menjadi satu.
Multilevel index: sebuah varian dari representasi yang berantai adalah dengan menggunakan blok indeks level pertama menunjuk ke himpunan blok indeks level kedua, yang akhirnya menunjuk ke blok-blok berkas.
Combined scheme: digunakan oleh sistem BSD UNIX yaitu dengan menetapkan 15 penunjuk dari blok indeks dalam blok indeksnya berkas. 12 penunjuk pertama menunjuk ke direct blocks yang menyimpan alamat-alamat blok yang berisi data dari berkas. 3 penunjuk berikutnya menunjuk ke indirect blocks. Penunjuk indirect blok yang pertama adalah alamat dari single indirect block, yang merupakan blok indeks yang berisi alamat-alamat blok yang berisi data. Lalu ada penunjuk double indirect block yang berisi alamat dari sebuah blok yang berisi alamat-alamat blok yang berisi penunjuk ke blok data yang sebenarnya.
Kinerja Sistem Berkas
Salah satu kesulitan dalam membandingkan performa sistem adalah menentukan bagaimana sistem tersebut akan digunakan. Sistem yang lebih banyak menggunakan akses sekuensial (berurutan) akan memakai metode yang berbeda dengan sistem yang lebih sering menggunakan akses random (acak). Untuk jenis akses apa pun, alokasi yang berdampingan hanya memerlukan satu akses untuk mendapatkan sebuah blok disk. Karena kita dapat menyimpan initial address dari berkas di dalam memori, maka alamat disk pada blok ke-i dapat segera dikalkulasi dan dibaca secara langsung.
Untuk alokasi berangkai (linked list), kita juga dapat menyimpan alamat dari blok selanjutnya ke dalam memori, lalu membacanya secara langsung. Metode ini sangat baik untuk akses sekuensial, namun untuk akses langsung, akses menuju blok ke-ikemungkinan membutuhkan pembacaan disk sebanyak i kali. Masalah ini mengindikasikan bahwa alokasi berangkai sebaiknya tidak digunakan untuk aplikasi yang membutuhkan akses langsung.
Oleh sebab itu, beberapa sistem mendukung akses langsung dengan menggunakan alokasi berdampingan (contiguous allocation), serta akses berurutan dengan alokasi berangkai. Untuk sistem-sistem tersebut, jenis akses harus dideklarasikan pada saat berkas dibuat. Berkas yang dibuat untuk akses sekuensial (berurutan) akan dirangkaikan dan tidak dapat digunakan untuk akses langsung. Berkas yang dibuat untuk akses langsung akan berdampingan dan dapat mendukung baik akses langsung mau pun akses berurutan, dengan mendeklarasikan jarak maksimum. Perhatikan bahwa sistem operasi harus mendukung struktur data dan algoritma yang sesuai untuk mendukung kedua metode alokasi di atas.
Alokasi dengan menggunakan indeks lebih rumit lagi. Jika blok indeks telah terdapat dalam memori, akses dapat dilakukan secara langsung. Namun, menyimpan blok indeks dalam memori memerlukan ruang (space) yang besar. Jika ruang memori tidak tersedia, maka kita mungkin harus membaca blok indeks terlebih dahulu, baru kemudian blok data yang diinginkan. Untuk indeks dua tingkat, pembacaan dua blok indeks mungkin diperlukan. Untuk berkas yang berukuran sangat besar, mengakses blok di dekat akhir suatu berkas akan membutuhkan pembacaan seluruh blok indeks agar dapat mengikuti rantai penunjuk sebelum blok data dapat dibaca. Dengan demikian, performa alokasi dengan menggunakan indeks ditentukan oleh: struktur indeks, ukuran berkas, dan posisi dari blok yang diinginkan.
Beberapa sistem mengkombinasikan alokasi berdampingan dengan alokasi indeks. Caranya adalah dengan menggunakan alokasi berdampingan untuk berkas berukuran kecil (3-4 blok), dan beralih secara otomatis ke alokasi indeks jika berkas semakin membesar.
Macam-macam Sistem Berkas
Sistem Berkas Pada Windows
Direktori dan Berkas
Sistem operasi Windows merupakan sistem operasi yang telah dikenal luas. Sistem operasi ini sangat memudahkan para penggunanya dengan membuat struktur direktori yang sangat user-friendly. Para pengguna Windows tidak akan menemui kesulitan dalam menggunakan sistem direktori yang telah dibuat oleh Microsoft. Windows menggunakan sistem drive letter dalam merepresentasikan setiap partisi dari disk. Sistem operasi secara otomatis akan terdapat dalam partisi pertama yang diberi label drive C. Sistem operasi Windows dibagi menjadi dua keluarga besar, yaitu keluarga Windows 9x dan keluarga Windows NT (New Technology).
Direktori yang secara otomatis dibuat dalam instalasi Windows adalah:
1.Direktori C:\WINDOWS
Direktori ini berisikan sistem dari Windows. Dalam direktori ini terdapat pustaka-pustaka yang diperlukan oleh Windows, device driver, registry, dan program-program esensial yang dibutuhkan oleh Windows untuk berjalan dengan baik.
2.Direktori C:\Program Files
Direktori ini berisikan semua program yang diinstal ke dalam sistem operasi. Semua program yang diinstal akan menulis entry ke dalam registry agar program tersebut dapat dijalankan dalam sistem Windows.
3.Direktori C:\My Documents
Direktori ini berisikan semua dokumen yang dimiliki oleh pengguna sistem.
Sistem operasi Windows dapat berjalan diatas beberapa macam sistem berkas. Setiap sistem berkas memiliki keunggulan dan kekurangan masing-masing. Semua keluarga Windows yang berbasis Windows NT dapat mendukung sistem berkas yang digunakan oleh keluarga Windows 9x, namun hal tersebut tidak berlaku sebaliknya.
Sistem Berkas yang terdapat dalam sistem operasi Windows adalah:
1.FAT 16: Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3.1
2.FAT 32: Sistem ini digunakan oleh keluarga Windows 9x.
3.NTFS: Merupakan singkatan dari New Technology File System. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi.
Sistem Berkas pada UNIX (dan turunannya)
Ketika kita login ke UNIX, kita akan ditempatkan di direktori root kita. Direktori root kita dikenal sebagai direktori home kita dan dispesifikasi dengan environment variable yang dinamakan HOME. Environment variable ini menentukan karakteristik dari shell kita dan interaksi pengguna dengan shell tersebut. Environment variable yang umum adalah variabel PATH, yang mendefinisikan dimana shell akan mencari ketika perintah dari pengguna. Untuk melihat daftar environment variable, gunakan saja perintah printenv. Sedangkan untuk mengatur environment variable, gunakan setenv.
Ada beberapa direktori yang umum terdapat dalam instalasi UNIX:
1.Direktori "/" (root)
Direktori ini terletak pada level teratas dari struktur direktori UNIX. Biasanya direktori root ini diberi tanda / atau slash. Direktori ini biasanya hanya terdiri dari direktori-direktori lainnya yang terletak pada level dibawah level direktori root. Berkas-berkas dapat disimpan pada direktori root tetapi usahakan tidak menyimpan berkas-berkas biasa sehingga direktori ini tetap terjaga keteraturannya.
Perubahan penamaan direktori-direktori yang ada pada direktori root akan menyebabkan sebagian besar dari sistem menjadi tidak berguna. Karena sebagian besar dari direktori-direktori ini berisi fungsi-fungsi yang sifatnya kritikal yang dimana sistem operasi dan semua aplikasi memerlukan direktori-direktori ini dengan nama yang sudah diberikan pada awal instalasi. Tetapi kita bisa membuat direktori lain pada level ini. Direktori home juga bisa ditemukan pada level ini hasil pembuatan oleh administrator sistem.
2.Direktori "/bin"
Direktori ini berisi program-program yang esensial agar sistem operasi dapat bekerja dengan benar. Dalam direktori ini dapat ditemukan perintah-perintah navigasi, program-program shell, perintah pencarian dan lain-lainnya. bin adalah singkatan dari kata binary. Di UNIX, sebuah binary adalah berkas yang dapat dieksekusi. Sebagian besar dari perintah dalam UNIX merupakan binary, perintah-perintah tersebut merupakan program-program kecil yang dapat dieksekusi oleh pengguna. Ada beberapa perintah yang disebut perintah built-in dimana fungsi mereka dikendalikan oleh program shell sehingga mereka tidak beroperasi sebagai binary yang terpisah.
Terkadang direktori bin terhubung ke direktori lain yang dinamakan /usr/bin. Direktori /usr/bin biasanya adalah lokasi sebenarnya dari binary-binary pengguna disimpan.Dalam hal ini, /bin adalah gerbang untuk mencapai /usr/bin.
3.Direktori "/dev"
Direktori ini berisi berkas-berkas alat atau alat I/O. Sistem UNIX menganggap semua hal sebagai berkas. Hal-hal seperti monitor, CD-ROM, printer dan lain-lainnya dianggap hanya sebagai berkas saja oleh sistem operasi. Jika UNIX memerlukan perangkat-perangkat tersebut maka UNIX akan mencarinya ke direktori dev.
4.Direktori "/etc"
Direktori yang dibaca et-see ini berisi beberapa konfigurasi berkas pengguna dan sistem, dan berkas yang ditunjuk sistem sebagai operasi normal seperti berkas kata sandi, pesan untuk hari ini, dan lain-lainnya.
5.Direktori "/lib"
Direktori ini berisi pustaka-pustaka (libraries) yang dibagi (shared). Pustaka ini adalah rutin perangkat lunak (software routines) yang digunakan lebih dari satu bagian dari sistem operasi. Ketika kita menginstalasi perangkat lunak yang baru maka ada pustaka-pustaka baru yang ditambahkan ke direktori lib. Jika pada waktu berusaha menjalankan aplikasi terdapat pesan error, hal ini diakibatkan ada pustaka yang hilang dari direktori lib. Aplikasi-aplikasi di UNIX biasanya memeriksa lib ketika menginstalasi untuk memeriksa apakah pustaka-pustaka yang diperlukan oleh aplikasi sudah tersedia atau belum. Jika sudah tersedia, UNIX biasanya tidak menimpa pustaka tersebut.
6.Direktori "/sbin"
Direktori ini berisi binary-binary juga seperti pada direktori bin.Tetapi,bedanya adalah binary-binary pada direktori ini berhubungan dengan fungsi-fungsi sistem administrasi pada sistem operasi UNIX. Binary-binary ini bukan yang biasa digunakan oleh pengguna tetapi digunakan agar komputer dapat beroperasi secara efisien.
7.Direktori "/usr"
Direktori ini terdiri dari banyak direktori seperti pada direktori root. Direktori ini berisi berkas-berkas yang dapat diakses oleh para pengguna biasa. Struktur dari direktori ini mirip dengan struktur direktori "/". Beberapa direktori yang terdapat dalam direktori ini berhubungan dengan direktori yang ada di direktori /.
8.Direktori "/var"
Direktori ini berisi data yang bermacam-macam (vary). Perubahan data dalam sistem yang aktif sangatlah cepat. Data-data seperti ini ada dalam waktu yang singkat. Karena sifatnya yang selalu berubah tidak memungkinkan disimpan dalam direktori seperti "/etc". Oleh karena itu, data-data seperti ini disimpan di direktori var.
Perbandingan antara Windows dan UNIX
Sistem berkas UNIX berbeda dengan sistem berkas Windows (DOS) karena sistem berkas UNIX lebih hebat dan mudah diatur daripada Windows (DOS). Penamaan dalam UNIX dan Windows berbeda. Karena sistem Windows ingin memudahkan pengguna maka sistem mereka mengubah nama menjadi nama yang lebih mudah bagi para pengguna. Contohnya adalah nama folder dalam adalah perubahan dari directory yang masih digunakan oleh UNIX. Penggunaan back slash (\) digunakan untuk memisahkan direktori-direktori dalam Windows, tetapi hal ini tidak ada dalam UNIX. Sistem UNIX menggunakan case sensitive, yang artinya nama suatu berkas yang sama jika dibaca, tetapi penulisan namanya berbeda dalam hal ada satu file yang menggunakan huruf kapital dalam penamaan dan satu tidak akan berbeda dalam UNIX. Contohnya ada berkas bernama berkasdaku.txt dan BerkasDaku.txt, jika dibaca nama berkasnya sama tetapi dalam UNIX ini merupakan dua berkas yang jauh berbeda. Jika berkas-berkas ini berada di sistem Windows, mereka menunjuk ke berkas yang sama yang berarti Windows tidak case sensitive.
Hal lain yang membedakan sistem berkas UNIX dengan Windows adalah UNIX tidak menggunakan drive letter seperti C:, D: dalam Windows. Tetapi semua partisi dan drive ekstra di mount didalam sub-direktori di bawah direktori root. Jadi pengguna tidak harus bingung di drive letter mana suatu berkas berada sehingga seluruh sistem seperti satu sistem berkas yang berurutan dari direktori root menurun secara hierarki.
Macam-macam Sistem Berkas di UNIX
Secara garis besar, sistem berkas di sistem UNIX terbagi menjadi dua, yaitu sistem berkas dengan fasilitas journaling dan yang tidak memiliki fasilitas tersebut. Dibawah ini adalah beberapa sistem berkas yang digunakan dalam sistem UNIX pada umumnya:
1.EXT2
2.EXT3
3.JFS (Journaling File System)
4.ReiserFS
5.Dan Lain-lain.
Kesimpulan
Sistem berkas merupakan mekanisme penyimpanan on-line serta untuk akses, baik data mau pun program yang berada dalam Sistem Operasi. Terdapat dua bagian penting dalam sistem berkas, yaitu:
1.Kumpulan berkas, sebagai tempat penyimpanan data, serta
2.Struktur direktori, yang mengatur dan menyediakan informasi mengenai seluruh berkas dalam sistem.
Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Atribut berkas terdiri dari:
1.Nama; merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form)
2.Type; dibutuhkan untuk sistem yang mendukung beberapa type berbeda
3.Lokasi; merupakan pointer ke device dan ke lokasi berkas pada device tersebut
4.Ukuran (size); yaitu ukuran berkas pada saat itu, baik dalam byte, huruf, atau pun blok
5.Proteksi; adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis, dan mengeksekusi berkas
6.Waktu, tanggal dan identifikasi pengguna; informasi ini biasanya disimpan untuk:
- pembuatan berkas
- modifikasi terakhir yang dilakukan pada berkas, dan
- modifikasi terakhir yang dilakukan pada berkas, dan
- modifikasi terakhir yang dilakukan pada berkas, dan
- penggunaan terakhir berkas
Operasi Pada Berkas
1.Membuat sebuah berkas.
2.Menulis pada sebuah berkas.
3.Membaca sebuah berkas.
4.Menempatkan kembali sebuah berkas.
5.Menghapus sebuah berkas.
6.Memendekkan berkas.
Metode Akses
1.Akses Berurutan.
2.Akses Langsung.
3.Akses menggunakan Indeks.
Operasi Pada Direktori
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1.Mencari berkas.
2.Membuat berkas.
3.Menghapus berkas.
4.Menampilkan isi direktori.
5.Mengganti nama berkas.
6.Melintasi sistem berkas.
Macam-macam Direktori
1.Direktori Satu Tingkat.
2.Direktori Dua Tingkat.
3.Direktori Dengan Struktur "Tree".
4.Direktori Dengan Struktur "Acyclic-Graph".
5.Direktori Dengan Struktur Graph.
Metode Alokasi Berkas
1.Alokasi Secara Berdampingan (Contiguous Allocation).
2.Alokasi Secara Berangkai (Linked Allocation).
3.Alokasi Dengan Indeks (Indexed Allocation).
Manajemen Free Space
1.Menggunakan Bit Vektor.
2.Linked List.
3.Grouping.
4.Counting.
Implementasi Direktori
1.Linear List.
2.Hash Table.
Sistem Berkas pada Windows
Direktori yang secara otomatis dibuat dalam instalasi Windows adalah:
1.Direktori C:\WINDOWS
2.Direktori C:\Program Files
3.Direktori C:\My Documents
Sistem Berkas yang terdapat dalam sistem operasi Windows adalah:
1.FAT 16
Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3.1
2.FAT 32
Sistem ini digunakan oleh keluarga Windows 9x
3.NTFS
Merupakan singkatan dari New Technology File System. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi.
Sistem Berkas pada UNIX (dan turunannya)
Ada beberapa direktori yang umum terdapat dalam instalasi UNIX:
1.Direktori /root.
2.Direktori /bin.
3.Direktori /dev.
4.Direktori /etc.
5.Direktori /lib.
6.Direktori /sbin.
7.Direktori /usr.
8.Direktori /var.
Macam-macam Sistem Berkas di UNIX
1.EXT2.
2.EXT3.
3.JFS (Journaling File System).
4.ReiserFS.
5.Dan Lain-lain.
Soal-Soal Sistem Berkas
1.Sebutkan macam-macam atribut pada berkas!
2.Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?
3.Sebutkan informasi yang terkait dengan pembukaan berkas!
4.Sebutkan dan jelaskan metode alokasi pada sistem berkas!
5.Sebutkan dan jelaskan operasi pada direktori?
6.Sebutkan dan Jelaskan tentang tipe akses pada berkas?
7.Sebutkan dan jelaskan bagaimana cara mengatur free space?
8.Bagaimanakah implementasi dari sebuah direktori dalam disk
9.Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?
10.Bagaimanakah langkah-langkah dalam proses back-up?
Konsep Dasar
Seperti yang telah kita ketahui, 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 non-volatile, sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik mau pun 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 mau pun bentuk objek) dan data. Data dari berkas dapat bersifat numerik, alfabetik, alfanumerik, atau pun 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 jenis informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas, sesuai dengan jenisnya masing-masing. Contohnya:
Text file; yaitu urutan karakter yang disusun ke dalam baris-baris.
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, atau pun blok
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:
pembuatan berkas,
modifikasi terakhir yang dilakukan pada berkas, dan
penggunaan terakhir berkas.
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 non-volatile, sehingga keduanya harus disimpan pada sebuah device dan baru dibawa bagian per bagian ke memori pada saat dibutuhkan.
Operasi Pada Berkas
Sebuah berkas adalah jenis 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 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 mengizinkan 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 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 sistem memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. 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 memori virtual yang digunakan oleh proses.
Jenis Berkas
Pertimbangan utama dalam perancangan sistem berkas dan seluruh sistem operasi, apakah sistem operasi harus mengenali dan mendukung jenis berkas. Jika suatu sistem operasi mengenali jenis 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 jenis berkas adalah menambahkan jenis berkas dalam nama berkas. Nama dibagi dua, nama dan akhiran (ekstensi), biasanya dipisahkan dengan karakter titik. Sistem menggunakan akhiran tersebut untuk mengindikasikan jenis berkas dan jenis 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 jenis dari berkas dapat menjadi petunjuk aplikasi apa yang dapat mengoperasikannya.
Sistem UNIX tidak dapat menyediakan dukungan untuk akhiran berkas karena menggunakan angka ajaib yang disimpan di depan berkas untuk mengenali jenis 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 jenis isi dari suatu berkas.
Struktur Berkas
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.
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.
Penggunaan Berkas Secara Bersama-sama
Konsistensi semantik adalah parameter yang penting untuk evaluasi sistem berkas yang mendukung penggunaan berkas secara bersama. Hal ini juga merupakan karakterisasi dari sistem yang menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara bersama-sama. Lebih khusus, semantik ini seharusnya dapat menspesifikasi kapan suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain. Terdapat beberapa macam konsistensi semantik. Di bawah ini akan dijelaskan kriteria yang digunakan dalam UNIX.
Berkas sistem UNIX mengikuti konsistensi semantik:
Penulisan ke berkas yang dibuka oleh pengguna dapat dilihat langsung oleh pengguna lain yang sedang mengakses ke berkas yang sama.
Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi ke berkas tersebut. Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya.
Metode Akses
Akses Secara Berurutan
Ketika digunakan, informasi penyimpanan berkas harus dapat diakses dan dibaca ke dalam memori komputer. Beberapa sistem hanya menyediakan satu metode akses untuk berkas. Pada sistem yang lain, contohnya IBM, terdapat banyak dukungan metode akses yang berbeda. Masalah pada sistem tersebut adalah memilih yang mana yang tepat untuk digunakan pada satu aplikasi tertentu.
Sequential Access merupakan metode yang paling sederhana. Informasi yang disimpan dalam berkas diproses berdasarkan urutan. Operasi dasar pada suatu berkas adalah tulis dan baca. Operasi baca membaca berkas dan meningkatkan pointer berkas selama di jalur lokasi I/O. Operasi tulis menambahkan ke akhir berkas dan meningkatkan ke akhir berkas yang baru. Metode ini didasarkan pada tape model sebuah berkas, dan dapat bekerja pada kedua jenis device akses (urut mau pun acak).
Akses Langsung
Direct Access merupakan metode yang membiarkan program membaca dan menulis dengan cepat pada berkas yang dibuat dengan fixed-length logical order tanpa adanya urutan. Metode ini sangat berguna untuk mengakses informasi dalam jumlah besar. Biasanya database memerlukan hal seperti ini. Operasi berkas pada metode ini harus dimodifikasi untuk menambahkan nomor blok sebagai parameter. Pengguna menyediakan nomor blok ke sistem operasi biasanya sebagai nomor blok relatif, yaitu indeks relatif terhadap awal berkas. Penggunaan nomor blok relatif bagi sistem operasi adalah untuk memutuskan lokasi berkas diletakkan dan membantu mencegah pengguna dari pengaksesan suatu bagian sistem berkas yang bukan bagian pengguna tersebut.
Akses Dengan Menggunakan Indeks
Metode ini merupakan hasil dari pengembangan metode direct access. Metode ini memasukkan indeks untuk mengakses berkas. Jadi untuk mendapatkan suatu informasi suatu berkas, kita mencari dahulu di indeks, lalu menggunakan pointer untuk mengakses berkas dan mendapatkan informasi tersebut. Namun metode ini memiliki kekurangan, yaitu apabila berkas-berkas besar, maka indeks berkas tersebut akan semakin besar. Jadi solusinya adalah dengan membuat 2 indeks, indeks primer dan indeks sekunder. Indeks primer memuat pointer ke indeks sekunder, lalu indeks sekunder menunjuk ke data yang dimaksud.
Struktur Direktori
Operasi Pada Direktori
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1.Mencari berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori. Karena berkas-berkas memiliki nama simbolik dan nama yang sama dapat mengindikasikan keterkaitan antara setiap berkas-berkas tersebut, mungkin kita berkeinginan untuk dapat menemukan seluruh berkas yang nama-nama berkas membentuk pola khusus.
2.Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori.
3.Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.
4.Menampilkan isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
5.Mengganti nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user, maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas dalam direktori.
6.Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.
Direktori Satu Tingkat
Ini adalah struktur direktori yang paling sederhana. Semua berkas disimpan di dalam direktori yang sama. Struktur ini tentunya memiliki kelemahan jika jumlah berkasnya bertambah banyak, karena tiap berkas mesti memiliki nama yang unik.
Direktori Dua Tingkat
Kelemahan yang ada pada direktori tingkat satu dapat diatas pada sistem direktori dua tingkat. Caranya ialah dengan membuat direktori secara terpisah. Pada direktori tingkat dua, setiap pengguna memiliki direktori berkas sendiri (UFD). Setiap UFD memiliki struktur yang serupa, tapi hanya berisi berkas-berkas dari seorang pengguna.
Ketika seorang pengguna login, master direktori berkas (MFD) dicari. Isi dari MFD adalah indeks dari nama pengguna atau nomor rekening, dan tiap entri menunjuk pada UFD untuk pengguna tersebut. Ketika seorang pengguna ingin mengakses suatu berkas, hanya UFD-nya sendiri yang diakses. Jadi pada setiap UFD yang berbeda, boleh terdapat nama berkas yang sama.
Direktori Dengan Struktur Tree
Struktur direktori dua tingkat bisa dikatakan sebagai pohon dua tingkat. Sebuah direktori dengan struktur pohon memiliki sejumlah berkas atau subdirektori lagi. Pada penggunaan yang normal setiap pengguna memiliki direktorinya sendiri-sendiri. Selain itu pengguna tersebut dapat memiliki subdirektori sendiri lagi.
Dalam struktur ini dikenal dua istilah, yaitu path relatif dan path mutlak. Path relatif adalah path yang dimulai dari direktori yang aktif. Sedangkan path mutlak adalah path yang dimulai dari direktori akar.
Direktori Dengan Struktur Acyclic-Graph
Jika ada sebuah berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas "sharing", yaitu penggunaan sebuah berkas secara bersama-sama. Hal ini tentunya berbeda dengan struktur pohon, dimana pada struktur tersebut penggunaan berkas atau direktori secara bersama-sama dilarang. Pada struktur "Acyclic-Graph", penggunaan berkas atau direktori secara bersama-sama diperbolehkan. Tapi pada umumnya struktur ini mirip dengan struktur pohon.
Direktori Dengan Struktur Graph
Masalah yang sangat utama pada struktur direktori "Acyclic-Graph" adalah kemampuan untuk memastikan tidak-adanya siklus. Jika pada struktur 2 tingkat direktori, seorang pengguna dapat membuat subdirektori, maka akan kita dapatkan direktori dengan struktur pohon. Sangatlah mudah untuk tetap mempertahankan sifat pohon setiap kali ada penambahan berkas atau subdirektori pada direktori dengan struktur pohon. Tapi jika kita menambahkan sambungan pada direktori dengan struktur pohon, maka akan kita dapatkan direktori dengan struktur graph sederhana.
Proses pencarian pada direktori dengan struktur "Acyclic-Graph", apabila tidak ditangani dengan baik (algoritma tidak bagus) dapat menyebabkan proses pencarian yang berulang dan menghabiskan banyak waktu. Oleh karena itu, diperlukan skema pengumpulan sampah ("garbage-collection scheme"). Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai tiap berkas yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak ditandai sebagai tempat kosong. Hal ini tentunya dapat menghabiskan banyak waktu.
Proteksi Berkas
Ketika kita menyimpan informasi dalam sebuah sistem komputer, ada dua hal yang harus menjadi perhatian utama kita. Hal tersebut adalah:
1.Reabilitas dari sebuah sistem
Maksud dari reabilitas sistem adalah kemampuan sebuah sistem untuk melindungi informasi yang telah disimpan agar terhindar dari kerusakan, dalam hal ini adalah perlindungan secara fisik pada sebuah berkas. Reabilitas sistem dapat dijaga dengan membuat cadangan dari setiap berkas secara manual atau pun otomatis, sesuai dengan layanan yang dari sebuah sistem operasi. Reabilitas Sistem akan dibahas lebih lanjut pada bagian berjudul Kehandalan Disk di Bab 6.
2.Proteksi (Perlindungan) terhadap sebuah berkas
Perlindungan terhadap berkas dapat dilakukan dengan berbagai macam cara. Pada bagian ini, kita akan membahas secara detil mekanisme yang diterapkan dalam melindungi sebuah berkas.
Tipe Akses Pada Berkas
Salah satu cara untuk melindungi berkas dalam komputer kita adalah dengan melakukan pembatasan akses pada berkas tersebut. Pembatasan akses yang dimaksudkan adalah kita, sebagai pemilik dari sebuah berkas, dapat menentukan operasi apa saja yang dapat dilakukan oleh pengguna lain terhadap berkas tersebut. Pembatasan ini berupa sebuah permission atau pun not permitted operation, tergantung pada kebutuhan pengguna lain terhadap berkas tersebut. Di bawah ini adalah beberapa operasi berkas yang dapat diatur aksesnya:
1.Read: Membaca dari berkas
2.Write: Menulis berkas
3.Execute: Meload berkas kedalam memori untuk dieksekusi.
4.Append: Menambahkan informasi kedalam berkas di akhir berkas.
5.Delete: Menghapus berkas.
6.List: Mendaftar properti dari sebuah berkas.
7.Rename: Mengganti nama sebuah berkas.
8.Copy: Menduplikasikan sebuah berkas.
9.Edit: Mengedit sebuah berkas.
Selain operasi-operasi berkas diatas, perlindungan terhadap berkas dapat dilakukan dengan mekanisme yang lain. Namun setiap mekanisme memiliki kelebihan dan kekurangan. Pemilihan mekanisme sangatlah tergantung pada kebutuhan dan spesifikasi sistem.
Akses List dan Group
Hal yang paling umum dari sistem proteksi adalah membuat akses tergantung pada identitas pengguna yang bersangkutan. Implementasi dari akses ini adalah dengan membuat daftar akses yang berisi keterangan setiap pengguna dan keterangan akses berkas dari pengguna yang bersangkutan. Daftar akses ini akan diperiksa setiap kali seorang pengguna meminta akses ke sebuah berkas. Jika pengguna tersebut memiliki akses yang diminta pada berkas tersebut, maka diperbolehkan untuk mengakses berkas tersebut. Proses ini juga berlaku untuk hal yang sebaliknya. Akses pengguna terhadap berkas akan ditolak, dan sistem operasi akan mengeluarkan peringatan Protection Violation.
Masalah baru yang timbul adalah panjang dari daftar akses yang harus dibuat. Seperti telah disebutkan, kita harus mendaftarkan semua pengguna dalam daftar akses tersebut hanya untuk akses pada satu berkas saja. Oleh karena itu, teknik ini mengakibatkan 2 konsekuensi yang tidak dapat dihindarkan:
1.Pembuatan daftar yang sangat panjang ini dapat menjadi pekerjaan yang sangat melelahkan sekaligus membosankan, terutama jika jumlah pengguna dalam sistem tidak dapat diketahui secara pasti.
2.Manajemen ruang harddisk yang lebih rumit, karena ukuran sebuah direktori dapat berubah-ubah, tidak memiliki ukuran yang tetap.
Kedua konsekuensi diatas melahirkan sebuah teknik daftar akses yang lebih singkat. Teknik ini mengelompokkan pengguna berdasarkan tiga kategori:
1.Owner: User yang membuat berkas.
2.Group: Sekelompok pengguna yang memiliki akses yang sama terhadap sebuah berkas, atau men-share sebuah berkas.
3.Universe: Seluruh pengguna yang terdapat dalam sistem komputer.
Dengan adanya pengelompokkan pengguna seperti ini, maka kita hanya membutuhkan tiga field untuk melindungi sebuah berkas. Field ini diasosiasikan dengan 3 buah bit untuk setiap kategori. Dalam sistem UNIX dikenal bit rwx dengan bit r untuk mengontrol akses baca, bit w sebagai kontrol menulis dan bit x sebagai bit kontrol untuk pengeksekusian. Setiap field dipisahkan dengan field separator. Dibawah ini adalah contoh dari sistem proteksi dengan daftar akses pada sistem UNIX.
Pendekatan Sistem Proteksi yang Lain
Sistem proteksi yang lazim digunakan pada sistem komputer selain diatas adalah dengan menggunakan password (kata sandi) pada setiap berkas. Beberapa sistem operasi mengimplementasikan hal ini bukan hanya pada berkas, melainkan pada direktori. Dengan sistem ini, sebuah berkas tidak akan dapat diakses selain oleh pengguna yang telah mengetahui password untuk berkas tersebut. Akan tetapi, masalah yang muncul dari sistem ini adalah jumlah password yang harus diingat oleh seorang pengguna untuk mengakses berkas dalam sebuah sistem operasi. Masalah yang lain adalah keamanan password itu sendiri. Jika hanya satu password yang digunakan, maka kebocoran password tersebut merupakan malapetaka bagi pengguna yang bersangkutan. Sekali lagi, maka kita harus menggunakan password yang berbeda untuk setiap tingkatan yang berbeda.
Struktur Sistem Berkas
Disk menyediakan sebagian besar tempat penyimpanan dimana sistem berkas dikelola dikelola. Untuk meningkatkan efisiensi I/O, pengiriman data antara memori dan disk dilakukan dalam setiap blok. Setiap blok merupakan satu atau lebih sektor. Setiap disk memiliki ukuran yang berbeda-beda, biasanya berukuran 512 bytes. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas, yaitu:
Disk tersebut dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut.
Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut mau pun tidak berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar.
Organisasi Sistem Berkas
Sistem operasi menyediakan sistem berkas agar data mudah disimpan, diletakkan dan diambil kembali dengan mudah. Terdapat dua masalah desain dalam membangun suatu sistem berkas. Masalah pertama adalah definisi dari sistem berkas. Hal ini mencakup definisi berkas dan atributnya, operasi ke berkas, dan struktur direktori dalam mengorganisasikan berkas-berkas. Masalah kedua adalah membuat algoritma dan struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan sekunder. Pada dasarnya sistem berkas tersusun atas beberapa tingkatan, yaitu (dari yang terendah):
I/O control, terdiri atas driver device dan interrupt handler. Driver device adalah perantara komunikasi antara sistem operasi dengan perangkat keras.
Basic file system, diperlukan untuk mengeluarkan perintah generik ke device driver untuk baca dan tulis pada suatu blok dalam disk.
File-organization module, informasi tentang alamat logika dan alamat fisik dari berkas tersebut. Modul ini juga mengatur sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat user ingin menulis berkas ke dalam disk.
Logical file system, tingkat ini berisi informasi tentang simbol nama berkas, struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut.
Gambar 5-1. Lapisan pada sistem berkas. Sumber: . . .
Mounting Sistem Berkas
Seperti halnya sebuah berkas yang harus dibuka terlebih dahulu sebelum digunakan, sistem berkas harus di mount terlebih dahulu sebelum sistem berkas tersebut siap untuk memproses dalam sistem. Sistem operasi diberikan sebuah alamat mounting (mount point) yang berisi nama device yang bersangkutan dan lokasi dari device tersebut.
Metode Alokasi Berkas
Kemudahan dalam mengakses langsung suatu disk memberikan fleksibilitas dalam mengimplementasikan sebuah berkas. Masalah utama dalam implementasi adalah bagaimana mengalokasikan berkas-berkas ke dalam disk, sehingga disk dapat terutilisasi dengan efektif dan berkas dapat diakses dengan cepat. Ada tiga metode utama, menurut buku "Applied Operating System Concepts: First Edition" oleh Avi Silberschatz, Peter Galvin dan Greg Gagne untuk mengalokasi ruang disk yang digunakan secara luas yaitu, contiguous, linked, dan indexed.
Alokasi Secara Berdampingan (Contiguous Allocation)
Metode ini menempatkan setiap berkas pada satu himpunan blok yang berurut di dalam disk. Alamat disk menyatakan sebuah urutan linier. Dengan urutan linier ini maka head disk hanya bergerak jika mengakses dari sektor terakhir suatu silinder ke sektor pertama silinder berikutnya. Waktu pencarian (seek time) dan banyak disk seek yang dibutuhkan untuk mengakses berkas yang di alokasi secara berdampingan ini sangat minimal. Contoh dari sistem operasi yang menggunakan contiguous allocation adalah IBM VM/ CMS karena pendekatan ini menghasilkan performa yang baik.
Contiguous allocation dari suatu berkas diketahui melalui alamat dan panjang disk (dalam unit blok) dari blok pertama. Jadi, misalkan ada berkas dengan panjang n blok dan mulai dari lokasi b maka berkas tersebut menempati blok b, b+1, b+2, ..., b+n-1. Direktori untuk setiap berkas mengindikasikan alamat blok awal dan panjang area yang dialokasikan untuk berkas tersebut. Terdapat dua macam cara untuk mengakses berkas yang dialokasi dengan metode ini, yaitu:
Sequential access, sistem berkas mengetahui alamat blok terakhir dari disk dan membaca blok berikutnya jika diperlukan.
Direct access, untuk akses langsung ke blok i dari suatu berkas yang dimulai pada blok b, dapat langsung mengakses blok b+i.
Kesulitan dari metode alokasi secara berdampingan ini adalah menemukan ruang untuk berkas baru. Masalah pengalokasian ruang disk dengan metode ini merupakan aplikasi masalah dari dynamic storage-allocation (alokasi tempat penyimpanan secara dinamik), yaitu bagaimana memenuhi permintaan ukuran n dari daftar ruang kosong. Strategi-strategi yang umum adalah first fit dan best fit. Kedua strategi tersebut mengalami masalah fragmentasi eksternal, dimana jika berkas dialokasi dan dihapus maka ruang kosong disk terpecah menjadi kepingan-kepingan kecil. Hal ini akan menjadi masalah ketika banyak kepingan kecil tidak dapat memenuhi permintaan karena kepingan-kepingan kecil tidak cukup besar untuk menyimpan berkas, sehingga terdapat banyak ruang yang terbuang.
Masalah yang lain adalah menentukan berapa banyak ruang yang diperlukan untuk suatu berkas. Ketika berkas dibuat, jumlah dari ruang berkas harus ditentukan dan dialokasikan. Jika ruang yang dialokasikan terlalu kecil maka berkas tidak dapat diperbesar dari yang telah dialokasikan. Untuk mengatasi hal ini ada dua kemungkinan. Pertama, program pengguna dapat diakhiri dengan pesan error yang sesuai. Lalu, pengguna harus mengalokasikan tambahan ruang dan menjalankan programnya lagi, tetapi hal ini cost yang dihasilkan lebih mahal. Untuk mengatasinya, pengguna dapat melakukan estimasi yang lebih terhadap ruang yang harus dialokasikan pada suatu berkas tetapi hal ini akan membuang ruang disk. Kemungkinan yang kedua adalah mencari ruang kosong yang lebih besar, lalu menyalin isi dari berkas ke ruang yang baru dan mengkosongkan ruang yang sebelumnya. Hal ini menghabiskan waktu yang cukup banyak. Walau pun jumlah ruang yang diperlukan untuk suatu berkas dapat diketahui, pengalokasian awal akan tidak efisien. Ukuran berkas yang bertambah dalam periode yang lama harus dapat dialokasi ke ruang yang cukup untuk ukuran akhirnya, walau pun ruang tersebut tidak akan digunakan dalam waktu yang lama. Hal ini akan menyebabkan berkas dengan jumlah fragmentasi internal yang besar.
Untuk menghindari hal-hal tersebut, beberapa sistem operasi memodifikasi skema metode alokasi secara berdampingan, dimana kepingan kecil yang berurut dalam ruang disk diinisialisasi terlebih dahulu, kemudian ketika jumlah ruang disk kurang besar, kepingan kecil yang berurut lainnya, ditambahkan pada alokasi awal. Kejadian seperti ini disebut perpanjangan. Fragmentasi internal masih dapat terjadi jika perpanjangan-perpanjangan ini terlalu besar dan fragmentasi eksternal masih menjadi masalah begitu perpanjangan-perpanjangan dengan ukuran yang bervariasi dialokasikan dan didealokasi.
Alokasi Secara Berangkai (Linked Allocation)
Metode ini menyelesaikan semua masalah yang terdapat pada contiguous allocation. Dengan metode ini, setiap berkas merupakan linked list dari blok-blok disk, dimana blok-blok disk dapat tersebar di dalam disk. Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan akhir blok sebuah berkas. Setiap blok mempunyai penunjuk ke blok berikutnya. Untuk membuat berkas baru, kita dengan mudah membuat masukan baru dalam direktori. Dengan metode ini, setiap direktori masukan mempunyai penunjuk ke awal blok disk dari berkas. Penunjuk ini diinisialisasi menjadi nil (nilai penunjuk untuk akhir dari list) untuk menandakan berkas kosong. Ukurannya juga diset menjadi 0. Penulisan suatu berkas menyebabkan ditemukannya blok yang kosong melalui sistem manajemen ruang kosong (free-space management system), dan blok baru ini ditulis dan disambungkan ke akhir berkas. Untuk membaca suatu berkas, cukup dengan membaca blok-blok dengan mengikuti pergerakan penunjuk.
Metode ini tidak mengalami fragmentasi eksternal dan kita dapat menggunakan blok kosong yang terdapat dalam daftar ruang kosong untuk memenuhi permintaan pengguna. Ukuran dari berkas tidak perlu ditentukan ketika berkas pertama kali dibuat, sehingga ukuran berkas dapat bertambah selama masih ada blok-blok kosong.
Metode ini tentunya mempunyai kerugian, yaitu metode ini hanya dapat digunakan secara efektif untuk pengaksesan berkas secara sequential (sequential-access file). Untuk mencari blok ke-i dari suatu berkas, harus dimulai dari awal berkas dan mengikuti penunjuk sampai berada di blok ke-i. Setiap akses ke penunjuk akan membaca disk dan kadang melakukan pencarian disk (disk seek). Hal ini sangat tidak efisien untuk mendukung kemampuan akses langsung (direct-access) terhadap berkas yang menggunakan metode alokasi link. Kerugian yang lain dari metode ini adalah ruang yang harus disediakan untuk penunjuk. Solusi yang umum untuk masalah ini adalah mengumpulkan blok-blok persekutuan terkecil dinamakan clusters dan mengalokasikan cluster-cluster daripada blok. Dengan solusi ini maka, penunjuk menggunakan ruang disk berkas dengan persentase yang sangat kecil. Metode ini membuat mapping logikal ke fisikal blok tetap sederhana, tetapi meningkatkan disk throughput dan memperkecil ruang yang diperlukan untuk alokasi blok dan management daftar kosong (free-list management). Akibat dari pendekatan ini adalah meningkatnya fragmentasi internal, karena lebih banyak ruang yang terbuang jika sebuah cluster sebagian penuh daripada ketika sebuah blok sebagian penuh. Alasan cluster digunakan oleh kebanyakan sistem operasi adalah kemampuannya yang dapat meningkatkan waktu akses disk untuk berbagai macam algoritma.
Masalah yang lain adalah masalah daya tahan metode ini. Karena semua berkas saling berhubungan dengan penunjuk yang tersebar di semua bagian disk, apa yang terjadi jika sebuah penunjuk rusak atau hilang. Hal ini menyebabkan berkas menyambung ke daftar ruang kosong atau ke berkas yang lain. Salah satu solusinya adalah menggunakan linked list ganda atau menyimpan nama berkas dan nomor relatif blok dalam setiap blok, tetapi solusi ini membutuhkan perhatian lebih untuk setiap berkas.
Variasi penting dari metode ini adalah penggunaan file allocation table (FAT), yang digunakan oleh sistem operasi MS-DOS dan OS/2. Bagian awal disk pada setiap partisi disingkirkan untuk menempatkan tabelnya. Tabel ini mempunyai satu masukkan untuk setiap blok disk, dan diberi indeks oleh nomor blok. Masukkan direktori mengandung nomor blok dari blok awal berkas. Masukkan tabel diberi indeks oleh nomor blok itu lalu mengandung nomor blok untuk blok berikutnya dari berkas. Rantai ini berlanjut sampai blok terakhir, yang mempunyai nilai akhir berkas yang khusus sebagai masukkan tabel. Blok yang tidak digunakan diberi nilai 0. Untuk mengalokasi blok baru untuk suatu berkas hanya dengan mencari nilai 0 pertama dalam tabel, dan mengganti nilai akhir berkas sebelumnya dengan alamat blok yang baru. Metode pengalokasian FAT ini dapat menghasilkan jumlah pencarian head disk yang signifikan, jika berkas tidak di cache. Head disk harus bergerak dari awal partisi untuk membaca FAT dan menemukan lokasi blok yang ditanyakan, lalu menemukan lokasi blok itu sendiri. Kasus buruknya, kedua pergerakan terjadi untuk setiap blok. Keuntungannya waktu random akses meningkat, akibat dari head disk dapat mencari lokasi blok apa saja dengan membaca informasi dalam FAT.
Alokasi Dengan Indeks (Indexed Allocation)
Metode alokasi dengan berangkai dapat menyelesaikan masalah fragmentasi eksternal dan pendeklarasian ukuran dari metode alokasi berdampingan. Bagaimana pun tanpa FAT, metode alokasi berangkai tidak mendukung keefisiensian akses langsung, karena penunjuk ke bloknya berserakan dengan bloknya didalam disk dan perlu didapatkan secara berurutan. Metode alokasi dengan indeks menyelesaikan masalah ini dengan mengumpulkan semua penunjuk menjadi dalam satu lokasi yang dinamakan blok indeks (index block). Setiap berkas mempunyai blok indeks, yang merupakan sebuah larik array dari alamat-alamat disk-blok. Direktori mempunyai alamat dari blok indeks. Ketika berkas dibuat, semua penunjuk dalam blok indeks di set menjadi nil. Ketika blok ke-i pertama kali ditulis, sebuah blok didapat dari pengatur ruang kosong free-space manager dan alamatnya diletakkan ke dalam blok indeks ke-i.
Metode ini mendukung akses secara langsung, tanpa mengalami fragmentasi eksternal karena blok kosong mana pun dalam disk dapat memenuhi permintaan ruang tambahan. Tetapi metode ini dapat menyebabkan ada ruang yang terbuang. Penunjuk yang berlebihan dari blok indeks secara umum lebih besar dari yang terjadi pada metode alokasi berangkai.
Mekanisme untuk menghadapi masalah berapa besar blok indeks yang diperlukan sebagai berikut:
Linked scheme: untuk berkas-berkas yang besar, dilakukan dengan menyambung beberapa blok indeks menjadi satu.
Multilevel index: sebuah varian dari representasi yang berantai adalah dengan menggunakan blok indeks level pertama menunjuk ke himpunan blok indeks level kedua, yang akhirnya menunjuk ke blok-blok berkas.
Combined scheme: digunakan oleh sistem BSD UNIX yaitu dengan menetapkan 15 penunjuk dari blok indeks dalam blok indeksnya berkas. 12 penunjuk pertama menunjuk ke direct blocks yang menyimpan alamat-alamat blok yang berisi data dari berkas. 3 penunjuk berikutnya menunjuk ke indirect blocks. Penunjuk indirect blok yang pertama adalah alamat dari single indirect block, yang merupakan blok indeks yang berisi alamat-alamat blok yang berisi data. Lalu ada penunjuk double indirect block yang berisi alamat dari sebuah blok yang berisi alamat-alamat blok yang berisi penunjuk ke blok data yang sebenarnya.
Kinerja Sistem Berkas
Salah satu kesulitan dalam membandingkan performa sistem adalah menentukan bagaimana sistem tersebut akan digunakan. Sistem yang lebih banyak menggunakan akses sekuensial (berurutan) akan memakai metode yang berbeda dengan sistem yang lebih sering menggunakan akses random (acak). Untuk jenis akses apa pun, alokasi yang berdampingan hanya memerlukan satu akses untuk mendapatkan sebuah blok disk. Karena kita dapat menyimpan initial address dari berkas di dalam memori, maka alamat disk pada blok ke-i dapat segera dikalkulasi dan dibaca secara langsung.
Untuk alokasi berangkai (linked list), kita juga dapat menyimpan alamat dari blok selanjutnya ke dalam memori, lalu membacanya secara langsung. Metode ini sangat baik untuk akses sekuensial, namun untuk akses langsung, akses menuju blok ke-ikemungkinan membutuhkan pembacaan disk sebanyak i kali. Masalah ini mengindikasikan bahwa alokasi berangkai sebaiknya tidak digunakan untuk aplikasi yang membutuhkan akses langsung.
Oleh sebab itu, beberapa sistem mendukung akses langsung dengan menggunakan alokasi berdampingan (contiguous allocation), serta akses berurutan dengan alokasi berangkai. Untuk sistem-sistem tersebut, jenis akses harus dideklarasikan pada saat berkas dibuat. Berkas yang dibuat untuk akses sekuensial (berurutan) akan dirangkaikan dan tidak dapat digunakan untuk akses langsung. Berkas yang dibuat untuk akses langsung akan berdampingan dan dapat mendukung baik akses langsung mau pun akses berurutan, dengan mendeklarasikan jarak maksimum. Perhatikan bahwa sistem operasi harus mendukung struktur data dan algoritma yang sesuai untuk mendukung kedua metode alokasi di atas.
Alokasi dengan menggunakan indeks lebih rumit lagi. Jika blok indeks telah terdapat dalam memori, akses dapat dilakukan secara langsung. Namun, menyimpan blok indeks dalam memori memerlukan ruang (space) yang besar. Jika ruang memori tidak tersedia, maka kita mungkin harus membaca blok indeks terlebih dahulu, baru kemudian blok data yang diinginkan. Untuk indeks dua tingkat, pembacaan dua blok indeks mungkin diperlukan. Untuk berkas yang berukuran sangat besar, mengakses blok di dekat akhir suatu berkas akan membutuhkan pembacaan seluruh blok indeks agar dapat mengikuti rantai penunjuk sebelum blok data dapat dibaca. Dengan demikian, performa alokasi dengan menggunakan indeks ditentukan oleh: struktur indeks, ukuran berkas, dan posisi dari blok yang diinginkan.
Beberapa sistem mengkombinasikan alokasi berdampingan dengan alokasi indeks. Caranya adalah dengan menggunakan alokasi berdampingan untuk berkas berukuran kecil (3-4 blok), dan beralih secara otomatis ke alokasi indeks jika berkas semakin membesar.
Macam-macam Sistem Berkas
Sistem Berkas Pada Windows
Direktori dan Berkas
Sistem operasi Windows merupakan sistem operasi yang telah dikenal luas. Sistem operasi ini sangat memudahkan para penggunanya dengan membuat struktur direktori yang sangat user-friendly. Para pengguna Windows tidak akan menemui kesulitan dalam menggunakan sistem direktori yang telah dibuat oleh Microsoft. Windows menggunakan sistem drive letter dalam merepresentasikan setiap partisi dari disk. Sistem operasi secara otomatis akan terdapat dalam partisi pertama yang diberi label drive C. Sistem operasi Windows dibagi menjadi dua keluarga besar, yaitu keluarga Windows 9x dan keluarga Windows NT (New Technology).
Direktori yang secara otomatis dibuat dalam instalasi Windows adalah:
1.Direktori C:\WINDOWS
Direktori ini berisikan sistem dari Windows. Dalam direktori ini terdapat pustaka-pustaka yang diperlukan oleh Windows, device driver, registry, dan program-program esensial yang dibutuhkan oleh Windows untuk berjalan dengan baik.
2.Direktori C:\Program Files
Direktori ini berisikan semua program yang diinstal ke dalam sistem operasi. Semua program yang diinstal akan menulis entry ke dalam registry agar program tersebut dapat dijalankan dalam sistem Windows.
3.Direktori C:\My Documents
Direktori ini berisikan semua dokumen yang dimiliki oleh pengguna sistem.
Sistem operasi Windows dapat berjalan diatas beberapa macam sistem berkas. Setiap sistem berkas memiliki keunggulan dan kekurangan masing-masing. Semua keluarga Windows yang berbasis Windows NT dapat mendukung sistem berkas yang digunakan oleh keluarga Windows 9x, namun hal tersebut tidak berlaku sebaliknya.
Sistem Berkas yang terdapat dalam sistem operasi Windows adalah:
1.FAT 16: Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3.1
2.FAT 32: Sistem ini digunakan oleh keluarga Windows 9x.
3.NTFS: Merupakan singkatan dari New Technology File System. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi.
Sistem Berkas pada UNIX (dan turunannya)
Ketika kita login ke UNIX, kita akan ditempatkan di direktori root kita. Direktori root kita dikenal sebagai direktori home kita dan dispesifikasi dengan environment variable yang dinamakan HOME. Environment variable ini menentukan karakteristik dari shell kita dan interaksi pengguna dengan shell tersebut. Environment variable yang umum adalah variabel PATH, yang mendefinisikan dimana shell akan mencari ketika perintah dari pengguna. Untuk melihat daftar environment variable, gunakan saja perintah printenv. Sedangkan untuk mengatur environment variable, gunakan setenv.
Ada beberapa direktori yang umum terdapat dalam instalasi UNIX:
1.Direktori "/" (root)
Direktori ini terletak pada level teratas dari struktur direktori UNIX. Biasanya direktori root ini diberi tanda / atau slash. Direktori ini biasanya hanya terdiri dari direktori-direktori lainnya yang terletak pada level dibawah level direktori root. Berkas-berkas dapat disimpan pada direktori root tetapi usahakan tidak menyimpan berkas-berkas biasa sehingga direktori ini tetap terjaga keteraturannya.
Perubahan penamaan direktori-direktori yang ada pada direktori root akan menyebabkan sebagian besar dari sistem menjadi tidak berguna. Karena sebagian besar dari direktori-direktori ini berisi fungsi-fungsi yang sifatnya kritikal yang dimana sistem operasi dan semua aplikasi memerlukan direktori-direktori ini dengan nama yang sudah diberikan pada awal instalasi. Tetapi kita bisa membuat direktori lain pada level ini. Direktori home juga bisa ditemukan pada level ini hasil pembuatan oleh administrator sistem.
2.Direktori "/bin"
Direktori ini berisi program-program yang esensial agar sistem operasi dapat bekerja dengan benar. Dalam direktori ini dapat ditemukan perintah-perintah navigasi, program-program shell, perintah pencarian dan lain-lainnya. bin adalah singkatan dari kata binary. Di UNIX, sebuah binary adalah berkas yang dapat dieksekusi. Sebagian besar dari perintah dalam UNIX merupakan binary, perintah-perintah tersebut merupakan program-program kecil yang dapat dieksekusi oleh pengguna. Ada beberapa perintah yang disebut perintah built-in dimana fungsi mereka dikendalikan oleh program shell sehingga mereka tidak beroperasi sebagai binary yang terpisah.
Terkadang direktori bin terhubung ke direktori lain yang dinamakan /usr/bin. Direktori /usr/bin biasanya adalah lokasi sebenarnya dari binary-binary pengguna disimpan.Dalam hal ini, /bin adalah gerbang untuk mencapai /usr/bin.
3.Direktori "/dev"
Direktori ini berisi berkas-berkas alat atau alat I/O. Sistem UNIX menganggap semua hal sebagai berkas. Hal-hal seperti monitor, CD-ROM, printer dan lain-lainnya dianggap hanya sebagai berkas saja oleh sistem operasi. Jika UNIX memerlukan perangkat-perangkat tersebut maka UNIX akan mencarinya ke direktori dev.
4.Direktori "/etc"
Direktori yang dibaca et-see ini berisi beberapa konfigurasi berkas pengguna dan sistem, dan berkas yang ditunjuk sistem sebagai operasi normal seperti berkas kata sandi, pesan untuk hari ini, dan lain-lainnya.
5.Direktori "/lib"
Direktori ini berisi pustaka-pustaka (libraries) yang dibagi (shared). Pustaka ini adalah rutin perangkat lunak (software routines) yang digunakan lebih dari satu bagian dari sistem operasi. Ketika kita menginstalasi perangkat lunak yang baru maka ada pustaka-pustaka baru yang ditambahkan ke direktori lib. Jika pada waktu berusaha menjalankan aplikasi terdapat pesan error, hal ini diakibatkan ada pustaka yang hilang dari direktori lib. Aplikasi-aplikasi di UNIX biasanya memeriksa lib ketika menginstalasi untuk memeriksa apakah pustaka-pustaka yang diperlukan oleh aplikasi sudah tersedia atau belum. Jika sudah tersedia, UNIX biasanya tidak menimpa pustaka tersebut.
6.Direktori "/sbin"
Direktori ini berisi binary-binary juga seperti pada direktori bin.Tetapi,bedanya adalah binary-binary pada direktori ini berhubungan dengan fungsi-fungsi sistem administrasi pada sistem operasi UNIX. Binary-binary ini bukan yang biasa digunakan oleh pengguna tetapi digunakan agar komputer dapat beroperasi secara efisien.
7.Direktori "/usr"
Direktori ini terdiri dari banyak direktori seperti pada direktori root. Direktori ini berisi berkas-berkas yang dapat diakses oleh para pengguna biasa. Struktur dari direktori ini mirip dengan struktur direktori "/". Beberapa direktori yang terdapat dalam direktori ini berhubungan dengan direktori yang ada di direktori /.
8.Direktori "/var"
Direktori ini berisi data yang bermacam-macam (vary). Perubahan data dalam sistem yang aktif sangatlah cepat. Data-data seperti ini ada dalam waktu yang singkat. Karena sifatnya yang selalu berubah tidak memungkinkan disimpan dalam direktori seperti "/etc". Oleh karena itu, data-data seperti ini disimpan di direktori var.
Perbandingan antara Windows dan UNIX
Sistem berkas UNIX berbeda dengan sistem berkas Windows (DOS) karena sistem berkas UNIX lebih hebat dan mudah diatur daripada Windows (DOS). Penamaan dalam UNIX dan Windows berbeda. Karena sistem Windows ingin memudahkan pengguna maka sistem mereka mengubah nama menjadi nama yang lebih mudah bagi para pengguna. Contohnya adalah nama folder dalam adalah perubahan dari directory yang masih digunakan oleh UNIX. Penggunaan back slash (\) digunakan untuk memisahkan direktori-direktori dalam Windows, tetapi hal ini tidak ada dalam UNIX. Sistem UNIX menggunakan case sensitive, yang artinya nama suatu berkas yang sama jika dibaca, tetapi penulisan namanya berbeda dalam hal ada satu file yang menggunakan huruf kapital dalam penamaan dan satu tidak akan berbeda dalam UNIX. Contohnya ada berkas bernama berkasdaku.txt dan BerkasDaku.txt, jika dibaca nama berkasnya sama tetapi dalam UNIX ini merupakan dua berkas yang jauh berbeda. Jika berkas-berkas ini berada di sistem Windows, mereka menunjuk ke berkas yang sama yang berarti Windows tidak case sensitive.
Hal lain yang membedakan sistem berkas UNIX dengan Windows adalah UNIX tidak menggunakan drive letter seperti C:, D: dalam Windows. Tetapi semua partisi dan drive ekstra di mount didalam sub-direktori di bawah direktori root. Jadi pengguna tidak harus bingung di drive letter mana suatu berkas berada sehingga seluruh sistem seperti satu sistem berkas yang berurutan dari direktori root menurun secara hierarki.
Macam-macam Sistem Berkas di UNIX
Secara garis besar, sistem berkas di sistem UNIX terbagi menjadi dua, yaitu sistem berkas dengan fasilitas journaling dan yang tidak memiliki fasilitas tersebut. Dibawah ini adalah beberapa sistem berkas yang digunakan dalam sistem UNIX pada umumnya:
1.EXT2
2.EXT3
3.JFS (Journaling File System)
4.ReiserFS
5.Dan Lain-lain.
Kesimpulan
Sistem berkas merupakan mekanisme penyimpanan on-line serta untuk akses, baik data mau pun program yang berada dalam Sistem Operasi. Terdapat dua bagian penting dalam sistem berkas, yaitu:
1.Kumpulan berkas, sebagai tempat penyimpanan data, serta
2.Struktur direktori, yang mengatur dan menyediakan informasi mengenai seluruh berkas dalam sistem.
Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Atribut berkas terdiri dari:
1.Nama; merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form)
2.Type; dibutuhkan untuk sistem yang mendukung beberapa type berbeda
3.Lokasi; merupakan pointer ke device dan ke lokasi berkas pada device tersebut
4.Ukuran (size); yaitu ukuran berkas pada saat itu, baik dalam byte, huruf, atau pun blok
5.Proteksi; adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis, dan mengeksekusi berkas
6.Waktu, tanggal dan identifikasi pengguna; informasi ini biasanya disimpan untuk:
- pembuatan berkas
- modifikasi terakhir yang dilakukan pada berkas, dan
- modifikasi terakhir yang dilakukan pada berkas, dan
- modifikasi terakhir yang dilakukan pada berkas, dan
- penggunaan terakhir berkas
Operasi Pada Berkas
1.Membuat sebuah berkas.
2.Menulis pada sebuah berkas.
3.Membaca sebuah berkas.
4.Menempatkan kembali sebuah berkas.
5.Menghapus sebuah berkas.
6.Memendekkan berkas.
Metode Akses
1.Akses Berurutan.
2.Akses Langsung.
3.Akses menggunakan Indeks.
Operasi Pada Direktori
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1.Mencari berkas.
2.Membuat berkas.
3.Menghapus berkas.
4.Menampilkan isi direktori.
5.Mengganti nama berkas.
6.Melintasi sistem berkas.
Macam-macam Direktori
1.Direktori Satu Tingkat.
2.Direktori Dua Tingkat.
3.Direktori Dengan Struktur "Tree".
4.Direktori Dengan Struktur "Acyclic-Graph".
5.Direktori Dengan Struktur Graph.
Metode Alokasi Berkas
1.Alokasi Secara Berdampingan (Contiguous Allocation).
2.Alokasi Secara Berangkai (Linked Allocation).
3.Alokasi Dengan Indeks (Indexed Allocation).
Manajemen Free Space
1.Menggunakan Bit Vektor.
2.Linked List.
3.Grouping.
4.Counting.
Implementasi Direktori
1.Linear List.
2.Hash Table.
Sistem Berkas pada Windows
Direktori yang secara otomatis dibuat dalam instalasi Windows adalah:
1.Direktori C:\WINDOWS
2.Direktori C:\Program Files
3.Direktori C:\My Documents
Sistem Berkas yang terdapat dalam sistem operasi Windows adalah:
1.FAT 16
Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3.1
2.FAT 32
Sistem ini digunakan oleh keluarga Windows 9x
3.NTFS
Merupakan singkatan dari New Technology File System. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi.
Sistem Berkas pada UNIX (dan turunannya)
Ada beberapa direktori yang umum terdapat dalam instalasi UNIX:
1.Direktori /root.
2.Direktori /bin.
3.Direktori /dev.
4.Direktori /etc.
5.Direktori /lib.
6.Direktori /sbin.
7.Direktori /usr.
8.Direktori /var.
Macam-macam Sistem Berkas di UNIX
1.EXT2.
2.EXT3.
3.JFS (Journaling File System).
4.ReiserFS.
5.Dan Lain-lain.
Soal-Soal Sistem Berkas
1.Sebutkan macam-macam atribut pada berkas!
2.Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?
3.Sebutkan informasi yang terkait dengan pembukaan berkas!
4.Sebutkan dan jelaskan metode alokasi pada sistem berkas!
5.Sebutkan dan jelaskan operasi pada direktori?
6.Sebutkan dan Jelaskan tentang tipe akses pada berkas?
7.Sebutkan dan jelaskan bagaimana cara mengatur free space?
8.Bagaimanakah implementasi dari sebuah direktori dalam disk
9.Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?
10.Bagaimanakah langkah-langkah dalam proses back-up?
Deadlock
Gambaran Mengenai Deadlock
Pada sistem multiprogramming, beberapa proses mungkin saja harus berkompetisi untuk menggunakan sumber daya yang jumlahnya terbatas. Jika sebuah proses me-request sumber daya dan sumber daya tersebut tidak tersedia pada saat itu (sedang dipegang oleh proses lain), maka proses tersebut akan memasuki status wait (proses diblok). Status proses yang sedang menunggu tersebut bisa saja tidak akan pernah berubah karena sumber daya yang di-request proses tersebut sedang dipegang oleh proses lain yang juga sedang menunggu. Situasi demikian dinamakan sebagai deadlock.
Berdasarkan uraian pada poin di atas, dapat disimpulkan bahwa deadlock terjadi saat dua atau lebih proses menunggu suatu kejadian selama tak terhingga karena kejadian tersebut hanya bisa disebabkan oleh sebuah proses yang sedang menunggu.
Dengan kata lain, deadlock terjadi saat himpunan proses yang masing-masing memegang sumber daya sedang diblok dan menunggu untuk mendapatkan sumber daya yang sedang dipegang oleh proses lain dalam himpunan proses tersebut.
Ilustrasi deadlock dapat digambarkan dengan masalah jembatan penyeberangan.
Model Sistem
Sebuah sistem terdiri dari sumber daya dengan jumlah terbatas yang didistribusikan kepada sejumlah proses yang berkompetisi untuk mendapatkan sumber daya.
Sumber daya terbagi menjadi beberapa tipe dan tiap tipe sumber daya dapat terdiri dari sejumlah instance yang identik. Contoh tipe sumber daya adalah space memory, siklus CPU, dan I/O devices (misalnya : printer dan tape drives). Jika sebuah sistem memiliki 2 printer maka sumber daya bertipe printer mempunyai 2 instance.
Status proses terhadap sumber daya yang perlu digunakannya adalah sebagai urutan berikut :
1.Request :
Jika request proses terhadap suatu sumber daya belum dipenuhi (misalnya : sumber daya yang di-request sedang digunakan oleh proses lain), maka proses yang me-request harus menunggu sampai sumber daya yang diperlukannya tersedia).
Use :
Proses dapat menggunakan sumber daya (misalnya : jika sumber daya-nya adalah printer, maka proses dapat melakukan pencetakan dengan printer).
Release:
Proses melepaskan sumber daya.
Status deadlock pada sebuah sistem dapat terjadi baik dengan melibatkan tipe sumber daya yang sama, maupun dengan melibatkan tipe sumber daya yang berbeda.
Karateristik Deadlock
Saat terjadi deadlock, proses-proses tidak pernah selesai diekseskusi.
Syarat perlu terjadinya deadlock yaitu :
Mutual exclusion :
Hanya satu proses pada suatu waktu yang dapat menggunakan sebuah sumber daya.
Hold and wait :
Suatu proses yang sedang memegang satu atau lebih sumber daya sedang menunggu sumber daya tambahan yang sedang dipegang oleh proses lain.
No preemption
Sumber daya hanya dapat lepas dari proses yang sedang memegangnya jika proses itu sendiri yang melepas sumber daya tersebut secara sukarela setelah proses itu menyelesaikan task-nya.
Circular Wait
Terdapat sebuah himpunan proses yang sedang menunggu yaitu : (P0, P1, ..., Pn), dimana P0 menunggu sumber daya yang sedang dipegang oleh P1, P1 menunggu sumber yang sedang dipegang oleh P2, ... , Pn-1 menunggu sumber daya yang sedang dipegang oleh Pn, dan Pn menunggu sumber daya yang sedang dipegang oleh P0.
Deadlock dapat dideskripsikan dengan menggunakan graph berarah bernama resource-allocation graph.
Jika resource-allocation graph tidak mengandung cycle, maka deadlock tidak akan terjadi.
Jika resource allocation graph mengandung cycle :
Jika tiap tipe sumber daya hanya memiliki 1 instance, maka terjadi deadlock.
Jika tiap tipe sumber daya memiliki beberapa instance, maka deadlock mungkin bisa terjadi (bisa juga tidak).
Metode Untuk Menangani Deadlocks
Menggunakan protokol yang menjamin sistem tidak akan pernah memasuki status deadlock
Membolehkan sistem memasuki status deadlock, lalu dilakukan recover.
Menganggap bahwa deadlocks tidak pernah terjadi dalam sistem (metode ini digunakan oleh sebagian besar sistem operasi termasuk UNIX).
Pencegahan Deadlock
Dengan memastikan bahwa setidaknya satu dari syarat perlu deadlock tidak terpenuhi, maka terjadinya deadlock dapat dicegah.Oleh karena itu, untuk mencegah deadlock diupayakan agar salah satu dari mutual exclusion, hold and wait, no preemption atau circular wait tidak terpenuhi.
Menghindari Deadlock
Menghindari deadlock berarti menghindari jangan sampai sistem berada pada status tidak aman.
Sistem dikatakan berada pada status aman bila sistem dapat mengalokasikan sumber daya ke masing-masing proses dengan urutan tertentu dan masih bisa menghindari deadlock
Jika sistem berada pada status aman maka deadlock tidak akan terjadi.
Jika sistem berada pada status tidak aman maka deadlock mungkin terjadi.
Beberapa algoritma untuk menghindari deadlock :
Resource allocation graph algorithm
Banker's algorithm
Pendeteksian Deadlock
Jika deadlock dapat terjadi pada sebuah sistem maka sistem tersebut harus menyediakan allgoritma untuk mendeteksi apakah deadlock telah terjadi dan algoritma untuk memulihkan sistem dari deadlock.
Pemulihan Dari Deadlock
Terminasi proses
Sumber daya preemption
1.Apakah perbedaan antara mencegah deadlock dan menghindari deadlock ?
Jawaban :
Mencegah deadlock : Memastikan agar minimal 1 dari syarat perlu deadlock tidak terpenuhi.
Menghindari deadlock : Menghindari agar jangan sampai sistem berada dalam status tidak aman.
2.Apakah perbedaan antara resource allocation graph algorithm dengan banker's algorithm ?
Resource allocation graph algorithm : tidak bisa digunakan untuk sistem yang masing-masing tipe sumber dayanya memiliki banyak instance.
Banker's algorithm : dapat digunakan untuk sistem yang masing-masing tipe sumber dayanya memiliki banyak instance.
3.Diketahui :
Terdapat 5 proses bernama P0, P1, P2, P3, dan P4 dan terdapat 3 tipe sumber daya yaitu tipe sumber daya A, B, dan C.
Sumber daya A memiliki 10 instance.
Sumber daya B memiliki 5 instance.
Sumber daya C memiliki 7 instance.
Snapshot sistem :
Allocation
Max
Available
A B C
A B C
A B C
P0
0 1 0
7 5 3
3 3 2
P1
2 0 0
3 2 2
P2
3 0 2
9 0 2
P3
2 1 1
2 2 2
P4
0 0 2
4 3 3
Ditanyakan :
a. Tunjukkan isi matriks Need!
b. Apakah sistem berada dalam status aman ?
Jawaban :
a. Need = Max - Allocation
Maka isi matriks Need yaitu :
Allocation
A B C
P0
7 4 3
P1
1 2 2
P2
6 0 0
P3
0 1 1
P4
4 3 1
b. Sistem berada dalam status aman karena urutan memenuhi kriteria aman.
4.Deadlock ialah suatu kondisi dimana proses dalam sistem operasi tidak berjalan lagi ataupun tidak ada komunikasi lagi antar proses.
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
contoh :
Misal ada proses A mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan.
Pada sistem multiprogramming, beberapa proses mungkin saja harus berkompetisi untuk menggunakan sumber daya yang jumlahnya terbatas. Jika sebuah proses me-request sumber daya dan sumber daya tersebut tidak tersedia pada saat itu (sedang dipegang oleh proses lain), maka proses tersebut akan memasuki status wait (proses diblok). Status proses yang sedang menunggu tersebut bisa saja tidak akan pernah berubah karena sumber daya yang di-request proses tersebut sedang dipegang oleh proses lain yang juga sedang menunggu. Situasi demikian dinamakan sebagai deadlock.
Berdasarkan uraian pada poin di atas, dapat disimpulkan bahwa deadlock terjadi saat dua atau lebih proses menunggu suatu kejadian selama tak terhingga karena kejadian tersebut hanya bisa disebabkan oleh sebuah proses yang sedang menunggu.
Dengan kata lain, deadlock terjadi saat himpunan proses yang masing-masing memegang sumber daya sedang diblok dan menunggu untuk mendapatkan sumber daya yang sedang dipegang oleh proses lain dalam himpunan proses tersebut.
Ilustrasi deadlock dapat digambarkan dengan masalah jembatan penyeberangan.
Model Sistem
Sebuah sistem terdiri dari sumber daya dengan jumlah terbatas yang didistribusikan kepada sejumlah proses yang berkompetisi untuk mendapatkan sumber daya.
Sumber daya terbagi menjadi beberapa tipe dan tiap tipe sumber daya dapat terdiri dari sejumlah instance yang identik. Contoh tipe sumber daya adalah space memory, siklus CPU, dan I/O devices (misalnya : printer dan tape drives). Jika sebuah sistem memiliki 2 printer maka sumber daya bertipe printer mempunyai 2 instance.
Status proses terhadap sumber daya yang perlu digunakannya adalah sebagai urutan berikut :
1.Request :
Jika request proses terhadap suatu sumber daya belum dipenuhi (misalnya : sumber daya yang di-request sedang digunakan oleh proses lain), maka proses yang me-request harus menunggu sampai sumber daya yang diperlukannya tersedia).
Use :
Proses dapat menggunakan sumber daya (misalnya : jika sumber daya-nya adalah printer, maka proses dapat melakukan pencetakan dengan printer).
Release:
Proses melepaskan sumber daya.
Status deadlock pada sebuah sistem dapat terjadi baik dengan melibatkan tipe sumber daya yang sama, maupun dengan melibatkan tipe sumber daya yang berbeda.
Karateristik Deadlock
Saat terjadi deadlock, proses-proses tidak pernah selesai diekseskusi.
Syarat perlu terjadinya deadlock yaitu :
Mutual exclusion :
Hanya satu proses pada suatu waktu yang dapat menggunakan sebuah sumber daya.
Hold and wait :
Suatu proses yang sedang memegang satu atau lebih sumber daya sedang menunggu sumber daya tambahan yang sedang dipegang oleh proses lain.
No preemption
Sumber daya hanya dapat lepas dari proses yang sedang memegangnya jika proses itu sendiri yang melepas sumber daya tersebut secara sukarela setelah proses itu menyelesaikan task-nya.
Circular Wait
Terdapat sebuah himpunan proses yang sedang menunggu yaitu : (P0, P1, ..., Pn), dimana P0 menunggu sumber daya yang sedang dipegang oleh P1, P1 menunggu sumber yang sedang dipegang oleh P2, ... , Pn-1 menunggu sumber daya yang sedang dipegang oleh Pn, dan Pn menunggu sumber daya yang sedang dipegang oleh P0.
Deadlock dapat dideskripsikan dengan menggunakan graph berarah bernama resource-allocation graph.
Jika resource-allocation graph tidak mengandung cycle, maka deadlock tidak akan terjadi.
Jika resource allocation graph mengandung cycle :
Jika tiap tipe sumber daya hanya memiliki 1 instance, maka terjadi deadlock.
Jika tiap tipe sumber daya memiliki beberapa instance, maka deadlock mungkin bisa terjadi (bisa juga tidak).
Metode Untuk Menangani Deadlocks
Menggunakan protokol yang menjamin sistem tidak akan pernah memasuki status deadlock
Membolehkan sistem memasuki status deadlock, lalu dilakukan recover.
Menganggap bahwa deadlocks tidak pernah terjadi dalam sistem (metode ini digunakan oleh sebagian besar sistem operasi termasuk UNIX).
Pencegahan Deadlock
Dengan memastikan bahwa setidaknya satu dari syarat perlu deadlock tidak terpenuhi, maka terjadinya deadlock dapat dicegah.Oleh karena itu, untuk mencegah deadlock diupayakan agar salah satu dari mutual exclusion, hold and wait, no preemption atau circular wait tidak terpenuhi.
Menghindari Deadlock
Menghindari deadlock berarti menghindari jangan sampai sistem berada pada status tidak aman.
Sistem dikatakan berada pada status aman bila sistem dapat mengalokasikan sumber daya ke masing-masing proses dengan urutan tertentu dan masih bisa menghindari deadlock
Jika sistem berada pada status aman maka deadlock tidak akan terjadi.
Jika sistem berada pada status tidak aman maka deadlock mungkin terjadi.
Beberapa algoritma untuk menghindari deadlock :
Resource allocation graph algorithm
Banker's algorithm
Pendeteksian Deadlock
Jika deadlock dapat terjadi pada sebuah sistem maka sistem tersebut harus menyediakan allgoritma untuk mendeteksi apakah deadlock telah terjadi dan algoritma untuk memulihkan sistem dari deadlock.
Pemulihan Dari Deadlock
Terminasi proses
Sumber daya preemption
1.Apakah perbedaan antara mencegah deadlock dan menghindari deadlock ?
Jawaban :
Mencegah deadlock : Memastikan agar minimal 1 dari syarat perlu deadlock tidak terpenuhi.
Menghindari deadlock : Menghindari agar jangan sampai sistem berada dalam status tidak aman.
2.Apakah perbedaan antara resource allocation graph algorithm dengan banker's algorithm ?
Resource allocation graph algorithm : tidak bisa digunakan untuk sistem yang masing-masing tipe sumber dayanya memiliki banyak instance.
Banker's algorithm : dapat digunakan untuk sistem yang masing-masing tipe sumber dayanya memiliki banyak instance.
3.Diketahui :
Terdapat 5 proses bernama P0, P1, P2, P3, dan P4 dan terdapat 3 tipe sumber daya yaitu tipe sumber daya A, B, dan C.
Sumber daya A memiliki 10 instance.
Sumber daya B memiliki 5 instance.
Sumber daya C memiliki 7 instance.
Snapshot sistem :
Allocation
Max
Available
A B C
A B C
A B C
P0
0 1 0
7 5 3
3 3 2
P1
2 0 0
3 2 2
P2
3 0 2
9 0 2
P3
2 1 1
2 2 2
P4
0 0 2
4 3 3
Ditanyakan :
a. Tunjukkan isi matriks Need!
b. Apakah sistem berada dalam status aman ?
Jawaban :
a. Need = Max - Allocation
Maka isi matriks Need yaitu :
Allocation
A B C
P0
7 4 3
P1
1 2 2
P2
6 0 0
P3
0 1 1
P4
4 3 1
b. Sistem berada dalam status aman karena urutan
4.Deadlock ialah suatu kondisi dimana proses dalam sistem operasi tidak berjalan lagi ataupun tidak ada komunikasi lagi antar proses.
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
contoh :
Misal ada proses A mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan.
Jumat, 17 April 2009
bahasa indonesia
Soal 1:
Soal 2:
Soal 3:
Soal 4:
Soal 5:
Soal 6:
Soal 7:
Soal 8:
Soal 9:
Soal 10:
Soal 11:
Soal 12:
Soal 13:
Soal 14:
Soal 15:
Soal 16:
Soal 17:
Soal 18:
Soal 19:
Soal 20:
Soal 21:
Soal 22:
Soal 23:
Soal 24:
Soal 25:
Soal 26:
Soal 27:
Soal 28:
Soal 29:
Soal 30:
Soal 31:
Soal 32:
Soal 33:
Soal 34:
Soal 35:
Soal 36:
Soal 37:
Soal 38:
Soal 39:
Soal 40:
Soal 41:
Soal 42:
Soal 43:
Soal 44:
Soal 45:
Soal 46:
Soal 47:
Soal 48:
Soal 49:
Soal 50:
Kalimat poster yang berhubungan dengan masalah kependudukan ialah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 1: | |||
Soal 2:
Kalimat yang tepat sebagai pembuka surat undangan resmi adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 2: | |||
Soal 3:
Pukul 06.30 pagi telah berangkat. Jalan mulus yang kami lalui merupakan satu-satunya jalan penghubung antara Palembang dan Kotabumi, kami sengaja menempuh jalan darat karena perhubungan udara antara kedua kota itu tidak ada. Kira-kira 25 km dari Palembang kami terpaksa berhenti selama satu setengah jam karena jembatan yang menghubungkan kedua kota itu diperbaiki. Untunglah ada pesawat telepon di mobil sehingga kami dapat menghubungi kantor yang akan kami tuju untuk membetitahukan keterlambatan kami. Berdasarkan isinya penggalan bagian laporan di atas termasuk jenis laporan... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 3: | |||
Soal 4:
Seorang sangat tertarik ketika menyaksikan pertandingan sepak bola antara kesebelasan yang terkenal.Pertandingan berlangsung seru dari awal sampai akhir tak henti-hentinya sambutan penonton. Kapten kesebelasan Maradona betul-betul lihai memainkan bola. Ungkapan yang menyatakan rasa tertarik dalam menyaksikan sepak bola adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 4: | |||
Soal 5:
OSIS SMU Taruna Jaya akan mengadakan LDKS di sekolah pada tanggal 1 s.d. 30 Agustus 1999. Agar informasi ini dapat diketahui oleh semua siswa, maka panitia memasang pengumuman di papan pengumuman. Kalimat pengumuman yang tepat adalah.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 5: | |||
Soal 6:
Pasal I Pihak pertama menyewakan kepada pihak kedua sebuah rumah berukuran 8x14 meter, berlantai tegel, dinding tembok; atap genteng di atas tanah seluas 20x30 meter persegi,terletak di Jalan Ali Haji 20 dengan sewa Rp.3.000.000,00 (tiga juta rupiah) Pasal 2 Pihak kedua sanggup membayar utang sewa selama lima tahun secara tunai pada waktu surat perjanjian ini ditandatangani, dan akan menempati rumah tersebut hanya sebagai tempat tinggal saja Pasal 3 Pihak pertama tidak akan menyewakan kepada pihak lain atau memindahkan hak atas rumah tersebut di atas sampai batas waktu lima tahun berakhir Menilik pasal-pasal pada surat perjanjian di atas, maka surat itu termasuk... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 6: | |||
Soal 7:
Kalimat majemuk bertingkat perluasan keterangan waktu terdapat dalam pernyataan ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 7: | |||
Soal 8:
Kata umum dalam bidang koperasi terdapat dalam kalimat ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 8: | |||
Soal 9:
Dalam rangka memperingati hari Kartini OSIS SMA Muda Taruna akan mengadakan lomba pasangan serasi antar kelas. Lomba akan diselenggarakan Sabtu,20 April 2004,pukul 09.00. Pendaftaran ddimulai tanggal 5 April sampai dengan 19 April 2004. Lomba diselenggarakan di aula.Setiap kelas wajib mengirin satu pasang Kalimat penggumuman yang tepat untuk ilustrasi diatas adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 9: | |||
Soal 10:
Fungsi Bahasa Indonesia sebagai bahasa Negara tercantum di dalam... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 10: | |||
Soal 11:
Penggunaan imbuhan - wan yang salah terdapat dalam kalimat … | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 11: | |||
Soal 12:
(I)RSU ini direncanakan merupakan salah satu alternatif tempat pemilihan pengobatan di kotaini. (2)Di RSU di pasang alat canggih untuk mendeteksi kelainan jantung. (3) Pengelola RSU berusaha melengkapi pengobatan setingkat RSU di kota besar. (4)Jika pertambahan penduduk bertambah 2% per tahun, RSU ini menjadi alternatif pertama dalam pemulihan kesehatan. (5)Ada asumsi bahwa pelayanan kesehatan bermutu lebih mudah dikenal dari kecanggihan infrastruktur klinik maupun rumah sakit. Kalimat yang mengandung fakta terdapat pada nomor ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 12: | |||
Soal 13:
Sore itu langit di ufuk senja kemerah-merahan. Makna kata ulang dalam kalimat di atas adalah.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 13: | |||
Soal 14:
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 14: | |||
Soal 15:
Penulisan singkatan yang sudah umum dan tepat adalah… | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 15: | |||
Soal 16:
Perhatikan ilustrasi berikut ini! “Rina tinggal disebuah kompleks perumahan. Rina sudah beberapa kali meminta kepada orang tuanya agar secepatnya pindah dari rumah tersebut karena tidak betah tinggal. Ketidak betahan Rina karena tidak dapat menyesuaikan diri dengan lingkungan sekitarnya.hubungan dengan sesama remaja tidak begitu baik.Rina adalah orang yang sombong dan menilai sesama temannya lebih rendah dari padanya.Pada suatu kesempatan sahabatnya berkata, �tolong hilangkan perilaku tersebut. Kita semua adalah mahluk sosial yang paling memerlukan. Dimana kita kita berada kita tetap akan menerima persoalan.Sekarang lebih baik kita belajar menyesuaikan diri.� Kalimat yang menjadi kunci penyelesaian persoalan di atas… | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 16: | |||
Soal 17:
Regu pecinta alam sekolah kami mendaki gunung Gede. Anggota regu berjumlah lima orang. Seorang sakit dalam perjalanan. Yang seorang lagi tidak tahan dengan udara dingin, cuaca memang tidak mendukung, yang lain sampai juga ke puncak gunung itu. Kalimat yang menyatakan kemampuan menyelesaikan pendakian dari ketiga anggota pendaki di atas adalah ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 17: | |||
Soal 18:
Tema puisi tersebut adalah............. | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 18: | |||
Soal 19:
Sudut pandang yang di gunakan pengarang dalam kutipan cerpen tersebut adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 19: | |||
Soal 20:
Perhatikan kesalahan bahasa pada surat perjanjian jual-beli berikut! Pasal 3 Perjanjian jual beli ini diadakan dengan harga Rp. 15.000.000,00. Jumlah tersebut dibayar pada saat penandatangan perjanjian, di mana pembeli dibeli tanda penerimaan tersendiri. Kesalahan bahasa pasal di atas dapat diperbaiki dengan... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 20: | |||
Soal 21:
Melalui televisi kita mengikuti upacara di ibu kota propinsi dengan gubernur sebagai inspektur upacara. Kata inspektur bersinonim dengan.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 21: | |||
Soal 22:
Pernyataan berikut ini yang 'tidak' termasuk tugas pemandu diskusi adalah ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 22: | |||
Soal 23:
Bacalah Ilustrasi berikut! Maksudnya Suwarno Terlalu mengagumi Hamengkubuwono IX. Akibatnya, buku ini � overrepetitive�, khussunya tentang tokoh Hamengkubuwono IX. Tidak henti-hentinya dia di puja, progresif, antikolonial, prorakyat, ikut revolusi dan sebagainya seperti klise yang diatributkan buat tokoh dan pahlawan kita. Akibat kurang analisis dan kritik atau kurang perbandingan Kalimat yang menggunakan kelemahan buku sesuai ilustrasi tersebut adalah..... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 23: | |||
Soal 24:
Bacalah Ilustrasi berikut! Maksudnya Suwarno Terlalu mengagumi Hamengkubuwono IX. Akibatnya, buku ini � overrepetitive�, khussunya tentang tokoh Hamengkubuwono IX. Tidak henti-hentinya dia di puja, progresif, antikolonial, prorakyat, ikut revolusi dan sebagainya seperti klise yang diatributkan buat tokoh dan pahlawan kita. Akibat kurang analisis dan kritik atau kurang perbandingan Kalimat yang menggunakan kelemahan buku sesuai ilustrasi tersebut adalah..... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 24: | |||
Soal 25:
"Lebih baik naik vespa" Iklan di atas sudah memenuhi syarat-syarat periklanan, kecuali .... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 25: | |||
Soal 26:
Keputusan yang diambil dengan jalan bermusyawarah dapat diungkapkan dengan pribahasa ........ | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 26: | |||
Soal 27:
"Dari hasil penelitian selama lima tahun menunjukkan bahwa jumlah kendaraan di DIY melebihi fasilitas jalan." Kalimat di atas belum baku. Agar menjadi kalimat baku, sebaiknya... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 27: | |||
Soal 28:
Karangan bunga Tiga anak kecil Dalam langkah malu-malu Datang ke salemba Sore itu � ini dari kami bertiga Pita hitam pada karangan bunga Sebab kami ikut berduka Bagi kakak yang ditembak mati Siang tadi� Taufik Ismail Masalah sosial yang terdapat dalam puisi ini... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 28: | |||
Soal 29:
Kalimat majemuk yang memiliki klausa setara dan bertingkat adalah ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 29: | |||
Soal 30:
"Saya mengucapkan selamat dan bersyukur atas keberhasilanmu." Kalimat di atas merupakan pernyataan .... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 30: | |||
Soal 31:
Gedung berlantai dua yang tinggi dan besar di jalan Madiun, Jakarta Pusat, itu tampak tidak terawat. Kusen-kusennya mulai lapuk dan cat temboknya mengelupas. Nama gedung itu tertulis dengan huruf Jawa yang sudah tidak lengkap lagi,Shandipala. Di depan gedung itu tertulis Bakolak Inpres No.6 Tahun 1971 Pola pengembangan paragraf di atas adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 31: | |||
Soal 32:
Tidak ada gunanya menanti sesuatu yang tidak jelas. Kalimat penjelas yang tidak relevan dengan kalimat utama tersebut adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 32: | |||
Soal 33:
Angin pagi mengelus tubuhku. Majas yang tidak sejenis dengan majas tersaji adalah.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 33: | |||
Soal 34:
1) Di Lingkungan perbankan sering muncul sindiran bahwa baik bank-bank besar pemerintah maupun swasta hanya berhubungan dengan pengusaha konglomerat. 2) Konsekwensinya, akses terhadap sumber daya ekonomi hanya bergulir pada segelintir orang. 3) Akhirnya basis ekonomi rakyat kurang berkembang, apalagi kebijakan ekonomi rakyat berkembang, apalagi kebijakan ekonomi lebih berorientasi ke atas. Kalimat yang menggunakan kata tidak baku dalam penggalan artikel tersebut adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 34: | |||
Soal 35:
Tentukan kalimat yang menggunakan kata penghubung " yang " secara tepat di bawah ini ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 35: | |||
Soal 36:
Kesimpulan rapat yang membahas masalah kedisiplinan sekolah, yang tepat adalah.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 36: | |||
Soal 37:
Perhatikan paragraf berikut ini ! Apabila penderita kencing manis mengalami Komplikasi dengan penyakit lain penyembuhannya akan sulit sekali. karena itu, kita harus pandai - pandai mejaga kesehatan. Kata komplikasi pada paragraf tersebut berarti penyakit ... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 37: | |||
Soal 38:
Kata ulang sebagian yang komponen pokoknya pada unsur kedua terdapat pada kalimat… | |||
A. | |||
B. | |||
C. | |||
D. | |||
E. | |||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 38: | |||
Soal 39:
Jika hari rembang petang tidak berarti permainan bakal selesai dan boleh ditinggalkan gelanggang hanya peranan berputar dari pemain di dalam menjadi penonton di luar Amanat yang terkandung dalam penggalan puisi di atas adalah .... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 39: | |||
Soal 40:
Kalimat permohonan maaf yang santun dituliskan Anisa dalam surat pribadi sesuai dengan ilustrasi adalh... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 40: | |||
Soal 41:
Toni :"Bagus benar pemandangan di tempat ini ya, Bud." Budi :" Iya,saya pun merasa betah tinggal di sini Tempat rekreasi ini memang banyak dikunjungi wisatawan asing maupun domestik." Toni :"Lihat Bud, dibawah itu ada pemandian. Kata orang airnya pun panas. Mari kita ke sana Bud!" Budi :....(Budi menyetujuinya) Pernyataan yang tepat untuk mengungkapkan persetujuan Budi adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 41: | |||
Soal 42:
Perhatikan susunan kerangka karangan berikut ! 1)Manfaat Olahraga 5)Kesimpulan 2)Penutup 6)Olahraa dan Kesehatan 3)Pendahuluan 7)Sehat itu Penting 4)Kata Pengantar Uraian kerangka karangan yang tepat berdasarkan data di atas adalah ..... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 42: | |||
Soal 43:
Tahun 1995 lalu, jumlah pembeli yang terdiri atas perusahaan biro perjalanan wisata dari mancanegara tercatat 170 pembeli dari 32 negara. Pada tahun 1996 jumlah pembeli menjadi 206 dari 36 negara. Begitulah perbandingan jumlah pembeli memperlihatkan adanya peningkatan jumlah wisatawan Paragraf tersebut dikembangkan dengan pola.... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 43: | |||
Soal 44:
Watak tokoh Bapak yang tergambar dalam penggalan roman tersebut adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 44: | |||
Soal 45:
Kalimat di bawah ini menggunakan kata sifat, kecuali …. | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | E ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 45: | |||
Soal 46:
Suasana yang tergambar dalam puisi tersebut adalah.. | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | D ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 46: | |||
Soal 47:
Perhatikan diagram berikut tentang Data Pendidikan Penduduk! Kalimat berikut yang sesuai dengan isi diagram tersebut adalah…. | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | C ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 47: | |||
Soal 48:
Dengan cekatan anak kecil itu melambai-lambaikan koran sore yang dibawanya kepada orang-orang yang berdiri menunggu datangnya bus diterminal itu. Beberapa orang tertarik untuk membelinya. Ada yang karena sekedar kasihan dengan si anak, tetapi ada juga yang karena ingin mengetahui berita sore itu. pembuatan kalimat yang tepat untuk dijadikan larik puisi prosa tersebut adalah... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 48: | |||
Soal 49:
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | A ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 49: | |||
Soal 50:
Kebanyakan petani kita tidak berbakat dalam masalah teknik dan selalu mengalami kesulitan kalau traktornya rewel.Untuk mengatasinya,dealer traktor selain mempunyai stok suku cadang yang cukup sebaiknya juga punya bengkel untuk mereparasi traktor-traktor yang rusak. Padahal dengan perawatan yang memadai, umur traktor itu bisa sepuluh atau dua puluh tahun. Hal ini tentu membantu penghematan biaya.Dengan kata lain uang dapat dimanfaatkan untuk keperluan yang lain. Gagasan umum dalam paragraf di atas terdapat pada kalimat... | |||
A. |
| ||
B. |
| ||
C. |
| ||
D. |
| ||
E. |
| ||
Kunci: | B ===> Jawaban anda: kosong (SALAH) | ||
Penyelesaian soal 50: | |||
sumber : www.e-dukasi.net |
Langganan:
Postingan (Atom)