Manajemen Memori Organisasi Sistem Komputer Priyanto E"mail ':'
[email protected]' Mobile':'0811282609'
Program'Studi'Pendidikan'Teknik'InformaDka' Jurusan'Pendidikan'Teknik'Elektronika' FT'UNY''2015'
1'
2'
Secara umum seluruh informasi yang tersimpan di dalam Mi-1 pada saat yang bersaman juga tersimpan di dalam Mi, tetapi tidak sebaliknya. A" B" C"
A" B" C" D" E" F"
A" B" C" D" E" F" G" H" I" 3'
Dalam struktur hirarki memori berlaku persamaan:
Biaya per bit i < Biaya per bit i-1 Waktu akses i > Waktu akses i-1 Kapasitas i > Kapasitas i-1
4'
2",ngkat" Main" Memory"
Register"
Secondary" Memory"
3",ngkat"
Register"
Cache" Memory"
Main" Memory"
Secondary" Memory"
5'
6'
Virtual memory (VM) mendeskripsikan suatu hirarki memori minimal dua tingkat, yang dikelola oleh operating system (OS) sehingga pemrogram memandang seperti memori utama tunggal yang besar dan dapat dialamati secara langsung.
7'
• Untuk'membebaskan'pemrogram'dari'kebutuhan' mengadakan'alokasi'penyimpanan'dan'untuk' mengijinkan'pemakaian'bersama'ruang'memori'antar' pemakai'yang'berbeda'secara'efisien.' • Menciptakan'program'yang'Ddak'tergantung'pada' kapasitas'dan'konfigurasi'sistem'memori'yang' digunakan'selama'eksekusi.' • Untuk'mencapai'Dngkat'(laju)'akses'yang'Dnggi'dan' biaya'per'bit'yang'rendah''dimungkinkan' menggunakan'hirarki'memori'' 8'
• VM'menggunakan'hirarki'dua'Dngkat'terdiri'dari' memori'utama'M1'dengan'kapasitas'S1'dan'memori' sekunder'M2'dengan'kapasitas'S2.''' • Para'pemakai'biasa'memandang'sistem'sebagai' memori'virtual'atau'memori'lojik'tungal'dengan' kapasitas'yang'hampir'Ddak'terbatas.''
9'
• Konsep'VM'mengacu'pada'kasus'dimana'ruang' alamat"lojik"L">>'ruang'alamat"fisik"P.'' • VM'dimplementasikan'dengan'menyediakan' mekanisme'otomaDs'untuk'pemetaan'alamat,'' dari'alamat'lojik'L'ke'alamat'fisik'P.'' >>'Jauh'lebih'besar' 10'
• Komputer'memiliki"field"alamat"16Hbit'pada'instruksinya,' program'pada'komputer'ini'dapat'memiliki'ruang'alamat' lojik'atau'alamat'virtual'sebesar'65536'word'(216),' dengan'alamat'0..65535.' • Tersedia'alamat'fisik'(RAM)'dengan'kapasitas'4096'word' (4'K).''' • Tanpa'virtual'memory,'pemetaan'hanya'dilaksanakan' antara'alamat'lojik'0..4095'ke'alamat'fisik'0..4095.''
11'
Virtual
Terdapat'Error' Trap,'program' berhenD'(hang)'
!
Fisik
0
0
1
1
2
2
...
...
4095
4095
4096
Tdk Ada
...
Tdk Ada
65535
Tdk Ada 12'
Saat'memerlukan'eksekusi'alamat'Virtual'4096:' • Isi'memori'utama'akan'disimpan'ke'memori' sekunder' • Word'4096..8191'di'muat'ke'memori'utama' • Peta'alamat'diubah'untuk'memetakan'alamat'' 4096'!'0' 8191'!'4095' • Eksekusi'dilanjutkan,'seolah"olah'Ddak'terjadi' sesuatu' 13'
14'
• Teknik'overlaying'otomaDs'tersebut'disebut'dengan' paging'' • Potongan"potongan'program'yang'dibaca'dari'memori' sekunder'disebut'pages.''' • Pada'prinsipnya'kasus'tersebut'menunjukkan'bahwa' program'yang'tersimpan'di'dalam'memori'sekunder' (disk)'Ddak'dapat'seluruhnya'di'load'ke'memori'utama' (RAM).'
15'
• Ruang"alamat"virtual"dibagi'menjadi'sejumlah'page' dengan'ukuran'yang'sama,'ukuran'page'berkisar'antara' 512'sampai'4096'alamat.' • Ruang"alamat"fisik'dibagi'menjadi'potongan"potongan' dengan'cara'yang'serupa,'yang'disebut'dengan'page" frame.''' • Ukuran'page"frame'sama'dengan'ukuran'page.''' • Pada'kenyataanya,'page"frame'dapat'berjumlah' puluhan,'ratusan,'bahkan'ribuan'untuk'mesin'yang' besar.'' 16'
0' 4096' 8192' 12288' 16384' 20480' 24576' 28672' 32768' 36864' 40960' 45056' 49152' 53248' 57344' 61440'
Contoh'Pembagian'Page' dan'Page"frame''
Page'0' Page'1' Page'2' Page'3' Page'4' Page'5' Page'6' Page'7' Page'8' Page'9' Page'10' Page'11' Page'12' Page'13' Page'14' Page'15'
4K'
• Address"space''64K'dibagi'menjadi' 16"page'masing"masing'4K' • Main"memory'32K'dibagi'menjadi'' 8"page"frame'masing"masing'4K' 0' 4096' 8192' 12288' 16384' 20480' 24576' 28672'
Page'frame'0' Page'frame'1' Page'frame'2' Page'frame'3' Page'frame'4' Page'frame'5' Page'frame'6' Page'frame'7' 17'
Contoh'Pembagian'Page' dan'Page"frame''
Page'0'
0'"'4095'
Page'1'
4096"8191'
Page'2'
8192"12287'
Page'3'
12288"16383'
Page'4'
16384"20479'
Page'5'
20480"24575'
Page'6'
24576"28671'
Page'7'
28672"32767'
Page'8'
32768"36863'
Page'frame'0'
0'"'4095'
Page'9'
36864"40959'
Page'frame'1'
4096"8191'
Page'10'
40960"45055'
Page'frame'2'
8192"12287'
Page'11'
45056"49151'
Page'frame'3'
12288"16383'
Page'12'
49151"53247'
Page'frame'4'
16384"20479'
Page'13'
53248"57343'
Page'frame'5'
20480"24575'
Page'14'
57344"61439'
Page'frame'6'
24576"28671'
Page'15'
61440"65535'
Page'frame'7'
28672"32767'
4K'
• Address"space''64K'dibagi'menjadi' 16"page'masing"masing'4K' • Main"memory'32K'dibagi'menjadi'' 8"page"frame'masing"masing'4K' 4K'
18'
P0
0 - 4095
16'bit'Virtual'Address'
P1
4096-8191
P2
8192-12287
0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0
P3
12288-16383
P4
16384-20479
P5
20480-24575
P6
24576-28671
P7
28672-32767
P8
32768-36863
P9
36864-40959
P 10 40960-45055 P 11
45056-49151
P 12 49151-53247 P 13 53248-57343 P 14 57344-61439 P 15 61440-65535
4'bit'untuk'' Nomor'' Virtual'Page'
12'bit'menunjukkan'' alamat'di'dalam'page'
• Pada'contoh'ini,'alamat'16'bit'dibagi'menjadi'dua:' " 4'bit'menunjukkan'nomor'virtual'page'' " 12'bit'menunjukkan'alamat'di'dalam'page'yang' dipilih,'' • Alamat'16'bit'menunjukkan'12310'' (0011'000000010110)'yang'berkaitan'dengan'' alamat'22'pada'page'3.''' • Bila'virtual'address'0'dan'page'3'ada'pada'alamat' fisik'12288,'maka'virtual'address'22'harus'berada' pada'alamat'12310.' 19'
P0
0 - 4095
16'bit'Virtual'Address'
P1
4096-8191
P2
8192-12287
0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
P3
12288-16383
P4
16384-20479
P5
20480-24575
P6
24576-28671
P7
28672-32767
P8
32768-36863
P9
36864-40959
4'bit'untuk'' Nomor'' Virtual'Page'
12'bit'menunjukkan'' alamat'di'dalam'page'
• Contoh'
P 10 40960-45055 P 11
45056-49151
P 12 49151-53247 P 13 53248-57343 P 14 57344-61439 P 15 61440-65535
20'
P0
0 - 4095
P1
4096-8191
P2
8192-12287
P3
12288-16383
P4
16384-20479
P5
20480-24575
P6
24576-28671
P7
28672-32767
P8
32768-36863
P9
36864-40959
P 10 40960-45055 P 11
Hubungan'antara'Page'dan'' Virtual'address'" Contoh'Page'3'(SeDap'PAGE'4K)' • diawali'dengan'alamat'0'' • diakhiri'dengan'4095' 12288" 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Page'3'
16383"
45056-49151
P 12 49151-53247 P 13 53248-57343 P 14 57344-61439 P 15 61440-65535
0'
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Page'3'
4095' 21'
P0
0 - 4095
P1
4096-8191
P2
8192-12287
P3
12288-16383
P4
16384-20479
P5
20480-24575
P6
24576-28671
P7
28672-32767
P8
32768-36863
P9
36864-40959
P 10 40960-45055 P 11
Hubungan'antara'Page'dan'' Virtual'address'" Page"12" • diawali'dengan'alamat'0'' • diakhiri'dengan'4095' 49152" 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Page'12'
53247"
45056-49151
P 12 49152-53247 P 13 53248-57343 P 14 57344-61439 P 15 61440-65535
0'
1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Page'12'
4095' 22'
• Setelah'mengetahui'bahwa'virtual'page'3'diperlukan,' operaDng'system'akan'mencari'dimana'virtual'page'3' diletakkan.''' • Terdapat'sembilan'kemungkinan:'delapan'page'frame'di' main'memory,'atau'di'mana'saja'di'memori'sekunder,' karena'Ddak'semua'virtual'page'dapat'berada'di'main' memory'pada'saat'yang'bersaman.' • Untuk'mencari'yang'mana'dari'sembilan'kemungkinan'ini' benar,'operaDng'system'melihat'di'dalam'page(table,' yang'memiliki'satu'entri'untuk'seDap'16'virtual'page.' 23'
• pertama'adalah'satu'bit'yang'menunjukkan'apakah' virtual'page'ada'di'main'memory'atau'Ddak.'' • Kedua'memberitahukan'alamat'dimana'virtual'page' tersimpan'di'dalam'memori'sekunder'(sector'dan'track)' keDka'Ddak'berada'di'main'memory.''Alamat'ini' diperlukan'agar'dapat'ditemukan'dan'dibawa'bila' diperlukan'dan'kemudian'dikembalikan'ke'tempat'semula' di'memori'sekunder'keDka'Ddak'diperlukan'lagi'di'main' memory.''' • Ke,ga'adalah'field'3"bit'yang'menunjukkan'page"frame" apabila'page'berada'di'main'memory.''' 24'
Page'Table' Page 0 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15
Page'Table"Terdiri"dari"3"Field'
1
001101101101
1'Ada'di'main'memory' 0'Tidak'ada'di'main'memory'
110 Nomor'' Page"Frame"
Alamat'Memori'Sekunder'
25'
16"bit"Virtual"Address"
0' 0' 1' 1' 0' 0' 0' 0' 0' 0' 0' 1' 0' 1' 1' 0' Alamat"Virtual"12310" Virtual'Page'
Page' Table'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
Alamat'di'dalamVirtual'Page'='22'
110
Penerjemahan'dari' Alamat'Lojik'' ke'Alamat'Fisik'
MAR" 1' 1' 0' 0' 0' 0' 0' 0' 0' 0' 1' 0' 1' 1' 0' Alamat'Fisik'24598' 26'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0
001 000 XX 010 XX 110 111 XX 011 XX XX 101 XX XX 100 XX
Virtual Page 1
Page frame 0
Virtual Page 0
Page frame 1
Virtual Page 3
Page frame 2
Virtual Page 8
Page frame 3
Virtual Page 14 Page frame 4 Virtual Page 11 Page frame 5 Virtual Page 5
Page frame 6
Virtual Page 6
Page frame 7 27'
28'
16'bit'Virtual'Address'
0' 0' 1' 1' 0' 0' 0' 0' 0' 0' 0' 1' 0' 1' 1' 0' Alamat'Virtual'12310' Virtual'Page'
Page' Table'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Alamat'di'dalamVirtual'Page'='22'
1
110
1
101
1
011
Penerjemahan"dari" Alamat"Lojik"ke" Alamat"Fisik"
MAR" 1' 1' 0' 0' 0' 0' 0' 0' 0' 0' 1' 0' 1' 1' 0' Alamat'Fisik'24598' 29'
16'bit'Virtual'Address'
0' 1' 0' 1' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' Alamat'Virtual'20480' Virtual'Page'
Page' Table'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Alamat'di'dalamVirtual'Page'='..'
1
110
1
101
1
011
Penerjemahan"dari" Alamat"Lojik"ke" Alamat"Fisik"
MAR" 1' 0' 1' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' Alamat'Fisik'
30'
16'bit'Virtual'Address'
0' 1' 1' 1' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 1' Alamat'Virtual'28673' Virtual'Page'
Page' Table'
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Alamat'di'dalamVirtual'Page'='...'
1
110
1
101
1
011
Penerjemahan"dari" Alamat"Lojik"ke" Alamat"Fisik"
MAR" 0' 1' 1' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 0' 1' Alamat'Fisik''
31'
CPU"
A0'
A14'
32'
33'
• Pemilihan'page'tertentu'yang'akan'dibuang'secara' random'bukan'ide'yang'baik.'' • Suatu'cara'untuk'melakukan'hal'ini'adalah'dengan' melakukan'prediksi'kapan'referensi'ke'seDap'page' akan'terjadi'dan'membuang'page'yang'diramalkan' Ddak'akan'diacu'dalam'waktu'yang'cukup'lama.'' • Dua'page2replacement2policy2yang'paling'poluler:' – first.in(first.out'(FIFO)'' – least(recently(used"(LRU)' 34'
• FIFO'melakukan'replacement'page'dengan'cara' membuang'page'yang'paling'lama'di'load'dari'memori' sekunder,'Ddak'tergantung'pada'kapan'page'tersebut' terakhir'diacu.''' • Yang'berkaitan'erat'dengan'page"frame'adalah'counter,' yang'mungkin'diletakkan'dalam'page"table.' • Pada'awalnya'semua'counter'diset'ke'0.''Setelah'seDap' page2fault'ditangani,'counter'untuk'masing"masing'page' yang'ada'di'memori'ditambah'dengan'satu,'dan'counter' untuk'page'yang'baru'saja'diambil'diset'ke'0.'' 35'
• LRU melakukan replacement page dengan cara membuang page yang paling lama tidak digunakan oleh prosesor. • Hal ini berdasar pada anggapan yang sangat masuk akal yaitu page yang paling lama tidak digunakan memiliki kemungkinan yang kecil untuk digunakan pada waktu yang akan datang.
36'
• Main'memory'memiliki'Dga'page'frame.''' • Program'memiliki'5'page'(Page'1..Page'5)'' • Urutan'Eksekusi'program" 2""3""2""1""5""2""4""5""3""2""5""2"
37'
Time'
1
2
3
4
5
6
7
8
9
10 11 12
Page'
2
3
2
1
5
2
4
5
3
2
5
2
2* 2* 2* 2* 5 5 5* 5* 3 3 3 3 3 3 3 3* 2 2 2 2* 2* 5 5 1 1 1* 4 4 4 4 4* 2 Hit
Hit
Hit
38'
Time'
1
2
3
4
5
6
7
8
9
10 11 12
Page'
2
3
2
1
5
2
4
5
3
2
5
2
2* 2* 2 2 2* 2 2 2* 3 3 3* 3* 3 3* 3* 5 5 5* 5 5 5* 5 5 1 1 1* 4 4 4* 2 2 2 Hit
Hit
Hit
Hit Hit
39'
• Secara'umum,'prosesor'16"bit'menyediakan'memori' manajemen'yang'terbatas'di'dalam'chip.''' • Sebagai'contoh'prosesor'68000'memiliki'mode'system' (supervisory)'dan'mode'normal'(user).''' • Hal'ini'mengijinkan'pemisahan'antara'perangkat'lunak' sistem'dengan'program'pemakai.''Dan'lagi,'dalam'seDap' mode'terdapat'ruang'program'dan'ruang'data,'sehingga' antara'program'dan'data'terpisah.''' • Di'sisi'lain,'prosesor'8086'dapat'menentukan'empat' segmen'yang'terpisah'yang'dapat'dipetakan'di'mana'saja' di'dalam'ruang'alamat'fisik''1'MB'untuk'relokasi'program.' 40'
• Bagaimanapun'juga,'keisDmewaan'built7in'yang' terbatas'ini'Ddak'dapat'memenuhi'kebutuhan' beberapa'aplikasi.''' • Berdasarkan'alasan'ini,'pembuat'prosesor' memberikan'divais'khusus'yang'dikenal'dengan' memory2management2unit'(MMU).''' • Dengan'MMU'ini'kita'dapat'menambahkan' kemampuan'manajemen'memori'yang'luas'secara' eksternal.'
41'
• Contoh'MMU'yang'terpisah'dengan'CPU'adalah'MMU' chip'tunggal'68451'untuk'prosesor'motorola'seri' 68000,'yang'mendukung'lingkungan'virtual'memory' dengan'demand2paging'dan'alamat'lojik/fisik'32"bit.''' • Sedangkan'contoh'MMU'yang'terintegrasi'(built"in)' dengan'CPU'adalah'yang'dimiliki'oleh'prosesor'80286' dan'80386.''
42'
43'