SISTEM OPERASI Prio Handoko, S. Kom., M.T.I. Program Studi Teknik Informatika Universitas Pembangunan Jaya Jl. Boulevard - Bintaro Jaya Sektor VII Tangerang Selatan Banten 15224 File-System Structure File-System Implementation Directory Implementation Alocation Methods Free-Space Management Efficiency & Performance Recovery PENDAHULUAN PENDAHULUAN Disk menyediakan sebagaian ruang untuk penyimpanan sekunder di mana sistem file dikelola. Oleh karena itu disk harus dapat memenuhi dua karakteristik berikut: Disk harus dapat ditulis ulang di tempat yang sama Disk harus dapat mengakses secara langsung setiap blok informasi yang dikandungnya hanya dengan memindahkan r/w head Permasalahan pada desain sistem file: 1. Menentukan rancangan sistem file agar terlihat oleh pengguna (atribut, operasi dan struktur direktori) 2. Merancang algoritma dan struktur data untuk memetakan logical file system ke dalam physical secondary-storage devices. 1
PENDAHULUAN application programs logical file system file-organization module basic file system I/O control device Program aplikasi yang berisikan data yang akan diproses Melakukan pengelolaan terhadap metadata Bagian dari sistem file yang dapat mengetahui logical block file dan physical block Menentukan perintah-perintah bagi perangkat yang sesuai untuk Dapat melakukan proses R/W physical block di disk Berisokan device controller dan interrupt handler untuk melakukan proses pengiriman data antara RAM dan disk Struktur disk dan memori yang diimplementasi berbeda, karena bergantung terhadap jenis OS yang dugunakan. Untuk menciptakan sebuah file, program aplikasi memanggil logical file system, kemudian FCB dialokasikan untuk kebutuhan ini FCB (file-control block) berisikan semua informasi yang dibituhakan untuk proses penciptaan file file permission file dates (create, access, write) file owner, group, other file size file data block or pointer to file data block open (file name) directory structure file-control block (FCB) user space directory structure kernel memory file-control block secondary storage 2
index Pemilihan algoritma directory-allocation dan directory-management beredampak pada efisiensi, performa, dan keandalan sistem file. read (index) per-process open-file table system-wide open-file table data block file-control block 1. Linear List 2. Hash Table user space kernel memory secondary storage Metode paling sederhana untuk mengimplementasikan sebuah direktori untuk berbagai operasi (create, delete, dan reuse) adalah dengan menggunakan daftar nama file yang linier dengan pointer ke sebuah blok data. Metode ini menggunakan daftar linier yang berisikan daftar entri direktori, tabel hash menggunakan nilai dihitung dari nama file yang menghasilkan pointer ke nama file dalam daftar linier. Hal ini akan mengurangi waktu pencarian nama file di tabel linier Waktu pencarian nama file membutuhkan waktu yang lama. 3
1. Contiguous Allocation 2. Linked Allocation 3. Indexed Allocation Permasalahan utama adalah bagaimana mengalokasikan ruang untuk file agar dapat diakses dengan cepat dan efektif. 1. Setiap file menempati sekumpulan blok yang berurutan (linear) di dalam disk 2. Jumlah pencarian disk yang dibutuhkan untuk mengakses alokasi file yang berurutan menjadi kecil 3. File yang dialokasikan berurutan didefinisikan oleh alamat disk dan panjang block unit pertama disk 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 directory file start length count 0 2 tr 24 4 mail 11 3 list 7 2 f 16 4 Sulit menemukan ruang untuk file baru yang akan dipetakan ke dalam disk 1. Menyelesasikan permasalah yang muncul pada contiguous allocation 2. Setiap file merupakan bagian dari senarai berkait dalam sebuah blok data 3. Setiap blok memiliki pointer ke blok berikutnya 4. Direktori berisikan pointer blok awal dan akhir file 4
disk 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 directory file start end count 9 25 Hanya efektif pada file yang memiliki akses berurutan (sequential-access) 1. Menyelesasikan permasalah external fragmentation dan masalah pendeklarasian ukuran (size-declaration) pada contiguous allocation 2. Menggabungkan semua pointer ke dalam sebuah lokasi index block disk 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 directory file start count 19 19 20 8 9 1 2 25 1. Jumlah proses tidak dapat diketahui 2. Keterbatasan ruang disk Agar dapat memantau ruang kosong (free-space) dalam disk, sistem melakukan monitoring terhadap free-space list yang berisikan informasi semua blok disk yang kosong 5
HOW IT WORKS free-space list Implementasi free-space list dalam bentuk bit map atau bit vector dengan ketentuan: Setiap blok direpresentasikan oleh bit 1 Jika bit = 1 blok bebas Jika bit = 0 blok tengah digunakan Sebagai contoh, jika diketahui blok 2, 3, 4, 8, 9, 11, 12, 13, 14, 19, 20, 25, 27, 28 dan 29 adalah blok bebas dan sisanya adalah blok yang telah dialokasikan untuk file, maka bit freespace list adalah sebagai berikut: 001110001101111000011000010111000 Pendekatan free-space list dalam bentuk bit vector ini relatif sederhana dan efisien dalam menemukan blok bebas pertama dalam disk Pendekatan yang digunakan dalam metode ini adalah: 1. semua lokasi blok bebas saling dikaitkan, dan 2. menambahkan pointer pada setiap blok bebas yang menunjukkan lokasi blok bebas berikutnya 6
2, 3, 4, 8, 9, 11, 12, 13, 14, 19, 20, 25, 27, 28 dan 29 free-space list head 9 12 13 14 16 17 18 20 15 19 21 22 23 24 25 26 27 28 0 1 4 8 2 5 6 7 10 11 29 30 31 3 Pendekatan yang dilakukan adalah dengan menambahkan nilai hitung (counting) urutan blok bebas berikutnya dimulai dari blok bebas pertama yang diidentifikasi. Efisiensi ruang disk sangat bergantung kepada metode pengalokasian file pada disk dan algoritma yang digunakan Terdapat 2 system cache yang umum digunakan untuk meningkatkan performa pengalokasian ruang disk: 1. Unified virtual memory: sistem cache yang menggunakan page caching untuk menampung page proses dan file data 2. Unified buffer cache: sistem cache yang menggunkan 2 pendekatan; memory mapping dan system call read() dan write() 7
Unified Virtual Memory Unified Buffer Cache memorymapped I/O I/O read()and write() memorymapped I/O I/O read()and write() page cache buffer cache buffer cache file system file system SISTEM OPERASI Program sistem secara berkala membandingkan data di struktur direktori yang memiliki blok data dalam disk dan mencoba memperbaikinya jika ditemukan kerusakan Sistem melakukan penyimpanan riwayat perubahan pada struktur direktori dengan tujuan jika terjadi kerusakan, maka kondisi struktur diretori dikembalikan ke kondisi sebelum dilakukan perubahan TERIMA KASIH Prio Handoko, S. Kom., M.T.I. Program Studi Teknik Informatika Universitas Pembangunan Jaya Jl. Boulevard - Bintaro Jaya Sektor VII Tangerang Selatan Banten 15224 8