Review: Memory & File System

dokumen-dokumen yang mirip
Review: Memory & File System

File-System Implementation

Memory Management. Memory Ch. 8. Latar Belakang. Main-Memory Management

SISTIM OPERASI (Operating System) IKI Memory Management. Memory: Part 2 Ch. 8. Johny Moningka

Virtual Memory. Latar Belakang Demand Paging Pembuatan Proses Page Replacement Alokasi Frame Thrashing Contoh Sistem Operasi

memuat banyak proses dalam suatu waktu Sebelum masuk ke memori, suatu proses harus menunggu dalam antrian

MANAJEMEN MEMORI SISTEM OPERASI

Virtual Memory Ch. 9. Virtual Memory. SISTIM OPERASI (Operating System) IKI Johny Moningka

Sistem Operasi Komputer. Pertemuan VIII Manajemen Memori

MANAJEMEN MEMORI. Manajemen Memori 1

Sistem Operasi. Memory Management. Part 1 of 2

Organisasi Sistem Komputer. Virtual Memory. Sekolah Teknik Elektro dan Informatika ITB

Sistem Operasi 8. Memory Management. Antonius Rachmat C, S.Kom, M.Cs

Memory Management Memori Latar Belakang Alamat Binding

Memory Management. Latar Belakang Swapping Contiguous Allocation Paging Segmentation Segmentation dengan Paging

Virtual Memory. Latar Belakang. Latar Belakang (cont.) Virtual Memori

Sistem Operasi Komputer

Sistem Operasi 9. Virtual Memory. Antonius Rachmat C, S.Kom, M.Cs

Segmentasi dan Paging Pada Intel Pentium. Heri Kurniawan OS-Genap 2007/2008

Memori Virtual (Virtual Memory) Heri Kurniawan OS-Genap 2007/2008

Tujuan Pembelajaran. Memahami pengalamatan dengan menggunakan paging

RESUME SISTEM OPERASI MAIN MEMORI

Managemen Memori 2016

Memori Virtual. Program membutuhkan kapasitas yang lebih besar dari kapasitas memori fisik gunakan Virtual Memory! Virtual memory

Bab 8: Manajemen Memori. Latar Belakang

KONSEP MULTIPROGRAMMING

DASKOM & PEMROGRAMAN. Dani Usman

IKI20210 Pengantar Organisasi Komputer Kuliah no. 6c:Cache Memory. Bobby Nazief Johny Moningka

MEMORI VIRTUAL. Kelompok Franky Sadar Baskoro S. Yemima Aprilia

Keuntungan Virtual Memory

Tujuan Pembelajaran. Memahami proses swapping Memahami proses alokasi memori berurutan (Contiguous Memori Allocation)

Understanding Operating Systems Fifth Edition

Pertemuan #5: Memori dan Memori Virtual

3/30/2016. Manajemen Memori. Manajemen Memori. Manajemen memori pada sistem Monoprogramming Manajemen memori pada sistem Multiprogramming

Manajemen Memori (P ( ertemuan ke ert -12) Oktober 2014

MANAJEMEN MEMORI. Kelompok : Agung Widiyarto( ) Fahrurrozi( ) Reynaldo( Y)

SISTEM OPERASI ISG2B3 MANAJEMEN MEMORI. Agus Setiawan Program Studi Sistem Informasi Fakultas Rekayasa Industri Telkom University

Computer System Structures

3. Apa kekurangan paging sederhana dibandingkan dengan paging pada virtual memory?

Dukungan Sistem Operasi :

17/04/2015 SISTEM OPERASI

SEGMENTATION. Dania Tigarani Soraya Desiana Nurul Maftuhah. Kelompok Manajemen Memory: Copyright

ARSITEKTUR DAN ORGANISASI KOMPUTER

Manajemen Memori. Latar Belakang Ruang Alamat Logika dan Ruang Alamat Fisik Swapping Alokasi berurutan Paging Segmentasi Segmentasi dengan Paging

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Memori pada Sistem Linux. Heri Kurniawan OS-Gasal 2009/2010

Praktikum 13. Manajemen Memori 1 ALOKASI MEMORI POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Sistem Operasi. Sistem File 2016

1. Address Binding. Sebuah program ditempatkan dalam disk dalam bentuk berkas biner Sebelum dieksekusi, sebuah program harus ditempatkan di memori.

Virtual Memory. Sistem Operasi

Latar Belakang Ruang Alamat Logika dan Ruang Alamat Fisik Swapping Alokasi berurutan Paging Segmentasi Segmentasi dengan Paging

File System (Interface) Ch. 10

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Bab 9: Virtual Memory. Latar Belakang

Pertemuan 2. Struktur Sistem Operasi

Kelompok 55.1: Nilam Fitriah ( ) Nova Eka Diana ( ) Kritik :

MEMORI VIRTUAL. Sistem Operasi TIKB1023 Munengsih Sari Bunga. Politeknik Indramayu. TIKB1023/Sistem Operasi/MSB 1

1. Helga Hiwy 2. Erni Gombo 3. Imelda Florensia 4. Claudio Wayong 5. Vedra Simbala. Published By Stefanikha69

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

Bab 10. Implementasi Sistem File POKOK BAHASAN: TUJUAN BELAJAR: 10.1 STRUKTUR SISTEM FILE

Manajemen File. Kebutuhan Penyimpanan Informasi

Tidak bisa dynamic loading Memori virtual perl r u lebih besar disharing

BAB V VIRTUAL MEMORY. Tujuan: 1. Menggetahui penggunaan virtual memori dalam komputer 2. Mengetahui peran virtual memori dalam sistem operasi

Metode Alokasi dan Managemen Ruang Kosong

Struktur Sistem Komputer

Hubungan CPU dengan Memory

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Studi Kasus Kernel Linux

membagi-bagi memori untuk mengakomodasi banyak proses menjamin agar setiap proses yang ready dapat segera memanfaatkan processor

Memori Linux. Anggota Kelompok : Jani RR Siregar Martin Leonard T Y Muhamad Mulki A

Struktur Sistem Komputer

Operating-System Structures (Ch. 3)

Struktur Sistem Komputer

Kelompok Pemberian Halaman

Sistem Operasi AGUS PAMUJI. Teknik Informatika

Pengantar Hardware: Partisi dan Format Harddisk. Hanif Fakhrurroja, MT

Instructions Set. Element dari instruction. Representasi dari Op code

Alamat Logika dan Fisik

Sistem Operasi. Divais Input/Output 2016

Ch t ap 7 er Operating System (OS)

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi

VIRTUAL MEMORY. Gambar 1. Struktur Umum Overlay

Bab 8. Memori Virtual POKOK BAHASAN: TUJUAN BELAJAR: 8.1 LATAR BELAKANG

Arsitektur Sistem Komputer. Operasi Sistem Komputer. Struktur Sistem Komputer. Review:

Sistem File Sistem File Konsep File Aspek Sudut Pandang User

Mata Kuliah : Sistem Operasi Kode MK : IT Sistem File. Tim Teaching Grant Mata Kuliah Sistem Operasi

Alokasi Memori Kernel. Heri Kurniawan OS-Gasal 2009/2010

Review: Demand Paging. Virtual Memory Ch. 9. Virtual Memory. Review: VM = OS big lie

MEMORI INTERNAL Minggu 9

I. Struktur Sistem Operasi

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Sistem Operasi Pertemuan 7 Pengelolaan Memory. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo

DEFINISI SISTEM OPERASI

Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230

17/04/2015 SISTEM OPERASI. File Concept Access Methods Directory and Disk Structure File-System Mounting File Sharing File Protection

IMPLEMENTASI SISTEM PAGING

Sistem Operasi Komputer MANAJEMEN MEMORI

segmentasi dan kombinasi paging-segmentasi Kelompok Rujianto : Arif Setiawan : Muslikan :

Bab 9. Sistem File POKOK BAHASAN: TUJUAN BELAJAR: 9.1 KONSEP FILE

Transkripsi:

Review: Memory & File System SISTIM OPERASI (Operating System) IKI-20230 Johny Moningka (moningka@cs.ui.ac.id) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001 Review: MM Apakah fungsi main-memory (user s view)? Memori sebagai tempat penyimpanan instruksi/data dari program Storage yang cepat sehingga dapat mengimbangi kecepatan eksekusi instruksi CPU Terdiri dari array of words/bytes yang besar Address digunakan untuk mengakses data (shared oleh CPU dan I/O devices) Management Memory Melacak dan proteksi pemakaian memori (siapa dan berapa besar?). Memilih program mana yang akan diload ke memori dari disk. Review MM JM-2001/v1.1/2 1

Problem: Multiprogramming Misalkan terdapat 3 program (proses) di memori: OS gcc netscape vi 0x0000 0x4000 0x7000 0x9000 0xA000 Kapan gcc diberikan informasi akan diekesekusi pada lokasi 0x4000? Apa yang harus dilakukan jika gcc memerlukan memory tambahan? Bagaimana jika yang diperlukan lebih dari memory yang tersisa? Jika netscape terjadi error dan menulis pada alamat 0x4100? Apa yang terjadi jika program berhenti eksekusi terminated? Review MM JM-2001/v1.1/3 R: Address Translation Apakah perbedaan antara logical address dan physical address? Address lojik: address yang di-generate oleh CPU (disebut juga virtual address) berdasarkan kode/urutan address dari eksekusi proses saat itu. Independent dari lokasi program tersebut berada di memori. Lokasi eksekusi code program, hanya berarti untuk proses tersebut yang sedang dieksekusi. Address fisik: address yang sebenarnya berada pada memori fisik (storage). Lokasi tertentu yang telah diberikan kepada proses (setiap proses mempunyai alokasi memori tertentu). Lokasi ini harus diproteksi oleh memory management. Review MM JM-2001/v1.1/4 2

Review: Relocation Bagaimana program gcc dapat dieksekusi pada address fisik di memori? Saat program di load ke memori (load time binding). Menggunakan base register (contiguous allocation). Note: Hal yang sama berlaku untuk dynamic relocation (segementation), hanya bedanya informasi base lokasi memori (address space) telah disimpan pada process table (PCB) dan setiap context switch informasi tersebut di update. Review MM JM-2001/v1.1/5 Review: load-time binding Saat linking (build) => generate daftar referensi untuk alamat absolut (symbol table). Saat load => lokasi program di memori (telah diketahui), dan ubah alamat tersebut sesuai dengan lokasi. static gcc 0x3000 gcc OS 0x4000 jump 0x2000 0x1000 jump 0x5000 0x7000 Review MM JM-2001/v1.1/6 3

Base Register Gunakan bantuan register (relocation register): setiap akses ke memori. Base register: berisi informasi relokasi program di memori fisik. relocation: physical addr = virtual addr + base register OS a.out jump 0x2000 0x3000 0x1000 a.out jump 0x2000 MMU: base register proses gcc: 0x400 When process runs, base register = 0x4000, Jump addr = 0x2000 + 0x4000 = 0x6000 0x4000 0x7000 Review MM JM-2001/v1.1/7 jump 0x6000 Review: Protection Jika netscape terjadi error dan menulis pada alamat 0x4100? Bagaimana melakukan proteksi? Saat program di load ke memori (load time binding): Dapat diketahui maximum memori yang telah dialokasi => limit address yang dapat diakses. Proses hanya dapat mengakses range : base address s/d limit address. Jika error tidak mengganggu proses lain. Note: Mekanisme ini menciptakan konsep dasar: segment (range address yang bervariasi) dan paging (range address yang tetap besarnya). Review MM JM-2001/v1.1/8 4

Contoh Kerja MMU CPU Base register 14000 Address lojik Address fisik 346 14346 + Limit register range? 24000 MMU memori Review MM JM-2001/v1.1/9 Review: Base & Limit Register Keuntungan base & limit register (contiguous allocation): Sederhana (hardware dan programming): diperlukan 2 register, di update saat context switch dari proses. Relokasi dan proteksi: cepat, hanya perlu addition dan comparison. Kerugian: hanya ada satu segment lokasi memori untuk satu proses!!. Problem 1: growing processes (data bertambah) How to expand gcc? Problem 2: how to share code and data?? Bagaimana gcc dapat menggunakan code library yang sama?? How to separate code and data? Salah satu solusi: multiple segments segmentation gcc Review MM JM-2001/v1.1/10 Free space netscape1 netscape p2 2 5

What does a process look like? (Unix) Process address space logically divided into segments : text (code), data, heap (dynamic data), and stack function call, return parameter etc stack address 2^n-1 malloc(), free() heap initialized data code address >= 0 Review MM JM-2001/v1.1/11 Segmentation Ide: Proses mempunyai base + limit lebih dari satu. Proses address space dibangun dari sekumpulan segments yang tersebar (tidak perlu contiguos allocation untuk proses). Setiap segment menempati alokasi memori yang contiguous, dan ukurannya dapat bervariasi (tidak tetap). Setiap segment mempunyai proteksi sendiri. Setiap segment dapat di share (programmer s view) dengan proses lain. Review MM JM-2001/v1.1/12 6

Segmentation 0x1000 0x3000 gcc Text seg r/o Real memory 0x2000 0x3000 0x5000 0x6000 Stack seg r/w Seg. text: Base: Limit:.. Protection: read only Shared: yes 0x6000 0x8000 Seg. stack: base:.. limit:.. Protection: read write Shared: No Review MM JM-2001/v1.1/13 Segmentation Bagaimana proses melakukan mapping untuk semua segment yang ada (address translation)? Segment table: Setiap proses mempunyai deretan segment yang disimpan pada table. Misalkan: row pada table, berisi informasi untuk satu segment (base, limit, protection, dll). Setiap memori reference menunjukkan pointer ke segment pada table dan offset. Logical address terbagi dua field: nomor segment pada table dan offset pada segment tersebut. Note: nomor segment => implementasi nomor index pada entry segment table (menghemat bit dan comparison, searching). Review MM JM-2001/v1.1/14 7

Example: Virtual addr 4 128? no yes fault + mem Seg# offset Seg table Prot base len Seg 4 0x1000 128 R 0x1000 512 Range? Review MM JM-2001/v1.1/15 Segmentation example 2-bit segment number (1st digit), 12 bit offset (last 3) Seg base limit rw 0 0x4000 0x6ff 10 1 0x0000 0x4ff 11 2 0x3000 0xfff 11 3 00 where is 0x0240? 0x1108? 0x265c? 0x3002? Fault 0x1600? Fault logical 0x4000 0x3000 0x2000 0x1500 0x1000 0x0700 0x0000 Review MM JM-2001/v1.1/16 physical 0x4700 0x4000 0x3000 0x500 0x0 8

Segmentation Tradeoffs Pro: Tidak perlu contiguous allocation: Multiple segments per process Allows sharing! (how?) Don t need entire process in memory!!! gcc Con: gcc code where? Extra layer of translation speed = hardware support More subtle: an n byte segment requires n *contigious* bytes of physical memory. (why?) Makes fragmentation a real problem. vi Review MM JM-2001/v1.1/17 Review: Fragmentation Apakah yang dimaksud fragmentasi memori? Ketidak-mampuan OS menggunakan memori yang tidak digunakan (free memory). Terangkan 2 jenis fragmentasi yang ada: External fragmentation: Variable sized allocation (segment): Tersebar variable sized yang kecil dari memory yang free, tapi tidak mencukupi untuk alokasi satu segment. Internal fragmentation. Fixed sized allocation (paging): bagian memori yang tidak digunakan oleh proses tapi telah di-alokasikan. Review MM JM-2001/v1.1/18 9

Fragmentation vi?? gcc External fragmentation emacs allocated doom stack Unused ( internal fragmentation ) Review MM JM-2001/v1.1/19 Paging Pembagian memori dalam ukuran tertentu ( pages ) Pages typical: 4k-8k gcc vi internal frag Tradeoff: pro: eliminates external fragmentation pro: simplifies allocation, free and swapping con: internal fragmentation Review MM JM-2001/v1.1/20 10

Paging:mechanism Memory dibagi dalam ukuran tertentu dan tetap (pages) Setiap proses mempunyai table ( page table ) yang menyimpan informasi pages yang dialokasikan ke proses tersebut. Entry pada page table: mapping virtual page number (VPN) ke physical page number (PPN) PT entry also includes protection bits (r, w, valid) Addressing: virtual address => terbagi atas 2 field: VPN dan offset (max. ukuran pages). Q: Misalkan MIPS, addressing 32 bit dan besarnya pages: 4 KB, berapa bit untuk VPN dan berapa untuk offset? Review MM JM-2001/v1.1/21 Example: Besarnya ukuran pages: 4 KB => 12 bits Jadi offset: 12 bits, VPN: 32 12 bits = 20 bits. Virtual addr 3 128 (12bits) offset: 128 0x1000 mem VPN page offset page table Prot VPN PPN? PPN page 128 invalid pages r 3 1 belum ada di memori fisik! Review MM JM-2001/v1.1/22 11

Page tables (vs segmentation) Good: Mudah untuk alokasi: karena ukuran tetap, operasi dapat dilakukan dengan bantuan hardware untuk mapping VA ke PA. Manajemen pages: daftar pages yang free dapat dikumpulkan dalam free list. Bad: Ukuran page table: PTs memerlukan satu entry untuk setiap page => perlu storage lebih besar untuk menyimpan informasi PT. e.g., given a range [0x0000, 0xffff => 64 KB] need one segment descriptor but, assuming 4K pages, 16 page table entries B=0x0,len=0xffff Page table 0x0000 0xFFFF Review MM JM-2001/v1.1/23 Page size tradeoffs More Overhead & locality Internal frag & writeback cost page size Small page = large PT overhead: 32-bit address space with 1k pages. How big PT? Lokalitas program tidak terakomodasi tersebar ke banyak pages => page faults dapat meningkat. Large page = internal frag (doesn t match info. size) Transfer time 1 pages at page faults? Write back untuk satu pages yang telah diupadte => lama Review MM JM-2001/v1.1/24 12

Review: Linker Apakah perbedaan static shared lib dan dynamic shared lib? Static shared lib: Define a shared library segment at same address in every program s address space Every shared lib is allocated a unique range in this seg, and computes where its external defs reside Review MM JM-2001/v1.1/25 0xffe0000 0xfff0000 0xffe0000 0xfff0000 ls 0xffe0000 0xfff0000 gcc hello 0xffe0000 0xfff0000 libc.a math.a Review MM JM-2001/v1.1/26 13

Linking variation 2: dynamic shared libs Problem: static shared libraries require systemwide pre-allocation address space: kaku tidak flexible! We want to link code anywhere in address space Problem 1: linker won t know how to resolve refs do resolution at runtime link in stubs that know where to get code from program calls stub, goes and gets code Review MM JM-2001/v1.1/27 ls printf_stub: scanf_stub:... /usr/shrd-lib/libc.a 4500 printf: 9000 libc.a... sscanf:... printf_stub: scanf_stub:... gcc Review MM JM-2001/v1.1/28 14

Problem 2: Dynamic shared libraries Code must simultaneously run at different locations! Sol n: make lib code position independent refer to routines, data using relative addressing (base + constant offset) rather than absolute addresses 0xf00 0xf44 Example: printf:... call 0xf44 write:... libc.a 0x0 0x44 internal call call 0xf44 become call lib_base + 0x44 printf:... call libc_base+0x44 write:... lib_base contains the base address of library (private to each process) & 0x44 is called routine s internal offset Review MM JM-2001/v1.1/29 Review: Q&A Segmentation & Paging: Apakah segmentation & paging tidak ada fragmentasi? Untuk translation: lihat pembahasan di prosesor Intel (buku teks). Kalau penanganan page fault menggunakan page replacement itu prosedurnya bagaimana? Review MM JM-2001/v1.1/30 15

Page rewrite apakah menulis kembali seluruh page atau hanya mengubah/menambah yang diperlukan saja? Jika hanya mengubah/menambah, bagaimana jika terjadi kejadian seperti ini? Ketika dilakukan defragmentasi di Windows, kemudian terjadi hang pada komputer, Apakah hal tersebut akan mempengaruhi FAT Review MM JM-2001/v1.1/31 Apakah thrashing itu hanya disebabkan oleh global page replacement saja, apakah dengan local page replacement tidak bisa terjadi thrashing juga? Apakah pada sistem operasi yang ada sekarang ini masih digunakan pembagian seperti DOS? Dan apa tujuan dari pembagian memory tersebut? Review MM JM-2001/v1.1/32 16

Saya masih bingung kenapa partisi primary didalam sebuah harddisk dibatasi sampai 4 partisi?. Review MM JM-2001/v1.1/33 Review: File-System Structure File structure Data file disimpan dalam blok (kelipatan besarnya sector). Logical address disk: urutan nomor blok data (keseluruhan). Logical address file: urutan nomor blok data yang digunakan sesuai dengan urutan data pada file. Implementasi: Mengurangi overhead mendapatkan data (seek, rotation). Manajemen blok yang bebas (free list). Review MM JM-2001/v1.1/34 17

Review: Disk Layout Bootstrapping: where is root directory? Fixed location on disk: MBR FAT (opt) FAT root dir block file informasi partisi disk, program load boot sector/code, (dibaca oleh BIOS, lokasi cyl. 0, head 1, sector 1). MBR Superblocks root dir inode table block file inode table Review MM JM-2001/v1.1/35 Review MM JM-2001/v1.1/36 18

Review: File access Bagaimana cara user menggunakan file? Akses data secara berurut (logical data): Sequential access: akses data pada blok files secara berurut, data besar dan dari awal sampai akhir file. Contoh: data statis file informasi karyawan, backup tape. Akses data secara acak/sembarang Random access: akses data pada lokasi blok tidak berurut; data kecil. Contoh: update file, data transaksi. Review MM JM-2001/v1.1/37 Review: Support for both Hal yang menjadi dasar design file structure: Umumnya file ukurannya kecil (pengamatan). Survey: 80% file pada sistim UNIX ukurannya kecil (< 10 blok, dan dapat diakses melalui: direct pointer). Sebagian dari blok disk digunakan oleh file yang besar (porsi terbesar). File yang besar menggunakan mayoritas kapasitas disk (memerlukan jumlah blok yang sangat banyak). Jadi perlu dukungan untuk kedua model akses : akses random (file kecil yang banyak) dan sequential (file yang besar dan aktifitas tinggi) Akses yang cepat untuk random. Kemampuan menanmpung blok yang sangat banyak (multilevel indeks pointer). Review MM JM-2001/v1.1/38 19

Review: Block Allocation Alokasi struktur blok disk: Contiguous allocation Linked allocation. Indexed allocation. Review MM JM-2001/v1.1/39 Linked List Allocate as needed, link together; e.g., file starts at block 9 Bagaimana melakukan random access? Follow the link, overhead besar (read blok disk; linked list) => banyak seek) Review MM JM-2001/v1.1/40 20

Example: DOS FS (simplified) Performance: Link dikumpulkan pada fixed-sized file allocation table (FAT) => tidak disebarkan pada setiap blok. Directory (5) 0 1 a: 6 b: 2 2 3 4 5 6 FAT (16-bit entries) free eof 1 eof 3 eof 4... file a 6 4 3 file b 2 1 FAT cukup kecil dapat disimpan cache disk => akses tanpa melakukan seek. Review MM JM-2001/v1.1/41 FAT discussion Entry size = 16 bits nomor blok Berapa maksimum ukuran FAT? Jika 8 Kbyte per blok, Max. besarnya disk yang dapat digunakan? 64 K * 8 KB => 512 MB 16 16 bits bits => => 64 64 K jumlah jumlah blok blok Reliability: how to protect against errors? FAT menempati satu area tertentu (contiguous sector) => what happen if corrupt? Buat duplikat FAT on disk. Review MM JM-2001/v1.1/42 21

Example of Indexed Allocation Review MM JM-2001/v1.1/43 Multi-level indexed Berapa besar tabel index? 1 tingkat => sangat besar supaya dapat mencakup file yang besar. Multilevel indexed: index (2 nd level) tidak akan ada jika file kecil. Mengurangi besarnya tabel index untuk file kecil tapi mendukung file besar. tidak perlu disediakan entry idle Review MM JM-2001/v1.1/44 22

Example UNIX: inode Review MM JM-2001/v1.1/45 UNIX: inodes Inodes disimpan pada table (array, inode list) Besarnya array inode ditentuk saat disk di format (initialized) dan menempati lokasi tertentu (awal atau tersebar dalam groups list). SUPER BLOCKS Inode array file blocks... Superblocks: Menyimpan informasi partisi, dan pointer ke inode list (groups) Review MM JM-2001/v1.1/46 23

Example: Unix file access Want to modify byte 4 in /a/b.c:. : 10 : dir a: 12: dir. :12 dir.. :10:dir b.c :13:inode Root directory read root directory (blk 10) lookup a (blk 12); read inode 114 0 lookup inode for b.c (13); read int main() { Gunakan inode => read blok 114, update byte ke 4 dari blok tsb. Review MM JM-2001/v1.1/47 24