review: memory & file system -...

24
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.

Upload: dodung

Post on 26-Mar-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

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.

Page 2: 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

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.

Page 3: 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

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

Page 4: 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

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).

Page 5: 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

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

Page 6: 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

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

proses lain.

Page 7: 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

7

Review MM JM-2001/v1.1/13

Segmentation

gcc

Text segr/o

Stack segr/w

0x1000

0x3000

0x5000

0x6000

Real memory

0x2000

0x3000

0x6000

0x8000

Seg. text:Base:… Limit:..Protection: read onlyShared: yes

Seg. stack:base: .. limit: ..Protection: read writeShared: No

Review MM JM-2001/v1.1/14

Segmentation

n Bagaimana proses melakukan mapping untuk semua segment yang ada (address translation)?n Segment table: Setiap proses mempunyai deretan segment

yang disimpan pada table.n Misalkan: row pada table, berisi informasi untuk satu

segment (base, limit, protection, dll).

n 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).

Page 8: 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

8

Review MM JM-2001/v1.1/15

Example:

Virtual addr

Seg# offset

4 128

Seg tableProt base len

R 0x1000 512

mem

128

+? yesno

fault

Range?

Seg 4

0x1000

Review MM JM-2001/v1.1/16

Segmentation example

n 2-bit segment number (1st digit), 12 bit offset (last 3)

n where is 0x0240?n 0x1108?n 0x265c?n 0x3002? Faultn 0x1600? Fault

Seg base limit rw0 0x4000 0x6ff 101 0x0000 0x4ff 112 0x3000 0xfff 113 00

0x4000

0x3000

0x2000

0x1500

0x10000x0700

0x0000

logical physical

0x4700

0x4000

0x3000

0x500

0x0

Page 9: 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

9

Review MM JM-2001/v1.1/17

Segmentation Tradeoffs

n Pro:n Tidak perlu contiguous allocation:

Multiple segments per processn Allows sharing! (how?)n Don’t need entire process

in memory!!!

n Con:n Extra layer of translation

speed = hardware supportn More subtle: an “n” byte segment requires n *contigious* bytes of

physical memory. (why?) Makes fragmentation a real problem.

gcc codewhere?

vi

gcc

Review MM JM-2001/v1.1/18

Review: Fragmentation

n Apakah yang dimaksud “fragmentasi” memori?n Ketidak-mampuan OS menggunakan memori yang

“tidak digunakan” (free memory).

n Terangkan 2 jenis fragmentasi yang ada:n External fragmentation:

• Variable sized allocation (segment): Tersebar “variable sized” yang kecil dari memory yang free, tapi tidak mencukupi untuk alokasi satu segment.

n Internal fragmentation.• Fixed sized allocation (paging): bagian memori yang tidak

digunakan oleh proses tapi telah di-alokasikan.

Page 10: 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

10

Review MM JM-2001/v1.1/19

Fragmentation

gcc

emacs

doom

stackallocated

Unused (“internal fragmentation”)

Externalfragmentationvi ??

Review MM JM-2001/v1.1/20

Paging

n Pembagian memori dalam ukuran tertentu (“pages”)

n Tradeoff:n pro: eliminates external fragmentation

n pro: simplifies allocation, free and swapping

n con: internal fragmentation

gcc

vi internal frag

Pagestypical: 4k-8k

Page 11: 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

11

Review MM JM-2001/v1.1/21

Paging:mechanism

n Memory dibagi dalam ukuran tertentu dan tetap (pages)n Setiap proses mempunyai table (“page table”) yang

menyimpan informasi pages yang dialokasikan ke proses tersebut.

n Entry pada page table: mapping virtual page number (VPN) ke physical page number (PPN)

• PT entry also includes protection bits (r, w, valid)

n Addressing: virtual address => terbagi atas 2 field: VPN dan offset (max. ukuran pages).

n 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/22

Example:

Virtual addr

VPN page offset

3 128 (12bits)

page table

Prot VPN PPN

r 3 1

mem

page128

0x1000offset: 128

“invalid”

pagesbelum ada di memori fisik!

? PPN

Besarnya ukuran pages: 4 KB => 12 bitsJadi offset: 12 bits, VPN: 32 – 12 bits = 20 bits.

Page 12: 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

12

Review MM JM-2001/v1.1/23

Page tables (vs segmentation)

n Good:n Mudah untuk alokasi: karena ukuran tetap, operasi dapat

dilakukan dengan bantuan hardware untuk mapping VA ke PA.n Manajemen pages: daftar pages yang free dapat dikumpulkan

dalam free list.

n Bad: n 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

0xFFFF0x0000

Page tableB=0x0,len=0xffff

Review MM JM-2001/v1.1/24

Page size tradeoffs

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

Page 13: 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

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

Page 14: 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

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”

Page 15: 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

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?

Page 16: 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

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?

Page 17: 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

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).

Page 18: 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

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

Page 19: 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

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).

Page 20: 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

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)

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

“inode”

int main() { …

114 … 0