Pages

Minggu, 13 Januari 2013

Algoritma-algoritma Penggantian Page

Saat terjadi page fault berarti harus diputuskan page frame dari memori fisik yang harus diganti. Kinerja sistem 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-algoritma penggantian page antaralain:

1. Algoritma penggantian page acak (random page replacement algorithm)
Mekanisme algoritma ini: Setiap terjadinya page fault maka page diganti dan dipilih secara acak.

Teknik ini tidak memakai informasi apapun dalam menentukkan 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).

Teknik ini terbilang sangat buruk, percobaan menunjukkan algoritma acak menimbulkan peringkat terjadinya page fault sangat tinggi.

Kamis, 03 Januari 2013

Algoritma Penanganan Deadlock, "Algoritma Ostrich"

Algoritma Ostrich adalah suatu algoritma penanganan deadlock dengan cara mengabaikan setiap permasalahan yang muncul. Dengan asumsi bahwa permasalahan akan sangat jarang terjadi, sehingga kita dapat mengabaikan jika munculnya permasalahan mengenai deadlock, atau dalam arti berpura-pura seperti tidak ada masalah.

Agak sedikit terdengar aneh, Penanganan dengan cara diabaikan. Ya, tapi memang begitu. 
Algoritma Ostrich ini dibagi menjadi 2 pendekatan, yaitu:
1. Trade offs, Metode ini berarti bahwa jika kondisi belum teridentifikasi maka masalah yang sangat jarang terjadi dapat kembali terjadi.
2. Pendekatan Hybrid, menentukkan bahwa deadlock sangat jarang atau malah tidak sama sekali terjadi.

Algoritma Safety

Algoritma penanganan deadlock yang selalu menjaga system dalam keadaan aman (safety). Cara kerja pencegahan dari algorima ini adalah algoritma ini akan menanyakan suatu proses yang sedang berjalan apakah sudah selesai (finish) atau masih berjalan, dengan menggunakan berbagai perbandingan antara proses waktu selama pengeksekusian, dapat disimpulkan apakah sistem operasi dalam keadaan aman (safety) atau deadlock. 
Jika proses sedang dalam keadaan berjalan, maka proses lain harus menunggu proses yang sedang berjalan tersebut selesai, setelah itu proses lain dapat berjalan, sehingga dengan demikian terjadinya deadlock sangat kecil dan sistem dapat berjalan secara aman.

Penanganan Deadlock, "Algoritma Banker"

Algoritma Banker, kata tersebut didapat dari fakta memodelkan banker dikota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit.
Pada Algoritma Banker ini, kondisi mutual exclusion, hold and wait dan non preemption diijinkan dan proses-proses melakukkan klaim penggunaan eksklusif sumber daya-sumber daya yang diperlukan. Proses-proses diijinkan menggenggam sumber daya-sumber daya sambil meminta dan menunggu sumber daya-sumber daya lain serta sumber daya-sumber daya itu tidak diijinkan di preempt proses lain.