TLB Reach Struktur Program

memori untuk buffer. Saat pemindahan selesai, CPU diinterupsi. Gambar 8.6. Why we need IO Interlock Gambar 8.7. Blok Struktur Sebuah proses mengeluarkan permintaan MK dan diletakkan di antrian untuk MK tersebut. Sementara itu, CPU diberikan ke proses-proses lain. Proses-proses ini menimbulkan kesalahan halaman dan menggunakan algoritma penggantian global, salah satu dari mereka menggantikan halaman yang mengandung memori buffer untuk proses yang menunggu tadi. Halaman-halaman untuk proses tersebut dikeluarkan. Kemudian, saat permintaan MK bergerak maju menuju ujung dari antrian peranti, MK terjadi ke alamat yang telah ditetapkan. Bagaimana pun, frame ini sekarang sedang digunakan untuk halaman berbeda milik proses lain. Harus diperhatikan agar urutan dari kejadian-kejadian di atas tidak muncul. Ada dua solusi untuk masalah ini. Salah satunya adalah jangan pernah menjalankan MK kepada memori pengguna. Sedangkan solusi lainnya adalah dengan mengizinkan halaman untuk dikunci dalam memori agar tidak terjadi page out akibat suatu proses mengalami page fault. 59

8.9. Windows XP

Windows XP mengimplementasikan memori virtual dengan menggunakan permintaan halaman melalui clustering. Clustering menangani kesalahan halaman dengan menambahkan tidak hanya halaman yang terkena kesalahan, tetapi juga halaman-halaman yang berada disekitarnya ke dalam memori fisik. Saat proses pertama dibuat, diberikan working set minimum yaitu jumlah minimum halaman yang dijamin akan dimiliki oleh proses tersebut dalam memori. Jika memori yang tersedia mencukupix, proses dapat diberikan halaman sampai sebanyak working set maximum. Manager memori virtual akan menyimpan daftar dari bingkai yang bebas. Terdapat juga sebuah nilai batasan yang diasosiasikan dengan daftar ini untuk mengindikasikan apakah memori yang tersedia masih mencukupi. Jika proses tersebut sudah sampai pada working set maximum -nya dan terjadi kesalahan halaman, maka dia harus memilih bingkai pengganti dengan aturan penggantian lokal. Saat jumlah memori bebas jatuh di bawah nilai batasan, manager memori virtual menggunakan sebuah taktik yang dikenal sebagai automatic working set trimming untuk mengembalikan nilai tersebut di atas nilai batas. Cara ini berguna untuk mengevaluasi jumlah halaman yang dialokasikan kepada proses. Jika proses telah mendapat alokasi halaman lebih besar daripada working set minimum-nya, manager memori virtual akan mengurangi jumlah halamannya sampai working set minimum. Jika memori bebas sudah tersedia, proses yang bekerja pada working set minimum akan mendapatkan halaman tambahan.

8.10. Rangkuman

Proses kernel menyaratkan memori yang akan dialokasikan menggunakan halaman-halaman yang saling berdekatan. Sistem buddy mengalokasikan memori untuk proses kernel sebesar 2k 2, 4, 8,16,..., yang mengakibatkan timbulnya fragmentasi. Alternatif lainnya adalah dengan alokasi slab yang mengalokasikan memori sebesar ukuran object yang dibutuhkan, sehingga tidak ada memori yang terbuang sia-sia karena tidak adanya fragmentasi. Mengenai sistem paging, ternyata ada beberapa hal lain yang harus kita pertimbangkan dalam pembuatan sistem paging selain mempertimbangkan algoritma penggantian halaman dan aturan pengalokasian memori. Hal lain yang harus kita pertimbangkan juga adalah dalam memutuskan ukuran halaman, penguncian MK, prepaging, pembuatan proses, struktur program, dll. Rujukan [Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley Sons. [Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating Systems Design and Implementation. Second Edition. Prentice-Hall. [WEBAmirSch2000] Yair Amir dan Theo Schlossnagle. 2000. Operating Systems 00.418: Memory Management – http:www.cs.jhu.edu ~yairamir cs418 os5 . Diakses 29 Mei 2006. [WEBFunkhouser2002] Thomas Funkhouser. 2002. Computer Science 217 Introduction to Programming Systems: Memory Paging – http:www.cs.princeton.edu courses archive spring02 cs217 lectures paging.pdf . Diakses 28 Juni 2006. [WEBGottlieb2000] Allan Gottlieb. 2000. Operating Systems: Page tables – http:allan.ultra.nyu.edu ~gottlieb courses 1999-00-spring os lecture-11.html . Diakses 28 Juni 2006. [WEBSolomon2004] Marvin Solomon. 2004. CS 537 Introduction to Operating Systems: Lecture Notes Part 7 – http:www.cs.wisc.edu ~solomon cs537 paging.html . Diakses 28 Juni 2006. [WEBPRI2003] Romadhony,Ade. Erik Evanny . 2003. Institut Teknologi Bandung– http:kur2003.if.itb.ac.idfileFMKL-K1-08.doc . Diakses 7 april 2007. 60