Anda di halaman 1dari 18

SWAPPING

Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi.

Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut. Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU menggunakan algoritma round-robin. Pada saat waktu kuantum berakhir, manajer memori akan memulai untuk menukar proses yang baru selesai keluar dan menukar proses lain ke dalam memori yang dibebaskan (Gambar 7-4). Pada waktu berjalan, penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk proses yang lain di memori. Ketika masing-masing proses menyelesaikan waktu kuantum-nya, akan ditukar dengan proses yang lain. Gambar 1.1. Proses Swapping
Monitor

Fence Address Swap - In

Swap - Out

Logical Memory

Page Table page number frame number

Phiscal Memory Frame = Page = 2n = 25 0

0 1 2 3 4

1 2 3 4 5

Swap-In

1 2 3 4 5 6

Swap-Out

32

Kebijakan penukaran juga dapat digunakan pada algoritma penjadwalan berbasis prioritas. Jika proses mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap out proses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi dapat di-load dan dieksekusi. Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang memori yang sama dengan sebelumnya. Jika proses pengikatan dilakukan pada saat load-time, maka proses tidak dapat dipindah ke lokasi yang berbeda. Tetapi, jika pengikatan pada saat execution-time , maka kemungkinan proses ditukar ke ruang memori yang berbeda, karena alamat fisik dihitung selama waktu eksekusi. Bila CPU scheduler memutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya pada ready queue ada di memori. Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa sistem misalnya Linux, UNIX dan Windows.

Partitioning Partitioning adalah teknik membagi memori menjadi beberapa bagian sesuai dengan kebutuhan. Sistem operasi akan menempati bagian memori yang tetap. Ada dua cara dalam pempartisian, yaitu : Gambar 1.1. Proses Swapping

1. Pemartisian Statis Pemartisian Statis adalah pemartisian memori menjadi partisi tetap yang mana proses-proses akan ditempatkan pada memori yang telah dipartisi tersebut. Berdasarkan ukuran dibagi menjadi dua, yaitu : a. Pemartisian dengan partisi berukuran sama yaitu teknik pemartisian dengan cara pembagian memori dengan besar kapasitas yang sama semua. Namun kalemahannya adalah Bila program berukuran lebih besar dibanding partisi yang tersedia, maka tidak dapat dimuatkan dan dijalankan. Pemrogram harus mempersiapkan overlay. Overlay adalah program dipecah menjadi

bagian-bagian yang dapat dimuat ke memori. Sehingga hanya bagian program yang benar-benar dieksekusi yang dimasukkan ke memori utama dan saling bergantian. Untuk overlay diperlukan sistem operasi yang mendukung swapping. Bila program lebih kecil daripada ukuran partisi yang tersedia, maka akan ada ruang yang tak dipakai, yang disebut fragmentasi internal atau pemborosan memori. Kelemahan ini dapat dikurangi dengan membuat partisi tetap dengan ukuran yang berbeda. Fragmentasi adalah pemborosan memori yang terjadi pada setiap organisasi penyimpanan. Fragmentasi internal : proses tidak mengisi penuh partisi yang telah ditetapkan untuk proses Fragmentasi eksternal : partisi tidak dapat digunakan karena ukuran partisi lebih kecil dibanding ukuran proses yang menunggu di antrian. b. Pemartisian dengan partisi berukuran berbeda yaitu teknik pemartisian dengan cara pembagian memori dengan besar kapasitas yang berbeda-beda. 2. Pemartisian Dinamis Dengan menggunkan partisi statis menyebabkan memori terlalu banyak diboroskan dengan proses-proses yang lebih kecil dibanding partisi yang ditempatinya. Namun apabila menggunakanpartisi dinamis maka jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. proses yang akan masuk ke memori segera dibuatkan partisi untuknya sesuai kebutuhannya. Teknik ini meningkatkan utilitas memori. Kelemahan partisi dimanis adalah dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai merumitkan alokasi dan dealokasi memori.

PAGING
1. 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 blok-blok 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 masing-masing. 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 suatukesatuan Meningkatkan waktu context-switch Kebanyakan dukungan paging terdapatpada hardware Ukuran page: besar?kecil?

Ilustrasi konsep paging

Contoh Paging Sederhana

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

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 kodekode 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 gunakanlah hingga mendekati page optimal agar bisa memanfaatkannya.

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. 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. Backup instruksi yang terakhir dijalankan sebelum terjadi page

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.