You are on page 1of 47

TUGAS SISTEM OPERASI

Disusun Oleh : Laila Inayati Miftakhul Huda Try Chandra P Wachid Nur Huda Rokhmad Fajar R 12.5.00158 12.5.00161 12.5.00186 12.5.00201 12.5.00218

Sekolah Tinggi Manajemen Informatika dan Ilmu Komputer Sinar Nusantara Surakarta 2013

SISTEM PAGING

Memori Maya Program yang dijalankan harus dimuat di memori utama . Masalah muncul ketika program lebih besar dibanding memori utama yang tersedia . 2 solusi masalah ini : 1) Overlay 2) Memori maya (virtual memory) Konsep Overlay Program dipecah menjadi bagian-bagian yang dapat dimuat memori , disebut overlay. Pertukaran overlay masuk dan keluar memori dilakukan oleh sistem operasi .

Konsep Memori Maya Memori maya adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep memori maya pertama kali dikemukakan Fotheringham pada 1961 untuk sistem komputer atlas di Universitas Manchester, Inggris. Gagasan memori maya adalah ukuran gabungan program, data, dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi dapat menyimpan bagian-bagian proses yang sedang disgunakan di memorii utama dan sisanya di disk. Begitu bagian di disk diperlukan maka bagian di memori yang tidak diperlukan disingkirkan diganti bagian di disk yang diperlukan itu. Penggunaan Program 10 megabyte dapat berjalan di mesin 2 megabyte, yaitu memilih bagian proses sebesar 2 megabyte secara hati-hati dan ditaruh di memori. Bagian-bagian proses di swap antara disk dan memori saat diperlukan secara otomatis oleh sistem operasi. Memori maya dan multiprogramming Memori maya dapat dilakukan paga sistem multiprogramming. Misalnya. 10 program 2 mb dapat berjalan di meori 4 mb.

Tiap program dialokasikan 25 kilobyte dan bagian-bagian proses di swap masuk keluar memori begitu diperlukan. Memori maya meningkatkan efisiensi sistem multiprogramming. Memori maya dan multiprogramming adalah dua konsep yang saling melengkapi. Saat proses menunggu bagiannya di swap masuk ke memori, menunggu selesai operasi masukan/keluaran, proses di block, jatah layanan pemroses diberikan ke proses lain. Rincian manajemen memori maya transparan bagi pemogram. Pemogram merasa mempunyai memori sangat besar dibanding memori fisik yang tersedia. Secara praktis, pemogram dihilangkan hambatan keterbatasan memori fisik tanpa bersusah mengatasi sendiri. Memori maya tidak mengubah kode program. Kecepatan eksekusi melambat dipengaruhi waktu tunda pengambilan bagian-bagian proses di memori sekunder saat prosesberjalan.

Prinsip berikut berlaku : Kecepatan maksimum eksekusi proses memori mapat sama tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa memori maya. Memori maya dapat dilakukam dengan tiga cara: 1. Paging 2. Segmentasi 3. Kombinasi pading dan segmentasi Bab ini membahas sistem paging. Bab 11 membahas segmantasi serta koombinasi paging dan segmentasi disertai contoh memori maya beragam sistem komputer

Deskripai Sistem Paging Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunaka index register, base register, dan segment register, dan lain-lain. Pemakai seolah mempunyaai ruang memori sangat besar tanpa mengelola overlay. Bebrapa istilah pada sistem paging adalah: Alamat maya (virtual address) Alamat nyata (real address) Page Page frame Page fault MMU

Alamat maya Alamat maya adalah alamat yang dihasilka perhitungan menggunakan inde register, base register, dan segment register dan sebagainya. Ruang alamat yang dibentuk alamat maya di sebut ruang alamat maya (virtual address space),V. Jumlah alamat pada V disimbolkan dengan [V]. Alamat maya ini yang diacu proses yang running.

Alamat Nyata Alat di memori utama fisik . Ruang alamat yang dibentuk alamat nyata disebut ruang alamat nyata ( reall address space ) , R . Jumlah alamat pada R disimbolkan dengan |R|. Pada implementasi sistem memori maya , normalnya |V|>>|R|. Page Page adalah unit terkecil virtual address space . Ruang alamat maya proses merupakan kelipatan page yang ukuranya sama. Page Frame Page frame adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumlah unit berukuran tetap disebut page frame.

Page Fault Page fault adalah exception untuk permintaan alokasi page ke memori. Memory Managemen Unit (MNU) Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik .

1) Pada komputer tanpa memori maya , alamat langsung diletakkan ke bus dan menyebabkan word memori fisik alamat itu dibaca atau ditulis. 2) Pada komputer dengan memori maya , alamat tidak diletakkan ke bus , tetapi lewat MNU.

Memori fisik berisi sejumlah page frame yang memuat sebagian page-page proses. Terdapat mekanisme translasi (penerjemahan) alamat (dilakukan MMU) untuk memetakan page maya ke alamat fisik. Karena masing-masing page dipetakan secara terpisah, frame-frame proses tidak perlu menempati memori fisik berturutan. Sistem memori maya mempunyai properti alamat-alamat kontigu (berturutan) pada ruang alamat maya yang tidak harus kontigu di memori nyata. Properti ini disebut kontigu semu (artifical contiguty). Pemakai dibebaskan berurusan dengan letak prosedur dan data diposisikan di memori nyata. Pemogram dapat menulis program seperti biasa, yaitu memperhatikan efisiensi algoritma dann stuktur program, mengabaikan rincian struktur perangkat keras. Dengan sistem maya, memori dapat dipandang sebagai kontigu yang berukuran besar.

MMU (Memory Management Unit) MMU mempunyai fungsi sebagai berikut: Pemetakan memori maya ke memori fisik Bila alamat memori yang diminta idak tersedia di memori fisik, MMU menerbitkan exception adanya page-fault yang melewatkan ke sistem operasi untuk menanganinya

Skema Pemetaan Pada komputer dengan memori maya, alamat tidak diletakan ke bus secara langsung tapi dilewatkan ke MMU yang memetakan alamat maya ke alamat memori fisik. Pemetaan dapat dirumuskan secara formal sebagai berikut: Misalkan Ruang alamat maya adalah V ={0,1,...,v-1} Ruang alamat fisik adalah M ={0,1,...,m-1} Umunya ruang alamat maya lebih besar dibanding alamat fisik (v>m.) MMU melakukan mekanisme translasi lamat mengasosiasikan alamat maya ke alamat fisik. MMU merealisasikam fungsi f:V M, yaitu:

F(x)= {r, jika item x terdapat di memori fisik dengan lokasi di r. Page fault jika item x tidak terdapat pada memori fisik} Misalnya intruksi: Alamat maya 8 dikirim ke MMU MU mengetahui alamat 8 di page o (page o memuat alamat maya 0-4095) Dari tabel, page o dipetakan ke frame 7 (page 7 adalah alamat fisik 28672-32768) MMUmentransformasikan alamat 8 sebagau=o (28672+8=28680) MMU mengeluarkan alamat 28680 ke bus Papan memori tidak perlu mengetahui MMU, hanya bertanggung jawab untuk memenuhi permitaan membaca atau menulis alamat 28680.

Misalnya intruksi: MOV REG , 8192 Ditransformasikan menjadi alamat fisik 20480 karena alamat 8192 terdapat di page 2 dan di petakan ke frame 5 (alamat fisik20480-24576).

Implementasi Pemetaan ( Bagian Internal MMU ) Komponen internal MMU untuk sistem paging.

Komponen terpenting MMU adalah : 1) Register alamat maya 2) Tabel page 3) Register alamat fisik Register Alamat Maya Menyimpan alamat maya yang diacu Nilai di register alamat maya dibai menjadi 2 bagian yaitu : 1) Sejumlah bit berorder tinggi menyatakan nomor page maya 2) Bit-bit sisa adalah offset alamat maya.

Tabel Page Berisi informasi berikut : 1) Present/ absent bit 2) Nomor page frame Register Alamat Fisik Menyimpan alamat fisik yang disinyalkan ke bus. Nilai di register alamat fisik dibagi dua bagian, yaitu: Sejumlah bit beroder tinggi menyatakan nomor page frame Bit-bit sisa adalah offset alamat fram. Alamat maya dipecah menjadi dua yaitu: Nomor page maya (bit-bit berorde tinggi) Offset Pemetaan Nomor page maya digunakan sebagai indeks ke tabel page untuk menemukan isian page maya Dari isisan tabel page dapat diketahui apakah page dipetakan ke memori fisik ( dengan memeriksa present/ obsent bit) Apabila alamat terdapat di memori fisikmaka isian ditabel page memuat

nomor page frame. Nomor page frame di tabel page dikopi sebagai bit-bit berorder tinggi di register alamat fisik dan ditambah offset di alamat maya. Bila alamat tidak ada di memori fisik maka MMU menerbitkan page fault MMU mengkopikan nomor page frame di isian tabel page dengan indeks nomor page ke register alamat fisik dan menambahkan dengan offset alamat maya.

Cara kerja pemetaan oleh MMU Apabila ternyata nomor page tidak ada dimemori fisik, yaitu nilai present/absent bit di isian table page bernilai 0, MMU menerbitkan page-fault. Rangkain aksi yang dilakukan adalah sebagai berikut : 1. MMU memperingkatkan page tidak dipetakkan ke memori fisik dan pemroses melakukan trap ke sisitem operasi, disebut page fault. 2. Membebaskan bagian page frame memori fisik yang jarang digunakan dengan menyimpan page frame itu ke disk. 3. Mengkonsolidasikan pemetaan antara memori maya memory fisik.

Ketika terjadi page fault, system operasi memilih frame di memori fisik untuk diganti page berguna yang akan masuk. Jika page yang diganti telah dimodifikasi, page harus ke disk. Page yang telah dimodifikasi disebut dirty page. Jika page belum diubah (misalnya page yang berisi teks biner progam), kopian di disk masih up to date sehingga page tidak perlu ditulis ke disk. Tabel tabel Paging pemakaian tabel page pada system paging menimbulkan dua masalah utama, yaitu: 1. Tabel page dapat berukuran luar bias besar. 2. Pemetaan harus dilakukan secara cepat. Tabel page dapat berukuran luar biasa besar Misalnya Register alamat mya 32 bit Ukuran page 4 Kilobyte = 212 byte

Berarti terdapat 220 page (sejuta page lebih), yaitu alamat maya 32 bit berarti memori dapat memuat 232 byte karena masing masing page adalah 212 byte. Berarti jumlah page adalah 232 dibagi 212 = 220 page. Register alamat mya 64 bit. Ukuran page 4 Kilobyte, berarti akan terdapat 242 page.

Bial memori mya sangat besar maka tidak mungkin menggunakan satu tabel tunggal karena akan diperlukan ukuran tabel sangat besar. Solusi Menggunakan tabel tabel bertingkat (serupa indeks bertingkat di organisasi berkas). Beberapa rancangan tabel paging untuk beragam sesuai system komputer, yaitu: DEC PDP-11 menggunakan paging satu tingkat (one-level paging)

DEC VAX menggunakan paging dua tingkat (two-level paging) SUN SPARC menggunakan paging empat tingkat (four-level paging)

Pemetaan Harus Dilakukan Secara Cepat Pemetaan alamat maya ke alamat fisik dilakukan setiap terjadi pengacuan memori. Intruksi computer biasanya berbentuk: Operator operand_1, operand_2,,operand_N

Pada tiap intruksi, setidaknya terdapat 1 atau 2 operan, operan operan merupakan pengacuan ke memori karena operan disimpan di memori berarti untuk satu interaksi setidaknya terjadi 1 sampai 2 pengacuan memori. Jika satu intruksi memerlukan 10 ns, maka pemetaan harus dilakukan beberapa ns saja agar tidak terjadi bottleneck. Kesimpulan Pada pemroses dengan memori maya, pengelolaan page besar dan cepat merupakan konstrain utama perancangan dan pembangunan pemroses.

Memori Asosiatif Dari obsevasi disimpulkan, sebagian besar program cenderung melakukan banyak pengacuan ke sejumlah kecil page (prinsip lokalits). Sebenarnya hanya sejumlah kecil elemen tabel page yang sering dibaca. Berdasarkan fakta ini, system komputer dengan memori maya dapat memanfaatkan sifat ini untuk mempercepat proses pengacuan tanpa melibatkan tabel page. Sistem komputer dilengkapi perangkat pemetaan alamat maya ke alamat fisik tanpa lewat tabel page. Perangkat ini disebut memori asosiatif (associative memory) atau TLB (translation lookasiade buffer). Perangkat ini dapat dipasang di MMU. Memori asosiatif berisi sejumlah elemen tabel (antara 8 sampai 32 elemen). Tiap elemen berisi informasi informasi mengenai page, yaitu:

Jika ditemukkan dimemori asosiatif dan pengaksesan tidak melanggar bit-bit proteksi, maka page frame langsung ditangani memori asosiatif tanpa melibatkan tabel page.

Jika page ditemukan di memori asosiatif tapi melanggar bit-bit proteksi, maka diterbitkan protection fault. Proteksi ini juga dilakukan tabel page (bila isian tabel page dilengkapi bit-bit proteksi).

Jika nomor page maya tidak terdapat di memori asosiasi, maka MMU mencari di tabel page. Salah satu elemen memori asosiatif disingkirkan dan diganti elemen tabel page yang ditemukan. Elemen yang disingkirkan dikembalikan ke tabel page di memori. Jika page itu kembali digunakan, maka hanya akan ditangani memori asosiatif tanpa MMU.

Rasio pengacuan memori yang melalui memori asosiatif disebut hit ratio. Semakin tinggi hit ratio, semakin bagus kinerja system. Dengan memori asosiatif maka kinerja rata-rata system dipengaruhi oleh Waktu akse tabel page. Waktu akses memori asosiatif. Nilai hit-ratio.

Penggantian Page Saat terjadi page fault berarti harus diputuskan page frame di memori fisik yang harus diganti. Kinerja system akan baik jika page yang diganti dipilih yang tidak akan digunakan di masa datang. Jika page yang diganti akan kembali digunakan, maka page akan dikembalikan secepatnya yang berarti terjadi page fault berulang kali. Banyaknya page fault menghasilkan banyak overhead. Algoritma penggantian page anta lain: 1. Algoritma penggantian page acak (random page replacement algorithm) 2. Algoritma penggantian page optimal 3. Algoritma penggantian page NRU

4. Algoritma penggantian page modifikasi dari algoritma FIFO 5. Algoritma penggantian page LRU

Algoritma algoritma Penggantian Page 1. Algoritma Penggantian page acak Mekanisme algoritma Setiap terjadi page fault, page yang diganti dipilih secara acak. Teknik ini tidak memakai informasi apapun dalam menentukan page yang diganti. Semua page di memori utama mempunyai bobot sama untuk dipilih. Teknik ini dapat memilih sembarang page, termasuk page yang sedang diacu (page yang seharusnya tidak diganti, pilihan terburuk). Teknik ini sangat buruk, percobaan menunjukkan algoritma acak menimbulkan rate terjadinya page fault yang sangat tinggi. 2. Algoritma Penggantian Page Optimal Mekanisme algoritma Dasar algoritma ini adalah memilih page yang berpeluang dipakai kembali di masa datang yang paling kecil. Strategi ini akan menghasilkan jumlah page fault paling sedikit. Algoritma ini adalah algoritma utopia (ideal tanpa dapat dijadikan kenyataan) karena tak mungkin dibuat prosedur yang dapat mengetahui peluang pemakaian suatu page kembali di masa datang. Metode ini tak mungkin diterapkan. Pendekatan ini dapat dilakukkan dengan simulasi. Tapi, simulasi hanya spesifik suatu program. Bila yang terbaik tak dimungkinkan, maka yang perlu dilakukan adalah berusaha mendekatinya. Algoritma penggantian page diusahakan kinerjanya mendekati optimal. Tiap algoritma penggantian page mengumpulkan dan memakai informasi untuk menentukan page yang diganti sehingga mendekati optimal. Algoritma penggantian page optimal penting untuk kajian teoretis, sebagai pembanding bagi algoritma-algoritma penggantian page yang lain.

3. Algoritma Penggantian Page NRU (Not-Recentli Used) Mekanisme algoritma Pada algoritma ini, page diberi dua bit mencatat status page, bit R dan M yaitu: Bit R : referenced (menyatakan page sedang diacu) Bit R = 1 berarti sedang diacu Bit R = 0 berarti tidak sedang diacu Bit M : modified (menyatakan page dimodifikasi) Bit M = 1 berarti dimodifikasi Bit M = 0 berarti tidak dimodifikasi Dengan 2 bit, maka page-page dikelompokkan menjadi 4 kelas page, yaitu: Kelas 0 : tidak sedang diacu, belum dimodifikasi (R=0,M=0) Kelas 1 : tidak sedang diacu, telah dimodifikasi (R=0, M=1) Kelas 2 : sedang diacu, belum dimodifikasi (R=1, M=0) Kelas 3 : sedang diacu, telah dimodifikasi (R=1, M=1) Memilih menggantikan page kelas bernomor terendah (bila terdapat pagepage di kelas itu) secara acak. Bila kelas tersebut kosong maka dipilih page di kelas lebih tinggi, dan seterusnya. Algoritma ini mengansumsikan kelas-kelas bernomor lebih rendah akan baru akan digunakan kembali dalam waktu relative lama. Algoritma ini mudah dipahami dan diimplementasikan. Implementasi algoritma ini sangat efisien karena tak banyak langkah dalam pemilihan page. Algoritma ini memang tidak optimal, tapi dalam kondisi-kondisi normal telah memadai. 4. Algoritma Penggantian Page FIFO (First-In, First-Out)

Mekanisme algoritma Algoritma ini memerlukan pengelolaan senarai page di memori. Elemen terdepan senarai adalah page tertua dan ujng belakang adalah page paling akhir datang. Bila terjadi page fault, page elemen terdeoan (page tertua) diganti dan page baru ditambahkan di ujung belakang senarai. Dengan hanya informasi mengenai lam berada di memori, maka algoritma ini dapat memindahkan page yang sering digunakan. Boleh jadi page itu berada terus di memori karena selalu selalu digunakkan. Page itu karena mengikuti pola antrian berdasar lamanya berada dimemori menjadi elemen terdepan, diganti dan segera harus masuk kembali ke memori sehingga terjadi page fault kembali. Algoritma FIFO murni jarang digunakan, tetapi dikombinasikan (modifikasi). 5. Modifikasi Terhadap FIFO Kelemahan FIFO yang jelas adalah algoritma dapat memilih memindahkan page yang sering digunakan yang lama berada di memori. Kemungkinan ini dapat dihindari dengan hanya menindahkan page tidak diacu. Page ditambah bit R mencatat apakah page diacu atau tidak. Bit R bernilai 1 bila diacu dan bernilai 0 bila tidak diacu. Variasi dari FIFO anatara lain: Algoritma penggantian page kesempatan kedua (second chance page replacement algorithm) Algoritma penggantian clock page (clock page replacement algothm)

Algoritma Penggantian Page Kesempatan Kedua Mekanisme algoritma Saat terjadi page fault, algoritma memilih page elemen terdepan bila bit R bernilai 0. Bila bit R bernilai1, maka bit page terdepan senarai diseret menjadi 0 dan diletakkan ke ujung belakang senarai. Mekanisme ini kembali diterapkan ke elemen berikutnya.

Algoritma Penggantian Clock Page Algoritma penggantian page kesempatan kedua merupakan algoritma yang memadai tapi tidak efisien karena memindahkan page-page di senarainya. Algoritma penggantian clock page merupakan perbaikkan algoritma pertama. Mekanisme algoritma Pada algoritma ini, semua page merupakan senarai melingkar membentuk pola jam. Terdapat petunjuk (pointer) ke pege tertua. Ketika terjadi page fault, page yang ditunjukkan diperiksa. Jika bit R bernilai 0, maka [age diganti. Page baru ditempatkan ditempat page diganti, dan petunjuk dimajukkan satu posisi ke page berikutya. Jika bit R bernilai 1, maka bit R diseret menjadi 0, dan penunjuk dimajukan satu posisi. Seterusnya sampai menemui pae dengan bit R bernilai 0. Kedua algoritma adalah sama, hanya berbeda dalam implementasi, yaitu: Algoritma penggantian page kesempatan kedua menggunakkan senarai lurus tidak sirkular. Algoritma penggantian clock page menggunakan senarai sirkular.

6. Algoritma Penggantian Page LRU (Leadt Recently Used) Berdasarkan observasi, page-page pada beberapa intruksi terakhir berkemungkinan besar akan dipakai kembali. Page page yang lama tidak digunakkan akan tetap tidak digunakkan dalam waktu lama. Mekanisme algoritma Algoritma LRU adalah ketika terjadi page fault maka memindahkan page yang tidak digunakkan paling lama. Masalah Sangat mahal

Kemahalan disebabkan harus mengelola senarai informasi seluruh page di memori. Senarai harus terurut berdasar kemutakhiran penggunaan. Senarai harus diperbarui setiap terjadi pengacauan memori. Begitu terjadi pengacuan memori, harus dilakukan opersi menemukan page di senarai, dipindahkan sebagai terdepan yaitu paling mutakhir diacu. Meskipun ini memerlukan waktu yang sangat banyak.

Contoh Eksekusi Paging Algoritma Penggantian Page Optimal Sistem, pengacuan

Keterangan : F = fault Terjadi 6 fault Algoritma Penggantian Page LRU String pengacuan

Keterangan : F = fault Terjadi 7 fault Algoritma Penggantian Page FIFO String pengacuan

Keterangan : F = fault Terjadi 9 fault Algoritma Penggantian Clock page

Keterangan Diacu Ditunjuk pointer

Gambar 10-11 Eksekusi dengan algoritma pengganti clock

Memodelkan Algoritma Paging Anomali Belady (Belady Anomaly)

Tampaknya beralasan bila dinyatakan bahwa bila lebih banyak page dialokasikan untuk proses maka page-fault yang akan terjadi lebih sedikit. Belady justru menemukan fenomena menyimpang dari prasangka umum (anomali) yaitu pada algoritma FIFO maka pada polapola pengacuan tertentu menyebabkan lebih banyak page-fault bila dialokasi page untuk proses ditambah. Fenomena menyimpang ini disebut anomaly Belady.

Fenomena dapat diilustrasikan sebagai berikut ini: Program dengan lima page Urutan page yang diacu adalah 0 1 2 3 4 0 1 4 0 1 2 3 4

(a)

(b)

Gambar 10-12 Anomali Belady

Gambar 10-12 (a) FIFO dengan tiga page frame menghasilkan 9 page default. Gambar 10-12 (b) FIFO dengan empat page frame menghasilkan 10 page default.

Mesin Abstrak Eksekusi Program

Setiap proses di memori maya menghasilkan barisan pengacuan memori saat berjalan. Pengacuan memori berkorespondensi dengan satu page. Secara konseptual, pengaksesan memori dicirikan senarai (berurutan) nomor page. Senarai ini disebut string pengacuan (reference string).

Pemodelan computer dengan satu proses, yaitu mesin mempunyai satu string pengacuan deterministic tunggal. Pada computer banyak proses, harus diperhatikan dampak interleaving string acuan disebabkan multiprogramming. Pembahasan ini hanya pengenalan, model untuk computer dengan banyak proses tidak dibahas.

System paging dicirikan tiga hal, yaitu: 1. String pengacuan proses yang sedang dieksekusi 2. Algoritma penggantian page yang digunakan 3. Jumlah page frame yang tersedia (pada memori) Mesin abstrak Terdapat mesin abstrak interpreter dengan property berikut: 1. Terdapat array internal, M, menyimpan status memori. Array mempunyai n elemen seperti proses mempunyai n page memori maya. 2. Array M terbagi dua, yaitu: Bagian atas/puncak, yaitu m isian, page di memori utama Bagian bawah/dasar berisi n-m isian, yaitu semua page yang pernah diacu sekali tapi pernah dipindahkan dan tidak dimemori utama. 3. Mulanya array M berupa himpunan kosong karena belum ada page yang telah diacu dan tak ada page yang berada di memori.

Begitu eksekusi di mulai mengeluarkan page sesuai string pengacuan, satu page pada satu saat. Terhadap page itu, interpreter memeriksa apakah page berada di memori merupakan isian bagian puncak array M). (yaitu

Jika page tidak ada di memori maka jika terdapat slot kosong di memori (yaitu bagian puncak dari m), page dimuat dan di masukan ke puncak m), page dimuat dan dimasukan ke puncak M. situasi ini hanya muncul diawal eksekusi. Jika memori telah penuh (yaitu bagian array M telah terisi M), algoritma penggantian dijalankan untuk mengganti page dari memori utama. Pada model ini, maka satu page pindah dari bagian puncak kebagian dasar, serta page yang diperlukan dimasukan ke puncak.

Contoh: 1. String pengacuan adalah 0 2 1 3 5 4 6 3 7 4 7 3 3 5 5 3 1 1 1 7 2 3 4 1 2. Ruang alamat maya adalah 8 page dengan memori fisik 8 page 3. Algoritma penggantian dengan LRU

Gambar 10-13 Eksekusi untuk string

Model ini mempunyai properti, yaitu: 1. Ketika page diacu, selalu dipindahkan ke isian puncak dari array M. 2. Jika page yang diacu ada di M, semua page diatasnya dipindah satu posisi ke bawah. Transisi dari dalam kotak keluar berkorespondensi dengan page dipindahkan dari memori. 3. Page-page yang dibawah page yang diacu, tidak dipindahkan.

Terdapat kelas algoritma dengan properti M(m,r) M(m+1, r),

Bahwa m adalah jumlah page frame memori fisik

r adalah pengacuan memori

properti ini menyatakan bahwa untuk memori dengan m page frame setelah r pengacuan memori maka juga termasuk M untuk memori dengan m+1 page frame. Dengan kata lain, jika kita tingkatkan ukuran memori dengan satu page frame dan proses dieksekusi kembali maka pada setiap titik eksekusi yang sama, semua page pada eksekusi pertama juga terdapat pada eksekusi kedua dengan satu tambahan page.

LRU mempunyai properti ini, sedang FIFO tidak memiliki properti ini. Algoritma-algoritma yang mempunyai properti ini disebut algoritma stack (stack algorithms).

Masalah-masalah utama pada sistem Paging

1. Working set model 2. Kebijaksanaan penggantian local vs global 3. Frekuensi page default 4. Ukuran page

Working Set Model Prinsip Lokalitas

Prinsip lokalitas adalah proses-proses cenderung mengacu penyimpan secara tak seragam, mempunyai pola-pola sangat setempat.

Terdapat dua jenis lokalitas yaitu: Lokalitas berdasar waktu (temporal locality) Lokalitas menurut ruang (spatial locality)

prinsip lokalitas diperoleh dari observasi, bukan kajian teoritis. Prinsip lokalitas menunjukan kecenderungan perilaku lingkungan system bukan tepat eksak.

Gambar 10-14 menunjukan pola pengacuan selama eksekusi yang mendukung adanya prinsip lokalitas. Bagian gelap menunjukan pengacuan dilakukan di sekitar lokalitas yang saling berdekatan.

Lokalitas berdasar waktu

Lokalitas berdasar waktu adalah proses cenderung terkonsentrasi acuannya ke satu interval waktu eksekusi yang dekat. Berarti lokasi-lokasi penyimpanan (kode biner program) paling mutakhir yang diacu cenderung akan diacu kembali di masa datang. Observasi berikut mendukung prinsip, antara lain: Looping Subrutin Stack, dan Variable-variabel yang digunakan untuk iterasi dan penjumlahan total

Lokalitas berdasar ruang Lokalitas berdasar ruang adalah proses cenderung terkonsentrasi acuannya ke satu kelompok data yang berdekatan. Berarti pengacuan-pengacuan (untuk data) cenderung mengelompok ke range lokasi tertentu. Begitu suatu lokasi diacu, cenderung akan mengacu lokasi-lokasi di dekatnya.

Observasi berikut mendukung prinsip ini, antara lain: Traversal pada array Eksekusi kode yang sekuen Kecenderungan pemrogram menempatkan variabel yang terkait saling berdekatan

Konsekuensi Konsekuensi prinsipp lokalitas adalah program dapat berjalan secara efisian saat satu subset page berkecenderungan tinggi saling mengacu terdapat di memori. Berdasarkan prinsip lokalitas, Denning merumuskan teori mengenai himpunan kerja dari perilaku program (working set theory of program behavior). 10.4.1.2 working set theory of program behavior

Himpunan kerja secara informal didefinisakan sebagai kumpulan page proses yang secara aktif diacu. Denning menyatakan bahwa agar suatu program berjalan secara efisien, himpunan kerja harus dijaga berada di memori utama. Selain itu akan terjadi aktivitas page fault yang berlebihan. Peristiwa page fault yang sangat berlebihan disebut thrashing, yaitu setelah hanya beberapa instruksi terjadi page fault. Jika himpunan kerja terdapat dimemori, proses akan berjalan tanpa menyebabkan banyak page fault sampai proses berpindah ke fase eksekusi yang lain. Idealnya himpunan program kerja adalah kumpulan page terdiri dari page-page program yang terlokalisi pada waktu itu. Progam berpindah dari satu lokalitas ke lokalitas lain saat di eksekusi, begitu juga page-page himpunan kerja. Karena masa depan tidak diketahui, himpunan kerja program didefinisikan menjadi himpunan page yang diacu program selama satu interval waktu terakhir. Himpunan kerja dari program pada satu waktu pada pengacuan memori ke-t adalah W(t,) = {i Dimana rt menyatakan pengacuan memori saat t. W(t, ) himpunan page yang diacu selama pengacuan memori terakhir. N | page I muncul pada r t-+1, , rt }

Dengan kata lain, himpunan kerja adalah himpunan page yang diacu dalam jendela ukuran yang dibentuk menurut waktu. Begitu program dieksekusi, ukuran himpunan kerja dan identitas page beragam menurut waktu.

Prinsip-prinsip Working Set Model Prinsip yang digunakan adalah melacak dan menjamin himpunan kerja terdapat di memori sebelum proses dijalankan. Cara ini mengurangi terjadinya page fault. Prinsip-prinsip himpunan kerja adalah [MIL-92] 1. Program seharusnya dijalankan jika dan hanya jika himpunan kerja berada di memori.

2. Page tidak boleh dipindahkan dari memori jika page anggota himpunan kerja dari program yang running. Berdasarkan hal ini terdapat dua teknik untuk memuatkan page, yaitu : Prepaging Demand paging

Prepaging Teknik memuatkan page-page lebih dulu sebelum proses berjalan

Demand Paging Teknik yang segera memuatkan page begitu page dibutuhkan

Model himpunan kerja menghendaki digunakan prepaging. Untuk implementasi model himpunan kerja, system operasi perlu mencatat page-page yang termasuk himpunan kerja. Salah satu cara memonitor informasi ini adalah menggunakan algoritma pencatatan umur page. Page berisi bit-bit penghitung bernilai 1 bila termasuk himpunan kerja. Jika page tidak diacu selama n clock tick, maka page dibuang dari himpunan kerja. Parameter n ditentukan secara eksperimen untuk masing-masing system. Kinerja system biasanya tidak sensitive terhadap nilai eksak n.

Parameter penting implementasi prinsip himpunan kerja adalah ukuran jendela, . Jika terlalu pendek, himpunan kerja tidak sepenuhnya memuat lokalitas saat itu sehingga menyebabkan peningkatan page fault. Jika ukuran terlalu panjang, himpunan kerja merentang lebih dari satu lokalitas dan memuat page frame yang tak diperlukan lebih banyak.

10.4.2 Kebijaksanaan Penggantian Lokal vs Global Terdapat dua pendekatan untuk mengganti page, yaitu: Penggantian local adalah page yang dipilih untuk diganti hanya pada partisi dimana proses diletakkan

Penggantian global adalah page yang dipilih untuk diganti adalah tempat kosong dengan tidak mempedulikan partisi proses. Dengan penggantian global, page fault satu proses dapat dilayani dengan memindahkan page yang dimiliki proses lain.

Penggantian local cenderung melokalisasi dampak alokasi ke masing-masing proses. Penggantian global meningkatkan derajat kebergantungan antara strategi penggantian dan alokasi. Page-page yang dialokasikan ke satu proses oleh algoritma alokasi dapat diambil alih proses lain disebabkan keputusan oleh algoritma penggantian global. Penggantian global berurusan dengan seluruh state system tidak hanya perilaku masing-masing proses. Penggantian global adalah lebih baik.

Frekuensi Page Fault Untuk satu kelas besar algoritma penggantian page diketahui frekuensi page fault menurun begitu page memori fisik lebih banyak. Anomali Belady hanya terjadi pada algoritma penggantian FIFO. Frekuensi terjadinya page fault dapat dikendalikan dengan algoritma PFF (page fault frequency alogithm). Dengan PFF harus didefinisikan ambang atas dan ambang bawah frekuensi page fault maka dialokasikan lebih banyak page memori fisik untuk prose situ. Apabila proses telah mencapai ambang bawah frekuensi page fault maka alokasi page dihentikan.

Parameter PFF adalah P yaitu jumlah (frekuensi) page fault per T, didefinisikan P=1/T Dimana T adalah waktu fault kritis P diukur dalam jumlah page fault per milidetik

Algoritma PFF di implementasikan sebagai berikut: [MIL-92] 1. System operasi mendefinisikan frekuensi page fault kritis system (atau per proses)

2. System operasi mengukur waktu (proses) maya dan menyimpan waktu page fault mutakhir di PCB proses 3. Ketika page fault terjadi, system operasi bertindak sebagai berikut: Jika page fault terakhir terjadi kurang dari T=1/P ms detik yang lalu, proses beroprasi diatas ambang maka page frame baru ditambahkan Selain itu, berarti proses beroperasi dibawah ambang PFF, maka page frame page bit R=0 dan W=0 dibebaskan untuk alokasi page baru proses lain.

Dengan algoritma ini dapat dikendalikan frekuensi page fault masing-masing proses di system. Untuk mendukung algoritma ini diperlukan kebijaksanaan penggantian global karena penyeimbangan dilakukan untuk seluruh proses di system itu, bukan hanya untuk masingmasing proses individu.

10.4.4 ukuran page

Ukuran page di tentukan perancang system operasi. Ukuran page harus di tentukan agar system berperilaku optimal. Penentuan ukuran page memerlukan penilaian dan pemahaman mendalam perangkat keras, perangkat lunak dan aplikasi system. Beberapa pertimbangan, antara lain: Ukuran page lebih kecil berarti jumlah page dan page frame lebih banyak sehingga memerlukan table page lebih besar. Ukuran page besar, berarti sejumlah informasi yang tidak diacu juga dimasukan ke memori utama sehingga terjadi fragmentasi internal yang tinggi. Transfer masukan/keluaran relative sangat mengkonsumsi waktu sehingga perlu meminimumkan jumlah transfer masukan/keluaran saat program berjalan. Program cenderung mengikuti prinsip lokalitas yang cenderung berukuran kecil.

Tabel 10-1 memperlihatkan ukuran page pada beberapa system computer.

Tabel ukuran page pada beragam system computer

Masalah-masalah Implementasi Sistem Paging Perancang system paging berurusan beragam masalah implementasi system paging, antara lain: Backup instruksi yang terakhir dijalankan sebelum terjadi page fault Buffer perangkat masukan/keluaran (penguncian page di memori) Page yang dipakai bersama Backing store Paging daemon Penanganan page fault (page fault handling)

1. Backup Instruksi Bila terjadi page fault berarti sebagian instruksi telah dijalankan. Pengkopian progam counter dan informasi register register pemroses harus dilakukan. Setelah penggantian page selesai maka instruksi yang menyebabkan page fault dapat dijalankan kembali dengan konteksnya.

Masalah yang harus diatasi adalah untuk mengulangi instruksi, system harus menentukan byte pertama instruksi. Kesulitan timbul karena nilai progam counter saat terjadi page fault bergantung pada instruksi di mode autoincrement, sangat bergantung pada rincian rincian mikro kode yaitu:

Jika increment sesungguhnya dilakukan sebelum pengacuan memori maka system operasi harus melakukan decrement terhadap register secara perangkat lunak sebelum mengulangi instruksi yang menyebabkan page-fault.

Jika increment dilakukan setelah pengacuan memori maka tida perlu dilakukan decrement terhadap register oleh system operasi.

Perancang pemroses menyediakan solusi untuk masalah ini. Beragam cara diterapkan, berbeda bergantung mesin. Beberapa mesin yang menyediakan solusi antara lain PDP-11/45,VAX,Motorola 68010, dan lain lain.

2. Buffer perangkat Masukkan/Keluaran (Penguncian Page) Penggantian page akan menimbulkan masalah mengacaukan proses yang melakukan operasi masukkan/keluaran jika: Buffer perangkat Masukkan/Keluaran ikut tergusur. Adanya buffer satu perangkat masukkan/keluaran menjadi rangkap.

Masalah diatasi dengan dua alternative yaitu: Penguncian buffer perangkat masukkan/keluaran sehingga tidak menjadi sasaran penggantian. Buffer perangkat masukkan/keluaran ditempatkan di kernel dan kopikan semua data ke page page proses pemakai.

3. Pemakaian Page Bersama Apabila beberapa pemakai menggunakan progam yang sama maka terjadi perangkapan page (page yang sama terdapat di banyak bagian di memori). Lebih efisien jika menggunakan page secara bersama, menghindarai keharusan mempunyai kopian kopian yang sama di saat yang sama.

Masalah Tidak semua page dapat dipakai bersama . Kode biner progam (progam text) adalah shareable (dapat dipakai bersama) sedang data tidak shareable. Akhir suatu proses . Bila salah satu proses hendak membuang page dari memori karena proses berakhir.

Solusi: Saat prose berakhir, system operasi memeriksa pakah page page masing digunakan proses proses lain, yaitu: Bila masih dipakai proses lain, maka system operasi tidak membebaskan page page tersebut dari memori. Pencarian pada table table page untuk mengetahui apakah page masih digunakan berongkos sangat mahal. Untuk itu diperlukan struktur data khusus guna manyediakan kemampuan pemakaian page page secara bersama. Bila tidak dipakai proses lain, maka page page dapa didealokasikan.

4. Backing Store Masalah lain adalah menyangkut dimana diletakkan page yang keluar dari memori utama. Terdapat beragam algoritma untuk mengatasi masalah ini yaitu: Menggunakan Ruang Penggantian Khusus Merupakan algoritma paling sederhana. System operasi menyediakan ruang penggantian khusu di disk. Ketika system di boot, ruang ini kosong dan direpresentasikan di memori sebagai satu isian tungggal. Ketika proses pertama dimulai, potonhan daerah swap seukuran proses disiapkan dan ruang yang tersisi dikurangi ukuran ini. Begitu proses baru dimulai, diberi potongan potongan daerah swap seukuran core image-nya dari ruang yang tersisa. Begitu proses berakhir, ruang disknya dibebaskan. Daerah swap dikelola sebagai senarai potongan potongan bebas.

Masalah: Proses dapat meningkat ukurannya sehingga ruang di disk yang dialokasikan di awal tidak dapar memuatnya Dialokasiakan Berdasarkan Kebutuhan Pendekatan lain adalah tidak mengalokasikan sesuatupun sebelumnya dana mengalokasikan ruang disk untuk page yang diganti dan dealokasikan ruang itu ketika page dimasukkan kembali ke memori utama.

Keunggulan: Proses Proses memori tidak terikat ketat dengan suatu ruang swap.

Kelemahan: Alamat disk perlu disimpan sehingga mengatahui letak lokasi page yang diganti yang disimpan di disk.

5. Paging Daemon Paging bekerja bagus saat terdapat banyak page frame bebas yang dapat di klaim begitu page fault terjadi. Jika setiap page frame penuh dan telah dimodifikasi, sebelum page baru dimasukkan, page tua harus ditulis terlebih dahulu ke disk.

Untuk menjamin pasukkan (supply) page frame yang banyak, system paging biasanya mempunyai proses background. Disebut paging deamon. Paging deamon sleep untuk kebanyakan waktu, dibangunkan secara periodic untuk menginspeksi keadaan memori.

6. Penanganan Page Fault (Page Fault Handling) Implementasi system paging harus mengatasi rincian aksi yang haris dilakukan saat terjadi page fault. Rincian saat terjadi page fault adalah sebagai berikut: [TAN-92] 1. Perangkat keras melakukan trap ke kernel, menyimpan program counter di stack. Pada sebagian besar mesin, informasi mengenai keadaan instruksi saat itu disimpan di register register pemroses secara khusus. 2. Satu rutin assembly dimulai untuk menyimpan register register umum dan informasi informasi lain yang dapat hilang. Rutin ini memanggil system operasi. 3. System operasi mengetahuk telah terjadi page fault dan coba menemukan virtual page yang diperlukan. Aksi ini sering di bantu perangkat keras dengan menyediakan register register berisi informasi yang diperlukan. Jika ada bantuan perangkat keras, system operasi harus mengambil program counter, mengambil instruksi, dan mem-parse secara perangkat lunak untuk mendapat gambaran apa terjadi saat fault terjadi. 4. Begitu alamat maya yang menyebabkan fault diketahui, system operasi memeriksa apakah alamat valid dan konsisten terhadap proteksi.

Jika tidak konsisten dengan proteksi, proses yang menyebabkan fault dikirimi signal atau di bunuh. Jika alamat valid dan tak terjadi protection fault. System berusaha memperoleh page frame dari senarai frame bebas. Jika tidak ada frame bebas, algoritma penggantian page di jalankan.

5. Jika page frame telah dimodifikasi, page di jadwalkan untuk transfer ke disk dan terjadi context switch, menunda proses fault dan

memberikan/menyilahkan proses lain berjalan sampai transfer disk selesai. Pada suatu kejadian, frame ditandai sebagai sibuk untuk mencegahnya digunakan untuk maksud lain. 6. Begitu page frame bersih, system opersi melihat alamat disk dimana page diperlukan dan dijadwalkan operasi disk untuk membawanya sebagai frame yang disediakan. Sambil page dimuatkan, proses fault masih ditunda dan proses pemakai yang lain dijalankan, jika proses itu tersedia. 7. Ketika interupsi disk mengindikasikan page telah tiba, table-table page diperbarui untuk merefleksikan posisinya dan frame ditandai sebagai dalam keadaan normal. 8. Instriksi fault di backup ke keadaan ketika dimulai dan program counter direset untuk menunjuk ke instruksi itu. 9. Proses fault dijadwalkan dan system operasi mengembalikan ke rutin bahasa assembly yang memanggilnya. 10. Rutin ini menyimpan kembali register-register dan informasi yang dapat hilang lainnya, serta mengembalikan ke ruang pemakai untuk melanjutkan eksekusi, seperti bila tak terjadi fault.

SEGMENTASI DAN KOMBINASI PAGING-SEGMENTASI

Deskripsi Segmentasi Segmentasi memungkankan pemrogam memandang memori sebagai berisi banyak ruang alamat atau segmen. Ruang ruang alamat itu sepenuhnya independen. Tiap segmen berisi barisan linier alamat o samapi maksimum. Panjang tiap segmen dapat berbeda sampai panjang segmen maksimum. Dengan segmentasi, pemrogram tidak berurusan dengan batasan batasan memori yang disebabkan kapasitas memori utama.

Panjang segmen dapat berubah selama eksekusi. Segmen stack bertambah ketika terjadi operasi push dan turun saat operasi pop. Karena tiap segmen merupakan ruang alamat terpisah, segmen segmen dapat tumbuh dan mengerut secara bebas tanpa mempengaruhi lainya. Jika stack pada segmen tertentu memerlukan ruang alamat lebih besar untuk tumbuh, stack dapat memperoleh karena tidak ada yang ditabraknya di ruang alamat itu. Segmen dapat menjadi penuh, yaitu mencapai ukuran maksimum, tapi karena biasanya segmen berukuran sangat besar maka kejadian ini jarang terjadi.

Spesifikasi alamat pada memori bersegmen adalah dua dimensi. Alamat terdiri dari dua bagian, yaitu: 1. Nomor segmen 2. Alamat pada segmen itu. Segmen adalah entitas logis. Segmen dapat berisi 1. Prosedur 2. Array 3. Stack 4. Atau kumpulan variable saklar. Segmen biasanya bukan campuran tipe tipe berbeda.

Teknik segmentasi mempunyai sejumlah keunggulan di banding ruang alamat tidak bersegmen, yaitu: 1. Menyederhanakan penanganan struktur data yang berkembang. 2. Kompilasi ulang independen tanpa mentautkan kembali (relink) seluruh program. 3. Memudahkan pemakaian memori bersama diantara proses proses. 4. Memudahkan untuk proteksi.

7. Segmentasi Secara Murni segmen segmen dapat berukuran berbeda dan dinamis. Pengacuan pengacuan memori berbentuk (nomor segmen, offset). Alamat maya adalah offset di segmen. Tiap proses mempunyai table segmen, ketika proses running, alamat table dimuatkan ke register dasar. Nomor segmen digunakan untuk mencari diskriptor segmen di table segmen

dengan menyediakan alamat fisik awal segmen, panjangnya dan bit bit proteksi. Alamat fisik dihitung dengan menambahkan alamat dasar segmen ke alamat maya. 8. Perbandingan Antara Paging dan Segmentasi . Perbandingan mengenai teknnik paging dan segmentasi.

Teknik Kombinasi Sistem paging dan segmentasi mempunyai keunggulan dan kelemahan masing-masing. Sistem paging transparan bagi pemrogram, mengeliminasi fragmantasi eksternal, penggunaan memori utama yang efisien. Karena potongan-potongan yang dipindahkan masuk dan keluar memori utama berukuran sama, maka dimungkinkan mengembangkan algoritma menegemen memori yang memanfaatkan kelakuan pemrogram. Segmentasi tampak oleh pemrogram sehingga pemrogram harus memperlihatkan. Segmentasi berkemampuan menangani pertumbuhan struktur data, modularitas serta mendukung pemakaian bersama dan proteksi. Untuk mengkombinasi keunggulan keduanya, beberapa sistem dilengkapi perangkat keras pemroses dan perangkat lunak sistem operasi yang menyediakan kedua sistem.

Pada kombinasi paging dan segmentasi, ruang alamat pemakai dibagi menjadi sebuah segmen sesuai kehendak pemrogram. Tiap segmen dibagi menjadi sejumlah page berukuran tetap., berukuran sama dengan page frame memori utama. Jika segmen kurang dari ukuran page, segmen hanya memerlukan satu page. Dari pandangan pemrogram, alamat maya masih berisi nomor segmen dan offset di tengah segmen itu. Dari pandangan sistem, offset segmen dipandang sebagai nomor page dan offset untuk page disegmen yang dispesifikasikan. Dialokasikan dengan proses adalah tabel segme dan sejumlah tabel page, satu tabel per segmen proses. Ketika proses running, register menyimpan alamat awal tabel segmen untuk proses. Pemroses menggunakan bagian nomor segmen untuk mengindeks tabel segmen proses guna menemukan tabel page dan mencari nomor page korespondensi. Angka tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk menghasilkan alamat nyata yang diinginkan.

Contoh Sistem dengan Memori Maya Memori Maya dengan Segmentasi Murni Perangkat keras memberikan pengacuan memori suatu segmen tertentu. Pilihan segmen dapat dibuat dengan sembarang kombinasi tersebut: Instruksi Target dari suatu alamat (program atau data) Status saat itu (proses,sistem dan interupsi)

Alamat maya adalah offset disegmen. Tiap proses mempunyai tabel segmen. Ketika proses runnig, alamat awal tabel dimuatkan ke register dasar. Nomor segmen digunakan untuk mencari deskriptor segmen di tabel segmen yang menyediakan alamat fisik awal dari segmen, panjang dan bit-bit proteksinya. Alamat fisik dihitung dengan menambahkan alamat dasar segmen ke alamat maya. Gambar 11-3 menunjukkan skema segmentasi murni

Keunggulan Segmen-segmen berkorespondensi dengan unit-unit program,sehingga segmen-segmen ideal untuk proteksi dan pemakaian bersama. Biasanya program hanya menggunakan beberapa segmen sehingga hanya ruang kecil yang diperlukan. Informasi deskriptor dapat disimpan di register di MMU. Kelemahan Segme-segmen berukuran bervariasi menyebabkan fragmantasi eksternal dan sulit menyelesaikan pertumbuhan dinamis. Segmen-segmen tidak memetakan blok-blok dist untuk memori maya secara alami. Contoh sistem Intel 80386 dapat mengimplementasikan segmentasi murni jika tiap segmen kurang dari 1 Mbyte. Untuk segmen-segmen lebih besar, panjangnya harus kelipatan dari 4 Kb. Intel 80386 juga menyediakan mekanisme paging dua tingkat.

11.5.2 One Level Paging Nomor page maya digunakan sebagai indeks ke tabel page (page table) yang biasanya berlokasi di memori utama. Isian tabel page berisi nomor page fisik dan bot-bit proteksi. Offset pada page fisik sama dengan offset pada page maya. Keunggulan Semua bentuk paging mengeliminasi fragmentasi eksternal dan menyederhanakan alokasi dan pertumbuhan dinamis. Ukuran tabel dapat disimpan baik dengan menggunakan pagepage besar atau dengan membatasi ukuran maksimum program. Kelemahan Sejumlah besar ruang memori utama harus dicdangkan untuk tabel page sehingga menyediakan ruang alamat maya besar dengan page-page berukuran tertentu. Alokasi dan

pertumbuhan dinamis tabel page besardapat menjadi masalah karena haruskintigu di memori fisik. Pemakaian bersama hanya dimungkinkan dengan page-page dan isian-isian tabel page diduplikasi di tiap proses. Contoh Sistem DEC PDP -11 menggunakan mekanisme ini untuk memorinya. DEC VAX menggunkan mekanisme ini untuk ruang sistem. Data General Eclipse menggunakan mekanisme ini untuk program yang ukurannya kurang dari 1 Mbyte Motorola MC68030 dapat diprogram untuk menggunakan mekanisme ini.

11.5.3 Two Level Paging Translasi alamat maya ke alamat fisik lebih rumit, yaitu: 1. Pertama, indeks 1 ditambahkan ke alamat root atau dasar (root or base address) tabel segmen untuk memperoleh alamat isian tabel segmen (STE=Segmen Table Entriy) 2. Kedua, STE dibaca dari memori dan alamat dasarnya ditambah indeks 2 untuk memperoleh alamat isian tabel page (PTE=Page Table Entry) 3. Ketiga, PTE dibaca dari memori untuk memperoleh nomor page fisik. Nomor page fisik ini ditambah offset di alamat may untuk memperoleh alamat fisik akhir.

Keunggulan Mekanisme ini mengkombinasikan keunggulan segmentasi dan paging. Pemakaian bersama dapat dilakukan di level segmen, mereduksi kebutuhan isian-isian tabel page dan redundan. Tabel-tabel page tidak perlu berada di memori utama dan tidak perlu kontigu di memori

utama. Hal ini memungkinkan alokasi dan pertumbuhan tabel page yang sederhana dan memungkinkan memggunakan ruan alamat maya relatif besar.

Kelemahan Ruang alamat maya sangat besar (misalnya 4 Gbyte) memerlukan jumlah ruang besar tabel segmen yang harus disimpan di memori utama dan harus kontigu. Hal ini membuat alokasi dan pertumbuhan dinamis tabel segmen menjadi sulit. Contoh Sistem DEC VAX IBM S/370 menggunakan mekanisme ini. Data General Eclipse 32 bit menggunakan mekanisme ini untuk program lebih besar

daripada 1 Mbyte. Motorola MC68030 dapat diprogram dengan menggunakan mekanisme ini dengan

beragam ukuran page dan ukuran segmen. Intel 80386 dapat menggunakan mekanisme ini.

Three Level Paging Translasi nomor page maya ke nomor page fisik memerlukan tiga tahap. Tiap field indeks ditambah alamat dasar tabel yang berkorespondensi untuk menemukan isian tabel berikutnya. Kemudian isian tabel menyediakan bit-bit proteksi dan alamat dasar tabel berikutnya. Keunggulan Mekanisme tabel page banyak yingkat untuk implementasi memori maya dengan ruang alamat sangat dasar. Tabel page banyakbanyak tingkat memerlukan tabel-tabel page besar. Implementasi ruang memori maya sangat besar dengan tabel tidakterlalu banyak. Kelemahan Alokasi dan pertumbuhan dinamis tabel segmen menjadi sulit.

Contoh Sistem SUN SPARC, menggunakan tabel page tiga tingkat.

Four Level Paging Translasi nomor page maya ke nomor page fisik memerlukan empat tahap. Tiap field indeks di tambahkan alamat dasar tabel yang berkorespondensi untuk menemukan isian tabel berikutnya. Kemudian isian tabel menyediakan bit-bit proteksi dan alamat dasar tabel berikutnya. Keunggulan Mekanisme ini berguna untuk program yang menggunakan ruang alamat memori yang sangat besar program LISP besar yang secara continue mengalokasikan dan melepaskan daerah memori adalah tipe aplikasi yang cocok dengan mekanisme ini. Tabel ini dapat dipandang sebagai pohon yang hanya berisi cabang-cabang yang diperlukan untuk mencapai page-page yang sesungguhnya digunakan tiap level. Cara ini mereduksi jumlah ruang untuk tabel-tabel. Semua tabel kecuali tabel root dapat disimpan di disk. Biasanya, tabel individu tidak lebih besar dibanding satu page, alokasi dan pertumbuhan dinamis tabel-tabel page adalah mudah. Kelemahan Kondisi terburuk yang mungkin adalah kondisi untuk translasi memerlukan sebanyak empat pengacuan memori, masing-masing menghasilkan page fault. Karena kebanyakan page hanya memilki beberapa isian, tabel-tabel akan mempunyai fragmentasi internal sangat besar. Contoh Sistem Motorola MC68030 dapat diprogram menggunakan mekanisme ini dengan beragam ukuran page dan ukuran segmen. Sistem paging pada Motorola 68030 sangat canggih, hampir semua yang diperlukan terancang sistem oprasi disediakan.

SUMBER : BUKU SISTEM OPERASI REVISI V BAMBANG HARIYANTO

SISTEM PAGING
Adalah sistem manajemen pada sistem operasi dalam mengatur program yang sedang berjalan. Program yang berjalan harus dimuat di memori utama. Kendala yang terjadi apabila suatu program lebih besar dibandingkan dengan memori utama yang tersedia. Untuk mengatasi hal tersebut Sistem Paging mempunyai 2 solusi, yaitu: Konsep Overlay Dimana program yang dijalankan dipecah menjadi beberapa bagian yang dapat dimuat memori (overlay). Overlay yang belum diperlukan pada saat program berjalan (tidak sedang di eksekusi) disimpan di disk, dimana nantinya overlay tersebut akan dimuat ke memori begitu diperlukan dalam eksekusinya. Konsep Memori Maya (virtual Memory) Adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep ini pertama kali dikemukakan Fotheringham pada tahun 1961 untuk sistem komputer Atlas di Universitas Manchester, Inggris. Gagasan Memori Maya adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk. Begitu bagian di disk diperlukan maka bagian memori yang tidak diperlukan disingkirkan dan diganti bagian disk yang diperlukan.

A. Pengertian Memori Maya


Didalam menejemen memori dengan system partisi statis dan system dinamis sudah dapat menyelesaikan masalah menejemen memori didalam banyak hal, tetapi masih memiliki kekurangan atau keterbatasan di dalam pengakses. Dimana keterbatasan akses hanya sebatas addres memori yang ada secara fisik ( memori nyata ). Misalnya memori 64 MB maka addres maksimum yang dapat diakses hanya sebesar 64 MB saja. Pada hal banyak program yang akan diakses yang melebihi 64 MB. Untuk mengatasi hal tersebut agar kemampuan akses lebih besar lagi maka

dibentuklah memori maya ( yang pertama sekali di kemukakan oleh Fotheringham pada tahun 1961 untuk system komputer Atlas di Universitas Manchester, Inggris). Dengan memori maya program yang besar tadi akan dapat diterapkan pada memori kecil saja, misalnya program 500 MB dapat ditempatkan secara maya di memori 64 MB. Untuk mengimplementasikan memori maya tersebut dapat dilakukan dengan tiga cara : 1. 2. 3. Sistem Paging Sistem Segmentasi Sistem kombinasi Paging dan Segmentasi

B. Memori system Paging


Untuk menginplementasikan addres maya yang besar ke dalam memori yang kecil diperlukan index register, base register, segment register dan MMU ( Memory Menegement Unit ).

1.

Pemetaan Memori Sistem Paging

Sistem kinerja komputer akan menerjemahkan alamat maya menjadi alamat fisik. Dengan kata lain dalam system memori maya alamat memori tidak langsung di tuliskan ke BUS tetapi terlebih dahulu dimasukkan ke MMU untuk diterjemahkan. Ada dua kemungkinan keluaran MMU yaitu : a. Alamat yang dicari ada dimemori nyata, maka proses dapat langsung dikerjakan. b. Alamat yang dicari tidak ada didalam memori nyata, maka MMU mengeluarkan page fault, yaitu permintaan alokasi memori untuk proses itu. MMU mempunyai fungsi untuk memetakan memori maya ke memori fisik. Apabila alamat memori yang dipetakan tidak tersedia di memori fisik, MMU menertibkan exception page fault yang melewatkan ke system operasi untuk menengani. Gambar memperlihatkan Implementasi pemetaan memori system paging.

Apabila exception page fault meminta alokasi memori akan ditangani oleh system operasi yaitu memilih partisi yang telah selesai diakses dan kemungkinan proses ini akan digunakan lagi, dalam waktu yang lama lagi. Jika sudah dipilih maka program akan dikosongkan dari memori dan selanjutnya program yang alamatnya yang diminta akan dimasukkan ke memori.

2. Proses Pemetaan Pada MMU

Dibawah ini adalah suatu proses pemetaaan memori yang terjadi pada MMU. Alamat maya terdiri dari bagian nomor page dan offset. Alamat ini dicarikan didalam tabel page, bila ketemu maka MMU mengeluarkan page frame ( register alamat fisik ).Register alamat fisik terdiri darei nomor page dan offset, dimana nomor page frame lebih sedikit dari nomor page.

Apabila alamat tersebut tidak ada pada tabel page maka MMU mengeluarkan page fault.

C. Sistem Segmentasi
1. Pengertian Segmentasi Secara sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau segment yang berada di memori. Segment-segment itu dalam keadaan independent. Setiap segment berisi alamat 0 sampai maksimum secara linier. Panjang setiap segment berbeda-beda sampai panjang maksimun, perobahan panjang segment terjadi selama proses eksekusi. Segment stack bertambah ketika terjadi operasi push dan turun saat operasi pop, dimana setiap segment merupakan ruang alamat terpisah segment-segment dapat tumbuh dan mengkerut secara bebas tanpa mempengaruhi yang lain. Alamat terdiri dari dua bagian pada memori bersegment yaitu : a. b. Nomor segment Alamat pada segment ( offset ).

Segment dapat berisi : a. b. c. d. Prosedure Array Stack Kumpulan variable skala. Sistem dengan memori maya dengan segmentasi murni adalah alamat maya adalah offset di segment, setiap proses mempunyai tabel segment dan pada saat proses running alamat awal maya tabel dimuatkan ke register dasar. Nomor segment digunakan mencari deskriptor segment di tabel segment yang menyediakan alamat fisik awal dari segment, panjang dan bit-bit proteksinya. Alamat fisik dihitung dengan menambahkan alamat dasar segment ke alamat maya.

Keunggulan sistem ini dimana segment-segment tersebut saling berhubungan dengan unit-unit program, sehingga segment segment indeal untuk proteksi dan pemakaian bersama. Kelemahan sistem ini adalah dimana segment segment berukuran bervariasi menyebabkan fragmentasi eksternal dan sulit menyelesaikan pertumbuhan dinamis. Segment-segment tidak memetakan blok-blok disk untuk memori maya secara alami.

D. Teknik Kombinasi Paging Dan Segmentasi


Teknik kombinasi pacing dan segmentasi adalah ruang alamat pemakai dibagi menjadi sejumlah segment sesuai dengan kehendak pemrogram. Segment tersebut

dibagi menjadi sejumlah page berukuran tetap dan berukuran sama dengan page frame memori utama. Jika segment kurang dari ukuran page, maka segnent hanya memerlukan satu page. Dari segi pandangan pemrogram, alamat maya masih berisi nomor segment dan offset di segment itu. Dari segi pandangan sistem, offset segment dipandang sebagai nomor page dan offset page untuk page di segment yang dispesifiksikan. Penggabungan dengan proses adalah tabel segment dan sejumlah tabel page, merupakan satu tabel persegment proses. Saat proses running, register menyimpan alamat awal tabel segment untuk proses, pemroses menggunakan bagian nomor segment untuk mengindeks tabel segment proses guna menemukan tabel page untuk segment. Bagian angka page alamat maya digunakan untuk indeks tabel page dan mencari nomor page korespondensi. Angka tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk menghasilkan alamat nyata yang diinginkan.

Sumber

: http://frandstino.blogspot.com/2010/07/sistem-paging.html (Sabtu, 22 Juni 2013). : Sistem Operasi, Bambang Hariyanto Revisi Kelima