Selasa, 13 Desember 2011

Distributed DBMS

Distributed Database Management System (DDBMS)


     Sebelum membahas DDBMS kita akan membahas mengenai basis data terdistribusi dan DBMS terdistribusi. OK check it dot...
  • Basis data terdistribusi :  Secara logik keterhubungan dari kumpulan-kumpulan  data yang digunakan bersama-sama, dan didistribusikan melalui suatu jaringan komputer.
  • DBMS Terdistribusi    : Sebuah sistem perangkat lunak yang mengatur basis  data terdistribusi dan membuat pendistribusian data secara transparan.
        DDBMS memiliki satu logikal basis data yang dibagi ke dalam beberapa fragment. Dimana setiap fragment disimpan pada satu atau lebih komputer dibawah kontrol dari DBMS yang terpisah , dengan mengkoneksi komputer menggunakan jaringan komunikasi.
Masing- masing site memiliki kemampuan untuk mengakses permintaan pengguna pada data lokal dan juga mampu untuk memproses data yang disimpan pada komputer lain yang terhubung dengan jaringan.
Pengguna mengakses basis data terdistribusi dengan menggunakan dua aplikasi yaitu aplikasi lokal dan aplikasi global, sehingga DDBMS memiliki karakteristik yaitu :
  •  Kumpulan dari data logik yang digunakan bersama-sama
  • Data di bagi menjadi beberapa fragment
  • Fragment mungkin mempunyai copy ( replika )
  •  Fragment / replika nya di alokasikan pada yang digunakan
  • Setiap site berhubungan dengan jaringan komunikasi
  •  Data pada masing-masing site dibawah pengawasan DBMS
  • DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi 
  • Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.       
Dari definisi tersebut , sistem diharapkan membuat suatu distribusi yang transparan. Basis data terdistribusi terbagi menjadi beberapa fragment yang disimpan di beberapa komputer dan mungkin di replikasi, dan alokasi penyimpanan tidak diketahui pengguna . Adanya  Transparansi di dalam basis data terdistribusi agar terlihat sistem ini seperti basis data tersentralisasi. Hal Ini mengacu pada prinsip dasar dari DBMS (Date,1987b).  Transparansi memberikan fungsional yang baik untuk pengguna tetapi sayangnya mengakibatkan banyak permasalahan yang timbul dan harus diatasi oleh DDBMS.
Pemrosesan Distribusi : Basis data tersentralisasi yang dapat diakses disemua jaringan komputer.
Point utama dari definisi basis data terdistribusi adalah sistem terdiri dari data yang secara fisik di distribusikan pada beberapa site yang terhubung dengan  jaringan. Jika data nya tersentralisasi  walaupun ada pengguna lain yang mengakses data melewati jaringan , hal ini bukan disebut dengan DDBMS  melainkan pemrosesan secara distribusi.

Keuntungan dan Kerugian dari DDBMS
Data dan aplikasi terdistribusi mempunyai kelebihan di bandingkan dengan sistem sentralisasi basis data. Sayangnya , DDBMS ini juga memiliki  kelemahan.
Keuntungan
1.Merefleksikan pada bentuk dari struktur organisasinya
          Ada suatu organisasi yang memiliki sub organisasi di  lokasi yang tersebar di beberapa  tempat,.sehingga basis data yang digunakan pun tersebar sesuai lokasi dari sub organisasi berada.
2.Penggunaan bersama dan lokal otonomi
Distribusi secara geografis dari sebuah organisasi dapat terlihat dari data terdistribusinya, pengguna pada masing-masing site dapat mengakses data yang disimpan pada site yang lain. Data dapat dialokasikan  dekat dengan pengguna yang biasa menggunakannya pada sebuah site, sehingga pengguna mempunyai  kontrol terhadap data dan mereka dapat secara konsekuen memperbaharui dan  memiliki kebijakkan untuk data tersebut. DBA global mempunyai tanggung jawab untuk semua sistem. Umumnya sebagian dari tanggung jawab tersebut di serahkan kepada tingkat lokal, sehingga DBA lokal dapat mengatur lokal DBMS secara otonomi.
3. Keberadaan data yang ditingkatkan
Pada DBMS yang tersentralisasi kegagalan pada suatu site akan mematikan seluruh operasional DBMS. Namun pada DDBMS kegagalan pada salah satu site, atau kegagalan pada hubungan komunikasi dapat membuat beberapa site tidak dapat di akses, tetapi tidak  membuat operasional DBMS  tidak dapat dijalankan.
4. Keandalan yang ditingkatkan
Sebuah basis data dapat di replikasi ke dalam beberapa fragmen sehingga keberadaanya dapat di simpan di beberapa lokasi juga. Jika terjadi kegagalan dalam pengaksesan data pada suatu site di karenakan jaringan komunikasi terputus maka site yang ingin mengakses data tersebut dapat mengakses pada site yang tidak mengalami kerusakan.
5. Kinerja yang ditingkatkan
Sebuah data ditempatkan pada suatu site dimana data tersebut banyak di akses oleh pengguna, dan hal ini mempunyai dampak yang baik untuk paralel DBMS yaitu memiliki kecepatan dalam pengkasesan data yang lebih baik dibandingkan dengan basis data tersentralisasi Selanjutnya, sejak masing-masing site hanya menangani sebagian dari seluruh basis data , mengakibakan perbedaan pada pelayanan CPU dan I/O seperti yang di karakteristikan pada DBMS tersentralisasi.
6.Ekonomi
Grosch's Law menyatakan daya listrik dari sebuah komputer  di   hitung    menurut    biaya  yang   dihabiskan   dari penggunaan peralatannya, tiga kali biaya peralatan, 9 kali nya dari daya listrik . Sehingga lebih murah jika membuat sebuah sistem yang terdiri dari beberapa mini komputer yang mempunyai daya yang sama jika dibandingkan dengan memiliki satu buah super komputer. Oleh karena itu lebih efektif untuk menambah beberapa workstation untuk sebuah jaringan dibandingkan dengan memperbaharui sistem mainframe. Potensi yang juga menekan biaya yaitu menginstall aplikasi dan menyimpan basis data yang diperlukan secara geografi sehingga mempermudah operasional pada setiap situs.
7.Perkembangan modular
Di dalam lingkungan terdistribusi, lebih mudah untuk menangani ekspansi . Site yang baru dapat di tambahkan ke suatu jaringan tanpa mempengaruhi operational dari site - site  yang ada. Penambahan ukuran basis data dapat di tangani dengan menambahkan pemrosesan dan daya tampung penyimpanan pada suatu jaringan. Pada DBMS yang tersentralisasi perkembangan akan di ikuti dengan mengubah perangkat keras dan perangkat lunak.

Kerugian
1.Kompleksitas
Pada distribusi DBMS yang digunakan adalah replikasinya, DBMS yang asli tidak digunakan untuk operasional, hal ini untuk menjaga reliabilitas dari suatu data. Karena yang digunakan replikasinya maka hal ini menimbulkan berbagai macam masalah yang sangat kompleks dimana DBA harus dapat  menyediakan pengaksesan dengan cepat , keandalan dan keberadaan dari basis data yang up to date . Jika aplikasi di dalam DBMS  yang digunakan tidak dapat menangani hal -hal tersebut maka akan terjadi penurunan pada tingkat kinerja , keandalan dan kerberadaan dari DBMS tersebut, sehingga keuntungan dari DDBMS tidak akan terjadi.
2.Biaya
Meningkatnya kekompleksan pada suatu DDBMS berarti biaya untuk  perawatan dari DDBMS akan lebih besar dibandingkan dengan DBMS yang tersentralisasi, seperti biaya untuk membuat jaringannya, biaya komunikasi yang berjalan , orang-orang yang ahli dalam penggunaan, pengaturan dan pengawasan dari DDBMS.
3.Keamanan
Pada DBMS yang tersentralisasi, pengaksesan data lebih terkontrol. Sedangkan pada DDBMS bukan hanya replikasi data yang harus di kontrol tetapi jaringan juga harus dapat di kontrol keamanannya.
4.Pengontrolan Integritas lebih sulit
Kesatuan basis data yang mengacu pada keabsahan dan kekonsistenan dari data yang disimpan. Kesatuan biasanya di ekspresikan pada batasan, dimana berisi aturan untuk basis data yang tidak boleh diubah. Membuat batasan  untuk integrity, umumnya memerlukan pengaksesan ke sejumlah data yang sangat besar  untuk mendefinisikan batasan tersebut, namun hal ini tidak termasuk di dalam operasional update itu sendiri. Dalam DDBMS, komunikasi dan biaya pemrosesan yang dibutuhkan untuk membuat suatu batasan integrity mungkin tidak diperbolehkan.

Homogen dan Heterogen DDBMS
Sebuah DDBMS dapat di klasifikasikan menjadi homogen dan heterogen. Dalam sistem yang homogen, semua site menggunakan product DBMS yang sama. Dalam sistem heterogen , product DBMS yang digunakan tidak sama, begitu juga dengan model datanya sehingga sistem dapat terdiri dari beberapa model data seperti relasional, jaringan, hirarki dan obyek oriented DBMS.
Sistem homogen lebih mudah di rancang dan di atur. Pendekatan ini memberikan perkembangan yang baik, tidak mengalami kesulitan dalam  membuat sebuah site baru pada DDBMS , dan meningkatkan kinerja dengan mengeksploitasikan kemampuan dalam pemrosesan paralel di beberapa site yang berbeda.
Sistem heterogen, menghasilkan beberapa site yang individual  dimana mereka mengimplementasikan basis data mereka dan penyatuan data nya di lakukan di tahap berikutnya. Pada sistem ini penterjemahan di perlukan untuk mengkomunikasikan diantara beberapa DBMS yang berbeda. Untuk menghasilkan transparansi DBMS, pengguna harus dapat menggunakan bahasa pemrograman yang digunakan oleh DBMS pada lokal site. Sistem akan mencari lokasi data dan menampilkan sesuai dengan yang diinginkan.
Data yang dibutuhkan dari site lain kemungkinan :
  • Memiliki hardware yang berbeda
  • Memiliki product DBMS yang berbeda
  • Memiliki hardware dan produk DBMS yang berbeda
Jika hardwarenya yang berbeda tetapi produk DBMS nya sama , maka yang akan di ubah adalah kode dan panjang katanya. Jika yang berbeda produk DBMSnya maka akan lebih kompleks lagi karena yang akan di ubah adalah proses pemetaan dari struktur data dalam satu model data yang sama dengan struktur data pada model data yang lain. Sebagai contoh : relasional pada model data relasional di petakan ke dalam beberapa rekord dan set di model data jaringan . Juga diperlukan perubahan pada bahasa queri yang digunakan ( Contoh pada SQL Perintah SELECT di petakan kedalam model jaringan menjadi FIND atau GET ). Jika keduanya yang berbeda, maka dua tipe perubahan ini diperlukan sehingga pemrosesan menjadi lebih kompleks.
Kompleksitas lainnya adalah memiliki skema konseptual yang sama, dimana hal ini di bentuk dari penyatuan data dari skema individual  pada konseptual lokal. Untuk mengatasi hal tersebut di gunakan GATEWAY , dimana metode ini di gunakan untuk mengkonversi bahasa pemrograman dan model data di setiap DBMS yang berbeda ke dalam bahasa dan model data relasional .  Tetapi metode ini juga memiliki keterbatasan , yang pertama tidak mensupport manjemen transaksi, bahkan untuk sistem yang sepasang. Dengan kata lain metode ini di antara dua buah sistem hanya merupakan penterjemah query. Sebagai contoh , sebuah sistem tidak dapat mengkoordinasikan kontrol konkurensi dan transaksi pemulihan data yang melibatkan pengupdatean pada basis data yang berhubungan. Kedua, metode ini hanya dapat mengatasi masalah penterjemahan query  yang di tampilkan dalam satu bahasa ke bahasa lainnya yang sama.

Fungsi
DDBMS mempunyai paling tidak satu dari fungsional suatu DBMS tersentralisasi. Fungsi – fungsi pada DDBMS yaitu :
1.    Memberikan pelayanan komunikasi untuk memberikan akses terhadap site- site yang terhubung baik yang site yang       jarak dekat maupun yang letak nya cukup jauh dan mengijinkan pencarian data ke site – site yang terhubung.
2.    Memiliki sistem katalog  untuk menyimpan kumpulan detail data yang telah didstribusikan.
3.    Mendistribusikan proses pencarian, termasuk optimasisasi dan pengaksesan dari jarak jauh.
4.    Memberikan pengendalian keamanan untuk akses ataupun otoritas yang telah  diberikan .
5.    Memberikan kontrol konkurensi untuk memelihara data yang telah di replikasi.
6.    Memberikan pelayanan recoveri untuk mengambil laporan yang rusak dari setiap site dan kegagalan dalam hubungan komunikasi.

Transparansi pada DDBMS
DDBMS menampilkan banyak level transparan. Semua transparansi berpartisipasi di semua obyek, agar dapat membuat basis data terdistribusi ini dapat sejalan dengan basis data tersentralisasi . Ada 4 macam tipe utama dari transparansi dalam DDBMS yaitu :
  • Transparansi Distribusi
  • Transparansi Transaksi
  • Transparansi Kinerja
1.  Transparansi Distribusi
Distribusi transparansi memperbolehkan pengguna untuk mengetahui bahwa basis data sebagi sebuah single logikal entitas. Jika suatu DDBMS memperlihatkan transparansi terdistribusinya, pengguna tidak perlu tahu mengenai fragmentasi dari datanya ataupun locasi dimana data tersebut di simpan.
Ada suatu transparansi yang memperbolehkan pengguna untuk mengetahui apakah data telah terfragmen dan di simpan di suatu lokasi, nama dari transparansi ini yaitu : Pemetaan Transparansi Lokasi  ( Transparancy Local Mapping ).

  • Transparansi Fragmentasi 
Fragmentasi adalah tingkat tertinggi dari distribusi transparansi yang di sediakan oleh DDBMS, sehingga pengguna tidak perlu tahu mengenai data yang di fragmentasikan.  Akses basis data berdasarkan pada skema globalnya, sehingga pengguna tidak perlu menspesifik nama fragmen atau lokasi datanya.
  • Transparansi Lokasi
Transparansi lokasi dalam distribusi transparansi  berada pada tingkat  menengah . Dengan transparansi  ini , user mengetahui data tersbut di fragmentasi tidak perlu mengetahui dimana lokasi dari data tersebut. Keuntungan utama dari lokasi transparansi adalah basis data dapat secara fisik teroragnisasi tanpa harus mempengaruhi aplikasi yang mengakses basis data tersebut.
  • Transparansi Replikasi
Sama dengan lokasi transparansi adalah transparansi untuk menggandakan suatu data , maksudnya pengguna tidak mengetahui data telah di fragmentasi . Transparansi ini merupakan akibat dari adanya transparansi lokasi. Bagaimanapun ada kemungkinan untuk tidak memiliki transparansi lokasi tetapi mempunyai replikasi transparansi.
  •  Transparansi Pemetaan Lokal
Ini adalah tingkatan paling rendah pada distribusi transparansi. Dengan transparansi ini , pengguna perlu menspesifikasikan nama fragmen dan lokasi dari data items.
  • Pemberian Nama Transparansi
Setiap item pada basis data yang telah didistribusikan memiliki nama yang unik. Oleh karena DDBMS memastikan tidak ada dua site yang membuat obyek basis data dengan nama yang sama. Satu solusi dari masalah ini adalah dengan membuat server nama terpusat, dimana alat bantu ini berisi semua nama dari sistem sehingga jika ada yang sama akan dapat terdeteksi. Namun masalah ini memiliki kendala yaitu :
a)      Kurangnya kemampuan lokal otonomi
b)      Masalah kinerja, jika terpusat maka akan terjadi bottleneck
c)    Rendahnya ketersediaan, jika site pusat gagal , site yang lain tidak dapat membuat obyek basis databyang lain.
Ada solusi alternatif  yaitu dengan di gunakannya ‘awalan’ suatu obyek sebagai identifier lokasi yang menciptakan obyek tersebut. Namun hal ini akan mengakibatkan kehilangan data pada transparansi terdistribusi.
Pendekatan yang lain dengan menggunakan alias ( sinonim ) untuk masing – masing obyek basis data. DDBMS memiliki tugas untuk memetakan alias mejadi obyek basis data yang sesuai. Sistem R* yang terdistribusi membedakan antara obyek printname nya dengan system wide-name nya. Printname  adalah nama yang pengguna gunakan yang mengacu pada suatu obyek. System wide-name adalah identifier internal yang unik untuk obyek yang dijamin takkan pernah di ganti. System wide-name terdiri dari 4 bagian yaitu :
1.    Creator ID – Lokasi identifier yuang unik untuk pengguna yang menciptakan obyek
2.    Creator site ID – global identifier yang unik untuk site dimana obyek dibuat
3.    Local name – nama yang tidak memnuhi persyaratan untuk obyek
4.   Birth-site ID – identifier yang unik untuk site dimana obyek disimpan sebagai contoh, system wide-name 

2.  Transparansi Transaksi
Transparansi ini pada lingkungan DDBMS memastikan bahwa semua transaksi terdistribusi memelihara konsistensi dan integritas basis data terdistribusinya. Transaksi terdistribusi mengakses data yang disimpan lebih dari satu tempat. Setiap transaksi di bagi menjadi beberapa subtransaksi , satu untuk mengakses site yang harus diakses; sebuah subtransaksi di represenstasikan oleh sebuah agent/perwakilan.
 
3. Transparansi Kinerja
Transparansi ini membutuhkan DBMS untuk  menjadi seperti DBMS terpusat. Di dalam lingkungan terdistribusi, suatu sistem tidak harus mengalami penurunan selama melakukan arsitektur terdistribusi, sebagai contoh munculnya jaringan. Transparansi ini membutuhkan DBMS untuk membuat strategi agar dapat menghemat biaya yang dikeluarkan untuk melakukan suatu permintaan.
Didalam suatu DBMS tersentralisasi, query processor ( QP ) harus mengevaluasi setiap permintaan data dan melaksanakan strategi yang optimal, yang terdiri dari suatu urutan operasional  yang diperintah pada basis data. Didalam suatu lingkungan terdistribusi  Distribusi query prosessor ( DQP ) memetakan suatu permintaan data ke dalam suatu urutan operasi yang diperintahkan pada basis data lokal . Hal ini memiliki penambahan kompleksitas untuk mengaksesnya ke dlaam perhitunganfragmentasi, replikasi dan alokasi skema. DQP harus memutuskan :
  • Fragmen mana yang akan diakses
  • Salinan dari fragmen yang mana yang akan digunakan jika fragmen akan di replikasi
  • Lokasi mana yang akan digunakan
DQP membuat suatu strategi pelaksanaan yang optimal dengan menjalankan beberapa fungsi biaya. Secara umum, biaya – biaya yang berhubungan dengan suatu permintaan terdistribusi termasuk:
  • Biaya waktu akses ( I/O) melibatkan pengaksesn dalam data fisik pada disk
  • Biaya waktu CPU pada saat melaksanakan operasi – operasi data dalam memori utama
  • Biaya akomunikasi dengan transmisi data melalui jaringan.
12 Aturan untuk DDBMS
Suatu sistem DDBMS harus terlihat seperti DBMS non distribusi untuk penggunanya.
1.       Otonomi Lokal
Tempat dalam sistemterdistribusi sudah harus otonom. Otonomi berarti :
a.    Data lokal adalah miliki DBMS lokal dan di atur sendiri oleh DBMS Lokal
b.    Operasi lokal tetap merupakan lokal operasional
c.    Semua operasi yang telah diberikan dikontrol oleh DBMS Lokal

2.       Tidak adanya campur tangan site pusat
Semua proses pelayanan, manajemen transaksi , pendekteksian deadlock , optimasi queri dan manajemen dari sistem katalog adalah tanggung jawab dari lokal DBMS, dan pusat tidak memiliki wewenang untuk melakukan hal tersebut.

3.       Operasi yang berkelanjutan
Fungsi dari DDBMS yaitu adanya perkembangan modular dimana jika terjadi suatu ekspansi jaringan maka proses pembuatan infrastruktur tidak akan mengganggu jalannya operasional suatu data.

4.       Lokasi yang mandiri
Kebebasan lokasi sama dengan transparansi lokasi , pengguna bisa mengakses basis data dari banyak tempat. Dalam pengaksesan data tersebut semua data seolah –olah disimpan dekat dengan lokasi pengguna, bukan menjadi masalah tempat dimana data disimpan secara fisik.

5.       Kebebasan Fragmentasi
Pengguna dapat mengakses basis data tanpa harus mengetahui bagaimana data tersebut di fragmen.

6.       Kebebasan replikasi
Pengguna tidak harus mengetahui apakah data telah direplikasi atau tidak dan tidak harus mengakses  suatu salinan tertentu dari item data secara langsung , juga pada saat pengguna melakukan pembaharuan data haruslah detail untuk semua data.

7.       Pemrosesan query terdistribusi
Sistem harus dapat menangani pemrosesan queri yang mereferensi ke suatu data di sejumlah site yang terhubung.

8.       Pemrosesan transaksi terdistribusi
Sistem harus mendukung sebuah transaksi sebagai sebuah unit dari suatu pemulihan data (recovery). Dan menjamin bahwa global atau lokal transparansi harus sesuai dengan aturan ACID untuk transaksi, contohnya : penamaan, konsistensi, isolasi dan ketahanan ( Automicity,Consistent, Isolation, Defence).

9.       Kebebasan perangkat keras
DDBMS harus dapat digunakan di berbagai macam platform perangkat keras.

10.   Kebebasan sistem operasi
Sesuai dengan aturan sebelumnya , maka DDBMS juga harus dapat digunakan di berbagai macam platform system operasi.

11.   Kebebasan jaringan
Sama halnya dengan aturan sebelumnya , DDBMS harus dapat digunakan di berbagai macam platform jaringan komunikasi yang berbeda.

12.   Kebebasan database
DDBMS di bentuk dari local DBMS yang berbeda, yang memungkinkan adanya model data yang berbeda. Dengan kata lain DDBMS harus dapat mendukung adanya system heterogen.

Keempat aturan terakhir haruslah dimiliki oleh DDBMS. Selebihnya adalah aturan yang umum  dan jika ada kelemahan dari standard komputer dan arsitektur jaringannya, sistem hanya dapat mengharapkan dari  vendor untuk pemenuhan masa depan

Contoh Software DDBMS adalah:
  1. Oracle7 Server Distribute System
    Documentations:

    http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch21.htm
    http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SD173/toc.htm#org
    http://www.oracle.com/technetwork/documentation/oracle7-091910.html

    Download:
    http://www.brothersoft.com/downloads/oracle-7.html


Minggu, 11 Desember 2011

Algoritma Deadlock


Algoritma Banker

  • Algoritma ini di aplikasikan untuk sembarang sistem. 
  • Proses harus “declare” max. kredit resource yang diinginkan.
  • Proses dapat block (pending) sampai resource diberikan.
  • Banker’s algorithm menjamin sistim dalam keadaan safe state.
  • OS menjalankan Algoritma Banker’s,

Saat proses melakukan request resource.

Saat proses terminate atau release resource yang digunakan => memberikan resource ke proses yang pending request.
Metode :

1.Scan tabel baris per baris untuk menemukan job yang akan diselesaikan

2.Tambahkan pada job terakhir dari sumberdaya yang ada dan berikan nomor yang available
Ulangi 1 dan 2 hingga :
Tidak ada lagi job yang diselesesaikan (unsafe) atau

Semua job telah selesai (safe)
Misakan terdapat: n proses dan m resources.

Definisikan:

Available: Vector/array dengan panjang m.

  If available [j] = k, terdapat k instances resouce   jenis Rj   yang dapat digunakan.

Max: matrix n x m.

  If Max [i,j] = k, maka proses Pi dapat request paling banyak k instances resource jenis Rj.

Allocation: matrix n x m.

  If Allocation[i,j] = k maka Pi saat ini sedang menggunakan

  (hold) k instances Rj.

Need: matrix n x m.

If Need[i,j] = k, maka Pi palaing banyak akan membutuhkan

instance Rj untuk selesai.

Need [i,j] = Max[i,j] – Allocation [i,j]. 

Kelemahan Algoritma Banker :
- Proses kebanyakan belum mengetahui jumlah maksimum resource yang   dibutuhkan.
- Jumlah proses tidak tetap.
- Beberapa resource dapat diambil dari sistem sewaktu-waktu.
- Algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas. 

2.  Algoritma Ostrict

       Untuk mengetahui suatu proses sedang dalam kondisi deadlock dapat di lihat pada lamanya waktu prosesor mengeksekusi suatu proses, jika proses dieksekusi lebih lambat dari biasanya bisa jadi system dalam kondisi deadlock, dan penyebab deadlocknya dapat dilihat dari resource yang yang merequest proses tersebut. pada algoritma ini proses dibiarkan seolah olah tidak akan terjadi deadlock, jadi dibiarkan berjalan begitu saja dan jika terjadi deadlock barulah proses dihentikan ataupun di matikan.
       Hal ini biasa dilakukan pada suatu system UNIX, tetapi dengan membiarkan proses tetap berjalan meskipun berpotensi terjadi deadlock, maka operator memerlukan waktu tertentu untuk menghentikan dan memulai kembali proses yang deadlock yang dapat terlihat dari table proses yang penuh/sibuk.


3. Algoritma safety
  1.            Algoritma safety adalah bentuk algoritma yang memungkinkan system selalu dalam keadaan aman (safety).karena pada algoritma ini pencegahan deadlock dilakukan dengan menanyakan suatu proses apakah proses sudah dalam keadaan finish/selesai atau masih berjalan, dengan membandingkan waktu proses dan lamanya eksekusi proses dapat dilihat apakah system dalam keadaan aman atau deadlock.
              Dengan begitu apabila suatu proses masih dalam keadaan berjalan/work = false, maka proses lain belum boleh dieksekusi dan menunggu sampai proses = finish, maka kemungkinan deadlock akan semakin kecil, dan system selalu dalam keadaan normal/aman.

 


Minggu, 06 November 2011

10 Sistem Operasi yang mendukung Tekhnologi Hyperthreading

Yang termasuk kedalam kelompok Multithreading yang one-to-one model, diantanya :

1). Windows XP/2000

2). Windows NT

Yang termasuk kedalam kelompok Multithreading yang many-to-many model, diantanya :

3). Linux

4). Solaris 9

5). IRIX

6). Digital UNIX & Solaris

Yang termasuk kedalam kelompok Multithreading yang two-level model, diantanya :

7). HP-UX

8). Tru64 UNIX

9). Solaris 8

Yang termasuk kedalam kelompok Multithreading yang many-to-one model, diantanya :

10). GNU

Dispatching Algorithm

Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling.
Fungsi-fungsi yang terkandung di dalam-nya meliputi:
1. Switching context;
2. Switching ke user-mode;
3. Melompat ke lokasi tertentu pada user program untuk memulai program. Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai untuk menjalankan proses yang lainnya disebut dispatch latency.
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:
1. CPU utilization. Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan         dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
2. Throughput. Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu.
3. Turnaround time. Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai   menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O.
4. Waiting time. Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.
5. Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut.
6. Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair).
Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU:

First-Come First-Served Scheduling (FCFS)
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan
dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU pertama kali akan
dialokasikan ke CPU pertama kali.
Misalnya terdapat tiga proses yang dapat dengan urutan P1, P2, dan P3 dengan
waktu CPU-burst dalam milidetik yang diberikan sebagai berikut :
Process    Burst Time
   P1              24
   P2              3
   P3              3
Gant Chart dengan penjadwalan FCFS adalah sebagai berikut :

Waktu tunggu untuk P1 adalah 0, P2 adalah 24 dan P3 adalah 27 sehingga rata-rata
waktu tunggu adalah (0 + 24 + 27)/3 = 17 milidetik. Sedangkan apabila proses datang
dengan urutan P2, P3, dan P1, hasil penjadwalan CPU dapat dilihat pada gant chart
berikut :

Waktu tunggu sekarang untuk P1 adalah 6, P2 adalah 0 dan P3 adalah 3 sehingga ratarata
waktu tunggu adalah (6 + 0 + 3)/3 = 3 milidetik. Rata-rata waktu tunggu kasus ini
jauh lebih baik dibandingkan dengan kasus sebelumnya. Pada penjadwalan CPU
dimungkinkan terjadi Convoy effect apabila proses yang pendek berada pada proses
yang panjang.
Algoritma FCFS termasuk non-preemptive. karena, sekali CPU dialokasikan
pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai proses
tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O.

Shortest Job First Scheduler (SJF)
Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani
terlebih dahulu. Terdapat dua skema :
1. Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda
sampai CPU burst selesai.
2. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek
dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan
diganti dengan proses baru. Skema ini disebut dengan Shortest-Remaining-
Time-First (SRTF).
SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu
yang minimal. Misalnya terdapat empat proses dengan panjang CPU burst dalam
milidetik

Penjadwalan proses dengan algoritma SJF (non-preemptive) dapat dilihat pada gant
chart berikut :

Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3 adalah 3 dan P4 adalah 7 sehingga
rata-rata waktu tunggu adalah (0 + 6 + 3 + 7)/4 = 4 milidetik. Sedangkan Penjadwalan
proses dengan algoritma SRTF (preemptive) dapat dilihat pada gant chart berikut :



Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3 adalah 0 dan P4 adalah 4 sehingga
rata-rata waktu tunggu adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.

Priority Scheduling
Algoritma SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiaptiap
proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan untuk proses
yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan prioritas
terbesar). Jika beberapa proses memiliki prioritas yang sama, maka akan digunakan
algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive
dan preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka
akan dilihat prioritas P1. Seandainya prioritas P1 lebih besar dibanding dengan prioritas
P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis
CPU burst-nya, dan meletakkan P1 pada posisi head queue. Sedangkan pada
preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1.

Round-Robin Scheduling
Konsep dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada
dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap
proses mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time)
untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses
ditunda dan ditambahkan pada ready queue.
Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu
quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja,
sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu
proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum,
maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum,
dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian
menjalankan proses berikutnya.
Jika terdapat n proses pada ready queue dan waktu quantum q, maka setiap
proses mendapatkan 1/n dari waktu CPU paling banyak q unit waktu pada sekali
penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu.
Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka
yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context
switch.
Misalkan ada 3 proses: P1, P2, dan P3 yang meminta pelayanan CPU dengan quantum-time sebesar 4 milidetik.

Algoritma Round-Robin ini di satu sisi memiliki keuntungan, yaitu adanya keseragaman waktu, di sisi lain, algoritma ini akan terlalu sering melakukan switching. Semakin besar quantum-timenya maka switching yang terjadi akan semakin sedikit.

rata-rata waktu turnaround tidak meningkat bila waktu quantum dinaikkan.
Secara umum, rata-rata waktu turnaround dapat ditingkatkan jika banyak proses menyelesaikan CPU burst berikutnya sebagai satu waktu quantum. Sebagai contoh, terdapat tiga proses masing-masing 10 unit waktu dan waktu quantum 1 unit waktu, rata-rata waktu turnaround adalah 29. Jika waktu quantum 10, sebaliknya, rata-rata waktu turnaround turun menjadi 20.