File System Implementation

Slides:



Advertisements
Presentasi serupa
Manajemen Memory Kelompok 7 : M. Khoirur Roziqin ( )
Advertisements

SISTIM OPERASI (Operating System) IKI-20230
DISUSUN OLEH : SITI MUTHOHAROH HENDRA ELIA DWI CHANDRA RINDHY ANTHIKA N. YOHANES.
Introduction to File System
Metode Alokasi Berkas.
Manajemen Berkas.
Struktur Sistem Komputer
Basic Issue In System Administration. Bassic Issue In System Administration Creating and managing accounts Performing administrative task Access control.
Sistem Terdistribusi 07 – OS Client Server Oleh : Muh. Ary Azali.
Cache Memori Oleh : Ahmad Fuad Hariri Fitriana Nelvi Tino Arif Cahyo
Tim Teaching Grant Mata Kuliah Sistem Operasi
SISTEM OPERASI.
Computer System Structure
Struktur Sistem Operasi
Struktur Sistem Operasi
Sistem Terdistribusi 010 – File Service Oleh : Muh. Ary Azali.
Manajemen Harddisk Ihsan Naskah
SISTEM BERKAS Sistem File.
SISTEM OPERASI Pertemuan 6 : Manajemen File
Struktur Sistem Komputer
MK-Struktur Organisasi Data 1
SISTIM OPERASI (Operating System) IKI-20230
1 Pertemuan 17 Input / Output Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5.
ORGANISASI BERKAS RELATIF
MEDIA PENYIMPANAN BERKAS
Sistem File Persyaratan penyimpanan jangka panjang
Defiana Arnaldy, M.Si Virtual Memori Defiana Arnaldy, M.Si
SISTEM OPERASI MANAJEMEN FILE Disajikan Oleh :.
Struktur Sistem Komputer
Manajemen File.
Virtual Memory.
File-System Implementation
Manajemen Sistem File Konsep File Metode Akses Struktur Direktori
METODE ALOKASI BERKAS DISUSUN OLEH : KELOMPOK 8 1.MUHAMMAD MEIVMART TAMYIZA( ) 2.WISNU ADI NUGRAHA( )
Management Memory.
Struktur Sistem Komputer
Manajemen Sistem File.
Manajemen Memori.
Mata Kuliah : Sistem Operasi
STRUKTUR SISTEM KOMPUTER
Sistem Operasi Pendahuluan.
9. Manajemen Memori Utama
MANAJEMEN MEMORI.
Struktur Sistem Komputer
File Service Sistem Terdistribusi.
BAB I                       Mata Kuliah  Sistem Terdistribusi _______________________ Sistem Operasi Terdistribusi Oleh : Laseri, S.Kom.
Struktur Sistem Komputer
Komponen Dasar Sistem Operasi
TEKNIK KOMPUTER - UNIKOM Jalan Dipatiukur 112 Bandung
Partisi dan Format Harddisk
ORGANISASI BERKAS RELATIF
Memori Virtual Dosen: Abdillah S.Si., MIT.
Melakukan Instalasi Sistem Operasi Dasar
Sistem Operasi “File system “.
Mata Kuliah Sistem Operasi
Pertemuan VI MAPPING FUNCTION.
Struktur Sistem Komputer
INSTALASI SISTEM OPERASI CLOSED SOURCE
Hierarki Memori Dan Cache Memori..
Manajemen Memori Pertemuan 14 & 15 Sistem Operasi (CSG3E3)
Struktur Sistem Komputer
Manajemen Sistem File.
Struktur Sistem Komputer
Struktur Sistem Komputer
Manajemen Sistem File Konsep File Metode Akses Struktur Direktori
Struktur Sistem Komputer
Struktur Sistem Komputer
Struktur Sistem Komputer
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Struktur Sistem Komputer
Transcript presentasi:

File System Implementation

Materi File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery NFS Example: WAFL File System

Overview

Overview File System Secara fisik, data disimpan pada sector-sector di secondary storage misalnya disk Agar efisien, I/O transfer dari disk ke memory dilakukan dalam satuan block Block = kumpulan sector berukuran 32-4096 byte, umumnya 512 byte Data fisik yang disimpan pada secondary storage perlu diabstraksikan menjadi file agar mudah diakses user File system memiliki peranan penting berkaitan dengan pengaksesan data pada secondary storage Menyediakan antarmuka/interface user ke storage dengan melakukan pemetaan dari logical file ke physical storage Menyediakan mekanisme akses yang mudah ke disk untuk menyimpan dan membaca data dari physical storage (disk)

Permasalahan Implementasi File System Bagaimana struktur file system yang baik? Bagaimana mekanisme implementasi file system? Bagaimana mekanisme implementasi direktori pada file system? Bagaimana metode alokasi storage untuk sebuah file dilakukan? Bagaimana performa file system yang diimplementasikan?

File System Structure

File System Structure Dalam implementasinya sebuah file system dapat diorganisasikan menjadi beberapa layer/lapisan

Lapisan I/O Control Lapisan yang berfungsi melakukan akses I/O ke device Terdiri atas device driver dan interrupt handler Lapisan ini mentranslasikan perintah dari lapisan atasnya menjadi sebuah instruksi perangkat keras khusus Contoh input retreive block 23 Contoh output : instruksi hardware Dibahas detail di Bab I/O

Lapisan Basic File System Lapisan yang berfungsi untuk memberikan perintah ke salah satu device driver Akses "Drive 1, Cylinder 73, Track 2, Sector 10" Juga bertugas mengelola memory buffer dan cache yag menyimpan informasi mengenai filesystem, struktur directory dan data

Lapisan File Organization Module Lapisan ini punya informasi mengenai file beserta logical block dan physical block-nya Bertugas mentranslasikan nomor logical block menjadi nomor physical block Juga melakukan pengaturan free space dan alokasi disk

Lapisan Logical File System (1) Lapisan yang mengelola metadata dari sebuah file system Metadata berisi semua informasi tentang struktur file system kecuali content file Contoh metadata : ukuran file, modified date, permission, struktur direktori Struktur file direpresentasikan dalam bentuk File Control Block (FCB) Di Unix/Linux disebut inode

Keuntungan dan Kerugian Struktur Layer Implementasi lebih mudah karena sifatnya yang modular Perubahan di satu lapisan tidak perlu mengubah lapisan lain Satu lapisan dapat digunakan ulang beberapa file system berbeda Contoh : Lapisan I/O dan basic file system Kerugian Overhead translasi dan komunikasi antar lapisan

File System Implementation

File System Implementation Untuk mengimplementasikan sebuah file system, dibutuhkan pengelolaan beberapa struktur data On-disk structure On-memory strcuture

On-disk Structure Informasi pada on-disk structure disimpan dalam disk Beberapa informasi pada on-disk structure Boot control block (per volume) Volume control block Directory structure (per file system) File Control Block/FCB (per file)

On-disk Structure (1) Boot control block (per volume) Berisi informasi yang dibutuhkan untuk booting sebuah OS dari volume tersebut Di Unix/Linux FS disebut boot block, di NTFS disebut partition boot sector Volume control block Berisi informasi detail mengenai sebuah partisi/volume Jumlah block dalam partisi, ukuran block, free-block count, free block pointer, free-FCB count dan FCB pointer Di Unix/Linux FS disebut superblock, di NTFS disebut master file table

On-disk Structure (2) Directory structure (per file system) Berisi informasi mengenai struktur direktori pada sebuah partisi/volume Pada Unix/Linux FS termasuk nama file dan nomor inode Pada NTFS, struktur direktori disimpan pada master file table File Control Block/FCB (per file) Berisi informasi spesifik dari sebuah file Setiap FCB punya nomor identifier Pada NTFS, FCB disimpan pada master file table

On-disk Structure (3) : File Control Block

On-disk Structure pada ext3 FS

On-Memory Structure (1) Informasi pada on-memory strcture disimpan pada main memory Main memory terutama digunakan untuk caching Dengan caching, akses informasi file system pada on-disk structure dapat dikurangi Beberapa informasi pada on-memory structure Mount table Directory structure cache System-wide open-file table Per-process open-file table Block buffer

On-Memory Structure (2) Mount table Berisi informasi mengenai volume/partisi yang sudah di- mount Directory Structure Cache Cache dari struktur direktori yang baru saja diakses System-wide open-file table Berisi FCB dari file yang sedang dibuka. FCB dicopy dari disk. Terdapat counter untuk menghitung berapa process yang sedang membuka file tersebut

On-Memory Structure (3) Per-process open-file table Berisi informasi spesifik mengenai file yang dibuka untuk tiap process berbeda Punya pointer ke entry pada system-wide open file table Block buffer Bertugas menyimpan sementara block yang sedang dibaca dari disk atau sedang ditulis ke disk

Open-File Table

Implementasi Operasi : Create File Untuk membuat file baru, terdapat beberapa langkah yang harus dilakukan Program memanggil modul pada lapisan logical file system (LFS) LFS mengalokasikan FCB baru LFS melakukan pembacaan struktur direktori dari on- disk structure dan memindahkannya ke memory LFS kemudian meng-update struktur direktori dengan nama file baru dan FCB yang sudah dibuat Simpan kembali perubahan struktur direktori ke disk

Implementasi Operasi : Open File Program memanggil modul pada lapisan logical file system (LFS) lewat system call open(nama file) LFS mengecek pada system-wide open-file table apakah file sudah dibuka oleh process lain Jika YA, buat per-process open-file table dengan pointer ke system-wide open-file table Jika TIDAK, LFS mencari FCB file tsb. pada struktur direktori di disk Ketika ditemukan, copy FCB dari file tersebut ke system-wide open-file table Lakukan langkah 3 Return pointer ke per-process open-file table untuk operasi read() dan write()

Skema Open File

Implementasi Operasi : Close File Ketika sebuah file ditutup oleh sebuah process, terdapat beberapa hal yang dilakukan Hapus per-process open file table untuk process tsb. Decrement counter pada system-wide open file table Menunjukkan jika sebuah process tidak lagi membuka file tersebut Jika dalam sebuah OS tidak ada lagi process yang membuka file tersebut, hapus FCB-nya dari system- wide file open table

Implementasi Partisi dan Mounting Sebuah disk dapat dibagi menjadi beberapa partisi Partisi dapat berupa raw juga diformat dengan sebuah file system partisi yang diformat disebut volume Boot block dipakai untuk menyimpan informasi yang dipakai untuk booting dan load kernel Partisi root yang berisi kernel OS di mount saat booting Partisi lain dapat di-mount saat booting maupun setelahnya

Virtual File System

Virtual File System Dalam satu OS, bisa terdapat lebih dari satu FS Problem : Bagaimana mengintegrasikan berbagai FS dengan metode yang berbeda dalam satu OS? Virtual File System : representasi file system dengan konsep orientasi objek node dalam FS direpresentasikan sebagai objek yang sama Terjadi pemisahan antara detail implementasi dengan operasi

Skema VFS

Implementasi VFS VFS di Linux memiliki 4 objek inode : representasi file file : representasi file yang dibuka superblock : representasi keseluruhan filesystem dentry : representasi directory entry Pada tiap objek dapat dilakukan beberapa operasi generik int open(. . .)—Open a file int close(. . .)—Close an already-open file ssize t read(. . .)—Read from a file ssize t write(. . .)—Write to a file int mmap(. . .)—Memory-map a file

Directory Implementation

Directory Implementation Untuk mengimplementasikan struktur direktori, terdapat beberapa jenis struktur data yang bisa dipakai Linear List Hash Table Tree

Linear List / Linked List Struktur direktori diimplementasikan dalam sebuah linear list Pembacaan data dilakukan secara linear dan sekuensial Performa tidak terlalu bagus Linear search time = O(n) Waktu yang dibutuhkan linear dengan jumlah node

Hash Table (1) Struktur direktori diimplementasikan dalam sebuah hash table Hash table : tabel dengan index yang di-generate dari fungsi hash Fungsi hash : fungsi yang dapat memetakan dari string misal nama file ke index angka

Hash Table (2) Hash table punya kompleksitas pencarian O(1) Jauh lebih cepat dari linear list Namun, pada hash table memungkinkan terjadinya collision Collision : dua nama file yang berbeda punya representasi index angka yang sama

File Allocation Method

File Allocation Method Metode yang mengatur bagaimana file dialokasikan pada block-block di disk Beberapa metode alokasi Contiguous Allocation Linked Allocation File Allocation Table Indexed Allocation Combined Scheme

Contigous Allocation File dialokasikan pada block- block yang berurutan di disk Sederhana, performa relatif baik Namun, mengalami fragmentasi external Lebih sulit mencari free space pada disk Bagaimana jika ukuran sebuah file bertambah terus?

Contigous Allocation : Extent-based File System Modifikasi dari contiguous allocation Jenis FS ini mengalokasikan block tambahan (extent) di luar urutan block pokok Sebuah block punya link ke block extent berikutnya Block extent juga bersifat contiguous Sebuah file bisa terdiri atas lebih dari satu extent Contoh : Veritas FS

Linked Allocation Sebuah file dialokasikan sebagai sebuah linked list block Sebuah block punya link ke block berikutnya dan seterusnya Sebuah block tidak harus dialokasikan secara berurutan Tidak mengalami fragmentasi external Namun, performa seeking block jadi menurun

Linked Allocation : File Allocation Table (FAT) FS FAT adalah FS yang memanfaatkan konsep linked alloc. Terdapat tabel yang menyimpan informasi mengenai block pertama dari setiap file Dari block pertama bisa ditelusuri block berikutnya Tabel tersebut disimpan pada bagian pertama dari sebuah volume Untuk meningkatkan performa, ada mekanisme cache

Indexed Allocation Pointer-pointer block dari sebuah file dikumpulkan pada block index khusus Pointer-pointer block ditempatkan pada sebuah array Entry ke-i menunjuk ke block ke-i dari sebuah file Directory entry menunjukkan lokasi block index Problem : jika jumlah file banyak, butuh alokasi block index besar

Index Allocation : Combined Scheme Pada combined scheme terdapat dua jenis block index Block direct yang ada langsung pada FCB Block indirect yang disimpan pada block tersendiri Contoh : 15 block index awal adalah block direct Sisanya block indirect Umumnya digunakan pada file system di Unix

Free Space Management

Free Space Management Block-block yang masih free di disk perlu diketahui lokasinya oleh file system File yang baru dibuat ditempatkan pada block yang free Terdapat beberapa metode untuk menyimpan informasi mengenai block-block yang masih free Bit Vector Linked List Grouping Counting

Bit Vector Block terpakai dan free direpresentasikan dengan angka bit 1 dan 0 1 untuk block terpakai, 0 untuk block free Contoh Block free : 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, and 27 Bit vector : 001111001111110001100000011100000 Tidak efisien Jika jumlah block banyak, butuh semakin banyak bit

Linked List Free block direpresentasikan dalam bentuk linked list Lebih sedikit informasi yang perlu disimpan Susah diterapkan jika alokasi disk menggunakan contiguous allocation

Grouping dan Counting Grouping Counting Modifikasi dari linked list Free block pertama menyimpan alamat n free block Block ke-n menyimpan informasi n free block berikutnya Counting Digunakan jika alokasi bersifat contiguous Informasi yang disimpan hanya free block pertama dan jumlah block berikutnya yang free

Space Map Used in ZFS Consider meta-data I/O on very large file systems Full data structures like bit maps couldn’t fit in memory -> thousands of I/Os Divides device space into metaslab units and manages metaslabs Given volume can contain hundreds of metaslabs Each metaslab has associated space map Uses counting algorithm But records to log file rather than file system Log of all block activity, in time order, in counting format Metaslab activity -> load space map into memory in balanced-tree structure, indexed by offset Replay log into that structure Combine contiguous free blocks into single entry

Efficiency and Performance

Efficiency Efficiency dependent on: Disk allocation and directory algorithms Types of data kept in file's directory entry Pre-allocation or as-needed allocation of metadata structures Fixed-size or varying-size data structures

Performance Keeping data and metadata close together Buffer cache – separate section of main memory for frequently used blocks Synchronous writes sometimes requested by apps or needed by OS No buffering / caching – writes must hit disk before acknowledgement Asynchronous writes more common, buffer-able, faster Free-behind and read-ahead – techniques to optimize sequential access Reads frequently slower than writes

Page Cache A page cache caches pages rather than disk blocks using virtual memory techniques and addresses Memory-mapped I/O uses a page cache Routine I/O through the file system uses the buffer (disk) cache This leads to the following figure

I/O Without a Unified Buffer Cache

I/O Using a Unified Buffer Cache

Recovery

Recovery Consistency checking – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies Can be slow and sometimes fails Use system programs to back up data from disk to another storage device (magnetic tape, other magnetic disk, optical) Recover lost file or disk by restoring data from backup

Log Structured File Systems Log structured (or journaling) file systems record each metadata update to the file system as a transaction All transactions are written to a log A transaction is considered committed once it is written to the log (sequentially) Sometimes to a separate device or section of disk However, the file system may not yet be updated The transactions in the log are asynchronously written to the file system structures When the file system structures are modified, the transaction is removed from the log If the file system crashes, all remaining transactions in the log must still be performed Faster recovery from crash, removes chance of inconsistency of metadata

File System Example

File System Example NFS (12.8) WAFL (12.9)