Penulis Menjelaskan algoritma ostrich, penjelasannya adalah dalam ilmu komputer, algoritma ostrich adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.
Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.
Trade-offs
•Kenyamanan
•Kebenaran
Ini adalah salah satu metode untuk menangani deadlock. Metode lainnya adalah: penghindaran ('s algoritma bankir), pencegahan, deteksi dan pemulihan.
Beberapa algoritma dengan kinerja yang buruk banyak digunakan karena mereka hanya menunjukkan kinerja yang buruk pada kasus yang sengaja dibuat dan jarang terjadi dalam praktik sesungguhnya, contoh-contoh yang khas adalah algoritma simplex dan algoritma pengecekan tipe Standard ML. Masalah seperti integer overflow dalam bahasa pemrograman tetap juga sering diabaikan karena mereka hanya terjadi dalam kasus luar biasa yang tidak muncul untuk input sederhana.
Pendekatan Hybrid
Pendekatan Hybrid menggunakan algoritma Ostrich adalah menentukan bahwa kasus sangat jarang tidak terjadi, dan kemudian beralih dari algoritma lain yang lebih kompleks. Trade-off di sini adalah bahwa jika keadaan berubah atau belum ditemukan, masalah langka dapat kembali terjadi.
Contohnya dapat ditemukan di Hard Mengunci Non-ReadWriteLocker [1] situs ini, di mana Anda memiliki pilihan untuk menentukan di mana deadlock mungkin terjadi, dan kemudian mematikan deteksi kebuntuan setelah Anda menentukan tidak perlu digunakan.
Kamis, 27 Desember 2012
ALGORITMA SAFETY
Postingan kali ini penulis menjelaskan algoritma safety, semoga bermanfaat dan simak yach gan,
Algoritma ini untuk menentukan sistem berada dalam state selamat atau tidak diantaranya:
1. Work dan finish vektor dengan panjang (m) dan (n), inisialisasi : work = available dan finish[i] = false
untuk i = 1,3,…,n.
2. Cari I yag memenuhi kondisi berikut:
(a) Finish [i] = false
(b) Need , ≤ Work
jika tidak terdapat I ke langkah 4.
3. Work = Work + Allocation
Finish[i] = true
Kembali ke langkah 2.
4. Jika Finish [i]= true untuk semua I, maka sistem dalam state selamat
Terima kasih yang sudah baca artikel ini,dan baca rtikrl yang lainnya semoga menarik,amin
Algoritma ini untuk menentukan sistem berada dalam state selamat atau tidak diantaranya:
1. Work dan finish vektor dengan panjang (m) dan (n), inisialisasi : work = available dan finish[i] = false
untuk i = 1,3,…,n.
2. Cari I yag memenuhi kondisi berikut:
(a) Finish [i] = false
(b) Need , ≤ Work
jika tidak terdapat I ke langkah 4.
3. Work = Work + Allocation
Finish[i] = true
Kembali ke langkah 2.
4. Jika Finish [i]= true untuk semua I, maka sistem dalam state selamat
Terima kasih yang sudah baca artikel ini,dan baca rtikrl yang lainnya semoga menarik,amin
ALGORITMA BANKER
Sekilas akan menjelaskan tentang algoritma banker Nama
Banker dari Banker’s algorithm diperoleh dari fakta bahwa algoritma ini dapat
digunakan oleh bank untuk memastikan bank tidak akan mengalami kekurangan resource,
dalam hal ini uang nasabah. Dengan algoritma ini, bank dapat memastikan bahwa
ketika nasabah menarik uang, bank tetap pada kondis safe state. Jika
penarikan uang oleh nasabah tidak membuat bank keluar dari safe state (masuk
ke dalam unsafe state), maka penarikan dan akan diijinkan. Jika tidak,
nasabah harus menunggu hingga ada tambahan uang (deposit dari nasabah lain) di
dalam kas bank.
Banker’s algorithm adalah algoritma resource
allocation dan deadlock avoidance yang dikembangkan oleh Edsger Dijkstra.
Algoritma ini menguji tingkat keamanan dari kemungkinan deadlock dengan
melakukan simulasi berdasarkan jumlah maksimum resources dan kemudian
mengecek kondisi safe state terhadap semua kemungkinan kondisi deadlock dari
semua aktifitas yang berada dalam posisi pending, sebelum memutuskan
pengalokasian resource.
Algoritma Banker’s ini dijalankan
oleh sistem operasi ketika proses melakukan request resource.
Penghindaran terhadap deadlock dilakukan dengan menolak atau menunda
suatu request jika sekiranya penerimaan terhadap request tersebut dapat
membawa sistem dalam kondisi unsafe state. Berdasar algoritma ini,
ketika suatu proses masuk ke dalam sistem, proses ini harus memberikan jumlah
maksimum resource yang diperlukan dimana resource tersebut tidak
boleh melebihi total resource yang dimiliki oleh sistem. Selain itu,
ketika suatu proses mendapatkan resource yang diinginkan, proses
tersebut harus mengembalikan resource yang digunakan dalam jangka waktu
tertentu.
Agar algoritma Banker’s ini dapat
berkerja, harus ada tiga hal yang dimiliki/diketahui, yaitu:
- Jumlah resource dari tiap proses yang mungkin di request.
- Jumlah resource dari tiap proses yang sedang di pegang atau di gunakan (hold).
- Jumlah sisa resource yang dimiliki oleh sistem.
Resource hanya dapat diberikan pada suatu proses jika:
- request* ≤ max**, jika tidak set error, karena request melebihi jumlah klaim sebelumnya.
- request ≤ available***, jika tidak proses harus menunggu hingga resource yang diminta ada.
*request adalah jumlah resource
yang di request oleh proses.
**max adalah jumlah resource
yang sebelumnya sudah di klaim oleh proses. Seperti yang telah disebutkan di
awal, ketika masuk ke dalah sistem, proses harus memberikan jumlah maksimum
proses yang diperlukan.
***available adalah jumlah sisa resource
system yang sedang tidak terpakai.
Berikut ini adalah contoh lagi
mengenai safe state dalam kaitannya dengan Banker’s Algorithm
untuk multiple resources. Anggap suatu sistem memiliki proses
dengan resource A, B, C, dan D. Mapping proses dan resource
tampak seperti tabel dibawah.
P1
|
P2
|
P3
|
Free
resources
|
Total
Resources
|
||||
current
|
max
|
current
|
max
|
current
|
max
|
|||
A
|
1
|
3
|
1
|
1
|
2
|
1
|
3
|
7
|
B
|
2
|
3
|
0
|
2
|
2
|
3
|
1
|
5
|
C
|
2
|
2
|
3
|
3
|
1
|
5
|
1
|
7
|
D
|
1
|
2
|
3
|
4
|
0
|
0
|
2
|
6
|
State dalam tabel diatas dianggap safe state jika semua
proses dengan resource yang diperlukan dapat tereksekusi. Sistem tidak
dapat mengetahui kapan suatu proses selesai eksekusi dan jumlah proses yang
diperlukan saat eksekusi, karena itu sistem akan mengasumsikan bahwa resources
yang diperlukan adalah maksimum, dengan asumsi proses segera mengembalikan resource
tersebut ketika eksekusinya telah selesai. Dengan asumsi maksimum ini, jika
ternyata proses tidak memerlukan resource pada jumlah maksimum, maka
justru akan memperingan kerja sistem
Senin, 24 Desember 2012
REVOLUTION OS
Menurut LINUS TORVALDS selaku creator linux kernel, denifisi Kernel Linux adalah kernel yang digunakan dalam sistem operasi GNU/Linux. Kernel ini merupakan turunan dari keluarga sistem operasi UNIX, dirilis dengan menggunakan lisensi GNU General Public License (GPL), dan dikembangkan oleh pemrogram di seluruh dunia. Linux merupakan contoh utama dari perangkat lunak bebas dan sumber terbuka.
Hasil Linux:
1.12 million user
2. Alternative op system to windows
3. Developed by programmers on the net
4. Liked For Its Speed
Brunce Perencs
author, Open Source Definition
Pada intinya konsep sumber terbuka adalah membuka "kode sumber" dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka
Hasil Linux:
1.12 million user
2. Alternative op system to windows
3. Developed by programmers on the net
4. Liked For Its Speed
Brunce Perencs
author, Open Source Definition
Pada intinya konsep sumber terbuka adalah membuka "kode sumber" dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka
Langganan:
Postingan (Atom)