1 Review: Memory & File System SISTIM OPERASI (Operating System) IKI-20230 Johny Moningka ([email protected]) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001 Review MM JM-2001/v1.1/2 Review: MM n Apakah fungsi main-memory (user’s view)? n 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) n Management Memory n Melacak dan proteksi pemakaian memori (siapa dan berapa besar?). n Memilih program mana yang akan diload ke memori dari disk.
24
Embed
Review: Memory & File System - staff.ui.ac.idstaff.ui.ac.id/system/files/users/moningka/material/rev-mem-file.pdf · Review MM JM -2001/v1.1/2 Review: MM nApakah fungsi main-memory
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Review: Memory & File System
SISTIM OPERASI(Operating System)IKI-20230 Johny Moningka([email protected])
Fakultas Ilmu KomputerUniversitas Indonesia
Semester 2000/2001
Review MM JM-2001/v1.1/2
Review: MM
n Apakah fungsi main-memory (user’s view)?n 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)
n Management Memoryn Melacak dan proteksi pemakaian memori (siapa dan
berapa besar?).n Memilih program mana yang akan diload ke memori
dari disk.
2
Review MM JM-2001/v1.1/3
Problem: Multiprogramming
n Misalkan terdapat 3 program (proses) di memori:
• 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?
OS
netscape
gcc
vi 0xA000
0x7000
0x9000
0x4000
0x0000
Review MM JM-2001/v1.1/4
R: Address Translation
n Apakah perbedaan antara “logical address” dan “physical address”?n 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.
n 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.
3
Review MM JM-2001/v1.1/5
Review: Relocation
n Bagaimana program gcc dapat dieksekusi pada “address fisik” di memori?n Saat program di “load ke memori” (load time binding).n 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/6
Review: load-time binding
n Saat linking (build) => generate daftar referensi untuk alamat absolut (symbol table).
n Saat load => lokasi program di memori (telah diketahui), dan ubah alamat tersebut sesuai dengan lokasi.
0x1000
static gcc0x3000
0x7000
OS
gcc
jump 0x2000jump 0x5000
0x4000
4
Review MM JM-2001/v1.1/7
Base Register
n 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
0x1000
a.out0x3000
0x7000
OS
a.out
jump 0x2000jump 0x2000
0x4000
When process runs, base register = 0x4000,
Jump addr = 0x2000 + 0x4000 = 0x6000
MMU: base register proses gcc: 0x400 jump 0x6000
Review MM JM-2001/v1.1/8
Review: Protection
n Jika netscape terjadi error dan menulis pada alamat 0x4100? Bagaimana melakukan proteksi?
n 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.
n Note: Mekanisme ini menciptakan konsep dasar: segment (range address yang bervariasi) dan paging (range address yang tetap besarnya).
5
Review MM JM-2001/v1.1/9
Contoh Kerja MMU
CPU
Base register
14000
+
memori346 14346
Address lojik Address fisik
MMU
24000
Limit registerrange?
Review MM JM-2001/v1.1/10
Review: Base & Limit Register
n Keuntungan base & limit register (contiguous allocation):n Sederhana (hardware dan programming): diperlukan 2 register,
di update saat context switch dari proses.n Relokasi dan proteksi: cepat, hanya perlu addition dan comparison.
n Kerugian: hanya ada satu “segment” lokasi memori untuk satu proses!!.n Problem 1: growing processes (data bertambah)
How to expand gcc?
n Problem 2: how to share code and data??Bagaimana gcc dapat menggunakan “code library” yang sama??
n How to separate code and data?
n Salah satu solusi: multiple segmentsn “segmentation” gcc
p2
Free space
netscape1
netscape 2
6
Review MM JM-2001/v1.1/11
What does a process look like? (Unix)
n Process address space logically divided into “segments”:text (code), data, heap (dynamic data), and stack
heap
stack
code
initialized data
address 2^n-1
address >= 0
malloc(),free()
function call, returnparameter etc
Review MM JM-2001/v1.1/12
Segmentation
n Ide: Proses mempunyai “base + limit” lebih dari satu.n Proses address space dibangun dari sekumpulan “segments”
yang tersebar (tidak perlu contiguos allocation untuk proses).n Setiap segment menempati alokasi memori yang contiguous,
dan ukurannya dapat bervariasi (tidak tetap).n Setiap segment mempunyai proteksi sendiri.n Setiap segment dapat di “share” (programmer’s view) dengan
n Small page = large PT overhead: n 32-bit address space with 1k pages. How big PT?n Lokalitas program tidak terakomodasi tersebar ke banyak pages
=> page faults dapat meningkat.
n Large page = internal frag (doesn’t match info. size)n Transfer time 1 pages at page faults? n Write back untuk satu pages yang telah diupadte => lama
page size
Internal frag&
writeback cost
Overhead&
localityMore
13
Review MM JM-2001/v1.1/25
Review: Linker
n Apakah perbedaan static shared lib dan dynamic shared lib?
n 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/26
gccls0xffe00000xfff0000
0xffe00000xfff0000
hello
0xffe00000xfff0000
libc.a…
math.a…
0xffe0000
0xfff0000
14
Review MM JM-2001/v1.1/27
Linking variation 2: dynamic shared libs
n Problem: static shared libraries require system-wide pre-allocation address space: kaku tidak flexible!n We want to link code anywhere in address space
n Problem 1: linker won’t know how to resolve refsn do resolution at runtimen link in stubs that know where to get code fromn program calls stub, goes and gets code
Review MM JM-2001/v1.1/28
printf_stub:scanf_stub:...
ls
4500 9000 libc.aprintf_stub:scanf_stub:...
gcc
printf:...
sscanf:...
“/usr/shrd-lib/libc.a”
15
Review MM JM-2001/v1.1/29
Problem 2: Dynamic shared libraries
n Code must simultaneously run at different locations!n Sol’n: make lib code “position independent”
n refer to routines, data using relative addressing (base + constant offset) rather than absolute addresses
n
n Example:n internal call “call 0xf44” become “call lib_base + 0x44”
n “lib_base” contains the base address of library (private to eachprocess) & 0x44 is called routine’s internal offset
libc.aprintf:
...call 0xf44
write:…
...
0xf44
0xf00 printf:...
call libc_base+0x44write:
…...
0x44
0x0
Review MM JM-2001/v1.1/30
Review: Q&A
n Segmentation & Paging:n Apakah segmentation & paging tidak ada fragmentasi?
n Untuk translation: lihat pembahasan di prosesor Intel (buku teks).
n Kalau penanganan page fault menggunakan page replacement itu prosedurnya bagaimana?
16
Review MM JM-2001/v1.1/31
n Page rewrite apakah menulis kembali seluruh page atau hanya mengubah/menambah yang diperlukan saja? Jika hanya mengubah/menambah, bagaimana jika terjadi kejadian seperti ini?
n Ketika dilakukan defragmentasi di Windows, kemudian terjadi hang pada komputer,
Apakah hal tersebut akan mempengaruhi FAT
Review MM JM-2001/v1.1/32
n Apakah thrashing itu hanya disebabkan oleh global page replacement saja, apakah dengan local page replacement tidak bisa terjadi thrashing juga?
n Apakah pada sistem operasi yang ada sekarang ini masih digunakan pembagian seperti DOS? Dan apa tujuan dari pembagian memory tersebut?
17
Review MM JM-2001/v1.1/33
n Saya masih bingung kenapa partisi primary didalam sebuah harddisk dibatasi sampai 4 partisi?
n .
Review MM JM-2001/v1.1/34
Review: File-System Structure
n File structuren 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.
n Implementasi: • Mengurangi overhead mendapatkan data (seek, rotation).
• Manajemen blok yang bebas (free list).
18
Review MM JM-2001/v1.1/35
Review: Disk Layout
n Bootstrapping: where is root directory? n Fixed location on disk:
FAT (opt) FAT root dir block file MBR
informasi partisi disk,program load boot sector/code,(dibaca oleh BIOS, lokasi cyl. 0, head 1, sector 1).
Superblocks root dir inode table block file inode table MBR
Review MM JM-2001/v1.1/36
19
Review MM JM-2001/v1.1/37
Review: File access
n Bagaimana cara user menggunakan file?n 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.
n 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/38
Review: Support for both
n Hal yang menjadi dasar design file structure:n Umumnya file ukurannya kecil (pengamatan).
• Survey: 80% file pada sistim UNIX ukurannya kecil (< 10 blok, dan dapat diakses melalui: direct pointer).
n Sebagian dari blok disk digunakan oleh file yang besar (porsi terbesar).
• File yang besar menggunakan mayoritas kapasitas disk (memerlukan jumlah blok yang sangat banyak).
n 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).
20
Review MM JM-2001/v1.1/39
Review: Block Allocation
n Alokasi struktur blok disk:n Contiguous allocationn Linked allocation.n Indexed allocation.
Review MM JM-2001/v1.1/40
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)
21
Review MM JM-2001/v1.1/41
Example: DOS FS (simplified)
n Performance: Link dikumpulkan pada fixed-sized “file allocation table” (FAT) => tidak disebarkan pada setiap blok.
n FAT cukup kecil dapat disimpan “cache” disk => akses tanpa melakukan seek.
file a6 4 3
freeeof1
eof3eof4...
file b2 1
FAT (16-bit entries)
a: 6b: 2
Directory (5) 0123456
Review MM JM-2001/v1.1/42
FAT discussion
n Entry size = 16 bits nomor blokn Berapa maksimum ukuran FAT? n Jika 8 Kbyte per blok,
Max. besarnya disk yang dapat digunakan?• 64 K * 8 KB => 512 MB
n Reliability: how to protect against errors? n FAT menempati satu area tertentu (contiguous sector)
=> what happen if corrupt?n Buat duplikat FAT on disk.
16 bits => 64 K jumlahblok
16 bits => 64 K jumlahblok
22
Review MM JM-2001/v1.1/43
Example of Indexed Allocation
Review MM JM-2001/v1.1/44
Multi-level indexed
n Berapa besar tabel index? 1 tingkat => sangat besar supaya dapat mencakup file yang besar.n Multilevel indexed: index (2nd level) tidak akan ada jika
file kecil.n Mengurangi besarnya tabel index untuk file kecil tapi
mendukung file besar.
idle
tidak perlu disediakan entry
23
Review MM JM-2001/v1.1/45
Example UNIX: inode
Review MM JM-2001/v1.1/46
UNIX: inodes
n Inodes disimpan pada table (array, inode list)n Besarnya array inode ditentuk saat disk di format
(initialized) dan menempati lokasi tertentu (awal atau tersebar dalam groups list).
n Superblocks:n Menyimpan informasi partisi, dan pointer ke inode list
(groups)
Inode array file blocks ...SUPERBLOCKS
24
Review MM JM-2001/v1.1/47
Example: Unix file access
n Want to modify byte 4 in /a/b.c:
n “read” root directory (blk 10)n lookup a (blk 12); “read”
n lookup inode for b.c (13); “read”
n Gunakan inode => read blok 114, update byte ke 4 dari blok tsb.
Root directory
. : 10 : dir a: 12: dir . :12 dir .. :10:dir b.c :13:inode