tugas so 7

11
PAGING 1. PENGERTIAN PAGING Paging adalah suatu metode yang mengizinkan alamat logika proses untuk dip ke alamat fisik memori yang tidak berurutan, yaitu sebagai solusi dari masalah f ekstern. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok- blok yang berukuran tertentu (frame) dan memecah memori logika menjadi blok-blok yang berukuran sama (page). Penerjemahan alamat virtual ke alamat fisik dilakukan ol page table melalui perantara Memory Management Unit (MMU). Paging menjamin keamanan data di memori saat suatu proses sedang Proteksi memori dapat diterapkan pada sistem paging dengan meletakkan bit protek setiap frame. Setiap sistem operasi mengimplementasikan paging dengan caranya ma masing.Hierarchical pagingdan hashed page table merupakan metode yang umum digunakan karena bisa menghemat ruang memori yang dibutuhkan. Hal-hal penting dalam Paging Tidak ada fragmentasi eksternal User melihat ruang memori sebagai suatu kesatuan Meningkatkan waktu context-switch Kebanyakan dukungan paging terdapat pada hardware Ukuran page: besar?kecil? Ilustrasi konsep paging Contoh Paging Sederhana

Transcript of tugas so 7

PAGING1. PENGERTIAN PAGING Paging adalah suatu metode yang mengizinkan alamat logika proses untuk dipetakan ke alamat fisik memori yang tidak berurutan, yaitu sebagai solusi dari masalah fragmentasi ekstern. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blokblok yang berukuran tertentu (frame) dan memecah memori logika menjadi blok-blok yang berukuran sama (page). Penerjemahan alamat virtual ke alamat fisik dilakukan oleh page table melalui perantara Memory Management Unit (MMU). Paging menjamin keamanan data di memori saat suatu proses sedang berjalan. Proteksi memori dapat diterapkan pada sistem paging dengan meletakkan bit proteksi pada setiap frame. Setiap sistem operasi mengimplementasikan paging dengan caranya masingmasing. Hierarchical paging dan hashed page table merupakan metode yang umum digunakan karena bisa menghemat ruang memori yang dibutuhkan. Hal-hal penting dalam Paging Tidak ada fragmentasi eksternal User melihat ruang memori sebagai suatu kesatuan Meningkatkan waktu context-switch Kebanyakan dukungan paging terdapat pada hardware Ukuran page: besar?kecil? Ilustrasi konsep paging

Contoh Paging Sederhana

Keuntungan dan kerugian Paging adalah: 1. Jika kita membuat ukuran dari masing-masing halaman menjadi lebih besar. Keuntungan. Akses memori akan relatif lebih cepat. Kerugian. Kemungkinan terjadinya fragmentasi intern sangat besar. 2. Jika kita membuat ukuran dari masing-masing halaman menjadi lebih kecil. Keuntungan. Kemungkinan terjadinya internal Framentasi akan menjadi lebih kecil. Kerugian. Akses memori akan relatif lebih lambat. Keuntungan lainnya dari paging adalah, konsep memori virtual

bisa diterapkan dengan menuliskan halaman ke disk, dan pembacaan halaman dari disk ketika dibutuhkan. Hal ini dikarenakan jarangnya pengunaan kode-kode dan data suatu program secara keseluruhan pada suatu waktu. Kerugian lainnya dari paging adalah, paging tidak bisa diterapkan untuk beberapa prosesor tua atau kecil (dalam keluarga Intel x86, sebagai contoh, hanya 80386 dan di atasnya yang punya MMU, yang bisa diterapkan paging). Hal ini dikarenakan paging membutuhkan MMU (Memory Management Unit). 2. SISTEM PAGING 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: a. 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. b. 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 : 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 ).

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 : Alamat yang dicari ada dimemori nyata, maka proses dapat langsung dikerjakan. 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.

Gambar 1. Implementasi Pemetaan Memori sistem 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. 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.

3. PERGANTIAN PAGE Saat terjadi page fault berarti harus diputuskan page frame di memori fisik yang harus diganti. Jika page yang diganti akan kembali digunakan,maka page akan dikembalikan secepatnya yang berarti terjadi page fault berulang kali. Algoritma penggantian page antara lain ; 1. Algoritma penggantian page acak (random page replacement algorithm ) Dari segi mekanisme algoritma tersebut, setiap akan timbul page fault, page yang diganti dengan pilihan secara acak. Untuk segi tekniknya sendiri pun algoritma ini tidak usah perlu menggunakan informasi dalam menentukan page yang diganti, didalam memory utama itu sendiri sudah mempunyai bobot yang sama untuk dipilih, karena teknik ini dapat dipakai untuk memilih page sembarang. Termasuk page yang sudah dipilih dengan benar-benar / page yang tidak seharusnya diganti.

Contoh gambar dari Algoritma page acak

2. Algoritma penggantian page optimal Pengertian dari algoritma ini sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip dari algoritma ini sangat efisien sekali karena hanya mengganti halaman yang

sudah tidak terpakai lagi dalam jangka waktu lama sehingga page fault yang terjadi akan berkurang dan terbebas dari anomali Belady Selain itu juga page fault dari algoritma ini memiliki rate paling tinggi dari algoritma lainnya dari semua kasus, akan tetapi tidak belum bias disebut sempurna karena sulit untuk di mengerti dan dari segi system pun belum tentu bisa mengetahui page untuk berikutnya tetapi dapat di simulasikan hanya untuk suatu program. Untuk intinya memanfaatkannya. gunakanlah hingga mendekati page optimal agar bisa

Contoh gambar dari Algoritma page optimal

3. Algoritma penggantian page NRU ( not recently used ) Untuk mekanisme dari algoritma ini diberi dua bit untuk mencatat status page, diantaranya bit M dan R yaitu : Bit M : Page yang telah dimodifikasi Bit M = 0 berarti tidak dimodif Bit M = 1 berarti sudah dimodif Bit R : Page yang sedang dipacu / referenced Bit R = 1 berarti sedang di acu Bit R = 0 berarti tidak sedang di acu Adanya dua bit di atas maka akan dapat dikelompokkan menjadi 4 kelas page, yaitu : Kelas 0 => Tidak sedang di acu / belum di modif (R=0, M=0) Kelas 1 => Tidak sedang di acu / telah di modif (R=0, M=1) Kelas 2 => Sedang di acu / belum di modif (R=1, M=0) Kelas 3 => Sedang di acu / telah di modif (R=1, M=1) Jadi apabali algoritma ini diasumsikan kelas-kelas bernomor lebih rendah baru akan di gunakan kembali dalam relatif jangka waktu lama. Intinya algoritma ini mudah dipahami dan dikembangkan karena sangat efisien walaupun tak

banyak langkah dalam pemilihan page dan kelemahannya juga tidak optimal tapi dalam kondisi normal yang memadai. 4. Algoritma penggantian page FIFO ( first in,first out ) Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama seperti prinsip antrian tak berprioritas. Page yang masuk terlebih dahulu maka yaitu yang akan keluar duluan juga. Untuk algoritma ini menggunakan structure data stack. Jadi kerjanya yaitu dimana kalau tidak ada frame yang kosong saat terjadi page fault maka korban yang dipilih adalah frame dengan stack paling bawah seperti hal nya halaman yang sudah lama tersimpan didalam memory maka dari itu algoritma ini juga bisa memindahkan page yang sering digunakan.

Contoh gambar dari Algoritma page FIFO Utamanya algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun 70-an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan dikenal dengan anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana page fault rate meningkat seiring dengan pertambahannya jumlah frame.

Contoh gambar dari Anomali Belady

5. Algoritma penggantian page modifikasi dari algoritma FIFO Algoritma FIFO murni jarang digunakan, tetapi dikombinasikan

(modifikasi).Kelemahan FIFO yang jelas adalah algoritma dapat memilih memindahkan page yang sering digunakan yang lama berada di memori. Kemungkinan ini dapat dihindari dengan hanya memindahkan 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 antara lain: - Algoritma penggantian page kesempatan kedua (second chance page replacement algorithm) -Algoritma penggantian clock page (clock page replacement algorithm) Algoritma yang pertama adalah algoritma second chance. Algoritma second chance berdasarkan pada algoritma FIFO yang disempurnakan. Algoritma ini menggunakan tambahan berupa reference bit yang nilainya 0 atau 1. Jika dalam FIFO menggunakan stack , maka second chance menggunakan circular queue . Halaman yang baru di-load atau baru digunakan akan diberikan nilai 1 pada reference bit-nya. Halaman yang reference bit-nya bernilai 1 tidak akan langsung diganti walaupun dia berada di antrian paling bawah (berbeda dengan FIFO). Urutan langkah kerja algoritma second chance adalah sebagai berikut: o Apabila terjadi page fault dan tidak ada frame yang kosong, maka akan dilakukan razia (pencarian korban) halaman yang reference bit-nya bernilai 0 dimulai dari bawah antrian (seperti FIFO). o Setiap halaman yang tidak di- swap (karena reference bit-nya bernilai 1), setiap dilewati saat razia reference bit-nya akan diset menjadi 0.

Contoh gambar dari Algoritma page Modifikasi FIFO

6. Algoritma penggantian page LRU ( least recently used ) Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit cost yang lebih besar. ama seperti algoritma optimal, algoritma LRU tidak mengalami anomali Belady. Algoritma ini memakai linked list untuk mendata halaman mana yang paling lama tidak terpakai. Linked list inilah yang membuat cost membesar, karena harus mengupdate linked list tiap saat ada halaman yang di akses.

Contoh gambar dari Algoritma page LRU 5. MASALAH-MASALAH UTAMA DALAM SISTEM PAGING 1. 2. 3. 4. Working set model. Kebijaksanaan penggantian lokal vs global. Frekuensi page fault. Ukuran page a. Working set model Prinsip lokalitas Prinsip lokalitas adalah proses-proses cenderung mengacu menyimpan secara tak seragam,mempunyai pola-pola sangat setempat.

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

Working set model of program behavior Himpunan kerja secara informal didefinisikan sebagai kumpulan page proses yang secara aktif diacu. Danning menyatakan bahwea agar suatu program berjalan secara efisien,himpunan kerja harus dijaga berada dimemori utama. Selain itu akan terjadi aktifitas page fault yang berlebihan. Prinsip-prinsip working set model Prinsip yang digunakan adalah melacak dan menjamin himpunan kerja yang tedapat di memori sebelum proses dijalankan. Kebijaksanaan penggantian lokal vs global Terdapat dua cara pendekatan untuk mengganti page,yaitu; Penggantian page lokal 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. Frekunsi page fault Untuk satu kelas besar algoritma penggantian page diketahui frekuensi page fault menurun begitu page memori fisik lebih banyak. Bila proses melampaui ambang atas frekunsi page fault maka dialokasikan page memori fisik untuk proses itu lebih banyak. Ukuran page Ukuran page ditentukan perancang sistem operasi. Ukuran page harus ditentukan agar sistem berkelakuan optimal. Penentuan ukuran page memerlukan penilaian pemahaman mendalam perangkat keras,perngkat lunak,dan aplikasi sistem. 5. MASALAH-MASALAH IMPLEMENTASI SISTEM PAGING : Perancang sistem paging berurusan beragam implementasi sistem paging,antara lain; 1. Backup instruksi yang terakhir dijalankan sebelum terjadi page fault. Bila terjadi page fault berarti sebagian instruksi telah dijalankan. Pengkopian program 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,sistem harus menentukan byte pertama instruksi. 2. Buffer perangkat masukan/keluaran (penguncian page di memori).

Penggantian page akan menimbulkan masalah mengacaukan proses yang melakukan operasi masukan/keluaran jika: Buffer perangkat masukan/keluaran ikut tergusur. Adanya Buffer satu perangkat masukan/keluaran menjadi rangkap. 3. Page yang dipakai bersama. Bila beberapa pemakai menggunakan program yang sama maka terjadi perangkapan page (page yang sama terdapat dibanyak dibagian memori). Lebih efisien bila menggunakan page secara bersama,menghindari keharusan mompunyai copyan-copyan page yang sama disaat yang sama. 4. Backing store. Masalah lain adalah menyangkut dimana diletakkan page yang keluar dari memosi utama. Terdapat beragam algoritma untuk mengatasi hal ini yaitu: Menggunakan ruang penggantian khusus. Dialokasikan berdasarkan kebutuhan. 5. Paging daemons. Paging bekerja bagus saat terdapat banyak page frame bebas yang dapat diklaim begitu page fault terjadi. Jika setiap page frame penuh dan telah dimodifikasi,sebelum page baru dimasukan,page lama harus ditulis lebih dulu ke disk. Untuk menjamin suplai page frame yang banyak,sistem paging biasanya mempunyai proses background yang disebut page daemons. 6. Penanganan page fault (page fault handling) Implementasi sistem paging harus mengatasi rincian-rincian aksi yang harus dilakukan saat terjadi page fault.