This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Minggu, 15 September 2013

MUTUAL EXCLUSION DAN DEADLOCK

Mutual Exclusion

Mutual Exclusion adalah suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama. Jadi, Mutual Exclusive terjadi ketika hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.

Bagian program yang sedang mengakses memori atau sumberdaya yang dipakai bersama disebut critical section / region. Kesuksesan proses-proses kongkuren memerlukan pendefinisian critical section dan memaksakan mutual exclusion diantara proses-proses kongkuren yang sedang berjalan. Pemaksaan mutual exclusion merupakan landasan pemrosesan kongkuren, namun pemaksaan mutual exclusion dapat menimbulkan 2 masalah yaitu :
  • Deadlock
Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya.
  • Startvation
Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu proses lain supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.

Tgl akses 22 April 2013


Syarat penting solusi penjaminan mutual-exclusion adalah:
ü  Bebas dari deadlock
ü  Bebas dari starvation
ü  Fairness
ü  Fault-tolerance

Pendekatan penjaminan mutual-exclusion di sistem tersebar:
v  Algoritma terpusat
v  Algoritma tersebar

Algoritma Terpusat
Ø  Satu proses merupakan koordinator.
Ø  Waktu proses-proses lain ingin masuk critical region, proses mengirim pesan ke koordinator memberitahu critical region yang ingin dimasukinya dan meminta ijin.
Ø  Jika tidak ada proses lain di critical region, koordinator mengirim balik jawaban pemberian ijin.
Ø  Ketika ijin tiba, proses yang meminta segera memasuki critical region.
Ø  Jika ada proses lain di critical region, koordinator menolak ijin.
Penolakan ijin dapat berupa:
Ø  Mendiamkan, proses peminta blocked dan menunggu jawaban.
Ø  Mengirim jawaban berupa “penolakan ijin”
Ø  Mengantrikan permintaan
Keunggulan :
1.      Menjamin mutual-exclusion
Karena hanya mengijinkan satu proses memasuki critical region.
2.      Adil
Karena mengijinkan sesuai urutan diterimanya pesan.
3.      Tak ada proses yang menunggu selamanya.
4.      Mudah diimplementasikan.
5.      Dapat digunakan untuk mengelola sumber daya.
Kelemahan :
1.      Terdapat satu titik kegagalan
2.      Jika koordinator gagal, maka gagallah seluruh sistem.
3.      Koordinator dapat menjadi botlenect
4.      Waktu tunda pengiriman sinkronisasi besar

Algoritma Tersebar
Klasifikasi algoritma tersebar:
o   Nontoken-based algorithms
o   Token based algorithms

Nontoken-Based Algorithms
Beberapa pendekatan nontoken-based algorithm:
1.      Lamport’s algorithm
2.      Ricart-agrawala algorithm
3.      Maekawa algorithm
1. Lamport’s algorithm
Syarat :
o   Perlu pengurutan total seluruh kejadian
o   Untuk sembarang pasangan kejadian, tidak boleh ambigu, harus diketahui keterdahuluan kejadian.
Solusi :
o   Penerapan algoritma Lamport untuk pengurutan kejadian
o   Penggunaaan stempel waktu untuk proses
Algoritma :
o   Ketika proses ingin memasuki critical region, proses pembangun pesan berisi nama critical region yang ingin dimasuki, nomor proses dan waktu saaat itu.
o   Proses mengirim pesan ke semua proses lain, secara konseptual termasuk ke dirinya. Pengiriman pesan diasumsikan handal,yaitu setiap pesan di-ack. Jika komunikasi kelompok handal tersedia, maka komunikasi ini dapat digunakan.
o   Ketika proses menerima pesan permintaan dari proses lain, aksi yang diambil bergantung state-nya berkaitan dengan critical region yang diminta. Terdapat tiga kasus yaitu :
1.      Jika penerima tidak berada di critical region dan tidak ingin memasuki, penerima mengirim balik pesan OK ke pengirim.
2.      Jika penerima telah berada di critical region proses tidak menjawab. Proses mengantrikan permintaan itu.
3.      Jika penerima ingin memasuki critical region tapi belum melakukannya, penerima membandingkan stempel waktu pesan datang dengan pesan dikirim. Nilai terendah menang. Jika pesan datang lebih rendah, penerima mengirim pesan OK. Jika pesan mempunyai stempel waktu lebih rendah, penerima mengantrikan permintaan datang dan tak mengirim apapun.
o  Setelah mengirim permintaan meminta ijin memasuki critical region, proses menunggu sampai semua proses lain memberi ijin. Begitu semua ijin dipunyai, proses memasuki critical region.
o  Ketika proses keluar critical region, proses mengirim pesan OK semua proses yang diantrikan dan menghapus semuanya dari antrian.
Keunggulan :
o   Dijamin tanpa deadlock atau starvation
o   Tak ada satu titik kegagalan

Kelemahan :
o   Jumlah pesan yang diperlukan per masuk ke critical region adalah 2(n-1),dimana n adalah jumlah proses yang terdapat di sistem.
o   Menjadi terdapat n kegagalan, karena diamnya proses (meski secara tak benar) akan diinterpretasikan sebagai penolakan ijin, sehingga akan mem-block semua usaha semua proses untuk memasuki critical region.
o   Pemakaian primitif komunikasi kelompok atau tiap proses harus mengelola keanggotaan kelompok termasuk proses yang memasuki, meninggalkan dan crash. Metode ini terbaik bekerja dalam sekelompok kecil proses yang tak pernah berubah keanggotaan kelompoknya.
o   Karena yang memutuskan n proses maka terdapat beban jaringan yang tinggi.
2. Ricart-agrawala algorithm
Algoritma ini merupakan optimasi Lamport, memerlukan 2(N-1) pesan per eksekusi critical region waktu tunda sinkronisasi adalah T.


3.Algoritma Maekawa
Algoritma ini berbeda dengan kebanyakan penyelesaian, yaitu :
o   Situs tidak perlu meminta ijin dari semua situs, tapi hanya satu subset situs. Berbeda dengan algoritma Lamport, dan algoritma Ricart-Agrawala dimana semua situs berpartisipasi dalam penyelesaian.
o   Situs hanya dapat mengirim satu pesan REPLAY pada satu waktu. Situs hanya dapat mengirim pesan REPLAY setelah menerima pesan RELEASE untu REPLAY  sebelumnya.
Algoritma ini memerlukan 3√N per eksekusi critical region. Waktu tunda sinkronisasi adalah 2T dapat mengakibatkan Deadlock.

Token-Based Algorithm
Satu token unik dipakai bersama diantara semua situs. Proses diijinkan memasuki critical section bila memiliki token.
Beberapa pendekatan Token-Based Algorithm :
o   Token-ring algorithm
o   Suzuki-Kasami’s broadcast algorithm
o   Singhal’s heuristic algorithm
o   Raymond’s tree-based algorithm
Algoritma Token Ring
Terdapat ring logik secara perangkat lunak.
Yang terpenting tiap proses mengetahui urutan proses berikutnya.
o   Ketika ring diinisialisasi,proses O diberi token.
o   Token berkeliling ring. Token melewati proses k ke proses k+1 dengan pesan point-to-point.
o   Ketika proses memperoleh token dari tetangganya, proses memeriksa apakah proses tersebut sedang berusaha memasuki critical region.
§  Jika ingin memasuki, proses memasuki critical region, mengerjakan semua yang diperlukan dan meninggalkan critical region.
§  Setelah keluar, proses melewatkan token ke ring. Proses tidak diijinkan memasuki critical region yang kedua kali dengan token yang sama.
o   Jika proses yang memiliki token tapi tidak ingin memasuki critical region, proses segera melewatkan token.
Keunggulan:
o   Algoritma ini menjamin hanya ada satu proses yang memasuki critical region, karena hanya satu proses yang mempunyai token.
o   Starvation tidak  terjadi karena adanya pengurutan proses.
Kelemahan:
o   Jika token hilang, token harus dibangkitkan lagi.
o   Proses yang crash akan menimbulakan kesulitan.
Suzuki-Kasami’s Broadcast Algorithm
Pada algoritma ini, situs yang ingin memasuki critical regionyang tak mempunyai token membroadcast pesan REQUEST untuk token ke semua situs lain.
o   Jika menerima pesan REQUEST saat mengeksekusi critical region, proses mengirim token setelah proses keluar dari critical region.
o   Proses bisa memasuki critical region berulangkali sampai sistem mengirimkan token kepada situs yang meminta.
Masalah yang harus diselesaikan :
o   Pembedaan antara pesan usang dan pesan saat itu.
o   Penentuan situs yang mempunyai REQUEST paling perlu.
Singhal’s Heuristic Algorithm
Pada algoritma ini, masing masing situs mengelola informasi mengenai state dari situs situs lain dan menggunakannya untuk memilih sekumpulan situs yang paling berpeluang memiliki token. Situs meminta token hanya ke situs situs ini.
Algoritma ini berpotensi mengakibatkan Deadlock atau startvation. Diperlukan rancangan sehingga situs dapat memilih satu subset yang sedikitnya satu situs dijamin memegang token sebentar kemudian.
Raymond’s tree-based algorithm
Pada algoritma ini, situs- situs secara logik disusun dalam satu pohon berarah sehingga busur-busur berarah ke situs yang mempunya token. Setiap simpul yang mempunyai variabel lokal holder menunjuk ke simpul tetangga dekat pada jalur berarah ke simpul akar. Jika diikuti variabel holder di situs-situs itu, setiap situs mempunyai jalur berarah yang menuju ke situs yang memegang token.

DEADLOCK
Deadlock di sistem tersebar serupa deadlock di sistem pemproses tunggal, hanya lebih rumit. Deadlock lebih sulit dihindari, dicegah, dideteksi dan dipulihkan saat diketahui terdapat deadlock karena informasi tersebar di banyak mesin.
Deteksi Deadlock
Kebanyakan deteksi deadlock adalah dengan menemukan siklus di wait-for graph. Disana simpul menyatakan transaksi dan item data, busur menyatakan item data yang digenggam satu transaksi atau proses sedang menunggu item data. Terjadi Deadlock hanya terjadi/ terdapat di wait-for graph.
Deteksi deadlock tersebar memerlukan penemuan siklus di wait-for graph global yang tersebar di beberapa server yang terlibat pelayanan.
Deteksi deadlock pada sistem tersebar:
Ø  Deteksi deadlock secara terpusat
Ø  Deteksi deadlock secara tersebar
1.Deteksi Deadlock Secara Terpusat
            Algoritma Deteksi Terpusat Sepenuhnya
Merupakan solusi sederhana, yaitu satu server berperan sebagai detektor deadlock global. Server-server lainnya mengirim kopain wait-for graph lokal ke detektor global. Detektor global menyusun wait-for graph global dari informasi-informasi wait-for graph lokal. Detektor global memeriksa wait-for graph global. Bila ditemukan siklus, detektor global membuat keputusan penyelesaian deadlock dan mengintruksikan server-server lain untuk membatalkan transaksi untuk penyelesaian deadlock.
Kelemahan
Bergantung pada satu server sehingga dapat menjadi bottlenect, rentan kegagalan, kurang fault-tolerence dan tidak dapat diskala menjadi sistem besar. Lalu lintas informasi sangat tinggi membebani jaringan.
2.Deteksi Deadlock Secara Tersebar
Pada algoritma deteksi deadlock tersebar, semua situs secara bersama bekerja mendeteksi siklus di graph state yang tersebar pada beberapa situs di sistem. Algoritma deteksi deadlock tersebar dapat dimulai kapanpunsaat satu proses dipaksa menunggu, dapat dimulai oleh situs lokal dari proses atau situs dimana proses harus menunggu.

Tardapat beragam algoritma deteksi deadlock secara tersebar, antara lain:
o   Algoritma path-pushing
o   Algoritma edge-chasing
o   Algoritma diffusion computation
o   Algoritma global state detection
Algoritma Path-pushing
Informasi kebergantungan wait-for dipropagasikan dalam bentuk path-path. Algoritma yang termasuk kelas ini adalah algoritma Obermarck yang diimplementasikan pada sistem berbasis R* IBM.
Algoritma obermarck dapat mendeteksi Phantom Deadlock yang sesungguhnya bukan deadlock.
Algoritma Edge-chasing
Pesan pesan kusus disebut probe berkililing sepanjang busur busur dari WFG untuk mendeteksi keberadaan siklus. Ketika proses blocked menerima probe, proses mempropagasi probe sepanjang busur busur di WFG. Proses menyatakan deadlock ketika proses menerima probe yang dimulainya.
Algoritma Diffusion Computation
Menggunakan algoritma echo untuk mendeteksi deadlock. Untuk mendeteksi deadlock, proses mengirim pesan pesan query sepanjang busur busur keluar di WFG. Query query ini secara berurutan dipropagasikan sepanjang busur busur WFG. Query query akan diabaikan oleh proses yang sedang berjalan dan digemakan oleh proses proses blocked dengan cara :
Ketika proses blocked menerima query pertama sebagai deteksi deadlock, proses tidak mengirim pesan jawaban sampai proses telah menerima pesan jawaban untuk setiap query yang dikirimkannya.
Untuk query query berikutnya sebagai deteksi deadlock saat itu, proses segera mengirim pesan jawaban. Proses yang memulai deteksi deadlock mendeteksi terjadinyan deadloc ketika menerima jawaban dari semua query yang dikirimkannya.
Algoritma Global State Detection
Algoritma ini berbasis state global yang mempunyai properti berikut :
o   Snapshot konsisten dari sistem tersebar dapat diperoleh tanpa membekukan komputasi.
o   Snapshot konsisten dapat tidek menyatakan state sistem pada satu waktu, tapi jika properti stabil terdapat di sistem sebelum pengumpulan snapshot dimulai, maka properti ini akan tetap ada di snapshot.
Deteksi deadlock dengan cara ini adalah dengan mengambil satu snapshot dari sistem dan memeriksa keberadaan kondisi deadlock.
Algoritma Deteksi Deadlock Hirarki
Pada algoritma ini, situs situs disusun secara hirarki dan satu situs bertanggungjawab untuk mendeteksi deadlock yang melibatkan situs situs anaknya. Algoritma ini memanfaatkan kenggulan pola pola pengaksenan yang teralokasi ke kelompok kelompok situs untuk optimasi kinerja.
Penyelesaian Deadlock
Cara
Membatalkan sedikitnya satu proses yang terlibat deadlockdan memberikan sumber dayanya ke proses lain yang terlibat deadlock.
Informasi yang Diperlukan
Proses proses yang terlibat deadlock dan sumber daya yang digenggam proses.
Penyebab penyelesaian di sistem tersebar lebih rumit:
o   Proses yang mendeteksi deadlock tidak mengetahui semua proses yang terlibat deadlock.
o   Dua proses atau lebih dapat secara independen mendeteksi deadlock yang sama. Jika setiap proses yang mendeteksi deadlock itu menyelesaikan deadlock, maka penyelesaian deadlock akan tidak efisien. Kita memerlukan pengolahan post-detection untuk memilih proses yang bertanggungjawab menyelesaikan deadlock.
Pemilihan Koordinator
Banyak algoritma tersebar memerlukan satu proses bertindak sebagai koordinator, inisiator, pengurut, atau lainnya, melakukan peran kusus. Umumnya, tidak peduli proses yang mengambil tanggungjawab ini, terpenting terdapat satu proses yang melakukan tugas ini. Diperlukan pemilihan koordinator.
Asumsi
o   Semua proses dianggap tepat sama tanpa berkarakteristik berbeda.
o   Tiap proses bernomor unik, misalnya alamat jaringan.
Asumsi
Satu proses per mesin.
o   Tiap proses mengetahui nomor proses dari setiap proses lain.
o   Yang tidak diketahui: proses mana yang saat itu yang aktif dan tidak aktif.
Pemilihan Proses Bernomor Tertinggi
Algoritma pemilihan berusaha menemukan proses bernomor proses tertinggi dan diberi tugas sebagai koordinator.
Tujuannya untuk memutuskan koordinator baru.
Algoritma Bully ( Oleh Garcia-Molina (1982))
Asumsi
Tiap kelompok mengetahui identitas identitas dan alamat alamat dari anggota lain.
Terdapat tiga tipe pesan :
1.      Pesan Pemilihan (Pesan untuk pemberitahuan dimulainya pemilihan)
2.      Pesan Jawaban (pesan sebagai tanggapan dari pesan pemilihan)
3.      Pesan Koordinator (pesan sebagai pemberitahuan identitas koordinator baru)
Mekanisme
Saat proses X memperingatkan koordinator tidak lagi menanggapi permintaan, proses X menginisiasi pemilihan. Proses X melakukan tindakan berikut :
1.      X mengirim pesan election ke setiap proses lebih tinggi.
2.      Jika tidak ada yang menanggapi, X memenangkan pemilihan dan menjadi koordinator yang baru. Kemudian proses X mengirim pesan coordinator untuk memberi tahu proses lain mengenai koordinator yang baru.
3.      Jika terdapat proses bernomor lebih tinggi, proses mengirim pesan answer.
o   Proses X menunggu sampai proses lebih tinggi mengirim pesan coordinator sebagai tanda pengambilan peran koordinator.
o   Bila proses X tidak menerima pesan coordinator berarti proses yang lebih tinggi telah mengalami kegagalan. Proses X kembali mengulangi siklus pemilihan koordinator yang baru.
Proses yang menerima pesan coordinator akan merekam identifier koordinator. Saat pesan yang sebelumnya mengalami kegagalan dapat berjalan kembali, proses itu akan segera memulai fase pemilihan. Jika identifier proses merupakan yang tertinggi, proses akan menjadi koordinator baru, meskipun proses koordinator lama masih berfungsi.
Algoritma Ring

Asumsi
Proses proses terurut secara fisik atau logik, tiap proses mengetahui penerusnya.
Saat satu proses memperingatkan bahwa koordinator tidak berfungsi, proses mengirim pesan election berisi nomor prosesnya dan mengirim ke penerusnya. Jika penerusnya berhenti, pengirim melompati penerusnya itu dan mengirim ke anggota berikutnya di ring atau proses setelahnya, sampai satu proses yang berjalan ditemukan. Pada tiap langkah, pengiriman menambahkan nomor prosesnya ke senarai di proses.
Proses akan kembali ke proses yang memulai. Proses mengenalikejadian ini saat menerima pesan berisi nomor prosesnya. Pada saat itu, tipe pesan proses diubah menjadi coordinator dan berputar sekali lagi, menginformasikan ke proses lain mengenai proses yang bertindak sebagai koordinator dan anggota anggota ring yang baru.

Sumber : Buku Bambang Harianto





SISTEM PAGING DAN SEGMENTASI

SISTEM PAGING
Sistem Paging merupakan 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, ada 2 solusi untuk menyelesaikannya, yaitu :
1.      Konsep Overlay
Yaitu program dipecah menjadi bagian-bagian yang dapat dimuat memori. Overlay yang belum diperlukan (tidak sedang dieksekusi) disimpan di disk, overlay dimuatkan ke memori begitu diperlukan (kode di overlay akan dieksekusi).
Kini teknik Overlay telah ditinggalkan karena teknik memori maya telah dapat diimplementasikan dengan murah dan berkinerja bagus.
2.      Konsep Memori Maya
Yaitu kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep ini dikemukakan Fotheringham pada 1961. 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. Jika bagian di disk diperlukan maka bagian dimemori yang tidak diperlukan disingkirkan diganti bagian di disk yang diperlukan itu.
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan ibdex register, base register dan segment register, dll. Pemakai seolah-olah mempunyai ruang memori sangat besar tanpa mengelola overlay.

Beberapa istilah pada sistem paging :
1.      Alamat Maya (Virtual Address)
Alamat yang dihasilkan dengan perhitungan menggunakan index register, base register, segment register dsb. Jumlah alamat pada V disimbolkan dengan |V|.
2.      Alamat Maya (Real Address)
Alamat yang tersedia di memori utama fisik. Jmlah alamat pada R disimbolkan dengan|R|. Ada implementasi sistem memori maya, normalnya |V|>>|R|.
3.      Page
Unit terkecil virtual address space.
4.      Page Frame
Unit terkecil memori fisik. Page Frame disebut jugan dengan Frame.
5.      Page Fault
Excption untuk permintaan alokasi ‘page’ ke memori.

 

6.      Memory Management Unit (MMU)
Chip atau kumpulan yang memetakkan alamat maya ke alamat fisik.

  • Pada komputer tanpa memori maya, almat langung diletakkan ke bus dan menyebabkan word memori fisik alamatitu dibaca atau ditulis.
  • Pada komputer dengan memori maya, alamat tidak diletakkan ke bus secara langsung, tapi lewat MMU yang kemudian memetakkan alamat maya ke alamat memori fisik.


TABEL-TABEL PAGING
Pemakaian tabel page pada sistem paging menimbulkan 2 masalah utama, yaitu :
1.      Tabel page dapat berukuran luar biasa besar
Bila memori maya sangat besar maka tidak mungkin menggunakan satu tabel tunggal karena akan memerlukan tabel berukuran sangat besar. Solusinya menggunakan tabeltabel bertingkat (seruap indeks bertingkat di organisasi berkas).
2.      Pemetaan harus dilakukan secara cepat.
Pemetaan alamat maya ke alamat fisik dilakukan setiap terjadi pengacuan memori. Pada pemroses dngan memori maya, pengelolaan page besar dan cepat merupakan konstrain uutama perancangan dan pembangunan pemroses.

PENGGANTIAN PAGE

Saat terjadi page fault berarti harus diputuskan page frame di memori fisik yang harus diganti. Kinerja sistem akan baik jika page yang diganti dipilih yang tidak akan digunakan dimasa datang. Jika age yang diganti akan kembali digunakan, maka page akan dikembalikan secepatnya yang berarti terjadi page fault berulang kali.
Algoritma Penggantian Page antara lain :

1. Algoritma Peggantian Page Acak
Teknik ini tidak memakai informasi apapun dalam menentukan page yang diganti. Semua page dimemori utama mempunyai bobot sama untuk dipilih. Teknik ini dapat memilih sembarang page, termasuk page yang sedang diacu (page  yang seharusnya tidak diganti, pilihan terburuk). Akan tetapi, teknik ini sangat buruk, percobaan menunjukan rate page fault sangat tinggi.
2. Algoritma Penggantian Page Optimal
Dasar algoritma ini adalah memilih page yang berpeluang  dipakai kembali dimasa datang paling kecil. Strategi ini akan menghasilkan jumlah page fault paling sedikit. Algoritma ini merupakan algoritma utopia (ideal tanpa dapat dijadikan  kenyataan) karna tak mungkin dibuat prosedur yang dapat mengetahui pemakaian suatu page kembali dimasa datang. Dan metode ini tak mungkn diterapkan.
Algoritma ini penting untuk kajian teoritis, sebagai pembanding bagi algoritma-algoritma peggantian page yang lain.
3. Algoritma Penggantian Page NRU (Not Recently Used)
Pada algoritma ini, page diberi 2 bit mencatat status page, R dan M.Algoritma ini mengasumsikan kelas-kelas bernomor lebih rendah akan baru akan digunakan kembali dalam waktu relatif lama.
Algoritma ini mudah dipahami dan diimplementasikan. Implementasi algoritma ini sangat efisien karna tak banyak langkah dalam pemilihan page. Akan tetapi, algoritma ini tidak optimal, tapi dalam kondisi-kondisi normal telah memadai.
4. Algoritma Penggantian Page FIFO
Algoritma ini dapat memilih memindahkan page yang sering digunakan yang lama berada dimemori. Kemungkinan ini dapat dihindari dengan hanya memindahkan page tidak diacu.
Variasi dari FIFO adalah :
  • Algoritma Penggantian Page Kesempatan Kedua
Mekanisme Algoritma :
- Saat terjadi page fault, algoritma dapat memilih page elemen terdepan diganti bila bit R bernilai 0.
-Bila bit R bernilai 1, maka bit page terdepan senarai direset menjadi 0 dan diletakkan ke ujung belakang senarai. Mekanisme ini kembali diterapkan ke elemen berikutnya.
  • Algoritma Penggantian Page Clock
Algoritma ini merupakan perbaikan algoritma pertama.
Mekanisme Algoritma :
- Semua page merupakan senarai melingkar membentuk pola jam. Terdapat penunjuk (pointer) ke page tertua.
Ketika terjadi age fault, page yang ditunjuk diiperiksa.
- Jika bit R bernilaii 0, maka page diganti. Page baru ditempatkan ditempat page diganti, dan penunjuk dimajukan satu posisi ke page berikutnya.
  • Algoritma Penggantian Page LRU (Least Recently Used)
Page-page pada beberapa intruksi terakhir berkemungkinan besar akan dipakai kembali. Page-page yang lama tidak digunakan akan tetap tak digunakan dalam waktu lama. 
Mekanisme algoritma :
Ketika terjadi page fault maka memindahkan page yang tak digunakan paling lama.
PEMODELAN ALGORITMA PAGING

Tampaknya beralasan bila dinyatakan bahwa bila lebih banyak page yang dialokasikan untuk proses, maka page fault yang terjadi akan lebih sedikit. Belady menemukan pada algoritma FIFO, bahwa pada pola-pola pengacuan tertentu menyebabkan lebih banyak page fault bila alokasi page untuk proses ditambah. Fenomenanya disebut Anomali Belady.
Fenomena dapat diilustrasikan yaitu :
  • Program dengan lima page
  • Urutan page yang diacu adalah 0 1 2 3 4 0 1 4 0 1 2 3 4
MESIN ABSTRAKSI EKSEKUSI PROGRAM

Setiap proses dimemori maya menghasilkan barisan pengacuan memori saat berjalan. Pengacuan memori berkorespondensi dengan satu page.
Sistem Oaging dicirikan 3 hal :
- String pengacuan proses yang sedang dieksekusi
- Algoritma penggantian page yang digunakan.
Jumlah page frame yang tersedia (pada memori)



Terdapat mesin abstrak interpreter dengan properti berikut:

1.    Terdapat array internal, M, menyimpan status memori. Array mempunyai n elemen seperti proses mempunyai npage memori maya.

2.    Array M terbagi dua, yaitu:

  1. Bagian atas/puncak, yaitu m isian, page di memori utama.
  2. Bagian bawah/dasar berisi n-m isian, yaitu semua page yang pernah diacu sekali tapi telah dipindahkan dan tidak di memori 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 dimulai, proses mulai mengeluarkan page sesuai string pengacuan, satu page pada satu saat. Terhadap page itu, interpreter memeriksa apakah page berada di memori (yaitu merupakan isian bagian puncak array M). Jika page tidak ada di memori, dan jika terdapat slot kosong di memori (yaitu bagian puncak kurang dari m), maka page dimuat dan dimasukkan ke puncak M. Situasi ini hanya muncul di awal 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 ke bagian dasar, serta page yang diperlukan dimasukkan ke puncak. 
Masalah-masalah Utama pada Sistem Paging
Masalah-masalah Utama pada Sistem Paging adalah working set model, kebijaksanaan penggantian lokal vs global, dan frekuensi page fault, serta ukuran page.

Working Set Model

1.Prinsip Lokalitas

Prinsip lokalitas adalah proses-proses cenderung mengacu pada penyimpan secara tak seragam. 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 menunjukkan kecenderungan kelakuan lingkungan sistem bukan tepat eksak. Gambar 4-14 menunjukkan pola pengacuan selama eksekusi yang mendukung adanya prinsip lokalitas. Bagian gelap menunjukkan pengacuan dilakukan di sekitar lokalitas yang saling berdekatan.






Gambar Pola Pengacuan-pengacuan Page Selama Eksekusi Sistem



Lokalitas berdasar waktu adalah, proses cenderung terkonsentrasi acuannya kesatu 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 lokalitas, antara lain:
  • Looping.

  • Subrutin.   

  • Stack, dan

  • Variabel-variabel yang digunakan untuk iterasi dan penjumlahan total.     



Lokalitas berdasar ruang adalah proses cenderung terkonsentrasi acuannya kesatu kelompok data yang berdekatan. Berarti pengacuan-pengacuan (untuk data) cenderung mengelompok ke range lokasi tertentu. Begitu suatu lokasi diacu, cenderung akan mengacu lokasi-lokasi didekatnya. Observasi berikut mendukung prinsip ini, antara lain:

  • Traversal pada array.

  • Eksekusi kode yang sekuen.

  • Kecenderungan pemrogram menempatkan variabel yang terkait saling berdekatan.


Working Set Model of Program Behavior
Himpunan kerja secara informal didefinisikan 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 di memori, proses akan berjalan tanpa menyebabkan banyak page fault sampai proses berpindah ke fase eksekusi yang lain. Idealnya himpunan kerja program adalah kumpulan page terdiri, dan page-page program yang terlokalisasi pada waktu itu. Program berpindah dari satu lokalitas ke lokalitas lain saat dieksekusi, begitu juga page-page himpunan kerja.




Prepaging merupakan teknik memuatkan page-page lebih dulu sebelum proses berjalan. Sementara Demand paging adalah teknik yang segera memuatkan page begitu page dibutuhkan. Model himpunan kerja menghendaki digunakan prepaging. Untuk implementasi model himpunan kerja, sistem operasi perlu mencatat page-page yang termasuk himpunan kerja. Salah satu cara memonitor informasi ini adalah dengan menggunakan algoritma pencatatan umur page.

Page berisi bit-bit penghitung bernilai f 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 sistem. Kinerja sistem biasanya tidak sensitif terhadap nilai eksak  n.



Masalah-Masalah Implementasi Sistem Paging

Perancang sistem paging berurusan beragam masalah implementasi sistem 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, dan paging daemon, serta penanganan page fault (page fault handling).



a.Backup Instruksi

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. Kesulitan timbul karena nilai program counter saat terjadi page fault bergantung pada operan yang menyebabkan fault dan mikrokode pemroses. Masalah memburuk pada instruksi di mode autoincrement, sangat bergantung pada rincian-rincian mikrokode, yaitu:

  • Jika increment scsungguhnya dilakukan sebelum pengacuan memori, maka sistem operasi harus decrement register secara perangkat lunak sebelum mengulangi instruksi yang menyebabkan page fault.

  • Jika increment dilakukan setelah pengacuan memori, maka tidak perlu dilakukan decrement register oleh sistem operasi.

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



b.Buffer I/O (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.

  • Masalah diatasi dengan dua alternatif yaitu:

o   Penguncian buffer perangkat masukan/keluaran sehingga tidak menjadi sasaran penggantian.

o   Buffer perangkat masukan/keluaran ditempatkan di kernel dan dikopi semua data ke page-page proses pemakai.



c.Pemakaian Page Bersama

Bila beberapa pemakai menggunakan program yang sama, maka terjadi perangkapan page (page yang sama terdapat di banyak bagian di memori). Lebih efisien bila menggunakan page secara bersama, menghindari keharusan mempunyai kopian-kopian page yang sama di saat yang sama. Masalah yang muncul adalah tidak semua page dapat dipakai bersama (Kode biner program (program text) adalah shareable (dapat dipakai bersama) sedang data tidak shareable)dan akhir suatu proses (Masalah berikutnya adaiah bila salah satu proses hendak membuangpage dari memori karena proses berakhir).

Solusi untuk kasus ini adalah saat proses berakhir, sistem operasi memeriksa apakah page-page masih digunakan proses-proses lain. Bila masih dipakai proses lain, maka sistem operasi tidak membebaskan page-page tersebut dari memori. 



d.Backing Store

Masalah lain adalah menyangkut dimana diletakkan page yang keluar dari memori utama. Terdapat beragam algoritma untuk mengatasi hal ini, yaitu menggunakan ruang penggantian khusus, atau dialokasikan berdasar kebutuhan.  

Proses dapat meningkat ukurannya sehingga ruang di disk yang dialokasikan di awal tidak dapat memuatnya. Proses lebih baik menyimpan daerah swap terpisah untuk teks, data, dan stack serta memungkinkan masing-masing daerah berisi lebih dari satu potongan.

Keunggulannya adalah proses-proses di memori tidak terikat ketat dengan suatu ruang swap. Sedangkan kelemahannya adalah, alamat disk perlu disimpan sehingga mengetahui letak lokasi page yang diganti, atau yang disimpan di disk.



e.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 dimasukkan, page lama harus ditulis lebih dulu ke disk. Untuk menjamin suplai page frame yang banyak, sistem paging biasanya mempunyai proses background, disebut paging daemon. Paging daemon sleep  untuk kebanyakan waktu, dibangunkan secara periodik untuk menginspeksi keadaan memori.


Paging daemon yang menyimpan suplai page frame menghasilkan kinerja lebih baik dibandingkan dengan menggunakan semua memori, kemudian mencoba menemukan frame saat itu juga.



f.Penanganan Page Fault (Page Fault Handling)

Implementasi sistem paging harus mengatasi rincian-rincian aksi yang harus dilakukan saat terjadi page fault. Rincian-rincian saat terjadi page fault adalah sebagai berikut:



1.    Perangkat keras melakukan trap ke kernel untuk menyimpan program counter di stack. Pada kebanyakan 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 sistem operasi.

3.    Sistem operasi mengetahui telah terjadi page fault dan mencoba menemukan virtual page yang diperiukan. Aksi ini sering dibantu perangkat keras dengan menyediakan register-register berisi informasi yang diperlukan. Jika tidak ada bantuan perangkat keras, sistem operasi harus mengambil program counter, mengambil instruksi, dan mem-parse secara perangkat lunak untuk mendapat gambaran apa yang terjadi saat fault.

4.    Begitu alamat maya yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamat valid, dan konsisten terhadap proteksi.

·   Jika tidak konsisten dengan proteksi, proses yang menyebabkan fault dikirimi sinyal atau dibunuh.

·   Jika alamat valid dan tak terjadi protection fault, sistem berusaha memperoleh page frame dari senarai frame bebas. Jika tak ada frame bebas, algoritma penggantian page dijalankan.

5.    Jika page frame telah dimodifikasi, page dijadwalkan untuk transfer ke disk dan terjadi context switch, menunda proses fault dan membiarkan/menyilahkan proses lain berjalan sampai transfer disk selesai. Pada suatu kejadian, frame ditandai sedang sibuk untuk mencegahnya digunakan untuk maksud lain.

6.    Begitu page frame bersih, sistem operasi 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, tabel-tabel page diperbarui untuk merefleksikan posisinya dan frame ditandai sebagai dalam keadaan normal.

8.    Instruksi fault di-back up ke keadaan ketika dimulai dan program counter diriset untuk menunjuk ke instruksi itu.

9.    Proses fault dijadwalkan dan sistem 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.  



Contoh Kasus :

·          Organisasi Memory dan Arsitekturnya (Tugas yang dikerjakan oleh mahasiswa dan dipresentasikan di depan kelas)

·          Manajemen Memory (Tugas yang dikerjakan oleh mahasiswa dan dievaluasi bersama di kelas)

SEGMENTASI 
Segmentasi memungkinkan pemrogrammemandang memori sebagai berisi banyak ruang alamat atau segmen. Ruang-ruang alamat itu sepenuhna independen. Tiap segmen berisi barisan linear alamat 0 sampai maksimu. Panjang tiapsegemen dapat berbeda sampai panjang segmen maksimum. Dengan segmentasi, pemrogram tidak berurusan dengan batasan-batasan memori yang disebabkan kapasitas memori utama.
Spesifikasialamat pada memori bersegmen adalah 2 dimesi. Yaitu :
  1. Nomor segmen
  2. Alamat ada segmen itu. (offset)
logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. alamat tersebut menunjukkan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut. pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen dan offset dari segmen tersebut (Hal ini berbeda dengan pemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat dilihat oleh user).

Untuk kemudahan pengimplementasian, segmen-segmen diberi nomor dan direferensikan dengan menggunakan penomoran tersebut, daripada dengan menggunakan nama. maka, logical address space terdiri dari dua tuple yaitu: (nomor-segmen, offset) Pada umumnya, program dari pengguna akan dikompilasi, dan kompilator tersebut akan membuat segmen-segmen tersebut secara otomatis. Jika mengambil contoh kompilator dari Pascal, maka kemungkinan kompilator tersebut akan membuat beberapa segmen yang terpisah untuk:
  1. Variabel Global,
  2. Prosedur dari pemanggilan stack, untuk menyimpan parameter dan pengembalian alamat,
  3. Porsi dari kode untuk setiap prosedur atau fungsi, dan
  4. Variabel lokal dari setiap prosedur dan fungsi.
Meskipun seorang pengguna dapat memandang suatu objek dalam suatu program sebagai alamat berdimensi dua, memori fisik yang sebenarnya tentu saja masih satu dimensi barisan byte. Jadi kita harus bisa mendefinisikan pemetaan dari dua dimensi alamat yang didefinisikan oleh pengguna ke satu dimensi alamat fisik. Pemetaan ini disebut sebagai sebuah segment table. Masing-masing masukan dari mempunyai segment base dan segment limit. Segment base merupakan alamat fisik dan segmen limit diartikan sebagai panjang dari segmen.


 Sumber :
Buku Bambang Hariyanto
http://bugspin.blogspot.com/2012/07/sistem-operasi-segmentasi-memori.html
Tgl akses : 16 Juni 2013
Jam akses : 19.45