implementasi sistem file

29
MAKALAH SISTEM OPERASI (IMPLEMENTASI SISTEM FILE) DI SUSUN OLEH: KELOMPOK 10: Nama Anggota : 1. Muhammad Zulfan Azhari (090412026) 2. Nurul Nova Rina (090412050) Kelas : G2 Jurusan : T. Elektro Prodi : T. Informatika POLITEKNIK NEGERI LHOKSUEMAWE

Upload: muhammad-zulfan-azhari

Post on 05-Jul-2015

1.571 views

Category:

Documents


106 download

TRANSCRIPT

Page 1: Implementasi Sistem File

MAKALAHSISTEM OPERASI

(IMPLEMENTASI SISTEM FILE)

DI SUSUN

OLEH:

KELOMPOK 10:

Nama Anggota : 1. Muhammad Zulfan Azhari (090412026)2. Nurul Nova Rina (090412050)

Kelas : G2Jurusan : T. ElektroProdi : T. Informatika

POLITEKNIK NEGERI LHOKSUEMAWEJURUSAN TEKNIK ELEKTRO

PRODI TEKNIK INFORMATIKA2011

Page 2: Implementasi Sistem File

KATA PENGANTAR

Puji syukur mari sama-sama kita panjatkan kehadirat Allah swt yang telah memberi kita

kesempatan dan kesehatan kepada kita semua sehingga penulis dapat menyelesaikan sebuah

makalah yang sangat sederhana ini dengan judul Implementasi Sistem File.

Selanjutnya salawat dan salam kita limpahkan kepada junjungan kita Nabi Muhammad saw

yang telah membawa kita dari alam kebodohan ke alam yang penuh dengan ilmu

pengetahuan dan rahmat seperti yang dapat kita rasakan sekarang ini.

Penulis menyadari sepenuhnya bahwa makalah ini masih jauh dari kesempurnaan, baik dari

segi tata bahasa maupun dari segi-segi lainnya, oleh sebab itu penulis mengharapkan saran

dan kritikannya yang bersifat positif dan membangun dari semua pihak.

Akhirnya semoga Allah swt memberikan yang layak atas seluruh jasa dan kebijakan yang

penulis terima. Semoga hasil karya ini bermanfaat bagi penulis sendiri maupun bagi pihak

yang lain.

Wassalam

Page 3: Implementasi Sistem File

Implementasi Sistem

File

PENDAHULUANSalah satu bagian yang sangat tampak pada sebuah sistem operasi adalah sistem file. Banyak

program yang membaca atau menulis setidaknya pada sebuah file. Bagi kebanyakan

pengguna, performance dari sebuah sistem operasi sangat ditentukan oleh interface,

structure, dan reliability dari sistem file-nya. Hal ini disebabkan oleh kemampuan yang

dimiliki sistem file dalam menyediakan mekanisme penyimpanan secara online dan

pengaksesan isi file, yaitu data atau program. Sistem file terdapat pada secondary storage

yang dirancang agar mampu menampung data dalam jumlah yang besar secara permanen.

Setiap file yang telah kita simpan, dalam implementasinya membutuhkan sebuah struktur

direktori untuk mengaksesnya kembali. Sistem operasi harus mampu mengimplementasikan

sistem file dengan berbagai tipe yang berbeda. Pada bab ini akan dibahas bagaimana

penanganan yang dilakukan oleh sistem operasi. Bab ini juga membahas mengenai

implementasi sistem file, implementasi direktori, serta beberapa lapisan yang ada di file

system dan virtual file system.

STRUKTUR SISTEM FILEDisk merupakan tempat penyimpanan sekunder dimana sistem file disimpan. Ada dua

karakteristik dalam penyimpanan banyak file, yaitu:

1. Sebuah disk dapat ditulis kembali, memungkinkan untuk membaca, memodifikasi,

dan menulis blok kembali pada tempat yang sama.

Page 4: Implementasi Sistem File

2. Sebuah blok yang menyimpan informasi yang kita cari, dapat diakses secara

langsung. Dalam aplikasinya, kita dapat mengakses file secara random maupun

sequential.

Sistem operasi menyediakan satu atau lebih sistem file untuk menyimpan dan mengambil

data dengan mudah. Struktur file itu sendiri terdiri dari beberapa layer. Strukturnya dapat

dilihat pada Gambar 1, “Layered File System”.

Gambar 1. Layered File System

Setiap level menggunakan feature-feature dari lapisan di bawahnya untuk digunakan sebagai

feature baru bagi lapisan di atasnya. Level terbawah adalah I/O control yang terdiri dari

beberapa device driver dan penanganan interupsi untuk memindahkan informasi antara

memori utama dan disk system. Device driver dapat dianggap sebagai penerjemah. Inputnya

terdiri dari perintah-perintah high level, misalkan "ambil blok 123". Outputnya berupa

instruksi-instruksi hardware yang lebih spesifik. Instruksi ini digunakan oleh pengendali

hardware yang menghubungkan I/O device dengan sistem lainnya.

Page 5: Implementasi Sistem File

Basic file system bertugas dalam hal menyampaikan perintah-perintah generic ke device

driver yang dituju untuk membaca dan menulis blok-blok fisik pada disk. Masing-masing

blok fisik diidentifikasi dengan alamat disknya.

File organization modul adalah lapisan dalam sistem file yang mengetahui tentang file, blok-

blok logis, dan blok-blok fisik. Dengan mengetahui tipe dan lokasi dari file yang digunakan,

file organization modul dapat menerjemahkan alamat blok logis ke alamat blok fisik untuk

selanjutnya diteruskan ke lapisan basic file system. File organization modul juga

mengandung free space manager yang mencatat jejak blok-blok yang tidak dialokasikan dan

menyediakannya ke file organization modul ketika dibutuhkan.

Lapisan yang terhubung dengan program aplikasi yaitu logical file system yang bertugas

dalam mengatur informasi metadata. Metadata meliputi semua struktur dari sistem file,

kecuali data sebenarnya (isi dari file). Lapisan ini juga mengatur struktur direktori untuk

menyediakan informasi yang dibutuhkan file organization modul. Struktur dari sebuah file

ditentukan oleh lapisan ini dengan adanya file control block.

FILE CONTROL BLOCKPada disk, sistem file bisa mengandung informasi mengenai bagaimana cara mem-boot

sistem operasi, jumlah total blok, jumlah dan lokasi dari free blocks, struktur direktori dan

file individu. Berikut ini penjelasan dari struktur-struktur tersebut.

Sebuah boot control block (per volume)

Mengandung informasi yang dibutuhkan oleh sistem untuk mem-boot sistem operasi

dari volume yang dimilikinya. Jika disk tidak mempunyai sistem operasi, blok disknya

bisa saja kosong. Pada UFS, ini disebut boot block, sedangkan pada NTFS, ini disebut

partition boot sector.

Volume control block (per volume)

Mengandung informasi khusus mengenai partisi, misalnya jumlah blok yang dipartisi,

ukuran blok, free block count dan free block pointer, free FCB count, dan FCB

pointer. Pada UFS, disebut superblock, dan pada NTFS, disimpan di tabel master file.

Directory structure per file system

Page 6: Implementasi Sistem File

Digunakan untuk mengorganisasi file. Pada UFS, struktur direktori ini meliputi nama

file serta jumlah inode yang terkait dan disimpan dalam tabel master file.

Per-file FCB

Mengandung semua informasi tentang file yaitu meliputi file permission,

kepemilikan, ukuran, dan lokasi dari blok data.

Informasi yang ada di dalam memori digunakan untuk pengaturan sistem file dan

peningkatan performance dengan caching. Berikut ini adalah penjelasan mengenai

strukturnya :

In-memory mount table mengandung informasi setiap volume yang di-mount.

In-memory directory structure cache menyimpan informasi direktori yang baru

diakses.

System-wide open file table menyimpan hasil copy FCB.

Untuk membuat file baru, program aplikasi memanggil logical file system karena logical file

system mengetahui format dari struktur direktori. Kemudian, FCB yang baru dialokasikan

dan sistem membaca direktori yang dituju ke memori, mengubahnya dengan nama file, dan

FCB yang baru menulisnya ke dalam disk. Contoh struktur FCB, bisa dilihat pada

Gambar 16.2, “File Control Block”

Gambar 2. File Control Block

Beberapa sistem operasi termasuk UNIX, memperlakukan file sama seperti direktori. Sistem

operasi yang lain, seperti Windows NT, mengimplementasikan system call yang terpisah

untuk file dan direktori, direktori diperlakukan sebagai objek yang berbeda dari file.

Page 7: Implementasi Sistem File

Pada tahap selanjutnya, logical file system memanggil file organization module untuk

memetakan direktori M/K ke disk-block number yang dikirimkan ke sistem file dasar dan

sistem kendali M/K.

Setelah file berhasil dibuat, file tersebut dapat digunakan untuk operasi M/K. Pertama, tentu

saja file tersebut harus dibuka terlebih dahulu. Perintah open() mengirim nama file ke sistem

file. System call open() mencari system-wide open-file table untuk melihat apakah file yang

ingin dibuka sedang digunakan oleh proses lain. Jika benar, maka entry dari per-process

open-file table menunjuk system-wide open-file table yang sedang eksis.

Ketika file sedang dibuka, nama file tersebut dicari dalam struktur direktori. Setelah nama

file ditemukan, FCB dari file tersebut disalin ke dalam system-wide open-file table di

memori. Pada tahapan selanjutnya, sebuah entry dibuat dalam per-process open-file table di

mana entry tersebut menunjuk ke system-wide open-file table. Semua bentuk operasi yang

melibatkan file dilakukan oleh pointer dari entry ini. Selama file tersebut belum ditutup,

semua operasi dari file dilakukan pada open-file table.

Ketika sebuah file ditutup, entry dari per-process table dihapus, dan jumlah entry dari

system-wide open-file table dikurangi. Ketika semua pengguna yang menggunakan file

menutup file tersebut, semua metadata yang telah diubah disalin kembali ke disk berdasarkan

struktur direktori, dan yang terakhir, entry dari system-wide open-file dihilangkan atau

dihapus. Gambar 3. “Fungsi open Sebuah File ” mengilustrasikan pembukaan sebuah file.

Gambar 3. Fungsi open Sebuah File

Sedangkan pada Gambar 4, “Reading a File” mengilustrasikan pembacaan sebuah file.

Page 8: Implementasi Sistem File

Gambar 4. Reading a File

VIRTUAL FILE SYSTEM (VFS)Sistem operasi modern harus mampu mengimplementasikan berbagai sistem file dengan tipe

yang berbeda dalam waktu yang bersamaan. Salah satu teknik yang digunakan sebagai

solusinya adalah dengan menggunakan virtual file system (VFS). VFS saat ini banyak

digunakan oleh berbagai sistem operasi. Ide dari VFS adalah meletakkan informasi di kernel

untuk merepresentasikan keseluruhan tipe sistem file, dan juga terdapat sebuah fungsi untuk

setiap operasi yang dimiliki sistem file. Sehingga, untuk setiap system call seperti fungsi

read(), write(), open(), dan lainnya, kernel akan mensubstitusikannya menjadi actual function

yang dimiliki oleh setiap sitem file dengan berbagai tipe.

VFS menggunakan konsep object oriented dalam mengimplementasikan sistem file. Di

dalam VFS terdapat sebuah file yang merepresentasikan seluruh tipe sistem file yang ada, file

ini dinamakan common file model. File inilah yang menggunakan konsep object oriented,

yang di dalamnya terdapat struktur data dan method yang diimplementasikan.

Terdapat empat objek di dalam common file model, diantaranya :

1. Superblock object.  Objek ini menyimpan informasi tentang mounted file system atau

sistem file secara keseluruhan.

2. Inode object.  Objek ini menyimpan informasi umum tentang file tertentu (individual

file).

3. File object.  Objek ini menyimpan informasi tentang file yang sedang dibuka.

4. Dentry object.  Objek ini menyimpan informasi tentang link-link dari sebuah entry

directory file.

Page 9: Implementasi Sistem File

Struktur data dan method yang diimplementasikan, digunakan untuk menyembunyikan

implementasi detail dari actual function pada sistem file dengan system call yang

mengaksesnya. Oleh karena itu, dalam mengimplementasikan sistem file, terdapat tiga layer

utama, seperti pada Gambar 5, “Virtual File System Layer”.

Gambar 5. Virtual File System Layer

Lapisan yang pertama adalah file system interface. Contohnya adalah beberapa system call

seperti read(), write(), open() dan lainnya. System call ini tidak berhubungan langsung dengan

sistem, namun terhubung melalui sebuah lapisan abstrak yaitu virtual file system.

Lapisan yang Kedua adalah VFS Interface. Virtual file system memiliki dua fungsi penting,

yaitu:

1. Memisahkan operasi-operasi file system generic dari implementasi detailnya, dengan

cara mendefinisikan virtual file system interface.

2. Virtual file system interface didasarkan pada struktur representasi file yang disebut

vnode, yang memiliki numerical designator yang unik untuk setiap network file.

Lapisan yang ketiga adalah sistem file dengan berbagai tipe. Secara umum, terdapat tiga

macam tipe sistem file, yaitu:

1. Disk-based file system.  Sistem file ini mengatur ruang memori yang tersedia di

dalam partisi disk lokal. Misalnya, Ext2 (Second Extended file system), Ext3 (Third

Extended file system), dan Reiser file system yang tedapat di Linux.

2. Network file system.  Sistem file ini terdapat di network, misalnya NFS.

Page 10: Implementasi Sistem File

3. Special file system.  Sistem file ini tidak terdapat di disk space, baik lokal maupun

network, misalnya /proc file system.

IMPLEMENTASI SISTEM FILEFile berisi sekumpulan blok. Sistem manajemen file bertanggung jawab untuk alokasi blok-

blok disk ke file. Dua hal penting yang harus ditangani adalah pencatatan ruang yang

dialokasikan untuk file, pencatatan ruang bebas yang tersedia di disk. Sistem file meliputi

alokasi file, pencatatan ruang disk, shared file, kehandalan system file, serta kinerja sistem

file.

Masalah pokok dalam alokasi file adalah pencatatan blok-blok yang digunakan file. Beragam

metode dapat digunakan, diantaranya alokasi berturutan/kontigu (contigous allocation).

Teknik ini merupakan skema alokasi paling sederhana, yaitu menyimpan file sebagai blok-

blok data berturutan (kontigu) di disk.

Keunggulannya adalah sederhana dalam implementasi karena pencatatan dimana blok-blok

file berada direduksi menjadi hanya mengingat alamat awal file dan panjang file, yaitu

jumlah blok dari file. Kinerjanya luar biasa bagus Karena seluruh file dapat dibaca dari disk

dengan satu operasi. Tak ada metode alokasi lain yang dapat menandingi kinerja

pengaksesan. Keunggulan ini diperoleh karena rekord-rekord yang secara logik berturutan

biasanya juga saling berdekatan secara fisik.

Kelemahannya adalah Hanya bila ukuran maksimum diketahui pada saat file diciptakan.

Layak digunakan kecuali bila ukuran maksimum diketahui pada saat file diciptakan. Tanpa

informasi itu, sistem operasi tidak mengetahui berapa banyak ruang disk yang digunakan

untuk suatu file. Kelemahan lain adalah Terjadi fragmentasi disk. Fragmentasi disk dapat

dihasilkan metode alokasi ini, ruang yang disiakan seharusnya dapat digunakan.

Metode kedua adalah alokasi blok-blok file sebagai senarai berkait yang mencatat blok-blok

file dengan senarai berkait blok-blok didisk. Word pertama di blok data sebagai pointer ke

blok berikutnya, sisanya untuk menyimpan data. Skema ini disebut rantai blok (block

chaining) karena blok pertama merantai blok kedua, blok kedua merantai blok ketiga, dan

seterusnya. Blok sebelumnya merantai blok berikutnya. Direktori mencatat blok pertama file.

Page 11: Implementasi Sistem File

Keunggulan metode ini adalah Setiap blok di disk dapat digunakan. Tak ada ruang yang

hilang karena fragmentasi eksternal. Isian/elemen direktori cukup menyimpan alamat blok

pertama file.

Kelemahannya adalah Pembacaan sekuen cukup merepotkan karena harus menelusuri blok

satu per satu. Blok data tidak lagi berukuran 2k, karena pointer memerlukan beberapa byte.

Masalah ini tidak fatal. Ukuran yang janggal (bukan berukuran 2k) kurang efisien karena

program membaca dan menulis blok tidak dapat memanfaatkan sifat bilangan biner.

Metode ketiga adalah alokasi blok-blok sebagai senarai berkait menggunakan indeks (FAT).

Kelemahan alokasi senarai berkait dieliminasi dengna menghilangkan pointer di blok dan

meletakkan sebagai tabel tersendiri di memori. Seluruh blok tersedia untuk data. Skema ini

disebut block oriented file mapping. Tabel yang mencatat nomor blok data disebut FAT (File

Allocation Table).

Keunggulan metode ini adalah pengaksesan acak lebih mudah. Meski masih harus menelusuri

rantai berkait untuk menemukan lokasi blok file, rantai blok seluruhnya di memori sehingga

dapat dilakukan secara cepat tanpa membuat pengaksesan ke disk. Direktori cukup

menyimpan bilangan bulat nomor blok awal. Blok awal ini digunakan untuk menemukan

seluruh blok, tak peduli jumlah blok file itu. Direktori menunjuk blok pertama file dan FAT

menunjukkan blok-blok file berikutnya.

Kelemahannya adalah seluruh tabel (FAT) harus disimpan di memori. Jika penyimpanan

berukuran besar mengakibatkan tabel berukuran besar dan harus ditaruh di memori utama

meskipun hanya satu file yang dibuka. MS-DOS menggunakan metode ini.

IMPLEMENTASI DIREKTORIIsian direktori menyediakan informasi untuk menemukan blok-blok disk. Informasi isian direktori

bergantung sistem pencatatan blok-blok yang digunakan. Informasi ini dapat berupa alamat disk dari

seluruh file, nomor blok pertama atau i-node. Implementasi direktori tebagi dua jenis yaitu

implementasi direktori linier dan implementasi direktori hash.

a. Implementasi Direktori Linier

Page 12: Implementasi Sistem File

Pemilihan algoritma untuk pencarian sebuah direktori merupakan salah satu penentu

tingkat efisiensi dan performance suatu sistem file. Salah satu algoritma itu adalah

implementasi direktori linier. Algoritma ini merupakan algoritma yang paling sederhana

dalam pembuatan program yang mengimplementasikan linier list dari nama-nama file

yang memiliki pointer ke blok-blok data. Namun, algoritma ini tidak efisien apabila

digunakan pada suatu direktori yang memiliki jumlah file yang sangat banyak karena

proses eksekusi file membutuhkan waktu yang lama. Misalnya, untuk membuat file, kita

harus memastikan bahwa dalam direktori tidak ada file yang mempunyai nama yang sama.

Kemudian, file yang baru tersebut ditambahkan pada akhir direktori tersebut. Untuk

menghapus sebuah file, kita mencari terlebih dahulu nama file yang hendak dihapus dalam

direktori, kemudian membebaskan space yang dialokasikan pada file tersebut. Apabila kita

menginginkan untuk menggunakan kembali entry file tersebut, ada beberapa alternatif

yang bisa kita gunakan, yaitu:

1. kita bisa menandai file tersebut misalnya melalui pemberian nama file yang khusus

pada file tersebut.

2. Kedua, kita bisa menempatkan file tersebut pada sebuah list of free directory entries.

3. alternatif yang ketiga adalah dengan menyalin entry terakhir dalam direktori ke suatu

freed location.

Salah satu kerugian yang ditimbulkan dalam penggunaan algoritma ini adalah pencarian

file dilakukan secara linier search. Oleh karena itu, banyak sistem operasi yang

mengimplementasikan sebuah software cache yang menyimpan informasi tentang

direktori yang paling sering digunakan, sehingga pengaksesan ke disk bisa dikurangi. File-

file yang terurut dapat mengurangi rata-rata waktu pencarian karena dilakukan secara

binary search. Namun, untuk menjaga agar file-file selalu dalam keadaan terurut,

pembuatan maupun penghapusan file akan lebih rumit. Struktur data tree seperti B-tree

bisa digunakan untuk mengatasi masalah ini.

b. Implementasi Direktori Hash

Pada implementasi ini, linier list tetap digunakan untuk menyimpan direktori, hanya saja

ada tambahan berupa struktur data hash. Prosesnya yaitu hash table mengambil nilai yang

dihitung dari nama file dan mengembalikan sebuah pointer ke nama file yang ada di linier

list. Oleh karena itu, waktu pencarian file bisa dikurangi. Akan tetapi, ada suatu keadaan

yang menyebabkan terjadinya peristiwa collisions, yaitu suatu kondisi di mana terdapat

dua file yang memiliki nilai hash yang sama, sehingga menempati lokasi yang sama.

Page 13: Implementasi Sistem File

Solusi yang dipakai untuk mengatasi hal tersebut yaitu dengan menggunakan chained-

overflow hash table, yaitu setiap hash table mempunyai linked list dari nilai individual dan

crash dapat diatasi dengan menambah tempat pada linked list tersebut. Efek samping dari

penambahan chained-overflow tersebut adalah dapat memperlambat pencarian.

Ada beberapa kelemahan dari implementasi direktori hash, yaitu ukurannya yang tetap

dan adanya ketergantungan fungsi hash dengan ukuran hash table. Sebagai contoh,

misalnya kita membuat sebuah linear-probing hash table yang memiliki 32 entry. Sebuah

fungsi hash dibutuhkan untuk mengubah nama file menjadi bilangan bulat dari 0 s.d. 31,

misalnya dengan menggunakan fungsi modulo 32. Jika kita ingin untuk menambahkan

sebuah file yang harus diletakkan pada lokasi yang ke-33, kita harus memperbesar ukuran

dari hash table tersebut, sehingga diperlukan sebuah fungsi hash baru untuk disesuaikan

dengan ukuran hash table tersebut. Oleh karena itu, file-file yang sebelumnya sudah

ditempatkan di suatu lokasi pada hash table yang lama harus dicari tempat yang

bersesuaian dengan menggunakan fungsi hash yang baru.

METODE ALOKASIMetode alokasi berhubungan dengan bagaimana blok-blok pada disk dialokasikan untuk file.

Terdapat beberapa metode alokasi antara lain alokasi berurutan (contiguous allocation),

alokasi berhubungan (linked allocation) dan alokasi berindeks (indexed allocation).

a. Alokasi Berurutan (Contiguous Allocation)

Pada alokasi berurutan, setiap file menempati sekumpulan blok yang berurutan pada disk

(Gambar 6). Model ini sangat sederhana karena hanya membutuhkan lokasi awal (block

#) dan panjang (jumlah blok). Akses pada blok disk dilakukan secara random dan

memakan banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan

secara berurutan tidak dapat berkembang.

Page 14: Implementasi Sistem File

Gambar 6. Alokasi Berurutan

Beberapa sistem file yang baru (misalnya Veritas File System) menggunakan skema

alokasi berurutan yang dimodifikasi. File sistem Extent-based mengalokasikan blok pada

disk secara berkembang (extent). Extent adalah blok berurutan pada disk. Extent

dialokasikan untuk alokasi file. Sebuah file terdiri dari satu atau lebih extent.

b. Alokasi Berhubungan (Linked Allocation)

Pada alokasi berhubungan, setiap file adalah sebuah linked list dari blok-blok terpisah

pada disk (Gambar 7). Pada setiap blok terdapat satu pointer yang menunjuk ke blok lain.

Gambar 7. Alokasi Berhubungan

Page 15: Implementasi Sistem File

Alokasi berhubungan mempunyai bentuk yang sederhana, hanya memerlukan alamat

awal. Sistem manajemen ruang bebas pada alokasi berhubungan tidak memakan banyak

ruang. Model ini tidak menggunakan random access. Blok yang diakses adalah blok ke-Q

pada rantai link dari blok pada file. Perpindahan ke blok = R + 1. Contoh ystem file yang

menggunakan alokasi berhubungan adalah file-allocation table (FAT) yang digunaka MS-

DOS dan OS/2. Bentuk file allocation tabel dapat dilihat pada Gambar 8.

Gambar 8. File Allocation Table

c. Alokasi Berindeks (Indexed Allocation)

Pada alokasi berindeks, terdapat satu blok yang berisi pointer ke blok-blok file (Gambar

9). Alokasi berindeks berupa bentuk logika.

Gambar 9. Alokasi berindeks

Page 16: Implementasi Sistem File

Pada alokasi berindeks, memerlukan tabel indeks yang membawa pointer ke blok-blok

file yang lain. Akses dilakukan secara random. Merupakan akses dinamis tanpa

fragmentasi eksternal, tetapi mempunyai blok indeks yang berlebih. Pemetaan dari logika

ke fisik dalam file ukuran maksimum 256K word dan ukuran blok 512 word hanya

memerlukan 1 blok untuk tabel indeks.

Apabila pemetaan dari logika ke fisik dalam sebuah file dari ukuran tak hingga (ukuran

blok adalah 512 word) maka digunakan skema menghubungkan blok link dari tabel

indeks (ukuran tak terbatas). Untuk ukuran file maksimum 5123 digunakan skema two-

level indeks (Gambar 10). Pada skema two-level indeks terdapat tabel indeks luar dan

dalam. Indeks dipetakan ke tabel indeks luar kemudian dipetakan ke tabel indeks dalam

setelah itu mengakses blok file yang dimaksud. Sistem operasi UNIX

mengimplementasikan kombinasi alokasi berurutan dan alokasi berindeks seperti pada

Gambar 11.

Gambar 10. Skema two level indeks

Page 17: Implementasi Sistem File

Gambar 11. Alokasi Pada UNIX

MANAJEMEN RUANG BEBASDaftar ruang bebas biasanya diimplementasikan sebagai bit map atai bit vector (vektor bit).

Setiap blok direpresentasikan dengan 1 bit. Jika blok bebas, maka bit bernilai 1, sebaliknya

jika blok dialokasikan, bit bernilai 0. Sebagai contoh, misalnya disk dengan blok 2, 3, 4, 5, 8,

9, 10, 11, 12, 13, 17, 18, 25, 26 dan 27 bebas dan sisanya dialokasikan. Maka bit map dari

ruang bebas adalah :

001111001111110001100000011100000…

Perhitungan nomor blok yang bebas adalah sebagai berikut :

(jumlah bit per word) * (jumlah nilai-0 word) + offset dari bit 1 pertama Pemetaan bit

biasanya membutuhkan ruang tambahan, misalnya ukuran blok =

212 byte, ukuran disk = 230 byte (1 gigabyte) maka

n = 230/212 = 218 bit (atau 32K byte)

Dengan menggunakan vector bit mudah untuk mendapatkan file yang berurutan.

Pengembangan dari vector bit adalah dengan menggunakan linked list (free list) seperti

Gambar 12. Akan tetapi model ini tidak mendapatkan ruang berurutan dengan mudah

meskipun tidak memakan tempat. Modifikasi berikutnya melakukan pengelompokan blok

yang bebas agar lebih mudah untuk mendapakan ruang yang berurutan.

Page 18: Implementasi Sistem File

EFISIENSI DAN PERFOMANSIEfisiensi penggunaan ruang disk tergantung pada alokasi disk dan algoritma directori serta

tipe data disimpan pada entry direktory dari file. Untuk meningkatkan performansi

penggunaan ruang disk digunakan disk cache yang digunakan pada bagian terpisah dari main

memory untuk penggunaan blok yang sering. Selain itu juga menggunakan teknik untuk

optimasi akses berurutan yang disebut free-behind dan read-ahead. – teknik untuk optimasi

akses berurutan. Untuk meningkatkan performansi PC juga dapat menggunakan bagian

tertentu dari memory sebagai virtual disk atau RAM disk.

Gambar 12 : Menghubungkan daftar ruang bebas pada disk

RECOVERYUntuk memperbaiki sistem file dilakukan dengan memeriksa konsistensi dengan cara

membandingkan data pada struktur direktori dengan blok data pada disk dan mencoba

memperbaiki inkonsistensi. Selain itu juga dapat menggunakan program sistem untuk back

up data dari disk ke penyimpan lain (floppy disk, magnetic tape). Perbaikan akan Recover

menghilangkan file atau disk dengan restoring data dari backup.

SISTEM FILE LOG STRUCTUREDSistem file Log structured (atau journaling) menyhimpan semua update ke file sistem

sebagai transaksi. Semua transaksi ditulis ke log. Sebuah transaksi dijadikan committed jika

ditulis ke log. Tetapi, kemngkinan sistem file tidak diupdate.

Page 19: Implementasi Sistem File

Transaksi pada log ditulis secara tidak beraturan ke sistem file. Jika sistem file dimodifikasi,

transaksi dihapus dari log. Jika file bertabrakan, semua transaksi yang tersisa pada log harus

dibentuk.

NETWORK FILE SYSTEM (NFS)Network file system adalah implementasi dan spesifikasi dari sistem perangkat lunak untuk

mengakses remote files melalui LAN (atau WAN). NFS merupakan bagian dari Solaris and

SunOS yang berjalan pada Sun workstations menggunakan unreliable datagram protocol

(UDP/IP) protocol dan Ethernet.

Workstation yang saling berhubungan dipandang sebagai mesin independent dengan file

sistem yang independent, memungkinkan sharing diantara sistem file secara transparan.

Directory remote di-mount ke directory sistem file lokal. Mounted directory terlihat sebagai

subtree dari sistem file lokal, mengubah subtree secara descending dari directory lokal.

Spesifikasi dari remote directory untuk operasi mount tidak transparant; host name dari

remote directory harus disediakan. File pada remote directory dapat diakses secara

transparant. Subyek ke akreditasi akses yang benar, sembarang sistem file (atau directory

dalam sistem file), dapat di-mount secara remote ke top dari sembaran directory lokal.

NFS didesain untuk operasi pada lingkungan heterogen dari mesin, SO dan arsitektur

network yang berbeda; spesifikasi NFS tidak tergantung dari media tersebut. Ketidak

tergantungan dilakukan melalui penggunaan RPC pada bagian tertinggi dari protokol

External Data Representation (XDR) yang digunakan antara 2 antarmuka independent.

Spesifikasi NFS berbeda antara layanan tersedia dengan mekanisme mount dan layanan akses

file remote actual.

Misalnya terdapat tiga file sistem yang independent seperti Gambar 13. Kemudian dilakukan

mount dengan NFS maka file sistem hasil seperti Gambar 14.

Page 20: Implementasi Sistem File

Gambar 13 : Tiga sistem file yang independen

Gambar 10-12 : Mounting pada NFS

RANGKUMANUntuk memberikan akses yang efisien ke disk, sistem operasi mengizinkan satu atau lebih

sistem file yang digunakan untuk menyimpan, meletakkan, dan mengambil data dengan

mudah. Sistem file tersebut terdiri dari beberapa lapisan yang mana setiap lapisan akan

menyediakan fitur-fitur untuk dipergunakan pada lapisan di atasnya. Lapisan tersebut (dari

tingkat yang terbawah) antara lain device driver, I/O control, basic file system, file-

organization module, logical file system, dan application program. Berbagai operasi yang

dilakukan pada sistem file, seperti membuka maupun membaca file, sangat membutuhkan

informasi tentang file yang hendak digunakan. Semua informasi tentang file tersebut

didapatkan pada file control block.

Page 21: Implementasi Sistem File

Dalam pengimplementasiannya, sistem operasi harus mampu mendukung berbagai jenis

sistem file. Teknik yang digunakan oleh sistem operasi untuk mendukung kemampuan ini

disebut Virtual File System (VFS). Konsep dalam mengimplementasikan VFS ini adalah

konsep object oriented yaitu menggunakan sebuah file yang dapat merepresentasikan seluruh

tipe file. File ini disebut common file model. Oleh karena itu, digunakanlah tiga lapisan utama

dalam mengimplementasikan sistem file, diantaranya file system interface, VFS interface, dan

file system types.

Algoritma untuk mencari file dalam sebuah direktori juga digunakan sebagai parameter

performance dari sebuah sistem operasi. Ada dua algoritma yang sering digunakan dalam

pengimplementasian direktori, yaitu implementasi direktori linier dan hash. Masing-masing

bentuk implementasi ini memiliki kelebihan dan kekurangan tersendiri. Untuk implementasi

linier, kelebihannya adalah sederhana dalam pembuatan programnya dan kekurangannya

adalah lamanya mengakses file apabila terdapat banyak sekali file dalam sebuah direktori.

Sedangkan pada implementasi direktori hash, kecepatan pencarian file lebih cepat

dibandingkan dengan pencarian dalam direktori linier dan kekurangannya adalah ukuran tabel

yang statis, sehingga perlu dilakukan pengubahan fungsi hash apabila ingin mengubah

ukuran tabel hash.