Manajemen Memori - PowerPoint PPT Presentation

1 / 83
About This Presentation
Title:

Manajemen Memori

Description:

Manajemen Memori Effective Access Time (EAT) Misal : 80% hit ratio, artinya page number yang dicari dalam associative register adalah 80% dari waktu. – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 84
Provided by: Eriz152
Category:

less

Transcript and Presenter's Notes

Title: Manajemen Memori


1
Manajemen Memori
2
Pembahasan
  • Background
  • Address Space Logic Fisik
  • Swapping
  • Contiguous Allocation
  • Paging
  • Segmentation
  • Segmentation dengan Paging

3
Background
  • Untuk dieksekusi program harus berada/dibawa ke
    dalam memori dan dieksekusi sebagai proses yang
    menggunakan ruang untuk data.
  • Input queue kumpulan proses dalam disk yang
    menunggu dibawa ke dalam memori untuk dijalankan.
  • Program user harus melalui beberapa tahapan
    sebelum di-run.
  • Memori adalah ruang yang berukuran terbatas yang
    memerlukan manajemen dalam utilisasinya
  • Akibat program berukuran besar atau
    multiprogramming

4
Hirarkhi Storage
  • Trade-off cost speed

5
Address Binding
  • Sebelum eksekusi program berada di dalam disk,
    dan pada saat dieksekusi ia perlu berada pada
    suatu lokasi dalam memori fisik.
  • Address binding adalah menempatkan address
    relatif program ke dalam address fisik memori
    (real memory address).
  • Dapat berlangsung dalam salah satu tahapan
    kompilasi, load atau eksekusi

6
Tahapan Running Program
  • Tahapan Kompilasi source program (source code)
    dikompilasi menjadi object module (object code).
  • Tahapan link load object module di-link
    dengan object module lain menjadi load module
    (execution code) kemudian di-load ke memori untuk
    dieksekusi.
  • Tahapan eksekusi mungkin juga dilakukan dynamic
    linking dengan resident library.

7
Multistep Processing User Program
8
Address Binding Saat Kompilasi
  • Jika lokasi dari proses sudah diketahui
    sebelumnya maka saat kompilasi address-address
    instruksi dan data ditentukan dengan alamat
    fisik.
  • Jika terjadi perubahan pada lokasi tersebut maka
    harus di rekompilasi.

9
Address Binding Saat Load
  • Code hasil kompilasi masih menunjuk
    address-address secara relatif, saat di-load
    address-address disubstitusi dengan alamat fisik
    berdasar relokasi proses yang diterima.
  • Jika terjadi perubahan relokasi maka code di-load
    ulang.

10
Address Binding Saat Eksekusi
  • Binding bisa dilakukan ulang selama proses
  • Hal ini untuk memungkinkan pemindahan proses dari
    satu lokasi ke lokasi lain selama run.
  • Perlu adanya dukungan hardware untuk pemetaan
    address
  • Contoh base register dan limit register

11
Dynamic Loading
  • Rutin (bagian dari program) tidak akan diload
    sampai ia dipanggil.
  • Keuntungan
  • Rutin yang tak berguna tidak akan di-load
  • Utilisasi ruang memori lebih baik rutin yang
    tidak digunakan tidak di-load
  • Berguna bila code untuk menghandle kasus-kasus
    yang jarang berukuran besar
  • Tidak perlu dukungan khusus dari OS
  • Diimplementasikan via rancangan pemrograman

12
Dynamic Linking
  • Linking ditunda sampai saat eksekusi
  • Code menjadi berukuran kecil
  • Program-program user tidak perlu menduplikasi
    system library
  • System library dipakai bersama
  • Mekanisme menggunakan skema stub
  • Stub suatu potongan kecil code menggantikan
    referensi rutin digunakan menglokasikan library
    rutin resident memory yang tepat

13
Stub untuk Dynamic Linking
  • Skema referensi dengan stub
  • Saat stub dieksekusi ia memeriksa apakah rutin
    ybs sudah berada dalam memori (diakses oleh
    proses lain yang run), kalau belum ada maka rutin
    tersebut di-load.
  • Stub diganti oleh address dari rutin tersebut.
  • Setelah itu program run dengan referensi
    rutin-rutin secara normal dengan address yang
    benar.

14
Overlays
  • Jika seluruh code di-load ke dalam memori maka
    terbatas oleh ukuran memori.
  • Overlay memungkinkan ukuran code lebih besar dari
    ukuran memori.
  • Yang tetap tinggal dalam memori hanya instruksi
    dan data yang diperlukan.

15
Implementasi Overlays
  • Diimplementasikan oleh user, tidak perlu dukungan
    OS
  • Rancangan pemrograman dari struktur overlay
    adalah kompleks.

16
Contoh Overlay
  • Misalnya pada Two-pass Assembler
  • Pass-1 70K, Pass-2 80K, Symbol Table 20K, Common
    Routine 30K, Total 200K
  • Jika memori hanya 150K, semua tidak dapat diload
    karena memori kurang
  • Pass-1 dan pass-2 di overlay

17
Overlay dari 2-pass Assembler
18
Address Space Logic vs Fisik
  • Konsep ruang address logic terhadap ruang address
    fisik merupakan pokok dalam manajemen memori.
  • Address logic address yang di-generate oleh CPU
    (disebut juga virtual address)
  • Address fisik address yang dikenal oleh unit
    memori

19
Address Binding dari Address Logic vs Fisik
  • Pada address-binding compile-time dan load-time
    antara kedua peng-address-an tidak ada perbedaan.
  • Pada address-binding execution-time kedua
    peng-address-an berbeda

20
Memory Management Unit (MMU)
  • Perangkat keras yang memetakan address logic ke
    address fisik
  • Dalam skema MMU
  • Nilai dalam register base/relokasi ditambahkan ke
    setiap address proses user pada saat run di
    memori
  • Program user hanya berurusan dengan address
    logic-nya saja tidak melihat address fisik
    secara real

21
Contoh Kerja MMU (1)
22
Contoh Kerja MMU (2)
23
Swapping
  • Proses dapat di swap secara temporer dari memori
    (swap-out) ke dalam backing store, dan
    dikembalikan (swap-in) ke dalam memori untuk
    melanjutkan eksekusi.
  • Backing store (biasanya disk)
  • Cukup besar untuk menyimpan semua image memori
    user
  • Dapat direct access ke dalam image-image tersebut

24
Skema Swapping
25
Address Binding pada Swapping
  • Address binding saat eksekusi lebih fleksible
    sementara saat kompilasi/saat loading memerlukan
    swap-in ke lokasi yang sama
  • Bagian utama dari waktu swap adalah waktu untuk
    transfer
  • Waktu transfer total secara langsung proporsional
    pada jumlah memori yang diswap

26
Varian-varian Swapping
  • Roll out, roll in merupakan varian swapping
    untuk algoritma priority scheduling
  • Proses prioritas rendah di-swap out agar proses
    prioritas tinggi dapat diload dieksekusi lebih
    dulu
  • Versi-versi modifikasi dari swap
    diimplementasikan di banyak sistem
  • Misalnya UNIX dan Windows

27
Quantum Waktu vs Swapping
  • Quantum waktu untuk proses harus cukup besar
    relatif terhadap waktu untuk swap
  • Khususnya untuk scheduler seperti Round Robin
  • User process 100 kb, HD transfer rate 1000
    kb/sec, maka transfer time 100 kb / 1000 kb/sec
    0.1 sec 100 msec
  • Swap in out 2 100 200 msec
  • Overhead latency 2 8 16 msec
  • Total swap time 200 16 216 msec gt Maka
    time quantum sebaiknya lebih besar daripada 216
    msec.

28
Kendala Swapping
  • Kalau suatu proses akan di-swap, sebaiknya proses
    dalam keadaan idle
  • Misalnya proses yang sedang wait untuk I/O ke
    buffer memori secara asynchronous.
  • Dapat dicegah dengan menggunakan I/O buffer

P1
I/O ke buffer memori
Swap
P2
Hasil I/O ditransfer ke memori yang sekarang
digunakan ole P2
29
Pencatatan Pemakaian Memori (1)
  • Pencatatan memori bertujuan agar dapat diketahui
    lokasi-lokasi mana saja di memori utama yang
    masih kosong dan sudah terisi
  • Ada dua cara pencatatan memori
  • Manajemen memori dengan Bit Map (Pemetaan Bit)
  • Manajemen memori dengan Link List

30
Pencatatan Pemakaian Memori (2)
  • (a) alokasi memori
  • (b) pencatatan memori dengan peta bit
  • (c) pencatatan memori dengan link list

31
Manajemen Memori dengan Link List
  • Four neighbor combinations for the terminating
    process X

32
Manajemen Memori Pada Monoprogramming
  • Three simple ways of organizing memory - an
    operating system with one user process

33
Multiprogramming Dengan Fixed Partitions
  • Fixed memory partitions
  • separate input queues for each partition
  • single input queue

34
Contiguous Allocation
  • Memori utama biasanya terbagi dalam dua partisi
  • Untuk OS yang residen biasanya disimpan dalam
    memori ber-address rendah (low memory) dengan
    vektor-vektor interrupt
  • Interrupt address sebagai interrupt ID
  • Untuk proses-proses user biasanya disimpan
    dalam high memory

35
Memory Partition
0
OS
Proses User
512 K
36
Single-Partition Allocation
  • Skema register realokasi (base register)
    digunakan untuk proteksi proses-proses user
    terhadap yang lainnya, dan dari pengubahan code
    dan data OS
  • Relokasi register berisi nilai dari address fisik
    terkecil
  • Register limit berisi range dari address logic
  • Setiap address logic harus lt register limit

37
Contoh
  • Misal
  • Register relokasi (base register) 100040
  • register limit (limit register) 74600
  • Address logic 10200
  • address fisik 110240
  • Address logic 81000
  • address fisik error

38
Support Perangkat Keras untuk Relokasi dan Limit
Register
39
Penggunaan Base and Limit Register
40
Multiple-Partition Allocation (1)
  • Partisi Fixed-Sized (MFT Multiprogramming with
    a Fixed number of Task)
  • Memori dibagi menjadi beberapa blok dengan ukuran
    tertentu yang seragam
  • Jumlah user process yang bisa running max hanya
    sejumlah blok yang disediakan (misal IBM OS/360)
  • Partisi Variable-Sized (MVT Multiprogramming
    with a Variable number of Task)
  • Pembagian memori sesuai dengan request dari
    proses-proses yang ada

41
Multiple-Partition Allocation (2)
  • Dalam skema Partisi Variable-Sized dapat
    terbentuk sejumlah Hole
  • Hole blok dari memori yang available yang dapat
    tersebar di berbagai tempat di memori
  • Saat suatu proses datang maka dialokasikan suatu
    hole yang berukuran sesuai dengan yang diperlukan
    proses dan datanya

42
Contoh Dalam Suatu Schedule
  • Ukuran memori 2560K, dan OS menempati sebanyak
    400K (untuk user 2160K)
  • Dalam queue
  • P1 berukuran 600K
  • P2 berukuran 1000K
  • P3 berukuran 300K
  • P4 berukuran 700K
  • P5 berukuran 500K

43
Contoh Alokasi Memori
OS
OS
OS
OS
OS
Free
P5
P1
P1
P1
Free
Free
P4
P4
P4
P2
Free
Free
Free
P3
P3
P3
P3
P3
Free
Free
Free
Free
Free
P1 selesai
P5 masuk
P2 selesai
P4 masuk
44
Peranan OS Dalam Partisi
  • Memelihara informasi mengenai
  • Partisi yang teralokasi
  • Partisi yang bebas (hole)

45
Masalah Dynamic Storage-Allocation
  • Untuk memenuhi permintaan berukuran n dari suatu
    list hole-hole bebas
  • First-fit hole pertama yang memenuhi
  • Best-fit hole terkecil yang memenuhi
  • Worst-fit hole terbesar yang memenuhi
  • Best-fit Worst-fit perlu melakukan searching ke
    seluruh list (atau jika list terurut sampai
    ketemu)
  • First-fit Best-fit lebih baik dari Worst-fit
    baik dalam kecepatan maupun utilisasi storage

46
Fragmentasi Eksternal
  • Ruang memori keseluruhan yang ada untuk memenuhi
    permintaan, namun tidak contiguous
  • Hole-hole ada diantara proses-proses berurutan

47
Fragmentasi Internal
  • Memori yang teralokasi mungkin sedikit lebih
    besar dari memori yang diminta dengan perbedaan
  • Untuk meminimisasi hole-hole yang tersebar
  • Overhead untuk menyimpan informasi hole lebih
    besar daripada hole itu sendiri

48
Compaction
  • Untuk mananggulangi fragmentasi eksternal
    digunakan metode compaction (pemadatan).
  • Menempatkan ulang proses-proses yang ada pada
    memori yang bebas, dan diatur sedemikian sehingga
    posisi hole dapat berdekatan
  • Compaction hanya dimungkinkan jika relokasi
    dilakukan secara dynamic, dan dilakukan saat
    eksekusi (execution time)

49
Paging (1)
  • Address space logic dari proses bisa
    noncontiguous
  • Membagi memori fisik ke dalam frame-frame
    (blok-blok berukuran tertentu)
  • Ukurannya bilangan pangkat dari 2, antara 512
    byte dan 8192 byte tergantung arsitektur
    hardware CPU
  • Membagi memori logic ke dalam page-page
    (blok-blok berukuran sama dengan frame)

50
Paging (2)
  • Memelihara setiap frame bebas (free frame)
  • Untuk menjalankan proses berukuran n page,
    diperlukan n frame bebas untuk ditempati proses
    lalu menjalankannya
  • Men-setup page table untuk translasi antara
    alamat logic ke alamat fisik
  • Fragmentasi internal pada page terakhir

51
Skema Paging
  • Tidak ada fragmentasi eksternal
  • Fragmentasi internal bisa terjadi
  • Worst-case
  • Setiap proses memerlukan n page 1 byte
  • Bila ukuran page 4096 byte maka akan terbuang
    4095 byte / proses
  • Table frame digunakan untuk mengontrol mana yang
    available, yang teralokasi, jumlah semua frame,
    dll

52
Peng-address-an (1)
  • Address yang dihitung CPU terdiri atas
  • Page number (p) merupakan indeks dalam tabel
    yang berisi base address dari tiap page dalam
    memori fisik
  • Page offset (d) bersama base address menyatakan
    address memori fisik yang dikirim ke unit memori
  • Jika ukuran address logic adalah 2m, dan ukuran
    page adalah 2n unit address (byte atau word),
    maka high-order m-n bit address logic digunakan
    untuk page number, dan low-order n bit digunakan
    untuk page offset.

53
Peng-address-an (2)
  • Pembedaan antara user address space (memori
    menurut pandangan user) dengan memori fisik
    dinyatakan dengan perangkat keras translasi
    address address logic ditranslasi ke dalam
    address fisik

54
Arsitektur Translasi Address
55
Model Paging
56
Model Paging
Address (p, d) dipetakan ke table(p) pagesize
d
57
Contoh Paging
58
Contoh Paging
  • Dengan page size 4 byte maka
  • Address logic 0 (page 0, offset 0) dipetakan ke
    address fisik (5 4) 0 20
  • Address logic 3 (page 0, offset 3) dipetakan ke
    address fisik (5 4) 3 23
  • Address logic 4 (page 1, offset 0) dipetakan ke
    address fisik (6 4) 0 24

59
Free Frame
Before allocation
After allocation
60
Implementasi Page Table
  • Page-table berada dalam memori utama
  • Page-table base register (PTBR)
  • Merupakan pointer ke page-table
  • Page-table length register (PTLR)
  • Menyatakan ukuran page table
  • Associative register parallel search
    menggunakan register cache memori.
  • Jika page number ditemukan dalam associative
    register, maka frame number tersedia dan
    digunakan untuk mengakses memori

61
Translation Look-aside Buffer (TLB)
  • Dalam skema ini setiap akses ke data/instruksi
    membutuhkan dua kali akses memori untuk
    page-table dan untuk data/instruksi
  • Kedua kasus ini dipecahkan dengan menggunakan
    cache HW fast-lookup yang disebut associative
    register atau translation look-aside buffer (TLB)

62
Struktur TLB
Page Number
Page Number
Frame Number
Frame Number
63
Perangkat Keras Paging dengan TLB
64
Mekanisme TLB
  • Translasi address (p,d)
  • Bila p berada dalam TLB, dapatkan nomor frame
  • Jika tidak, dapatkan nomor frame dari page table
    dalam memori
  • Hit ratio persentasi berapa kali nomor page
    ditemukan dalam TLB (jumlah associative register)

65
Effective Access Time (EAT)
  • Menyatakan estimasi waktu akses ke suatu lokasi
    di memori
  • Associative Lookup (TLB) ? time unit
  • Asumsi siklus memori 1 time unit
  • Hit ratio ?
  • Effective Access Time (EAT)
  • EAT (1 ?) ? (2 ?)(1 ?)
  • 2 ? ?

66
Effective Access Time (EAT)
  • Misal
  • 80 hit ratio, artinya page number yang dicari
    dalam associative register adalah 80 dari waktu.
  • Jika terpakai waktu 20ns (nanosecond) untuk
    melakukan search pada associative register, dan
    100ns untuk akses ke memori, maka pemetaan akses
    memori membutuhkan 120ns ketika page number ada
    dalam associative register.
  • Jika page number gagal ditemukan pada associative
    register (20ns), maka harus mengakses memori
    untuk mencari page table dan frame number
    (100ns), dan kemudian mengakses byte dalam memori
    (100ns), sehingga total 220ns.
  • Effective Access Time (EAT) 0.80 x 120 0.20 x
    220 140ns
  • Dengan demikian, ada 40 perlambatan (slowdown)
    dalam waktu akses memori (memory access time)
    yaitu dari 100 ke 140ns

67
Proteksi
  • Proteksi memori diimplementasikan dengan bit
    proteksi peng-asosiasi-an pada setiap frame
  • Setiap entry dalam page table memiliki bit
    Valid-invalid
  • valid menunjukkan page yang terkait dalam
    address logic suatu proses dan merupakan page
    yang legal
  • invalid menunjukkan page yang tidak berada
    dalam address space logic suatu proses

68
Valid (v) or Invalid (i) Bit dalam Page Table
69
Struktur Page Table
  • Hierarchical Paging
  • Inverted Page Table

70
Hierarchical Page Table
  • Membagi ruang address logic ke dalam banyak page
    table
  • Teknik yang sederhana menggunakan dua level page
    table
  • Partisi page table memungkinkan partisi-partisi
    dalam status tak terpakai tidak berada dalam
    memori hingga suatu proses memerlukannya

71
Struktur Pengaddressan
  • Address logic terdiri atas section number s,
    page number p, dan offset d
  • s indeks ke dalam outer page table dan p
    displacement dalam page table
  • Misalnya pada mesin 32 bit dengan pagesize 4K
    10 bit section, 10 bit page number dan 12 bit
    offset

Page number
Page offset
Section number
p
d
s
72
Skema Page-Table Dua-Level
73
Skema Translasi Address Paging Dua-Level
74
Performance
  • Karena setiap level disimpan sebagai tabel
    terpisah dalam memori, konversi address logic ke
    address fisik bisa memerlukan empat (quantuple)
    akses memori
  • Namun, dengan adanya caching maka performance
    masih reasonable
  • Misal rata-rata cache hit 98, EAT 0.98 x 120ns
    0.02 x 520ns 128ns, slowdown sebesar 28

75
Inverted Page Table
  • Page Table hanya menyimpan page memori yang
    real serta id dari proses yang memiliki page
    tersebut
  • Mengurangi kebutuhan untuk menyimpan seluruh page
    dalam memori, namun meningkatkan waktu untuk
    pencarian dalam tabel ketika referensi terjadi
  • Menggunakan tabel hash untuk membatasi pencarian
    ke suatu (beberapa) entri tabel

76
Skema Inverted Page-Table
77
Shared Page
  • Keuntungan paging adalah sharing common code
    satu copy untuk code yang read-only (reentrant)
    dan di-share oleh sejumlah proses
  • i.e text editor, compilers, windows system

78
Contoh Shared Page
79
Segmentasi
  • Skema manajemen memori yang mendukung pandangan
    user (user view) dari memori
  • Program merupakan kumpulan segmen
  • Segmen merupakan satuan logic untuk
  • Main program, procedure, function
  • Local variables, global variables
  • Common block, stack
  • Symbol table, array

80
Users View of a Program
81
Logical View of Segmentation
1
2
3
4
user space
physical memory space
82
Segmentation Hardware
83
END OF MODUL - 9
Write a Comment
User Comments (0)
About PowerShow.com