Algoritma Ostrich

Kamis, 03 Januari 2013

Algoritma ostrich merupakan strategi penanganan deadlock dengan cara mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi.dalam hal ini berarti diasumsikan bahwa tidak ada masalah. Dengan begitu mengasumsikan bahwa tidak ada masalah lebih efektif daripada 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.

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.

Sedikit gambaran pada Algoritma Ostrich ini : 

  • Jangan lakukan apapun, cukup restart sistem (ostrich: benamkan kepala ke pasir dan berpura-pura tidak masalah sama sekali)
  • Dilakukan bila:
    • Deadlock sangat jarang terjadilah
    • Algoritma deadlock lainnya biayanya lebih tinggi
  • Diimplementasikan oleh Windows dan UNIX
    • Trade off : Kenyamanan (convenience) vs keakuratan (correctness)



Algoritma Safty


Algoritma ini bekerja dengan cara algoritma mencari apakah sistem dalam status aman atau tidak. Status ini terjadi jika sistem dapat mengalokasikan sumber daya bagi tiap proses dalam keadaan tertentu dan masih dapat terjadi deadlock. Status aman bukanlah status deadlock, jadi status deadlock merupakan status tidak aman, tetapi tidak selamanya status tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat terjadi.

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.

Algoritma Banker



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.


Agar algoritma Banker’s ini dapat berkerja, harus ada tiga hal yang dimiliki/diketahui, yaitu:
  1. Jumlah resource dari tiap proses yang mungkin di request.
  2. Jumlah resource dari tiap proses yang sedang di pegang atau di gunakan (hold).
  3. Jumlah sisa resource yang dimiliki oleh sistem.
Resource hanya dapat diberikan pada suatu proses jika:
  1. request* ≤ max**, jika tidak set error, karena request melebihi jumlah klaim sebelumnya.
  2. 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.
  • available adalah jumlah sisa resource system yang sedang tidak terpakai.



Latihan soal (lanjutan)

Selasa, 20 November 2012
  • Jelaskan apa yang akan dilakukan oleh kernel kepada alih konteks ketika proses sedang berlangsung?
Jawab : Kernel menjaga suatu proses rekaman pada setiap proses, atau disebut proses control block “PCB”. Ketika suatu proses kita sedang berjalan. PCB berisi tentang perlunya melakukan restart suatu proses dalam CPU.

  • Beberapa single-user mikrokomputer sistem operasi seperti MS-DOS menyediakan sedikit atau tidak sama sekali arti dari pemrosesan yang konkuren. Diskusikan dampak yang paling mungkin ketika pemrosesan yang konkuren dimasukkan ke dalam suatu sistem operasi?
Jawab : Data file ada yg corrupt dan akan terjadi hank / eror

10 Sistem operasi yang mendukung teknologi Hyperthreading dan yang termasuk kedalam kelompok Model Multithreading


kelompok model multithreading yang on-to-one model.
  • Windows NT/Xp/2000,
  • linux,
  • solaris 9 and later

kelompok model multithreading many-to-many model.
  • Windows NT/2000,
  •  IRIX,
  •  digital UNIX dan solaris

kelompok model multithreading two-level model.
  •  IRIX,
  • HP-UX,
  •  tru64 UNIX solaris 8 and earlier

kelompok model multithreading many-to-one model.
  • GNU


Definisi Dispatching Algorithm


Prosesor dengan teknologi ini akan terlihat kemampuannya, pada sistem operasi yang mendukung banyak prosesor seperti Windows NT, Windows Xp Profesional, Windows Vista, Windows 2000, dan GNU/Linux sebagai dua prosesor. meskipun terlihat secara fisik hanya terlihat satu prosesor

Dispatching algorithm adalah algoritma antrian yang bisa mengeksekusi proses secara berurutan dalam dua buah prosesor, jadi algoritma antrian bisa mengeksekusi setiap thread secara efisien meskipun sistem-sistem operasi tersebut bersifat multitasking.

Arsitektur Komputer yang menggunakan teknologi Hyperthreading dengan Algoritma ''Dispatching Algorithm''


Hyper-Threading Technology merupakan sebuah teknologi mikroprosesor yang diciptakan oleh Intel Corporation pada beberapa prosesor dengan arsitektur Intel NetBurst dan Core, semacam Intel Pentium 4, Pentium D, Xeon, dan Core 2, Teknologi ini diperkenalkan pada bulan Maret 2002 dan mulanya hanya diperkenalkan pada prosesor Xeon (Prestonia).

Prosesor dengan teknologi ini akan dilihat oleh sistem operasi yang mendukung banyak prosesor seperti Windows NT, Windows 2000, Windows XP Professional, Windows Vista, dan GNU/Linux sebagai dua buah prosesor, meski secara fisik hanya tersedia satu prosesor.

Teknologi karya Intel ini merupakan pengembangan dari teknologi Super-threading yang sebelumnya pernah diterapkan di prosesor Xeon (prosesor untuk server). Hyper-threading adalah bentuk inovasi teknologi yang lebih maju, yang menggunakan teknologi simultaneous multithreading (SMT), Teknologi Hyper-threading ini tidak diterapkan di generasi prosesor Pentium M berbasis core, Merom, Conroe dan Woodcrest.

teknologi Hyper-Threading membutuhkan beberapa komponen berikut ini:
  • Chipset motherboard yang mendukung teknologi Intel Hyper-Threading. Chipset yang dimaksud adalah Intel 845PE, Intel 865, Intel 875P, Intel 915, Intel 920, Intel 945, Intel 950, Intel 965, Intel 975.
  • BIOS yang mendukung teknologi Hyper-Threading.
  • Sistem operasi yang mendukung banyak prosesor seperti Windows 2000, Windows XP, serta GNU/Linux versi 2.4.18 ke atas. Pada sistem yang mendukung, sebagai contoh :
    • Device Manager Windows XP akan menampilkan 2 buah prosesor dengan spesifikasi yang sama.