Bab 8: Manajemen Memori Latar Belakang Swapping Alokasi Berurutan ((Contiguous g Allocation)) Paging Segmentasi Segmentasi dengan Paging
Operating System Concepts
9.1
Silberschatz, Galvin and Gagne 2002
Latar Belakang Program harus dibawa ke dalam memori dan
ditempatkan dalam sebuah proses untuk dijalankan Input queue (antrian input) – kumpulan proses pada disk
yang menunggu dibawa ke memori untuk menjalankan program Program user melalui beberapa langkah sebelum
dijalankan
Operating System Concepts
9.2
Silberschatz, Galvin and Gagne 2002
1
Pengikatan instruksi dan data ke memori Pengikatan alamat instruksi dan data ke alamat dapat terjadi dalam 3 bentuk yang berbeda Waktu Kompilasi (Compile time): Jika lokasi memori
diketahui sebelumnya, kode absolut dapat dibangkitkan; harus kompilasi ulang kode tsb jika terjadi perubahan lokasi awal. Waktu Load (Load time): Harus membangkitkan kode relocatable (relocatable code) jika lokasi memori tidak diketahui pada waktu kompilasi. Waktu Eksekusi (Execution time): Pengikatan alamat ditunda sampai waktu runtime jika prose dapat dipindah selama eksekusi program dari satu segmen memori ke segmen memori lain. Memerlukan dukungan hardware untuk pemetaan alamat (contoh : register base dan limit).
Operating System Concepts
9.3
Silberschatz, Galvin and Gagne 2002
Langkah Pemrosesan Program User
Operating System Concepts
9.4
Silberschatz, Galvin and Gagne 2002
2
Loading Dinamis (Dynamic Loading) Rutin tidak di-load sampai dipanggil Utilitas ruang memori yang lebih baik; rutin yang
tidakdigunakan tidak pernah di-load. Berguna ketika kode dalam jumlah besar diperlukan untuk menangani kasus yang tidak sering terjadi. Tidak memerlukan dukungan khusus dari sistem operasi yang diimplementasikan dalam desain program.
Operating System Concepts
9.5
Silberschatz, Galvin and Gagne 2002
Linking Dinamis (Dynamic Linking) Proses linking ditunda sampai waktu eksekusi Merupakan kode dalam bentuk kecil (stub), digunakan
untuk meletakkan rutin librari yang residen di memori yang diperlukan. Stub mengubah alamat rutin dan mengeksekusi rutin Sistem operasi melakukan cek apakah rutin sedang memproses alamat memori Linking dinamis terutama berguna untuk library
Operating System Concepts
9.6
Silberschatz, Galvin and Gagne 2002
3
Overlay Menyimpan hanya instruksi dan data dalam memori
hanya yang diperlukan pada waktu tertentu. Diperlukan jika proses lebih besar daripada jumlah
alokasi memori untuk proses tersebut. Diimplementasikan oleh user tidak ada dukungan khusus
dari sistem operasi, desain sistem dari strukutr overlay sangat komplek.
Operating System Concepts
9.7
Silberschatz, Galvin and Gagne 2002
Overlay untuk Two-Pass Assembler
Operating System Concepts
9.8
Silberschatz, Galvin and Gagne 2002
4
Ruang alamat Logika dan Fisik Konsep ruang alamat logika yang membungkus ruang
alamat fisik adalah bentuk utama dari manajemen memori. Alamat logika – dibangkitkan oleh CPU; juga disebut alamat
virtual. Alamat Fisik – alamat yang terlihat pada unit memori.
Alamat logika dan fisik mempunyai skema yang sama
dalam pengikatan alamat pada waktu kompilasi dan waktu load; alamat logika dan fisik mempunyai skema yang berbeda dalam pengikatan alamat pada waktu eksekusi.
Operating System Concepts
9.9
Silberschatz, Galvin and Gagne 2002
Memory-Management Unit (MMU) Perangkat hardware yang memetakan alamat virtual ke
alamat fisik. Dalam skema MMU, nilai dalam register relokasi
ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori. Program user melihat alamat logika; tidak pernah melihat
alamat fisik.
Operating System Concepts
9.10
Silberschatz, Galvin and Gagne 2002
5
Relokasi Dinamis menggunakan register relokasi
Operating System Concepts
9.11
Silberschatz, Galvin and Gagne 2002
Swapping Sebuah porses dapat ditukar sementara keluar dari memori ke
backing store, dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store – disk ukuran cukup besar dan cepat untuk
mengakomodasi duplikasi dari semua gambaran memori untuk semua user; harus tersedia akses langsung ke memori tersebut. Roll out, roll in – swapping menggunakan algoritma
penjadwalan berbasis prioritas; prose dengan prioritas rendah ditukar keluar sehingga proses dengan prioritas tinggi dapat diload dan dieksekusi. Bagian terbesar dari waktu swap adalah waktu transfer; total
waktu transfer proporsional dengan jumlah memori yang diswap Versi modifikasi dari swappling ditemukan pada beberapa
sistem, misalnya UNIX, Linux dan Windows.
Operating System Concepts
9.12
Silberschatz, Galvin and Gagne 2002
6
Skema Swapping
Operating System Concepts
9.13
Silberschatz, Galvin and Gagne 2002
Alokasi Berurutan (Contiguous Allocation) Memori utaa biasanya dibagi menjadi 2 bagian: Sistem operasi yang residen; biasanya diletakkan memori bagian rendah dengan vektor interrupt Program user diletakkan di memori bagian lebih tinggi. Alokasi Single-partition (partisi tunggal) Skema register relokasi digunakan untuk melindungi proses user dari proses user lain, dan dari perubahan kode dan data sistem operasi. Register relokasi berisi nilai dari alamat fisik terkecil; register limit berisi jangkauan alamat logika – setiap alamat logika harus lebih kecil daripada register limit.
Operating System Concepts
9.14
Silberschatz, Galvin and Gagne 2002
7
Dukungan Hardware untuk Register Relokasi dan Register Limit
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
9.15
Alokasi Berurutan (Contiguous Allocation) lanj Alokasi Multiple-partition (partisi banyak) Hole (lubang) – adalah blok dari memori yang tersedia; lubang dengan ukuran berbeda berada di dalam memori. Bila proses datang, akan dialokasikan ke memory pada lubang yang cukup untuk proses. Sistem operasi memelihara informasi tentang: a) partisi yang dialokasikan b) partisi bebas (hole)
OS
OS
OS
OS
process 5
process 5
process 5
process 5
process 9
process 9
process 8 process 2
Operating System Concepts
process 10 process 2
process 2
9.16
process 2
Silberschatz, Galvin and Gagne 2002
8
Alokasi Multiple Partition Sebagai ilustrasi, perhatikan contoh berikut : Diasumsikan tersedia memori 2560K dan untuk OS 400K. Sisa 2160K di digunakan k untuk t k user proses Diasumsikan terdapat 5 job (P1 s/d P5) terdapat pada input queue. Diasumsikan penjadwalan FCFS digunakan untuk load job ke memori. Penjadwalan CPU secara round-robin (quantum time = 1) untuk penjadwalan job yang sudah terdapat di memori
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
9.17
Alokasi Multiple Partition (lanj.) 0
Operating p g system
Proses
400K
2160K
Job queue memory
time
P1
600K
10
P2
1000K
5
P3
300K
20
P4
700K
8
P5
500K
15
2560K Operating System Concepts
9.18
Silberschatz, Galvin and Gagne 2002
9
Alokasi Multiple Partition (lanj.) 0
Operating system
400K
0 400K
Operating system t
1000K P2
1000K
P2
Alokasi
2000K
P3
2300K 2560K
2560K Operating System Concepts
400K
Operating system
0
Operating system
400K P5 900K 1000K
1000K P4
P1
P4
terminate
P4 1700K P3
0
P1
1000K
terminate
2300K
400K
Operating system
P1
P1
2000K
0
P3
2300K 2560K
2300K 2560K
9.19
P4
P5
2000K
2000K
Alokasi
2000K P3
2300K
P3
2560K
Silberschatz, Galvin and Gagne 2002
Permasalahan alokasi ruang dinamis Bagaimana memenuhi permintaan ukuran n dari daftar lubang yang bebas First-fit: alokasi lubang pertama yang cukup untuk proses. Best-fit: alokasi lubang terkecil yang cukup untuk proses;
harus mencari ke seluruh daftar; berdasarkan urutan ukuran. Menghasilkan lubang sisa yang terkecil. Worst-fit: mengalokasikan lubang terbesar; harus juga mencari ke seluruh daftar. Menghasilkan lubang sisa terbesar. First-fit dan best-fit lebih baik daripada worst-fit dalam hal kecepatan dan utilitas ruang penyimpan.
Operating System Concepts
9.20
Silberschatz, Galvin and Gagne 2002
10
Fragmentasi Fragmentasi Eksternal – ruang alamat memori total
yang ada memenuhi permintaan, tetapi letaknya tidak berurutan. Fragmentasi Internal – pengalokasian memori mungkin lebih besar daripada memori yang diminta; tetapi sisanya terlalu kecil yang tidak dapat digunakan. Menurunkan fragmentasi eksternal dengan cara pemadatan Memindahkan isi memori dan meletakkan semua memori
bebas dalam satu blok besar. Pemadatan mungkin hanya jika relokasi dinamis dan
dilakukan pada waktu eksekusi
Operating System Concepts
9.21
Silberschatz, Galvin and Gagne 2002
Pemadatan Solusi untuk masalah fragmentasi eksternal adalah “compaction”
(p (pemadatan) ) Compaction tidak selalu dapat dipakai. Agar proses dapat
dieksekusi pada lokasi baru, semua alamat internal harus direlokasi. Jika relokasi statik dan dikerjakan pada load time, compaction tidak dapat dilakukan Compaction mungkin hanya jika relokasi dinamis dan dikerjakan pada execution time. Karena relokasi membutuhkan pemindahan program dan data dan kemudian mengubah register basis (atau relokasi) yang mencerminkan alamat basis baru Terdapat beberapa cara compaction
Operating System Concepts
9.22
Silberschatz, Galvin and Gagne 2002
11
Pemadatan lanj. 0 400K
0
Operating system
400K
P5
P5
900K 1000K
900K
100K P4
P4 1600K
2000K 2300K 2560K
Operating system
300K
P3
1900K
P3 660K 260K
2560K
Contoh Compaction Operating System Concepts
Silberschatz, Galvin and Gagne 2002
9.23
Pemadatan lanj.
0 300K 500K 600K
Operating system t P1 P2 400K
1000K 1200K
P3
0 300K 500K 600K 800K
0
Operating system t
300K
P1
500K
P2
600K
P3
Operating system t P1 P2
0 300K 500K 600K
Operating system t P1 P2
P4 1000K
P4 1200K
1200K
900K
P3
300K 1500K
900K
P4 1900K
900K
P3 2100K
2100K Alokasi asal
Operating System Concepts
P4
1900K
200K
2100K
1500K
Dipindah 600K 9.24
2100K Dipindah 400K
Dipindah 200K
Silberschatz, Galvin and Gagne 2002
12
Paging Ruang alamat logika dari proses dapat tidak berurutan; proses
diletakkan di memori fisik jika tersedia Membagi memori fisik ke dalam blok ukuran tetap yang disebut
frame (ukurannya adalah pangkat dari 2 2, antara 512 bytes dan 8192 bytes). Membagi memori logika ke dalam blok ukuran sama yang disebut page. Menyimpan semua frame bebas. Untuk menjalankan sebuah program ukuran n page, perlu menemukan frame bebas sebanyak n dan load program. Set page table (tabel page) untuk menterjemahkan alamat logika ke alamat fisik. Kemungkinan terjadi fragmentasi internal.
Operating System Concepts
9.25
Silberschatz, Galvin and Gagne 2002
Skema Menterjemahkan Alamat Alamat yang dibangkitkan oleh CPU terdiri dari: Page number (p) – digunakan sebagai indeks dalam page table yang berisi alamat base dari setiap page dalam memori fisik. fisik Page offset (d) – dikombinasikan dengan alamat base untuk
menentukan alamat fisik yang dikirim ke unit memori.
Operating System Concepts
9.26
Silberschatz, Galvin and Gagne 2002
13
Arsitektur Penterjemah Alamat
Operating System Concepts
9.27
Silberschatz, Galvin and Gagne 2002
Contoh Paging
Operating System Concepts
9.28
Silberschatz, Galvin and Gagne 2002
14
Contoh Paging
Operating System Concepts
9.29
Silberschatz, Galvin and Gagne 2002
Frame Bebas
Sebelum alokasi
Operating System Concepts
Setelah alokasi
9.30
Silberschatz, Galvin and Gagne 2002
15
Implementasi Page Table Page table disimpan dalam memori utama. Page-table base register (PTBR) menunjuk ke page table. Page-table g length g register g ((PRLR)) merupakan p ukuran p page g
table. Pada skema ini, setiap akses data/instruksi membutuhkan
dua kali akses memori. Satu untuk mengakses page table dan satu untuk mengakses data/instruksi. Permasalahan akses kedua memori dapat dipecahkan dengan menggunakan fast-lookup hardware cache khusus yang disebut associative memory or translation look-aside buffers (TLBs)
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
9.31
Associative Memory Associative memory – pencarian paralel Page #
Frame #
Terjemahan alamat (A´, A´´) Jika A´ berada dalam associative register, dapatkan frame # Jika tidak, dapatkan frame # dari page table dalam memori
Operating System Concepts
9.32
Silberschatz, Galvin and Gagne 2002
16
Paging Hardware dengan TLB
Operating System Concepts
9.33
Silberschatz, Galvin and Gagne 2002
Effective Access Time Pencarian pada Associative register = unit waktu Diasumsikan waktu akses memori adalah 1 microsecond Hit ratio – p persentasi waktu sebuah nomor p page g
ditemukan dalam associative registers; rasio berhubungan dengan jumlah associative register. Hit ratio = Effective Access Time (EAT) EAT = (1 + ) + (2 + )(1 – ) =2+–
Operating System Concepts
9.34
Silberschatz, Galvin and Gagne 2002
17
Proteksi Memori Proteksi memori diimplementasikan dengan proteksi bit
untuk setiap frame. Bit Valid-invalid diberikan untuk setiap masukan dalam
page table: “valid” mengindikasikan bahwa page terhubung dalam
alamat memori logika dan merupakan page yang legal. “invalid” mengindikasikan bahwa page tidak berada di ruang
alamat logika.
Operating System Concepts
9.35
Silberschatz, Galvin and Gagne 2002
Bit Valid (v) atau invalid (i) Bit dalam Page Table
Operating System Concepts
9.36
Silberschatz, Galvin and Gagne 2002
18
Contoh Two-Level Paging Alamat logika (pada mesin 32-bit dengan ukuran page 4K) dibagi
ke dalam: Sebuah page number ukuran 0 bit. Sebuah S b h page offset ff t ukuran12 k 12 bit bit.
Ketika page table dilakukan page, page number lebih lanjut
dibagi dalam : Sebuah page number 10-bit. Sebuah page offset 10-bit.
Sehingga alamat logika menjadi:
page number pi 10
page offset
p2
d
10
12
dimana pi adalah indek ke outer page table, dan p2 adalah displacement dalam page dari outer page table. Operating System Concepts
9.37
Silberschatz, Galvin and Gagne 2002
Skema Two-Level Page-Table
Operating System Concepts
9.38
Silberschatz, Galvin and Gagne 2002
19
Skema Penterjemah Alamat Skema Penterjemah alamat untuk arsitektur two-level
paging 32-bit
Operating System Concepts
9.39
Silberschatz, Galvin and Gagne 2002
Shared Page Shared code Satu copy dari kode read-only yang digunaka bersamasama diantara beberapa proses (seperti text editors, compilers window compilers, indo systems). s stems) Shared code harus muncul pada lokasi yang sama dalam ruang alamat logika untuk semua proses. Private code dan data Setiap proses menyimpan copy dari kode dan data yang terpisah Page dari private code dan data dapat muncul dimanapun dalam ruang alamat logika.
Operating System Concepts
9.40
Silberschatz, Galvin and Gagne 2002
20
Contoh Shared Page
Operating System Concepts
9.41
Silberschatz, Galvin and Gagne 2002
Segmentasi Skema manajemen memori yang memperlihatkan memori dari
sisi pandangan user. Sebuah program adalah kumpulan segmen. Sebuat segmen
adalah unit logika g seperti p : main program, procedure, function, method, object, local variables, global variables, common block, stack stack, symbol table, arrays
Operating System Concepts
9.42
Silberschatz, Galvin and Gagne 2002
21
Pandangan user terhadap Program
Operating System Concepts
9.43
Silberschatz, Galvin and Gagne 2002
Segmentasi secara Logika 1 4
1 2
3
2
4
3
Ruang User
Operating System Concepts
Ruang alamat Fisik
9.44
Silberschatz, Galvin and Gagne 2002
22
Arsitektur Segmentasi Alamat logika terdiri dari dua bagian:
<segment-number, offset>, Segment g table – memetakan alamat fisik 2 dimensi;; setiap tabel mempunyai: base – terdiri dari alamat fisik awal dimana segmen berada
di memori. limit – menentukan panjang segmen.
Segment-table base register (STBR) menunjuk ke lokasi
segment table dalam memori. Segment-table g length g register g ((STLR)) merupakan p nomor
segmen yang digunakan oleh ; nomor segmen s adalah legal jika s < STLR.
Operating System Concepts
9.45
Silberschatz, Galvin and Gagne 2002
Arsitektur Segmentasi (lanj) Relokasi. Dinamis Oleh segmen table Sharing. Membagi segment bersama-sama Nomor segment sama Alokasi. first fit/best fit Fragmentasi eksternal
Operating System Concepts
9.46
Silberschatz, Galvin and Gagne 2002
23
Arsitektur Segmentasi (lanj) Proteksi. Dalam setiap masukan ke segment table
dihubungkan dengan: Bit validasi= 0 segmen ilegal Mode akses read/write/execute
Bit proteksi dihubungkan dengan segmen; kode yang
digunakan bersama-sama terjadi pada level segmen Karena segmen mempunyai ukuran yang bervariasi,
alokasi memori adalah permasalahan alokasi penyimpanan dinamis
Operating System Concepts
9.47
Silberschatz, Galvin and Gagne 2002
Hardware Segmentasi
Operating System Concepts
9.48
Silberschatz, Galvin and Gagne 2002
24
Contoh Segmentasi
Operating System Concepts
9.49
Silberschatz, Galvin and Gagne 2002
Sharing Segmen
Operating System Concepts
9.50
Silberschatz, Galvin and Gagne 2002
25
Segmentasi dengan Paging – MULTICS Sistem MULTICS memecahkan permasalahan
fragmentasi eksternal dan pada saat pencarian dengan paging pada segmen Solusi berbeda dengan segmentasi asli, di dalam
segment-table, masukan tidak terdiri dari alamat base dari segmen, tetapi alamat base dari page table untuk segmen tersebut.
Operating System Concepts
9.51
Silberschatz, Galvin and Gagne 2002
Skema Penterjeman Alamat pada MULTICS
Operating System Concepts
9.52
Silberschatz, Galvin and Gagne 2002
26
Segmentasi dengan Paging – Intel 386
Sebagaimana ditunjukkan pada diagram berikut, Intel 386
menggunakan segmentasi dalam paging untuk manajemen memori dengan skema two-level paging
Operating System Concepts
9.53
Silberschatz, Galvin and Gagne 2002
Penterjeman Alamat pada Intel 30386
Operating System Concepts
9.54
Silberschatz, Galvin and Gagne 2002
27