Bab 8: Manajemen Memori Latar Belakang

27
1 Bab 8: Manajemen Memori Latar Belakang Swapping Alokasi Berurutan (Contiguous Allocation) Paging Segmentasi Segmentasi dengan Paging Silberschatz, Galvin and Gagne 2002 9.1 Operating System Concepts 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 Silberschatz, Galvin and Gagne 2002 9.2 Operating System Concepts

Transcript of Bab 8: Manajemen Memori Latar Belakang

Page 1: Bab 8: Manajemen Memori Latar Belakang

1

Bab 8: Manajemen Memori

Latar Belakang

Swapping

Alokasi Berurutan (Contiguous Allocation)( g )

Paging

Segmentasi

Segmentasi dengan Paging

Silberschatz, Galvin and Gagne 20029.1Operating System Concepts

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

Silberschatz, Galvin and Gagne 20029.2Operating System Concepts

Page 2: Bab 8: Manajemen Memori Latar Belakang

2

Pengikatan instruksi dan data ke memori

Waktu Kompilasi (Compile time): Jika lokasi 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

Silberschatz, Galvin and Gagne 20029.3Operating System Concepts

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

Langkah Pemrosesan Program User

Silberschatz, Galvin and Gagne 20029.4Operating System Concepts

Page 3: Bab 8: Manajemen Memori Latar Belakang

3

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.

Silberschatz, Galvin and Gagne 20029.5Operating System Concepts

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

Silberschatz, Galvin and Gagne 20029.6Operating System Concepts

Page 4: Bab 8: Manajemen Memori Latar Belakang

4

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.

Silberschatz, Galvin and Gagne 20029.7Operating System Concepts

Overlay untuk Two-Pass Assembler

Silberschatz, Galvin and Gagne 20029.8Operating System Concepts

Page 5: Bab 8: Manajemen Memori Latar Belakang

5

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

Silberschatz, Galvin and Gagne 20029.9Operating System Concepts

yang berbeda dalam pengikatan alamat pada waktu eksekusi.

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.

Silberschatz, Galvin and Gagne 20029.10Operating System Concepts

Page 6: Bab 8: Manajemen Memori Latar Belakang

6

Relokasi Dinamis menggunakan register relokasi

Silberschatz, Galvin and Gagne 20029.11Operating System Concepts

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 di-load dan dieksekusi.

Silberschatz, Galvin and Gagne 20029.12Operating System Concepts

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.

Page 7: Bab 8: Manajemen Memori Latar Belakang

7

Skema Swapping

Silberschatz, Galvin and Gagne 20029.13Operating System Concepts

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

Silberschatz, Galvin and Gagne 20029.14Operating System Concepts

register limit berisi jangkauan alamat logika setiap alamat logika harus lebih kecil daripada register limit.

Page 8: Bab 8: Manajemen Memori Latar Belakang

8

Dukungan Hardware untuk Register Relokasi dan Register Limit

Silberschatz, Galvin and Gagne 20029.15Operating System Concepts

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

Silberschatz, Galvin and Gagne 20029.16Operating System Concepts

process 5

process 8

process 2

process 5

process 2

process 5

process 2

process 5

process 9

process 2

process 9

process 10

Page 9: Bab 8: Manajemen Memori Latar Belakang

9

Alokasi Multiple Partition

Sebagai ilustrasi, perhatikan contoh berikut : Diasumsikan tersedia memori 2560K dan untuk OS 400K. Sisa

2160K di k t k2160K digunakan untuk 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

Silberschatz, Galvin and Gagne 20029.17Operating System Concepts

Alokasi Multiple Partition (lanj.)

Operating 0

p gsystem

2160K

400KP1

P2

P3

P4

600K

1000K

300K

700K

10

5

20

8

Proses memory timeJob queue

Silberschatz, Galvin and Gagne 20029.18Operating System Concepts

2560K

P5 500K 15

Page 10: Bab 8: Manajemen Memori Latar Belakang

10

Alokasi Multiple Partition (lanj.)

Operating 0

Operating t

0Operating

0Operating

0 Operating system

0

system

P1

400K

P2

1000K

system

P1

400K

1000K

system

P1

400K

P4

1000K

system400K

1000K

system400K

1000K

P2

terminate

Alokasi

P4

P1

terminateP4 Alokasi

P5

P4

P5

900K

Silberschatz, Galvin and Gagne 20029.19Operating System Concepts

2000KP3

2300K

2560K

2000KP3

2300K

2560K

2000KP3

2300K

2560K

2000KP3

2300K

2560K

2000K

2300K

2560K

terminate1700K

P3

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.

Silberschatz, Galvin and Gagne 20029.20Operating System Concepts

First-fit dan best-fit lebih baik daripada worst-fit dalam hal kecepatan dan utilitas ruang penyimpan.

Page 11: Bab 8: Manajemen Memori Latar Belakang

11

Fragmentasi

Fragmentasi Eksternal – ruang alamat memori total yang ada memenuhi permintaan, tetapi letaknya tidak berurutan.

Fragmentasi Internal pengalokasian memori mungkin 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

Silberschatz, Galvin and Gagne 20029.21Operating System Concepts

dilakukan pada waktu eksekusi

Pemadatan

Solusi untuk masalah fragmentasi eksternal adalah “compaction” (pemadatan)(p ) 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

Silberschatz, Galvin and Gagne 20029.22Operating System Concepts

relokasi) yang mencerminkan alamat basis baru

Terdapat beberapa cara compaction

Page 12: Bab 8: Manajemen Memori Latar Belakang

12

Pemadatan lanj.

Operating system

0

400K

Operating system

0

400K400K

1000K

P4

P5

900K

400K

1600KP3

P4

P5

900K

300K

100K

Silberschatz, Galvin and Gagne 20029.23Operating System Concepts

2000K

2300K

2560K

P31900K

2560K

660K260K

300K

Contoh Compaction

Pemadatan lanj.

Operating t

0Operating

t

0Operating

t

0Operating

t

0

system

P1300K

P31000K

P2500K600K

400K

1200K300K

system

P1300K

P3800K

P4

P2500K600K

1200K

system

P1300K

P31000K

P4

P2500K600K

1200K

system

P1300K

P2500K600K

900K

Silberschatz, Galvin and Gagne 20029.24Operating System Concepts

1500KP4

1900K

2100K

300K

200K2100K

900K

2100K

900K

P3

1500KP4

2100K

1900K

Alokasi asal Dipindah 600K Dipindah 400K Dipindah 200K

Page 13: Bab 8: Manajemen Memori Latar Belakang

13

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 antara 512 bytes danframe (ukurannya adalah pangkat dari 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

Silberschatz, Galvin and Gagne 20029.25Operating System Concepts

logika ke alamat fisik.

Kemungkinan terjadi fragmentasi internal.

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 fisikmemori fisik.

Page offset (d) – dikombinasikan dengan alamat base untuk menentukan alamat fisik yang dikirim ke unit memori.

Silberschatz, Galvin and Gagne 20029.26Operating System Concepts

Page 14: Bab 8: Manajemen Memori Latar Belakang

14

Arsitektur Penterjemah Alamat

Silberschatz, Galvin and Gagne 20029.27Operating System Concepts

Contoh Paging

Silberschatz, Galvin and Gagne 20029.28Operating System Concepts

Page 15: Bab 8: Manajemen Memori Latar Belakang

15

Contoh Paging

Silberschatz, Galvin and Gagne 20029.29Operating System Concepts

Frame Bebas

Silberschatz, Galvin and Gagne 20029.30Operating System Concepts

Sebelum alokasi Setelah alokasi

Page 16: Bab 8: Manajemen Memori Latar Belakang

16

Implementasi Page Table

Page table disimpan dalam memori utama.

Page-table base register (PTBR) menunjuk ke page table.

Page-table length register (PRLR) merupakan ukuran page g g g ( ) p p gtable.

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

Silberschatz, Galvin and Gagne 20029.31Operating System Concepts

buffers (TLBs)

Associative Memory

Associative memory – pencarian paralelPage # Frame #

Terjemahan alamat (A´, A´´) Jika A´ berada dalam associative register, dapatkan frame #

Jika tidak, dapatkan frame # dari page table dalam memori

Silberschatz, Galvin and Gagne 20029.32Operating System Concepts

Page 17: Bab 8: Manajemen Memori Latar Belakang

17

Paging Hardware dengan TLB

Silberschatz, Galvin and Gagne 20029.33Operating System Concepts

Effective Access Time

Pencarian pada Associative register = unit waktu

Diasumsikan waktu akses memori adalah 1 microsecond

Hit ratio – persentasi waktu sebuah nomor page p p gditemukan dalam associative registers; rasio berhubungan dengan jumlah associative register.

Hit ratio = Effective Access Time (EAT)

EAT = (1 + ) + (2 + )(1 – )

= 2 + –

Silberschatz, Galvin and Gagne 20029.34Operating System Concepts

Page 18: Bab 8: Manajemen Memori Latar Belakang

18

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.

Silberschatz, Galvin and Gagne 20029.35Operating System Concepts

Bit Valid (v) atau invalid (i) Bit dalam Page Table

Silberschatz, Galvin and Gagne 20029.36Operating System Concepts

Page 19: Bab 8: Manajemen Memori Latar Belakang

19

Contoh Two-Level Paging

Alamat logika (pada mesin 32-bit dengan ukuran page 4K) dibagi ke dalam: Sebuah page number ukuran 0 bit.

S b h ff t k 12 bit Sebuah page offset ukuran12 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 page offset

p p d

Silberschatz, Galvin and Gagne 20029.37Operating System Concepts

dimana pi adalah indek ke outer page table, dan p2 adalah displacement dalam page dari outer page table.

pi p2 d

10 10 12

Skema Two-Level Page-Table

Silberschatz, Galvin and Gagne 20029.38Operating System Concepts

Page 20: Bab 8: Manajemen Memori Latar Belakang

20

Skema Penterjemah Alamat

Skema Penterjemah alamat untuk arsitektur two-level paging 32-bit

Silberschatz, Galvin and Gagne 20029.39Operating System Concepts

Shared Page

Shared code Satu copy dari kode read-only yang digunaka bersama-

sama diantara beberapa proses (seperti text editors, compilers indo s stems)compilers, window systems).

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

Silberschatz, Galvin and Gagne 20029.40Operating System Concepts

Page dari private code dan data dapat muncul dimanapun dalam ruang alamat logika.

Page 21: Bab 8: Manajemen Memori Latar Belakang

21

Contoh Shared Page

Silberschatz, Galvin and Gagne 20029.41Operating System Concepts

Segmentasi

Skema manajemen memori yang memperlihatkan memori dari sisi pandangan user.

Sebuah program adalah kumpulan segmen. Sebuat segmen adalah unit logika seperti :g p

main program,procedure, function,method,object,local variables, global variables,common block,stack

Silberschatz, Galvin and Gagne 20029.42Operating System Concepts

stack,symbol table, arrays

Page 22: Bab 8: Manajemen Memori Latar Belakang

22

Pandangan user terhadap Program

Silberschatz, Galvin and Gagne 20029.43Operating System Concepts

Segmentasi secara Logika

1

1

4

3

2

42

3

Silberschatz, Galvin and Gagne 20029.44Operating System Concepts

Ruang User Ruang alamat Fisik

Page 23: Bab 8: Manajemen Memori Latar Belakang

23

Arsitektur Segmentasi

Alamat logika terdiri dari dua bagian:

<segment-number, offset>,

Segment table – memetakan alamat fisik 2 dimensi; g ;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 length register (STLR) merupakan nomor

Silberschatz, Galvin and Gagne 20029.45Operating System Concepts

g g g ( ) psegmen yang digunakan oleh ;

nomor segmen s adalah legal jika s < STLR.

Arsitektur Segmentasi (lanj)

Relokasi. Dinamis

Oleh segmen table

Sharing. Membagi segment bersama-sama

Nomor segment sama

Alokasi. first fit/best fit

Silberschatz, Galvin and Gagne 20029.46Operating System Concepts

Fragmentasi eksternal

Page 24: Bab 8: Manajemen Memori Latar Belakang

24

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

Silberschatz, Galvin and Gagne 20029.47Operating System Concepts

Hardware Segmentasi

Silberschatz, Galvin and Gagne 20029.48Operating System Concepts

Page 25: Bab 8: Manajemen Memori Latar Belakang

25

Contoh Segmentasi

Silberschatz, Galvin and Gagne 20029.49Operating System Concepts

Sharing Segmen

Silberschatz, Galvin and Gagne 20029.50Operating System Concepts

Page 26: Bab 8: Manajemen Memori Latar Belakang

26

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.

Silberschatz, Galvin and Gagne 20029.51Operating System Concepts

Skema Penterjeman Alamat pada MULTICS

Silberschatz, Galvin and Gagne 20029.52Operating System Concepts

Page 27: Bab 8: Manajemen Memori Latar Belakang

27

Segmentasi dengan Paging – Intel 386

Sebagaimana ditunjukkan pada diagram berikut, Intel 386 menggunakan segmentasi dalam paging untukmenggunakan segmentasi dalam paging untuk manajemen memori dengan skema two-level paging

Silberschatz, Galvin and Gagne 20029.53Operating System Concepts

Penterjeman Alamat pada Intel 30386

Silberschatz, Galvin and Gagne 20029.54Operating System Concepts