Memory – Ch 8 Memory Management Main Memory Management Latar Belakang
Document Sample


Memory Management
Memory n Latar Belakang
– Ch. 8 n Address space: lojik vs fisik
n Swapping
SISTIM OPERASI n Contiguous Allocation
(Operating System) n Paging
IKI- 20230 n Segmentation
Johny Moningka n Segmentation dengan Paging
(moningka@cs.ui.ac.id)
Fakultas Ilmu Komputer
Universitas Indonesia
Semester 2000/2001
Deadlock JM-2000/v1.1/2
Main-Memory Management Latar Belakang
n Memori sebagai tempat penyimpanan instruksi/data dari • Untuk dieksekusi program harus berada dalam
program memori
n Storage yang cepat sehingga dapat mengimbangi kecepatan
eksekusi instruksi CPU • Alokasi resources memori: ruang (tempat storage)
n Terdiri dari “array of words/bytes” yang besar untuk menyimpan data, instruksi, stack dll.
n Address digunakan untuk mengakses data (shared oleh CPU dan • Problem: Memori secara fisik (besarnya storage)
I/O devices)
sangat terbatas ukurannya,
n Umumnya main memory bersifat “volatile” – tidak
permanent. Isinya akan hilang jika komputer di matikan. • Manajemen storage: alokasi dan dealokasi untuk
n Manajement memori: proses-proses dalam menggunakan address space.
n Melacak pemakaian memori (siapa dan berapa besar?). • Utilisasi: optimal dan efisien
n Memilih program mana yang akan diload ke memori.
n Alokasi dan De-alokasi memori fisik untuk program.
Deadlock JM-2000/v1.1/3 Deadlock JM-2000/v1.1/4
1
Address Binding Program & Memori (review ...)
n Sebelum eksekusi program berada di dalam disk,
dan saat dieksekusi ia perlu berada pada suatu S1 O1
lokasi dalam memori fisik S2 O2
L binary L memory
n Address binding adalah menempatkan address
Loading
relatif ke dalam adress fisik memori. Sn On
Linking
n Dapat berlangsung dalam di salah satu tahapan:
Kompilasi/
kompilasi, load, atau eksekusi dari suatu Si = source program
Translation
Oi = object module
program. L binary = relocatable load module
L memory = executable
Deadlock JM-2000/v1.1/5 Deadlock JM-2000/v1.1/6
Program & Memori Address Binding: choice
n Bagaimana OS menempatkan (load) program di n Kompilasi:
memori? n Jika lokasi dari proses sudah fixed pada alamat fisik memori,
maka saat kompilasi address- address instruksi dan data
n kompilasi & linking menerjemahkan semua simbol, ditentukan berdasarkan referensi alamat fisik
data (i.e branch) berdasarkan alamat acuan absolut, n jika terjadi perubahan pada lokasi tersebut maka harus
misalkan alamat mulai dari 0 direkompilasi
n proses mapping program => lokasi memori n Loading
sebenarnya disebut relokasi n Hasil kompilasi masih menunjuk address-address secara relatif,
• jika program berada di memori (misalnya pada partisi tetap saat di-load address-address disubstitusi dengan alamat fisik
alamat awal S), maka semua alamat lojikal dalam program berdasar relokasi proses yang diterima
harus di -konversi ke alamat fisikal (shift sebesar S) n Jika terjadi perubahan relokasi maka code di -load ulang
• statis: relokasi alamat dilakukan sebelum program dijalankan
• dinamis: relokasi alamat dilakukan pada saat referensi setiap
instruksi atau data
Deadlock JM-2000/v1.1/7 Deadlock JM-2000/v1.1/8
2
Dynamic Loading Address Binding: saat eksekusi
n Rutin tidak akan di load jika tidak dipanggil (execute). n Binding bisa dilakukan ulang selama proses
n Pro’s: utilisasi memory-space, rutin yang tidak dieksekusi n Hal ini untuk memungkinkan pemindahan proses dari
tidak akan dipanggil (program behaviour: 70 -80% dari satu lokasi ke lokasi lain selama run.
code).
n Perlu adanya dukungan hardware untuk
n Handling execption, error, atau pilihan yang jarang digunakan.
pemetaan adress
n Tidak perlu dukungan khusus dari OS:
n Overlay: memori terbatas dan program lebih besar dari memori. n Contoh: base register dan limit register.
n Disusun berdasarkan hirarkis dalam bentuk tree: root – branch n Informasi ini disimpan pada PCB dari setiap proses.
dan leaves (misalkan root harus ada di memory, sedangkan yang
lain dapat di load bergantian).
n Tidak dilakukan otomatis tapi harus dirancang oleh programmer
(user).
Deadlock JM-2000/v1.1/9 Deadlock JM-2000/v1.1/10
Dynamic Linking Stub untuk Dynamic Linking
n Linking ditunda sampai saat eksekusi n Skema referensi dengan “stub”
n code menjadi berukuran kecil n Saat stub dieksekusi ia memeriksa apakah rutin ybs
n Program-program user tidak perlu menduplikasi sudah berada dalam memori (diakses oleh proses lain
system library yang run), kalau belum ada maka rutin tsb di-load
n system library dipakai bersama n Stub diganti oleh address dari rutin tsb.
n Mengurangi pemakaian space: satu rutin library di n Setelah itu program run dengan referensi rutin-rutin
memory digunakan secara bersama oleh sekumpulan secara normal dengan address yang benar
proses.
n Contoh: DLL (dynamic linking library) Win32
n Mekanisme menggunakan skema Stub
n stub: suatu potongan kecil code menggantikan
referensi rutin (dan cara meload rutin tsb)
Deadlock JM-2000/v1.1/11 Deadlock JM-2000/v1.1/12
3
Address Space: Lojik vs Fisik Memory Management Unit (MMU)
n Konsep ruang address lojik terhadap ruang address fisik n Perangkat keras yang memetakan adress lojik ke
pokok dalam manajemen memori address fisik
n Address lojik: address yang di-generate oleh CPU n Dalam skema MMU
(disebut juga virtual address)
n Berdasarkan eksekusi program n Menyediakan perangkat register yang dapat di set
oleh setiap CPU: setiap proses mempunyai data set
n Note: Besarnya address program dapat lebih besar dari kapasitas
memori fisik. register tsb (disimpan di PCB).
• Base register dan limit register.
n Address fisik: address yang dikenal oleh unit memory
n Address sebenarnya yang digunakan untuk mengakses memori. n Harga dalam register base/relokasi ditambahkan ke
setiap address proses user pada saat run di memori
n Perlu ada penerjemahan (translasi) dari address lojik ke
address fisik. n Program user hanya berurusan dengan address-
address lojik saja
Deadlock JM-2000/v1.1/13 Deadlock JM-2000/v1.1/14
Contoh Kerja MMU Swapping
n Jika memori fisik telah penuh:
n Proses dapat di swap secara temporer dari memori
(swap-out) ke dalam backing store (disk),
Relokasi register
n Dikembalikan (swap-in) ke dalam memori untuk
14000 melanjutkan eksekusi
Address lojik Address fisik
346 14346
memori n Backing store (biasanya disk)
CPU + n Cukup besar menyimpan semua image memori user
n Direct access ke dalam image-image tsb
MMU
Deadlock JM-2000/v1.1/15 Deadlock JM-2000/v1.1/16
4
Swap in/out
Deadlock JM-2000/v1.1/17
5
Get documents about "