3. Tujuan Belajar
Setelah mempelajari materi dalam bab ini ,
mahasiswa diharapkan mampu :
Memahami latar belakang manajemen memori
Memahami maksud ruang alamat logika dan ruang alamat fisik
Memahami teknik swapping pada manajemen memori
Memahami teknik alokasi memori secara berurutan
Memahami teknik alokasi memori tak berurutan yaitu sistem
paging dan segmentasi
Mengetahui implementasi manajemen memori
4. Latar Belakang
Memori adalah pusat dari operasi pada sistem
komputer modern . Memori adalah array besar
dari word atau byte, yang disebut alamat . CPU
mengambil instruksi dari memory berdasarkan
nilai dari program counter . Instruksi ini
menyebabkan penambahan muatan dari dan ke
alamat memori tertentu.
5. Pengikatan Alamat ( Adress Binding )
Pengikatan alamat adalah cara instruksi dan data (
yang berada di disk sebagai file yang dapat
dieksekusi ) dipetakan ke alamat memory .
Sebagian besar sistem memperbolehkan sebuah
proses user (usser process)untuk meletakkan di
sembarang tempat dari memori fisik . Sehingga,
meskipun alamat dari komputer dimulai pada
00000, alamat pertama dari prosess user tidak
perlu harus dimulai 00000.
6. Instruksi pengikatan instruksi dan data ke
alamat memori dapat dilakukan pada saat :
Compile time : jika lokasi memori diketahui sejak awal , kode
absolut dapat dibangkitkan , apabila terjadi perubahan harus
dilakukan ulang .
Lood time : harus membangkitkan kode relokasi jika lokasi
memori tidak diketahui pada saat waktu kompilasi
Executive time : pengikatan ditunda sampai waktu eksekusi
jika proses dapat dipindahkan selama eksekusi dari satu
segmen ke segmen memori lain.
8. Dinamic Loading
Untuk memperoleh utilitas ruang memori , dapat menggunakan
dynamic loading dengan dynamic loading , sebuah rutin tidak
disimpan di memori sampai dipanggil semua rutin disimpan pada
disk dalam format relocatable load. Mekanisme dari dynamic
loading adalah program utama li-load dahulu dan dieksekusi .
• Keuntungan dari dynamic loading adalah rutin yang tidak
digunakan tidak pernah li-load.
9. Dinamic Linking
Dinamic linking biasanya digunakan dengan
sistem library , seperti language subroutine
librari . Tanpa fasilitas ini , semua program
pada sistem perlu mempunyai copy dari
library language di dalam executable image.
Kebutuhan ini menghabiskan baik ruang
disk maupun memori utama.
10. Overlay
Teknik overlay biasanya digunakan untuk memungkinkan
sebuah proses mempunyai jumlah yang lebih besar dari
memori fisik daripada alokasi memori yang
diperuntukkan. Ide dari overlay adalah menyimpan di
memori hanya instruksi dan data yang diperlukan pada
satu waktu.
Sebagai contoh misalnya terdapat two-pass assembler .
Selama pass 1 , dibangun table symbol, dan selama pass 2
dibangkitkan kode bahasa mesin . Kita dapat membagi
assembler ke dalam kode pass 1, kode pass 2 , table
symbol dan rutin umum yang digunakan baik pada pass 1
maupun pass 2 .
Overlay tidak membutuhkan dukungan khusus dari sistem
operasi.
11. Ruang Alamat Logika Dan Ruang Alamat
Fisik
Alamat yang dibangkitkan oleh CPU
disebut alamat logika (logical address)
dimana alamat terlihat uni memory yang
disebut alamat fisik (physycal address).
Tujuan utama manajemen memori adalah
konsep meletakkan ruang alamat logika ke
ruang alamat fisik
13. Swapping
Sebuah proses harus berada dimemori untuk dieksekusi.
Proses juga dapat titukar (swap) sementara keluar memori
ke backing store dan kemudian dibawa kembali ke
memori untuk melanjutkan eksekusi.
Backing store berupa disk besar dngan kecepatan tinggi yang
cukup untuk meletakkan copy dari semua memory image
untuk semua user , sistem juga harus menyediakan akses
langsung ke memory image tersebut .
Teknik swappng yang sudah dimodifikasi ditemui pada
beberapa sistem misalnya Linux, dan Windows.
14. Alokasi Berurutan
Single partition allocation
pada single partition allocation diasumsi
sistem operasi ditempatkan di memori
rendah dan proses user dieksekusi di
memori tinggi.
15. Multiple Partition Allocation
pada multiple partition allocation ,
mengijinkan memori user dialokasikan
untuk proses yang berbeda yang berada di
antrian input ( input quene) yang menunggu
dibawa ke memori
16. Fregmentasi
Fregmentasi Eksternal terjadi pada situasi dimana
terdapat cukup ruang memori total unuk
memenuhi permintaan , tetapi tidak dapat
langsung dialokasikan karena tidak berurutan .
Fregmentasi Internal terjadi pada situasi dimana
memori yang dialokasikan lebih besar daripada
memori yang diminta tetapi untuk satu partisi
tertentu hanya berukuran kecil sehingga tidak
digunakan .
17. PAGING
Konsep Dasar Paging
Paging merupakan kemungkinan solusi untuk permasalahan
fragmentasi eksternal dimana ruang alamat logika tidak
berurutan mengijinkan seuah proses dialokasikan pada
memori fisik yang terakhir tersedia.
Setiap alamat dibangkitkan oleh CPU dengan membagi ke
dalam 2 bagian yaitu :
Page number (p) digunakan sebagai indeks ke dalam table
page (page table) . Page table berisi alamat basis dari
setiap page pada memori fisik
Page offset (d) mengkombinasikan alamat basis dengan
page offset untuk mendefinisikan alamat memori fisik
yang dikirim ke unit memori.
20. Implementasi Sistem Paging
Pada dasarnya terdapat 3 metode yang berbeda
untuk implementasi tabel page :
1. Tabel page diimplementasikan sebagai
kumpulan dari “dedicated” register. Exc : DEC
PDP-11
2. Tabel page disimpan pada main memori dan menggunakan
page table bas registe” (PTBR) untuk menunjuk ke tabel
page yang disimpan di main memori.
3. Menggunakan perangkat keras cache yang khusus , kecil
dan cepat yang disebut essociative register atau translation
look-aside (TLBs) .
21. Proteksi
Pada model page, proteksi memori menggunakan bit
proteksi yang diasosiasikan untuk setiap frame.
Pada tabel page diberi tambahan “valid-invalid” Nilai
“valid” mengindikasikan bhwa page berada pada
ruang alamat logika yang berarti merupakan page
yang legal (valid) . Nilai “invalid”
mengindikasikan bahwa page tidak berada pada
ruang alamat logika atau page yang ilegal (invalid)
. Sistem operasi mengeset bit ini untuk setiap page
untuk mengijinkan atau tidak mengakses page.
22. Multilevel Paging
Model multilevel paging digunakan pada sistem yang
mempunyai ruang alamat logika yang sangat besar yaitu
antara 232 sd 264
Untuk sistem dengan ruang alamat logika 32 bit dapat
dipecahkan menggunakan skema two level paging . Pada
skema ini alamat logika dibagi menjadi 20 bit untuk nomor
page dan 12 bit untuk page offset . Karena tabel page juga
merupakan page maka nomor page lebih jauh akan dipecah
manjadi 10 bit untuk nomor page dan 10 bit untuk page
offset . Maka alamat logika adalah sbb :
10 10 12
p1 p2 d
23. Shared Page
Satu copy kode read-only dibagi ke beberapa
proses (misalnya editor teks , compiler dan
sistem window) . Kode yang dibagi harus
berada pada lokasi ruang alamat logika yang
sama untuk semua proses.
kode dan data pribadi (private) untuk setiap
proses diletakkan terpisah dari kode dan data
pribadi proses lain . Page untuk kode dan data
pribadi dapat diletakkan di sembarang tempat
pada ruang alamat kogika .
24. Segmentasi
kerugian utama dari paging adalah terdapat
perbedaan antara pandangan user mengenai
memori dan memori fisik aktual.
25. Konsep Dasar Segmentasi
Konsep segmentasi adalah user atau programmer tidak
memikirkan sejumlah rutin program yang dipetakan ke
main memori sebagai array linier dalam byte tetapi
memori dilihat sebagai kumpulan segmen dengan
ukuran berbeda-beda .
Segmentasi adalah skema manajemen memori yang
memungkinkan user untuk melihat memori tsb .
Sebuah Program adalah kumpulan segmen . Suatu segmen
adalah unit logika seperti program utama , prosedur,
fungsi, metode , obyek , variabel lokal , variabel global,
blok umum , stack, tabel simbol, array ,dll .
26. Padanga user terhadap sistem segmentasi
dapat dilihat pada gambar dibawah ini :
Subroutine
Stack
Symbol
table
Main
programSqrt
27. Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor
segmen (s) dan offset (d) yang dituliskan dengan
<nomor segmen , offset>
Pemetaan alamat logika ke alamat fisik menggunakan
tabel segmen (segment table) , terdiri dari
Segmen basis(base) berisi alamat fisik awal
Segmen limit merupakan panjang segmen
Segmen-table base register (STBR)
Segmen-table
28. Proteksi dan Sharing
Proteksi bit dapat diletakkan pada tabel
segmen . Segmen intruksi dapat diproteksi
sebagai segmen read-only , segmen data
dapat diproteksi sebagai segmen read-only
atau execute only, segmen data dapat
diproteksi sebagai segmen read-write .
Denga segmentasi , juga dimungkinkan
membagi kode atau data dengan proses lain .
29. SEGMENTASI DENGAN PAGING
1. Multics
pada sistem multics , alamat logika dibentuk dari nomor segmen 18 bit
dan offset 16 bit . Dengan ukuran segmen 64k word , setiap segmen
terdiri dari 36 bit , rata-rata ukuran segmen dapat lebih besar dan
fregmentasi eksternal menjadi permasalahan karena membutuhkan
banyak rangmemori.
Solusi yang diadopsi pada multics adalah dengan melakukan paging
pada segmen (page file segment).
Nomor segmen (18 bit ) dibagi kedalam 8 bit nomor page dan 10 bit
page offset , sehingga tabel page terdiri dari 28 entry sehingga
alamat logika pada multics adalah sbb:
8 10 6 10
s1 s2 d1 d2
30. Keterangan : Dimana s1 adalah indeks ke
tabel page dari tabel segmen dan s2 adalah
displacement dalam page dari tabel segmen .
d1 adalah dispacement ke tabel page dari
segmen yang tepat dan d2 adalah
displacement ke alamat yang diakses.
31. 2. Intel 30386
IBM OS/2 versi 32 bit adalah sistem operasi yang menggunakan arsitektur 30386 (dan
3086) . Intel 30386 menggunakan segmentasi dengan panjang untuk manajemen
memori. Maksimum jumlah segmen per proses adalah 16k . Setiap segmen
maksimal berukuran 4 gigabytes. Ukran page adalah 4k byte .
Ruang alamat logika dari suatu proses dibagi ke dalam 2 partisi :
Partisi 1 terdiri dari 8k segmen yang pribadi (private) untuk proses tsb.
Partisi 2 terdiri dari 8k segmen yang digunakan bersama untuk semua proses.
Informasi mengenai partisi pertama disimpan dalam local descriptor table (LDT)
sedangkan informasi mengenai partisi kedua disimpan dalam global descripor
table (GDT) , setuap entry pada tabel LDT dan GDT terdiri dari 8 byte ,
dengan informasi detail tentang segmen tertentu termasuk lokasi basis dan
panjang segmen . Alamat logika adalah pasangan ( selector , offset) dimana
selector sebanyak 16 bit.
32. Dimana s menyatakan nomor segmen, g
menyatakan apakah segmen merupakan GDT
atau LDT dan p menyatakan proteksi.
Karena setiap segmen adalah page dengan
ukuran 4kb per page , sebuah page table terdiri
dari 1 juta entri. Dan karena setiap entri terdiri
dari 4 byte , setiap proses memerlukan 4MB
ruang alamat fisik untuk tabel page saja . Solusi
yang digunakan menggunakan skema two-level
paging .