Anda di halaman 1dari 25

By Yohanes

Mengapa perlu manajemen memori


Resource yg sangat berharga Parkinsons law: program cenderung memenuhi seluruh kapasitas memori dan menguasainya Kemampuan multiprogramming beberapa proses berada di memori pd saat yg sama

Manajemen memori dengan partisi tetap


Buah partisi, ukuran bisa bervariasi, diset pd saat sistem diaktifkan Bgmn jika proses berkembang ?

Partisi 4

Partisi 4

Partisi 3

Partisi 3

Partisi 2

Partisi 2

Partisi 1 Operating system

Partisi 1 Operating system

Alokasi memori dengan partisi variabel Bgmn mengalokasikan memori untuk proses yg berkembang ?

Bgmn

mengalokasikan memori untuk proses yg berkembang ? Bitmap Linked-list Buddy system

1111100011111100

14

1.

Faktor pemilihan satuan alokasi mjd penting


Satuan kecil bit map besar Satuan besar ada kemungkinan sisa memori

map

Pelacakan memori bebas dengan metode bit

2. Pelacakan memori bebas dengan metode


Diurutkan berdasar alamat memori Implementasi dng double linked-list
linked-list

3. Algoritma alokasi memori

First fit: mencari daerah memori bebas (DMB) yg pertama kali ditemukan yg bisa menampung proses Next fit: mirip dng first fit, tapi dng merekam posisi DMB. Proses pencarian selanjutnya dimulai dr posisi ini. Best fit: mencari di seluruh list DMB yg paling sesuai dng kebutuhan proses Worst fit: mencari di seluruh list DMB yg paling besar yg tersedia

Pelacakan memori bebas dengan metode buddy system


Berdasar kenyataan bhw komputer bekerja dng bilangan biner diguna-kan utk mempercepat penggabungan DMB-DMB yg bersebelahan pd saat sebuah proses selesai dieksekusi (atau diswap ke disk) Diimplementasikan dng list memori bebas berukuran 1, 2, 4, 8, 16, byte Pengalokasian memori ke proses dila-kukan dng memecah satu blok memori bebas mjd 2 bg yg sama besar. Peme-cahan dilakukan scr rekursif shg dida-pat blok yg besarnya sesuai kebutuhan Keuntungan
Cepat utk proses pembebasan memori

Kerugian
Utilisasi memori yg kurang efisien krn terikat pd aturan 2n fragmentasi internal

0 Initial Req. 70 Req. 35 Req. 80 Return A Req. 60 Return B Return D Return C D D A A A

128

256

512

1024

B B B B C C C C C

Muncul dr kenyataan bhw kebutuhan memori jauh lebih tinggi drpd memori yg tersedia Usaha utk menyederhanakan solusi dng cara abstraksi manajemen memori Paging
Akses ke memori melalui
Mapping dari virtual address Mekanisme page frame

Memory management unit (MMU) sbg mapper Virtual addr space > real addr space mapping yg dinamis (bisa berubah-ubah) Mekanisme akses
1. 2. 3. 4.

Instruksi program berisi perintah akses ke memori Alamat memori virtual address space, diteruskan ke MMU MMU melakukan mapping ke real address Real address diteruskan ke address bus

Paging pada hardware Paging unit mengubah linear addresses ke physical adresses. Paging unit mengecek tipe permintaan akses yang melanggar hak akses dari linear address. Jika akses memori tidak valid, maka akan menghasilkan eksepsi page fault. Regular Paging Linear address 32 bit dibagi menjadi 3 :
Direktori, 10 bit most significant Tabel, 10 bit intermediet Offset, 12 bit least significant

Virtual address space

Virtual page

Page frame

8K - 12K

12K - 16K 16K - 20K 20K - 24K 24K - 28K 28K - 32K

Physical memory address 2


0 - 4K 0 - 4K 4K - 8K 8K - 12K 12K - 16K

4K - 8K

6 0 4 3 x x x 5 x 7 x x x x

16K - 20K 20K - 24K 24K - 28K 28K - 32K 32K - 36K 36K - 40K 40K - 44K 44K - 48K 48K - 52K 52K - 56K 56K - 60K 60K - 64K

Page yg tidak terpetakan akan menyebabkan

page fault

Jika terjadi page fault

1. SO memilih salah satu page frame yg tidak banyak diakses & menyimpan isinya ke disk 2. SO mengambil isi page yg tidak terpetakan dan menyalinnya ke page frame yg baru saja di-flush 3. SO mengubah mapping 4. Melanjutkan eksekusi instruksi

Tujuan: minimisasi overhead, shg hrs dipilih page frame yg tidak banyak digunakan Algoritma Not-Recently-Used
Bit R (referenced) dan M (modified)
R diset bila sebuah page direferensikan M diset bila ada modifikasi thdp isi page

Pertama kali sebuah proses dimulai, R dan M direset. Scr periodis (mis: tiap clock interrupt), bit R direset

Ada 4 kemungkinan kelas:


K1: K2: K3: K4: tidak direferensi, tidak dimodifikasi tidak direferensi, dimodifikasi direferensi, tidak dimodifikasi direferensi, dimodifikasi

Jika ada page fault, SO akan memilih sebuah page dr kelas terendah yg tidak kosong
Contoh: lebih baik memilih (utk dibuang) page yg dimodifikasi tp tidak direferensi dlm waktu yg cukup lama (K2), drpd page yg tdk dimodifikasi tp sering digunakan (K3)

Algoritma FIFO
Page yang paling awal akan dibuang pd saat terjadi page fault Perlu list utk merekam info ttg umur page Algoritma FIFO sering dikombinasikan dng bit R dan M utk meminimisasi overhead akibat dibuangnya page yg sering direferensi

Algoritma Least-Recently-Used
Asumsi: sebuah page yg banyak digunakan pd bbrp instruksi terakhir akan tetap banyak digunakan dlm bbrp instruksi berikut, dmk pula sebaliknya Pilih page yg tidak direferensikan dlm jangka waktu yg paling lama LRU mahal krn harus memonitor status tiap page perlu bantuan hardware khusus atau simulasi software utk mencatat status referensinya (bit R)

Dalam mengakses isi dari sel memori programmer biasanya mengacu pada alamat memori (memory addresses). Pada microprocessor Intel 80x86 memory addresses dibedakan menjadi tiga jenis address : Logical Address Terdapat pada instruksi bahasa mesin untuk menspesifikkan alamat dari sebuah operan atau instruksi. Setiap logical address terdiri dari sebuah segment dan sebuah offset (displacement) yang menyatakan jarak dari awal segment ke alamat aktual.

Linear Address

Merupakan sebuah 32-bit unsigned integer tunggal yang bisa digunakan untuk pengalamatan hingga 4 GB. Biasanya direpresentasikan dalam notasi heksadesimal.

Physical Address

Digunakan untuk pengalamatan sel memori, terdapat pada chip memori.


CPU control unit mengubah logical address ke linear address dengan menggunakan perangkat hardware yang disebut segmentation unit, dan kemudian circuit hardware kedua yang disebut paging unit mengubah linear address ke physical address.

Segmentation pada hardware Dimulai dengan model 80386, microprocessor Intel menampilkan translasi alamat dengan 2 cara berbeda, yang disebut real mode dan protected mode. Real mode untuk memelihara kompatibilitas prosesor dengan model yang lebih lama dan untuk OS agar dapat melakukan bootstrap. Segmentation Registers Segmentation Unit

Segmentatipn Unit melakukan operasi-operasi berikut : Memeriksa TI dari segment selector, untuk memutuskan apakah descriptor table berada pada segment descriptor. Menghitung alamat dari segment descriptor dari index filed segment selector. Menambahkan ke Base field dari segment descriptor, offset dari logical address, sehingga diperoleh linear address

Beberapa bagian dari RAM digunakan oleh kernel untuk menyimpan kode kernel dan struktur data statis kernel. Sisa dari bagian yang digunakan oleh kernel tersebut disebut dynamic memory. Dynamic memory ini tidak hanya digunakan oleh proses, tetapi juga oleh kernel senidri. Kualitas performansi dari keseluruhan sistem tergantung pada seberapa efisien manajemen dynaimc memory. Manajemen memori yang akan dibahas berikut menggambarkan bagaimana kernel mengalokasikan memori untuk keperluannya. Macam teknik manajemen memori :

Page Frame Management Physically contigous memory areas Memory Area Management Physically noncontigous memory areas Noncontigous Memory Area Management

NYATA
(1) Sistem khusus untuk pemakai tunggal

NYATA
Sistem multiprogramming dengan memori nyata

MAYA
Sistem multiprogramming dengan memori nyata

Multipro grammin g dengan pemartis ian tetap

(4) Multiprogram ming dengan pemartisian Dianamis

(5) Sistem Paging Murni

(6) Sistem Segmentas i murni

(7) Kombinasi paging dan segmentas i

(2) Ditempa tkan secara Absolut

(3) Dapat direlokasi

Teknik manajemen (1), (2), (3), (4) merupakan pengolahan untuk kapasitas memori sebatas memori fisik yang tersedia. Teknik ini digunakan untuk memuat program yang berukuranlebih besar dibanding kapasitas fisik memori yang tersedia. Teknik manajemen (5), (6), (7) dapat digunakan untuk mengakali kapasitas memori yang terbatas sehingga dapat dijalankan program yang ukurannya lebih besar dibangdingkan kapasitas memori fisik yang tersedia.