0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan9 halaman

Implementasi Sistem Berkas PDF

Implementasi sistem berkas menggunakan struktur berlapis yang menghubungkan perangkat keras dengan aplikasi melalui I/O control, sistem berkas dasar, organisasi berkas, dan sistem berkas logika. Struktur ini mencakup informasi boot, partisi, direktori, dan berkas di disk serta tabel dan struktur data di memori. Berkas dibuat dengan mengalokasi File Control Block dan memperbarui direktori, lalu dibuka dengan mencari nama berkas dan men

Diunggah oleh

muh ziaulhaq
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan9 halaman

Implementasi Sistem Berkas PDF

Implementasi sistem berkas menggunakan struktur berlapis yang menghubungkan perangkat keras dengan aplikasi melalui I/O control, sistem berkas dasar, organisasi berkas, dan sistem berkas logika. Struktur ini mencakup informasi boot, partisi, direktori, dan berkas di disk serta tabel dan struktur data di memori. Berkas dibuat dengan mengalokasi File Control Block dan memperbarui direktori, lalu dibuka dengan mencari nama berkas dan men

Diunggah oleh

muh ziaulhaq
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

Implementasi Sistem Berkas

Struktur Sistem Berkas


Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar
tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik
penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai
macam berkas, yaitu:

Data 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 maupun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.

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.
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.
Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan
menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang
dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi
yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan
organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi
sistem berkas.

Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi
program yang ada, 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. Input

didalamnya berisikan perintah tingkat tinggi seperti "ambil blok 133", sedangkan
output-nya adalah perintah tingkat rendah, instruksi spesifik perangkat keras yang
digunakan oleh controller perangkat keras.
Basic file system, diperlukan untuk mengeluarkan perintah generic ke device
driver untuk read dan write 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 pengguna ingin
menulis berkas ke dalam disk. Di dalam File-organization module juga terdapat
free- space manager.
Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas,
struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File
Control Block (FCB) menyimpan informasi tentang berkas, termasuk
kepemilikan, izin dan lokasi isi berkas.

Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau
membaca informasi dari disk. Urutan langkahnya:
1. Application program memanggil sistem berkas dengan system call.
Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb dari disk dan
menempatkannya ke variabel input.
2. Diteruskan ke system call interface.
System call merupakan software interrupt. Jadi, interrupt handler sistem operasi
akan memeriksa apakah system call yang menginterupsi. Interrupt handler ini
akan memutuskan bagian dari sistem operasi yang bertanggung jawab untuk
menangani system call. Interrupt handler akan meneruskan system call.
3. Diteruskan ke logical file system.
Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call, operasi
yang akan dilakukan dan jenis berkas. Yang perlu ditentukan selanjutnya adalah
file organization module yang akan meneruskan permintaan ini. File organization
module yang akan digunakan tergantung dari jenis sistem berkas dari berkas yang
diminta.
Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta ada di
Windows 95. Lapisan logical file system akan meneruskan permintaan ke file
organization module dari Windows 95.
4. Diteruskan ke file organization module.
File organization module yang mengetahui pengaturan (organisasi) direktori dan
berkas pada disk. Sistem berkas yang berbeda memiliki organisasi yang berbeda.

Windows 95 menggunakan VFAT-32. Windows NT menggunakan format NTFS.


Linux menggunakan EXT2. Sistem operasi yang paling modern memiliki
beberapa file organization module sehingga dapat membaca format yang berbeda.
Pada contoh di atas, logical file system telah meneruskan permintaan ke file
organization module VFAT32. Modul ini menterjemahkan nama berkas yang
ingin dibaca ke lokasi fisik yang biasanya terdiri dari disk antarmuka, disk drive,
surface, cylinder, track, sector.
5. Diteruskan ke basic file system.
Dengan adanya lokasi fisik, kita dapat memberikan perintah ke piranti keras yang
dibutuhkan. Hal ini merupakan tanggungjawab basic file system. Basic file system
ini juga memiliki kemampuan tambahan seperti buffering dan caching.
Contoh: Sektor tertentu yang dipakai untuk memenuhi permintaan mungkin saja
berada dalam buffers atau caches yang diatur oleh basic file system. Jika terjadi
hal seperti ini, maka informasi akan didapatkan secara otomatis tanpa perlu
membaca lagi dari disk.
6. I/O Control
Tingkatan yang paling rendah ini yang memiliki
memerintah/memberitahu piranti keras yang diperlukan.

cara

untuk

Implementasi Sistem Berkas


Gambaran
Untuk mengimplementasikan suatu sistem berkas biasanya digunakan beberapa struktur
on-disk dan in-memory. Struktur ini bervariasi tergantung pada sistem operasi dan sistem
berkas, tetapi beberapa prinsip dasar harus tetap diterapkan. Pada struktur on-disk, sistem
berkas mengandung informasi tentang bagaimana mem-boot sistem operasi yang
disimpan, jumlah blok, jumlah dan lokasi blok yang masih kosong, struktur direktori, dan
berkas individu.
Struktur on-disk:

Boot Control Block


Informasi yang digunakan untuk menjalankan mesin mulai dari partisi yang
diinginkan untuk menjalankan mesin mulai dari partisi yang diinginkan. Dalam
UPS disebut boot block. Dalam NTFS disebut partition boot sector.

Partition Block Control

Spesifikasi atau detil-detil dari partisi (jumlah blok dalam partisi, ukuran blok,
ukuran blok, dsb). Dalam UPS disebut superblock. Dalam NTFS disebut tabel
master file.

Struktur direktori
Mengatur berkas-berkas.

File Control Block (FCB)


Detil-detil berkas yang spesifik. Di UPS disebut inode. Di NTFS, informasi ini
disimpan di dalam tabel Master File.

Struktur in-memory:

Tabel Partisi in-memory


Informasi tentang partisi yang di-mount.

Struktur Direktori in-memory


Menyimpan informasi direktori tentang direktori yang paling sering diakses.

Tabel system-wide open-file


o menyimpan open count (informasi jumlah proses yang membuka berkas
tsb)
o menyimpan atribut berkas (pemilik, proteksi, waktu akses, dsb), dan lokasi
file blocks.
o Tabel ini digunakan bersama-sama oleh seluruh proses.
Tabel per-process open-file
o menyimpan pointer ke entri yang benar dalam tabel open- file
o menyimpan posisi pointer pada saat itu dalam berkas.
o modus akses

Untuk membuat suatu berkas baru, program aplikasi memanggil logical file system.
Logical file system mengetahui format dari struktur direktori. Untuk membuat berkas
baru, logical file system akan mengalokasikan FCB, membaca direktori yang benar ke
memori, memperbaharui dengan nama berkas dan FCB yang baru dan menulisnya
kembali ke dalam disk.
Beberapa sistem operasi, termasuk UNIX, memperlakukan berkas sebagai direktori.
Sistem operasi Windows NT mengimplementasi beberapa system calls untuk berkas dan
direktori. Windows NT memperlakukan direktori sebagai sebuah kesatuan yang berbeda
dengan berkas. Logical file system dapat memanggil file-organization module untuk
memetakan direktori I/O ke disk-block numbers, yang dikirimkan ke sistem berkas dasar

dan I/O control system. File- organization module juga mengalokasikan blok untuk
penyimpanan data-data berkas.
Setelah berkas selesai dibuat, mula-mula harus dibuka terlebih dahulu. Perintah open
dikirim nama berkas ke sistem berkas. Ketika sebuah berkas dibuka, struktur direktori
mencari nama berkas yang diinginkan. Ketika berkas ditemukan, FCD disalin ke ke tabel
system-wide open-file pada memori. Tabel ini juga mempunyai entri untuk jumlah proses
yang membuka berkas tersebut.
Selanjutnya, entri dibuat di tabel per-process open-file dengan penunjuk ke entri di dalam
tabel system-wide open-file. Seluruh operasi pada berkas akan diarahkan melalui
penunjuk ini.

Partisi dan Mounting


Setiap partisi dapat merupakan raw atau cooked. Raw adalah partisi yang tidak memiliki
sistem berkas dan cooked sebaliknya. Raw disk digunakan jika tidak ada sistem berkas
yang tepat. Raw disk juga dapat menyimpan informasi yang dibutuhkan oleh sistem disk
RAID dan database kecil yang menyimpan informasi konfigurasi RAID.
Informasi boot dapat disimpan di partisi yang berbeda. Semuanya mempunyai formatnya
masing-masing karena pada saat boot, sistem tidak punya sistem berkas dari perangkat
keras dan tidak dapat memahami sistem berkas.
Root partition yang mengandung kernel sistem operasi dan sistem berkas yang lain, dimount saat boot. Partisi yang lain di-mount secara otomatis atau manual (tergantung
sistem operasi). Sistem operasi menyimpan dalam struktur tabel mount dimana sistem
berkas di-mount dan jenis dari sistem berkas.
Pada UNIX, sistem berkas dapat di-mount di direktori manapun. Ini diimplementasikan
dengan mengatur flag di salinan in-memory dari jenis direktori itu. Flag itu
mengindikasikan bahwa direktori adalah puncak mount.

Sistem Berkas Virtual


Suatu direktori biasanya menyimpan beberapa berkas dengan jenis-jenis yang berbeda.
Sistem operasi harus dapat menyatukan berkas-berkas berbeda itu di dalam suatu struktur
direktori. Untuk menyatukan berkas-berkas tersebut digunakan metode implementasi
beberapa jenis sistem berkas dengan menulis di direktori dan file routine untuk setiap
jenis.
Sistem operasi pada umumnya, termasuk UNIX, menggunakan teknik berorientasi objek
untuk menyederhakan, mengorganisir dan mengelompokkannya sesuai dengan
implementasinya. Penggunaan metode ini memungkinkan berkas-berkas yang berbeda
jenisnya diimplementasikan dalam struktur yang sama.

Implementasi spesifiknya menggunakan struktur data dan prosedur untuk mengisolasi


fungsi dasar dari system call.

Implementasi sistem berkas terdiri dari 3 lapisan utama:

Interface sistem berkas: perintahopen, read, write, close dan file descriptor.
Virtual File System(VFS)
Virtual file system adalah suatu lapisan perangkat lunak dalam kernel yang
menyediakan antar muka sistem berkas untuk program userspace. VFS juga
menyediakan suatu abstraksi dalam kernel yang mengijinkan implementasi sistem
berkas yang berbeda untuk muncul.
VFS ini memiliki 2 fungsi yang penting yaitu:
Memisahkan operasi berkas generic dari implementasinya dengan
mendefinisikan VFS antar muka yang masih baru.
o VFS didasarkan pada struktur file-representation yang dinamakan vnode,
yang terdiri dari designator numerik untuk berkas unik network-wide.
Sistem berkas lokal dan sistem berkas remote untuk jaringan.
o

Implementasi Direktori
Sebelum sebuah berkas dapat dibaca, berkas tersebut harus dibuka terlebih dahulu. Saat
berkas tersebut dibuka, sistem operasi menggunakan path name yang dimasukkan oleh
pengguna untuk mengalokasikan direktori entri yang menyediakan informasi yang
dibutuhkan untuk menemukan block disk tempat berkas itu berada. Tergantung dari
sistem tersebut, informasi ini dapat berupa alamat disk dari berkas yang bersangkutan
(contiguous allocation), nomor dari blok yang pertama (kedua skema linked list), atau
nomor dari inode. Dalam semua kasus, fungsi utama dari direktori entri adalah untuk
memetakan nama ASCII dari berkas yang bersangkutan kepada informasi yang
dibutuhkan untuk mengalokasikan data.
Masalah berikutnya yang kemudian muncul adalah dimana atribut yang dimaksud akan
disimpan. Kemungkinan paling nyata adalah menyimpan secara langsung di dalam
direktori entri, dimana kebanyakan sistem menggunakannya. Untuk sistem yang
menggunakan inodes, kemungkinan lain adalah menyimpan atribut ke dalam inode,
selain dari direktori entri. Cara yang terakhir ini mempunyai keuntungan lebih
dibandingkan menyimpan dalam direktori entri.
Cara pengalokasian direktori dan pengaturan direktori dapat meningkatkan efisiensi,
performa dan kehandalan. Ada beberapa macam algoritma yang dapat digunakan.

Algoritma Linear List


Metode paling sederhana. Menggunakan nama berkas dengan penunjuk ke data blok.
Proses:

Mencari (tidak ada nama berkas yang sama).


Menambah berkas baru pada akhir direktori.
Menghapus (mencari berkas dalam direktori dan melepaskan tempat yang
dialokasikan).

Penggunaan suatu berkas:


Memberi tanda atau menambahkan pada daftar direktori bebas.
Kelemahan:
Pencarian secara linier (linier search) untuk mencari sebuah berkas, sehingga
implementasi sangat lambat saat mengakses dan mengeksekusi berkas.
Solusi:
Linked list dan Software Cache

Algoritma Hash Table


Linear List menyimpan direktori entri, tetapi sruktur data hash juga digunakan.
Proses:
Hash table mengambil nilai yang dihitung dari nama berkas dan mengembalikan sebuah
penunjuk ke nama berkas yang ada di linier list.
Kelemahan:

Ukuran tetap:
Adanya ketergantungan fungsi hash dengan ukuran hash table

Alternatif:
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.
Namun penambahan ini dapat memperlambat.

Direktori pada CP/M


Direktori pada CP/M merupakan direktori entri yang mencakup nomor block disk untuk
setiap berkas. Contoh direktori ini (Golden dan Pechura, 1986), berupa satu direktori saja.
Jadi, Semua sistem berkas harus melihat nama berkas dan mencari dalam direktori satusatunya ini.
Direktori ini terdiri dari 3 bagian yaitu:

User Code
Merupakan bagian yang menetapkan track dari user mana yang mempunyai
berkas yang bersangkutan, saat melakukan pencarian, hanya entri tersebut yang
menuju kepada logged-in user yang bersangkutan. Dua bagian berikutnya terdiri
dari nama berkas dan ekstensi dari berkas.

Extent
Bagian ini diperlukan oleh berkas karena berkas yang berukuran lebih dari 16
blok menempati direktori entri yang banyak. Bagian ini digunakan untuk
memberitahukan entri mana yang datang pertama, kedua, dan seterusnya.

Block Count
Bagian ini memberitahukan seberapa banyak dari ke-enambelas block disk
potensial, sedang digunakan. Enambelas bagian akhir berisi nomor block disk
yang bersangkutan. Bagian blok yang terakhir dapat saja penuh, jadi sistem tidak
dapat menentukan kapasitas pasti dari berkas sampai ke byte yang terakhir.
Saat CP/M menemukan entri, CP/M juga memakai nomor block disk, saat berkas
disimpan dalam direktori entri, dan juga semua atributnya. Jika berkas
menggunakan block disk lebih dari satu entri, berkas dialokasikan dalam direktori
yang ditambahkan.

Direktori pada MS-DOS


Merupakan sistem dengan tree hierarchy directory. Mempunyai panjang 32 bytes, yang
mencakup nama berkas, atribut, dan nomor dari block disk yang pertama. Nomor dari
block disk yang pertama digunakan sebagai indeks dari tabel MS-DOS direktori entri.
Dengan sistem rantai, semua blok dapat ditemukan.
Dalam MS-DOS, direktori dapat berisi direktori lain, tergantung dari hirarki sistem
berkas. Dalam MS-DOS, program aplikasi yang berbeda dapat dimulai oleh setiap
program dengan membuat direktori dalam direktori root, dan menempatkan semua berkas
yang bersangkutan di dalam sana. Jadi antar aplikasi yang berbeda tidak dapat terjadi
konflik.

Direktori pada UNIX


Struktur direktori yang digunakan dalam UNIX adalah struktur direktori tradisional.
Seperti yang terdapat dalam gambar direktori entri dalam UNIX, setiap entri berisi nama
berkas dan nomor inode yang bersangkutan. Semua informasi dari jenis, kapasitas, waktu
dan kepemilikan, serta block disk yang berisi inode. Sistem UNIX terkadang mempunyai
penampakan yang berbeda,tetapi pada beberapa kasus, direktori entri biasanya hanya
string ASCII dan nomor inode.
Saat berkas dibuka, sistem berkas harus mengambil nama berkas dan mengalokasikan
block disk yang bersangkutan, sebagai contoh, nama path /usr/ast/mbox dicari, dan kita
menggunakan UNIX sebagai contoh, tetapi algoritma yang digunakan secara dasar sama
dengan semua hirarki sistem direktori sistem.
Pertama, sistem berkas mengalokasikan direktori root. Dalam UNIX inode yang
bersangkutan ditempatkan dalam tempat yang sudah tertentu dalam disk. Kemudian,
UNIX melihat komponen pertama dari path, usr dalam direktori root menemukan nomor
inode dari direktori /usr. Mengalokasikan sebuah nomor inode adalah secara straightforward, sejak setiap inode mempunyai lokasi yang tetap dalam disk. Dari inode ini,
sistem mengalokasikan direktori untuk /usr dan melihat komponen berikutnya, dst. Saat
dia menemukan entri untuk ast, dia sudah mempunyai inode untuk direktori /ust/ast. Dari
inode ini, dia dapat menemukan direktorinya dan melihat mbox. Inode untuk berkas ini
kemudian dibaca ke dalam memori dan disimpan disana sampai berkas tersebut ditutup.
Nama path dilihat dengan cara yang relatif sama dengan yang absolut. Dimulai dari
direktori yang bekerja sebagai pengganti root directory. Setiap direktori mempunyai entri
untuk. dan .. yang dimasukkan ke dalam saat direktori dibuat. Entri. mempunyai nomor
inode yang menunjuk ke direktori di atasnya/orangtua (parent), . kemudian melihat
../dick/prog.c hanya melihat tanda .. dalam direktori yang bekerja, dengan menemukan
nomor inode dalam direktori di atasnya / parent dan mencari direktori disk. Tidak ada
mekanisme spesial yang dibutukan untuk mengatasi masalah nama ini. Sejauh masih di
dalam sistem direktori, mereka hanya merupakan ASCII string yang biasa.
http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/2004/51/produk/SistemOperasi/
c64.html

Anda mungkin juga menyukai