Download - Manajemen Memori
![Page 1: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/1.jpg)
Manajemen Memori
Mata Kuliah Sistem Operasi
![Page 2: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/2.jpg)
Konsep Dasar
Von Neuman Agar proses dapat berjalan dg efisien maka data
dan program harus disimpan dlm lokasi yg sama yaitu memori
2
![Page 3: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/3.jpg)
Fungsi pengaturan memori utama
Meningkatkan utilitas CPU sebesar-besarnya Data dan instruksi dapat diakses dg cepat
oleh CPU Agar pemakaian memori utama lebih efisien Agar transfer data dari mem utama ke CPU
lebih efisien, demikian juga sebaliknya
3
![Page 4: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/4.jpg)
Syarat pengelolaan memori
Relokasi prosessor dan SO dpt mentranslasikan memori referensi ke alamat fisik yg mengalokasikan program dlm mem utama
Proteksi User tdk blh mengakses bbrp bagian wilayah SO Sharing manajemen mem dpt mengontrol sharing area pd
mem utama Organisasi logika SO dan hardware dpt berhubungan dg
user program dlm satu modul Organisasi fisik ada pengaturan yg jelas antara mem
utama dan mem skunder pd long term schedulling (menyeleksi proses2 dari suatu pool dan membawa ke mem utama utk dieksekusi)
4
![Page 5: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/5.jpg)
5
Konsep Alamat Binding
Sebelum eksekusi program berada di dalam disk, dan saat dieksekusi ia perlu berada pada suatu lokasi dalam memori fisik
Alamat binding adalah proses penempatan suatu item kedalam lokasi memori tertentu yg berlangsung dalam di salah satu tahapan: kompilasi, load, atau eksekusi
![Page 6: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/6.jpg)
Konsep Alamat Binding
Tahap Pemrosesan user program
6
![Page 7: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/7.jpg)
7
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
![Page 8: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/8.jpg)
8
Alamat Binding: Saat Kompilasi Jika lokasi dari proses sudah diketahui
sebelumnya maka saat kompilasi alamat-alamat instruksi dan data ditentukan dengan alamat fisik
jika terjadi perubahan pada lokasi tersebut maka harus direkompilasi
![Page 9: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/9.jpg)
9
Alamat Binding: Saat Load
Code hasil kompilasi masih menunjuk alamat-alamat secara relatif, saat di-load alamat-alamat disubstitusi dengan alamat fisik berdasar relokasi proses yang diterima
Jika terjadi perubahan relokasi maka code di-load ulang
![Page 10: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/10.jpg)
10
Alamat Binding: Saat Eksekusi
Binding bisa dilakukan ulang selama proses hal ini untuk memungkinkan pemindahan proses
dari satu lokasi ke lokasi lain selama proses berjalan
Perlu adanya dukungan hardware untuk pemetaan address contoh: base register dan limit register
![Page 11: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/11.jpg)
11
Ruang Alamat Logik vs. Fisik
Konsep ruang alamat logik terhadap ruang alamat fisik adalah hal pokok dalam manajemen memori
alamat logik: alamat yang di-generate oleh CPU (disebut juga virtual address) Berdasarkan eksekusi program Note: Besarnya alamat program dapat lebih besar dari
kapasitas memori fisik.
alamat fisik: alamat yang dikenal oleh unit memory alamat sebenarnya yang digunakan untuk mengakses
memori.
Perlu ada penerjemahan (translasi) dari alamat logik ke alamat fisik.
![Page 12: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/12.jpg)
12
Memory-Management Unit (MMU) Perangkat Hardware yang memetakan alamat logik
(virtual) ke alamat fisik.
Dalam skema MMU Menyediakan perangkat register yang dapat di set oleh
setiap CPU: setiap proses mempunyai data set register tsb (disimpan di PCB). Base register dan limit register.
Harga dalam register base/relokasi ditambahkan ke setiap address proses user pada saat run di memori
Program user hanya berurusan dengan address - address logik saja
![Page 13: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/13.jpg)
13
Relokasi Dinamik menggunakan Register Relokasi
![Page 14: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/14.jpg)
14
Dynamic Loading Rutin tidak akan di load jika tidak dipanggil (execute). utilisasi memory-space, rutin yang tidak dieksekusi tidak akan
dipanggil (program behavior: 70-80% dari code). Handling exception, error, atau pilihan yang jarang
digunakan. Tidak perlu dukungan khusus dari OS:
Disusun berdasarkan hirarkis dalam bentuk tree: root – branch dan leaves (misalkan root harus ada di memory, sedangkan yang lain dapat di load bergantian).
Tidak dilakukan otomatis tapi harus dirancang oleh programmer (user).
![Page 15: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/15.jpg)
15
Dynamic Linking Sama dg dynamic loading, hanya penekanan pada
proses linking Program-program user tidak perlu menduplikasi
system library system library dipakai bersama Mengurangi pemakaian space: satu rutin library di memory
digunakan secara bersama oleh sekumpulan proses. Contoh: DLL (dynamic linking library) Win32
Mekanisme menggunakan skema Stub stub: suatu potongan kecil code menggantikan referensi
rutin (dan cara meload rutin tsb)
![Page 16: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/16.jpg)
16
Overlay
Overlay adalah membagi program yang besar menjadi bagian-bagian yang lebih kecil sehingga dapat dimuat dalam memori utama.
Dibutuhkan ketika proses yang ada lebih besar dibandingkan memori yang tersedia
Diimplementasikan oleh user, tidak ada dukungan khusus dari sistem operasi, disain program pada struktur overlay cukup kompleks.
![Page 17: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/17.jpg)
17
Overlay pada Two-Pass Assembler
![Page 18: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/18.jpg)
18
Swapping Adalah suatu proses pengalihkan secara temporary keluar dari
memori dan dimasukkan ke backing store, dan dapat dimasukkan kembali ke dalam memori pada eksekusi selanjutnya.
Backing store –disk cepat yang cukup besar untuk mengakomodasi copy semua memori image pada semua user; menyediakan akses langsung ke memori image.
Roll out, roll in – varian swapping yang digunakan dalam penjadualan prioritas; proses dengan prioritas rendah di-swap out, sehingga proses dengan prioritas tinggi dapat di-load dan dieksekusi.
Bagian terbesar dari swap time adalah transfer time, total transfer time secara proporsional dihitung dari jumlah memori yang di swap.
Modifikasi swapping dapat ditemukan pada sistem UNIX, Linux dan Windows.
![Page 19: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/19.jpg)
19
Skema Swapping
![Page 20: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/20.jpg)
20
Contiguous Allocation (Pengalokasian Berurutan) Memori utama biasanya terbagi dalam dua bagian
(partisi): Resident operating system, biasanya tersimpan di alamat
memori rendah termasuk interrupt vector . User process, menggunakan memori beralamat
tinggi/besar.
Alokasi proses user pd memori berupa single partition allocation dan multiple partition allocation
![Page 21: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/21.jpg)
Single-partition allocation
Pada single partition allocation diasumsikan sistem operasi ditempatkan di memori rendah dan proses user dieksekusi di memori tinggi
Relokasi register digunakan untuk memproteksi masing-masing user proses dan perubahan kode sistem operasi dan data.
Relokasi register terdiri dari alamat fisik bernilai rendah; limit register terdiri dari rentang/range alamat logik, setiap alamat logik harus lebih kecil dari limit register.
21
![Page 22: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/22.jpg)
22
Dukungan Hardware untuk Relokasi dan Limit Register
![Page 23: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/23.jpg)
23
Multiple-Partition Allocation Pada multiple partition allocation, mengijinkan memori user dialokasikan
untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori
Partisi Fixed-Sized / Multiprogramming with a Fixed number of Task (MFT) Memori dibagi menjadi beberapa blok dengan ukuran tertentu yang
seragam Jumlah proses yang bisa running max hanya sejumlah blok yang
disediakan(misal IBM OS/360) Partisi Variabel-Size / Multiprogramming with a Variable number of Tasks(MVT)
Pembagian memori sesuai dengan request dari proses-proses yang ada. Lebih rumit karena ukuran alokasi (partisi) memori dapat bervariasi
Peranan memori manajemen semakin penting: list dari partisi yang digunakan, free dll.
![Page 24: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/24.jpg)
24
Contoh: Multiple Allocation
![Page 25: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/25.jpg)
25
Masalah pada Dynamic Storage-Allocation
Bagaimana agar proses berukuran n dapat menempati hole yang bebas
First-fit: Mengalokasikan proses pada hole pertama yang ditemui yang besarnya mencukupi
Best-fit: Mengalokasikan proses pada hole dengan besar paling cocok (fragmentasinya kecil).
Worst-fit: Mengalokasikan proses pada hole dengan fragmentasi terbesar.
First-fit dan best-fit lebih baik dibandingkan worst-fit dalam hal kecepatan dan pemanfaatan storage.
![Page 26: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/26.jpg)
26
Fragmentasi (issue) Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang
memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan
Fragmentasi Internal terjadi pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan.
External (masalah variable sized partition): Ruang memori free, namun tidak contiguous (berurutan). Hole-hole ada di antara proses-proses berturutan. Tidak dapat digunakan karena proses terlalu besar untuk
menggunakannya. Internal (masalah fixed size):
Sifat program dinamis (alokasi dan dealokasi). Memori yang teralokasi mungkin lebih besar dari memori yang diminta
(wasted).
![Page 27: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/27.jpg)
27
Paging Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi
eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.
Membagi memori fisik ke dalam blok (page, frame) dengan ukuran tertentu (fixed) yang seragam. Memudahkan manajemen free memory (hole) yang dapat bervariasi. Tidak perlu menggabungkan hole menjadi blok yang besar seperti pada
variable partition (compaction). OS lebih sederhana dalam mengontrol (proteksi dan kebijakan)
pemakaian memori untuk satu proses. Standard ukuran blok memori fisik yang dialokasikan (de-alokasi) untuk
setiap proses. Ukuranya (tergantung OS): 512 byte s/d 16 KB.
![Page 28: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/28.jpg)
28
Page Allocation
Alokasi: Terdapat “free list” yang menyimpan informasi “frame” di
memori fisik yang tidak digunakan Tergantung besarnya proses => memerlukan n pages Alokasi frame diberikan sesuai dengan permintaan
(demand, expand).
Implikasi: User’s (program) view (logical address): memori
dialokasikan secara sinambung (contiguous) Fakta (physical address): memori fisik tersebar
(noncontiguous) sesuai dengan frame yang dialokasikan.
![Page 29: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/29.jpg)
29
Skema Paging Bagaimana menjembatani antara “user’s view” dan
alokasi memori sebenarnya? Penerjemahan (translasi) alamat logical ke alamat fisik =>
tugas dari OS (user/program “transparant”). Perlu dukungan hardware (CPU) => address translation.
Setiap proses mempunyai informasi “pages” yang dialokasikan oleh OS Mapping setiap alamat logical ke alamat fisik Issue (fragment): mekanisme mudah, cepat dan efisien. Page table: berisi “base address” (alamat fisik) dari frame
yang telah dialokasikan ke proses tsb.
![Page 30: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/30.jpg)
30
Page table
Setiap OS mempunyai cara menyimpan page table untuk setiap proses
Page table bagian dari setiap proses. Page table berada di memori, saat proses tersebut
dieksekusi. Informasi page table disimpan oleh PCB: pointer ke page
table dari proses tersebut. Setiap kali terjadi context switch => informasi page table
untuk proses yang baru harus di restore (misalkan referensi/pointer lokasi page table tsb. di memori).
![Page 31: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/31.jpg)
31
Page table (h/w support) Menggunakan “fast register”
Contoh: DEC PDP11 : 16 bit address (logical 216 ): 64K, page size 8K (213 ).
Memerlukan page table dengan: 8 entry (dapat diterapkan pada hardware register, hanya 3 bit)
Untuk komputer modern sulit menggunakan fast register Pentium : 32 bit address logical (total: 4 GB), page size (8K), maka
mempunyai potensi entry: 524.288 entry. Page table disimpan pada memori (bagian program) dengan
menggunakan page table base register Page-table base register (PTBR) : pointer ke page-table di memori. Page-table length register (PTLR) : besarnya ukuran page table
(karena tidak semua proses memerlukan ukuran page tabel max.)
![Page 32: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/32.jpg)
32
Paging: translation
Address logik dari CPU dianggap terdiri atas dua bagian: Page number (p): merupakan indeks dalam tabel yang
berisi base address dari tiap page dalam memori fisik Page offset (d): menunjukkan lokasi address memori
berdasarkan “base address” pada page tersebut.
![Page 33: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/33.jpg)
33
Address: hardware support
![Page 34: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/34.jpg)
34
Contoh Paging
![Page 35: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/35.jpg)
35
Model Paging
![Page 36: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/36.jpg)
36
Contoh :
Misalkan LA: 4 bits (max. logical addres: 16 lokasi) Page size => 4 bytes (ditentukan oleh
designerOS). 2 bits: menunjuk ke alamat dari masing-masing byte
dalam setiap page tersebut. Page table: tersisa 2 bits
Max. 4 entry Jadi setiap proses max. akan menggunakan 4 pages
=> mencakup seluruh alamat logical.
![Page 37: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/37.jpg)
37
Contoh (2)
![Page 38: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/38.jpg)
38
Contoh (3) :
Logical address: 11 10 (program view: 14 desimal => “o”) Page translation (physical memory allocation):
Bagian: p (index page) => base address dari frame.Binary 11 => 3 (index = 3 dari page table)=> berisi base address untuk frame 2 di memori.
Bagian offset: d (displacement)Binary 10 => 2
Alamat fisik:base address frame 2 : 2 * 4 => 8;
=> 8 + 2 = 10 (berisi “o”).
![Page 39: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/39.jpg)
39
Frame table
OS harus mempunyai informasi “frame” dari memori fisik: Berapa banyak frame yang bebas? Mana saja frame yang bebas (identifikasi) =>
frame table (list) Informasi hubungan antara satu frame dengan
page mana dari proses yang aktif List ini akan terus di-update, misalkan jika proses
terminate maka semua frame yang dialokasikan akan di kembalikan ke free list.
![Page 40: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/40.jpg)
40
Frame Bebas
Before allocation After allocation
![Page 41: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/41.jpg)
41
Page size Fragmentasi internal pada page terakhir
Tidak ada fragmentasi eksternal Fragmentasi internal bisa terjadi Worst-case:
Untuk proses yang memerlukan n page + 1 byte bila ukuran page = 4096 byte maka akan terbuang 4095 byte / process
Besarnya ukuran pages Independent dari program/proses (system wide) Intuitif: small pages preferable
Apakah keuntungan ukuran pages kecil? Page table entry dapat dikurangi dengan memperbesar ukuran pages
Apakah keuntungan ukuran pages besar? Umumnya page disesuaikan dengan kapasitas memori (tipikal) pada sistim
(range: 2 – 8 Kbytes)
![Page 42: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/42.jpg)
42
Implementasi Page Table
Page table disimpan di main memory. Page-table base register (PTBR) menunjuk ke page table. Page-table length register (PRLR) mengindikasikan ukuran
page table. Pada skema ini, setiap akses data/instruksi membutuhkan
dua memori akses. Satu untuk page table dan satu untuk data/instruksi.
Masalah yang ada pada dua akses memori dapat diselesaikan dengan menggunakan cache memori berkecepatan tinggi yang disebut associative memory or translation look-aside buffers (TLBs)
![Page 43: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/43.jpg)
43
Paging Hardware dengan TLB
![Page 44: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/44.jpg)
44
Multilevel Paging
Address logical besar => page table menjadi besar. Misalkan: LA => 32 bits, dan ukuran page frame: 12 bits,
maka page table: 20 bits (2^20 => 1 MB). Page table dapat dipisah dalam bentuk pages juga,
sehingga tidak semua page table harus berada di memori.
Address lojik terdiri atas: section number s, page number p, offset d s indeks ke dalam outer page table dan p displacement
dalam page table
![Page 45: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/45.jpg)
45
Two level page table
![Page 46: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/46.jpg)
46
Translation: multilevel
![Page 47: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/47.jpg)
47
Proteksi Memory
Proteksi memori diimplementasikan dengan asosiasi proteksi bit pada setiap frame
Valid-invalid bit ditambahkan/dimasukkan pada page table : Bit akan diset valid jika page yang bersangkutan ada
pada area ruang alamat logika Bit akan diset “invalid” jika page yang bersangkutan
berada di luar area ruang alamat logika.
![Page 48: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/48.jpg)
48
Valid (v) or Invalid (i) Bit pada Page Table
![Page 49: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/49.jpg)
49
Inverted Page Table
Satu masukan untuk setiap real page dari memori
Masukan dari alamat virtual disimpan pada lokasi real memori, dengan informasi proses pada page
Penurunan memori dibutuhkan untuk menyimpan setiap page table, tetapi setiap kenaikan waktu dibutuhkan untuk mencari tabel saat pager refference dilakukan
![Page 50: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/50.jpg)
50
Arsitektur Inverted Page Table
![Page 51: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/51.jpg)
51
Shared Pages
Shared code Satu copy kode read-only (reentrant) dibagi diantara
proses (contoh text editor, compiler, window system). Shared code harus dimunculkan pada lokasi yang sama
pada alamat logik semua proses.
Private code dan data Setiap proses menyimpan sebagian copy kode dan data. Page untuk kode private dan data dapat ditampilkan
dimana saja pada ruang alamat logik.
![Page 52: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/52.jpg)
52
Contoh Shared Pages
![Page 53: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/53.jpg)
53
Segmentasi
Skema pengaturan memori yang mendukung user untuk melihat memori tersebut..
Sebuah program merupakan kumpulan dari segment. Sebuah segement berisi unit logik seperti: main program,
procedure, function,method,object,local variables, global variables,common block,stack,symbol table, arrays
![Page 54: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/54.jpg)
54
User View Program
![Page 55: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/55.jpg)
55
Pandangan Logik Segmentasi
1
3
2
4
1
4
2
3
user space physical memory space
![Page 56: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/56.jpg)
56
Arsitektur Segmentasi Alamat logik terdiri dari dua tuple:
<segment-number, offset>, Harus diset oleh programmer atau compiler untuk
menyatakan berapa besar segment tersebut Implikasi: segment bervariasi besarnya (bandingkan
dengan page table: fixed dan single/flat address space => hardware yang menentukan berapa size)
Segment table – mapping dari LA ke PA base table – berisi lokasi awal dari physical address
dimana segment berada di memori. limit table – berisi panjang (besar) dari segmen tersebut.
![Page 57: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/57.jpg)
57
Arsitektur Segmentasi (Cont.)
Relokasi. Dynamic Melalui segment table
Sharing. Shared segments Nomor segment yang sama
Alokasi. first fit/best fit external fragmentation
![Page 58: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/58.jpg)
58
Segmentasi Hardware
![Page 59: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/59.jpg)
59
Contoh Segmentasi
![Page 60: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/60.jpg)
60
Sharing of Segments
![Page 61: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/61.jpg)
61
Segmentasi Paging Intel 386
Logical address (32 bits) dibagi atas 2: Selector: Segment: S (13 bits), Descriptor Table (1 bit:
Local or Global); Protection ( 2 bits) Offset: 16 bits
Melalui Descriptor table Selector menentukan entry pada table, melihat protection,
dan menguji limit (tabel berisi informasi limit) Menghasilkan linear address: Base address segment +
offset Logical Linear address: paging (besar page: 4 K), 2 level
(10 bits untuk direktori dan 10 bits untuk page number), offset: 12 bits.
![Page 62: Manajemen Memori](https://reader035.vdokumen.com/reader035/viewer/2022081416/5681446f550346895db10159/html5/thumbnails/62.jpg)
62
Alamat Translasi Intel 30386