Manajemen Memori.

Slides:



Advertisements
Presentasi serupa
Sistem Operasi (pertemuan 1) Memori Razief Perucha F.A
Advertisements

Manajemen Memori (Contd).
Manajemen Memory Kelompok 7 : M. Khoirur Roziqin ( )
Manajemen Memory 1 Manajemen Memory Sederhana dan Swapping
Cache Memori Oleh : Ahmad Fuad Hariri Fitriana Nelvi Tino Arif Cahyo
SISTEM OPERASI Manajemen Memori Asmaul Husna ( )
MANAJEMEN MEMORI 1. Konsep dasar memori. - Konsep Binding
MANAJEMEN MEMORY.
MEMORI. I NTRODUCTION Memori adalah pusat data berkumpul sebelum atau sesudah di eksekusi oleh CPU CPU mengambil instruksi dari memori (ex instruksi simpan.
“Manajemen Memori Nyata”
PERTEMUAN KE-17 PERKULIAHAN SISTEM OPERASI
SISTEM PAGING.
SISTEM OPERASI MODUL Manajemen Memori Yuli Haryanto, M.Kom
Sistem Operasi (Operating Systems) Minggu 9
Manajemen Memory.
Sistem Operasi (Operating Systems) Minggu 8
SISTEM PAGING.
MANAGEMENT MEMORY.
Chapter 8: Memory Management
Chapter 8: Memory Management. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 8: Memory Management Background Swapping Contiguous.
Defiana Arnaldy, M.Si Manajemen Memori Defiana Arnaldy, M.Si
Memori.
Manajemen Memori.
MEMORY (Manajemen Memori)
Memory-Management Unit
MATERI 7 SISTEM OPERASI Managemen Memori Oleh : Mufadhol, S.Kom
Struktur Sistem Komputer
Oleh : Solichul Huda, M.Kom
SISTEM OPERASI Pertemuan 5 : Manajemen Memori
SISTEM OPERASI MEMORY MANAGEMENT.
Virtual Memory.
Virtual Memori.
Defiana Arnaldy, M.Si Virtual Memori Defiana Arnaldy, M.Si
“Manajemen Memori Virtual”
T0542 / SWAPPING Alokasi Memori. T0542 / a)Alokasi ruang untuk data segment yang berkembang b)Alokasi ruang untuk data dan stack segment.
Struktur Sistem Komputer
Manajemen Memori.
Virtual Memori.
Manajemen Main Memory.
Management Memory.
Lecture 6 Main Memory Erick Pranata
Manajemen Memori.
Manajemen Memori (1).
STRUKTUR SISTEM KOMPUTER
Sistem Paging Edi Sugiarto, S.Kom.
9. Manajemen Memori Utama
MEMORY MANAGEMENT PART 2
Struktur Sistem Komputer
Chalifa Chazar SISTEM PAGING Chalifa Chazar
MANAJEMEN MEMORI.
TEKNIK KOMPUTER - UNIKOM Jalan Dipatiukur 112 Bandung
Manajemen Memori (2).
MANAJEMEN MEMORY PART 3 Ritzkal, S.Kom,CCNA.
Sistem Operasi: Pengelolaan Memori
Struktur Sistem Komputer
Virtual Memori.
Hierarki Memori Dan Cache Memori..
Manajemen Memori (2).
Manajemen Memori Pertemuan 14 & 15 Sistem Operasi (CSG3E3)
Struktur Sistem Komputer
Sistem Operasi Teknik Informatika STT Wastukancana Purwakarta
Struktur Sistem Komputer
Struktur Sistem Komputer
Manajemen Memory.
MANAJEMEN MEMORY.
MANAJEMEN MEMORY.
Struktur Sistem Komputer
Struktur Sistem Komputer
Struktur Sistem Komputer
Transcript presentasi:

Manajemen Memori

Pembahasan Background Address Space : Logic & Fisik Swapping Contiguous Allocation Paging Segmentation Segmentation dengan Paging

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

Hirarkhi Storage Trade-off : cost & speed

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

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.

Multistep Processing User Program

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.

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.

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

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

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

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.

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.

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

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

Overlay dari 2-pass Assembler

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

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

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

Contoh Kerja MMU (1)

Contoh Kerja MMU (2)

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

Skema Swapping

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

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

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 => Maka time quantum sebaiknya lebih besar daripada 216 msec.

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

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

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

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

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

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

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

Memory Partition OS Proses User 512 K

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 < register limit

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

Support Perangkat Keras untuk Relokasi dan Limit Register

Penggunaan Base and Limit Register

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

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

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

Contoh Alokasi Memori OS OS OS OS OS Free P5 P1 P1 P1 Free P4 P4 P4 P2 P1 selesai P5 masuk P2 selesai P4 masuk

Peranan OS Dalam Partisi Memelihara informasi mengenai Partisi yang teralokasi Partisi yang bebas (hole)

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

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

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

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)

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)

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

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

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. Page number Page offset p d m- n n

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

Arsitektur Translasi Address

Model Paging

Model Paging Address (p, d) dipetakan ke table(p) * pagesize + d

Contoh Paging

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

Free Frame Before allocation After allocation

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

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)

Struktur TLB Page Number Page Number Frame Number Frame Number

Perangkat Keras Paging dengan TLB

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)

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 +  – 

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

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

Valid (v) or Invalid (i) Bit dalam Page Table

Struktur Page Table Hierarchical Paging Inverted Page Table

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

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 Section number Page number Page offset s p d

Skema Page-Table Dua-Level

Skema Translasi Address Paging Dua-Level

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%

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

Skema Inverted Page-Table

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

Contoh Shared Page

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

User’s View of a Program

Logical View of Segmentation 1 4 2 3 1 2 3 4 user space physical memory space

Segmentation Hardware

END OF MODUL - 9