Selasa, 13 Desember 2011

DDBMS (distributed database management system)

DDBMS

basis data terdistribusi (distributed database) adalah suatu basis data yang berada di bawah kendali sistem manajemen basis data (DBMS) terpusat dengan peranti penyimpanan (storage devices) yang terpisah-pisah satu dari yang lainnya. Tempat penyimpanan ini dapat berada di satu lokasi yang secara fisik berdekatan (misal: dalam satu bangunan) atau terpisah oleh jarak yang jauh dan terhubung melalui jaringan internet. Penggunaan basis data terdistribusi dapat dilakukan di server internet, intranet atau ekstranet kantor, atau di jaringan perusahaan.
Untuk menjaga agar basis data yang terdistribusi tetap up-to-date, ada dua proses untuk menjaganya, yakni replikasi dan duplikasi. Dalam replikasi, digunakan suatu perangkat lunak untuk mencari — atau lebih tepatnya melacak — perubahan yang terjadi di satu basis data. Setelah perubahan dalam satu basis data teridentifikasi dan diketahui, baru kemudian dilakukan perubahan agar semua basis data sama satu dengan yang lainnya. Proses replikasi memakan waktu yang lama dan membebani komputer karena kompleksitas prosesnya. Sementara itu, proses duplikasi tidak sama dan tidak sekompleks replikasi. Dalam proses ini, satu basis data dijadikan master, kemudian diperbanyak menjadi sejumlah duplikat. Selama proses duplikasi berlangsung, perubahan hanya boleh dilakukan pada basis data master agar data lokal tidak tertimpa.
Pengguna (user) dari sebuah basis data terdistribusi dapat mengakses basis data melalui dua jenis aplikasi, yakni

    aplikasi lokal: aplikasi yang tidak memerlukan data dari tempat lain
    aplikasi global: aplikasi dengan kebutuhan akan data dari tempat lain

Dalam proses perancangan basis data terdistribusi, harus diperhatikan aspek transparansi, yaitu interaksi user terhadap basis data merupakan interaksi dengan satu sistem secara utuh. Transparansi harus terlihat dalam dua hal, yaitu

    Distribusi: para pengguna harus dapat berinteraksi dengan sistem secara keseluruhan sebagai satu sistem yang utuh. Kesatuan ini harus ada pada kinerja sistem dan metode pengaksesan.
    Perubahan (transaksi): Setiap transaksi (penambahan, penghapusan, atau peng-update-an) harus mempertahankan integritas antara basis data yang berbeda-beda dalam satu sistem. Setiap transaksi harus dibagi ke dalam sejumlah subtransaksi, yang tiap-tiap darinya memberikan pengaruh pada keseluruhan sistem basis data.

Software Oracle Data Base

Semua perusahaan atau organisasi yang menggunakan relational database management system (RDBMS) biasanya mempunyai database yang banyak atau tidak hanya satu. Oleh karena itu kenapa mereka biasanya menggunakan konsep sistem terdistribusi dalam implementasinya. Ada beberapa faktor penyebabnya antara lain :

    1.Perbedaan database biasanya didasarkan pada fungsionalitas dari database itu sendiri, misalkan untuk bagian keuangan, pemasaran ataupun sumberdaya manusia.
    2.Perbedaan database juga biasanya didasarkan pada letak geografis yang ada, semisal untuk dalam satu kota.
    3.Perbedaan database juga biasanya didasarkan pada bagaimana cara mengaksesnya misalkan untuk database transaksi atau untuk penggudangan data (data warehouse).
    4.Database pada internet Commerce biasanya diduplikasi sebagai cadangan dengan skala kemampuan yang sama.
    5.Database juga dibedakan untuk sistem yang sedang berjalan ataupun untuk yang sedang dikembangkan.

Untuk mengakomodasi kebutuhan itu maka oracle membentuk suatu skema yang memungkinkan semuanya bisa terjadi dengan konsep sistem terdisribusi.
Teknologi sistem database terdistribusi adalah dimana kuncinya adalah integrasi, bukan sentralisasi, serta teknologi ini mencoba untuk mencapai integrasi tanpa sentralisasi.
Database terdistribusi berbeda dengan database terdesentralisasi, dimana database terdistribusi merupakan suatu database tunggal logik yang secara fisik disebarkan kepada komputer-komputer pada banyak lokasi yang kemudian saling dikoneksikan oleh link data komunikasi. Sedangkan database terdesentralisasi merupakan koleksi database independen pada komputer yang tidak terhubung dalam suatu jaringan .  Suatu sistem database terdistribusi terdiri atas situs-situs yang saling berpasangan yang tidak saling membagi komponen fisik. Sistem database akan berjalan pada situs yang independen
Dalam menyusun suatu data terdistribusi perlu diperhatikan hal-hal sebagai berikut :

    1.Replikasi data, data-data harus tetap up-to-date tanpa kompromisasi pada performansi
    2.Akses yang terjadi secara bersamaan, harus menghindari terjadinya kesalahan pada data
    3.Masalah keamanan
    4.Masalah reliabilitas

Sistem database terdistribusi pada Oracle mengijinkan aplikasi-aplikasi untuk mengakses data dari database yang lokal maupun jauh. Dalam sebuah sistem database terdistribusi homogen setiap database merupakan Oracle Database, sedangkan pada sistem database terdistribusi heterogeneous paling sedikit satu diantara sekumpulan database bukan merupakan Oracle Database. Distribusi basis data menggunakan arsitektur client/server untuk memproses permintaan informasi

Sabtu, 10 Desember 2011

Deadlock

Contoh Deadlock Di persimpangan Jalan
     Deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.

Karakteristik Deadlock
Karakteristik-karakteristik ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya deadlock adalah implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.
Empat kondisi tersebut adalah:
1.Mutual Exclusion . Kondisi yang pertama adalah mutual exclusion yaitu proses memiliki hak milik pribadi terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu proses yang menggunakan suatu sumber daya. Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakannya. Suatu proses hanya dapat menggunakan secara langsung sumber daya yang tersedia secara bebas.
2.Hold and Wait . Kondisi yang kedua adalah hold and wait yaitu beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya. Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap sumber daya. Akan tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain. Pada saat yang sama, kemungkinan adanya proses lain yang juga mengalami hal serupa dengan proses pertama cukup besar terjadi. Akibatnya, proses-proses tersebut hanya bisa saling menunggu sampai sumber daya yang dimintanya dilepaskan. Sambil menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas. Semua proses itu pada akhirnya saling menunggu dan menahan sumber daya miliknya.
3.No Preemption . Kondisi yang selanjutnya adalah no preemption yaitu sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya. Proses yang menginginkan sumber daya tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang memilikinya.
4.Circular Wait . Kondisi yang terakhir adalah circular wait yaitu kondisi membentuk siklus yang berisi proses-proses yang saling membutuhkan. Proses pertama membutuhkan sumber daya yang dimiliki proses kedua, proses kedua membutuhkan sumber daya milik proses ketiga, dan seterusnya sampai proses ke n-1 yang membutuhkan sumber daya milik proses ke n. Terakhir, proses ke n membutuhkan sumber daya milik proses yang pertama. Yang terjadi adalah proses-proses tersebut akan selamanya menunggu.

Penanganan Deadlock
4 cara untuk menangani keadaan deadlock, yaitu:
1.Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock. Kebanyakan sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan deadlock. Cara penanganan dengan mengabaikan deadlock banyak dipilih karena kasus deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk diselesaikan. Sehingga biasanya hanya diabaikan oleh sistem untuk kemudian diselesaikan masalahnya oleh user dengan cara melakukan terminasi dengan Ctrl+Alt+Del atau melakukan restart terhadap komputer.
2.Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
3.Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah bahwa antara pencegahan dan penghindaran adalah dua hal yang berbeda. Pencegahan lebih kepada mencegah salah satu dari empat karakteristik deadlock terjadi, sehingga deadlock pun tidak terjadi. Sedangkan penghindaran adalah memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
4.Pendeteksian dan Pemulihan. Pada sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.

Pencegahan Deadlock
Pencegahan deadlock dapat dilakukan dengan cara mencegah salah satu dari empat karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara pencegahan terhadap empat karakteristik tersebut.
1.Mutual Exclusion . Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
2.Hold and Wait . Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.
3.No Preemption . Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption. Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir.
4.Circular Wait . Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik. Misalkan sumber daya printer memiliki nomor 1 sedangkan CD-ROM memiliki nomor 3. Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.

Penghindaran Deadlock
Penghindaran terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.
Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran yaitu resource-allocation graph untuk single instances resources serta banker's algorithm untuk multiple instances resources.
Dalam banker's algorithm, terdapat beberapa struktur data yang digunakan, yaitu:
Available . Jumlah sumber daya yang tersedia.
Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.
Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.
Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max- allocation.
Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.

Pendeteksian Deadlock

Pada dasarnya kejadian deadlock sangatlah jarang terjadi. Apabila kondisi tersebut terjadi, masing-masing sistem operasi mempunyai mekanisme penanganan yang berbeda. Ada sistem operasi yang ketika terdapat kondisi deadlock dapat langsung mendeteksinya. Namun, ada pula sistem operasi yang bahkan tidak menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem operasi yang dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara lebih mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock yang dilaksanakan apabila sistem telah berada pada kondisi deadlock. Sistem akan mendeteksi proses mana saja yang terlibat dalam kondisi deadlock. Setelah diketahui proses mana saja yang mengalami kondisi deadlock, maka diadakan mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan kembali dengan normal.
Mekanisme pendeteksian adalah dengan menggunakan detection algorithm yang akan memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah dengan menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya. Berikut ini adalah algoritma pendeteksian deadlock.

Pemulihan Deadlock

Pemulihan kondisi sistem terkait dengan pendeteksian terhadap deadlock. Apabila menurut algoritma pendeteksian deadlock sistem berada pada keadaan deadlock, maka harus segera dilakukan mekanisme pemulihan sistem. Berbahaya apabila sistem tidak segera dipulihkan dari deadlock, karena sistem dapat mengalami penurunan performance dan akhirnya terhenti.
Cara-cara yang ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:
1.Terminasi proses. Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua proses yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap proses yang terlibat dalam deadlock secara satu per satu sampai 'lingkaran setan' atau circular wait hilang. Seperti diketahui bahwa circular wait adalah salah satu karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait dapat memulihkan sistem dari deadlock.Dalam melakukan terminasi terhadap proses yang deadlock, terdapat beberapa faktor yang menentukan proses mana yang akan diterminasi. Faktor pertama adalah prioritas dari proses-proses yang terlibat deadlock. Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa banyak sumber daya yang telah dihabiskan dan yang masih dibutuhkan. Terakhir, faktor utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi pada suatu proses.
2.Rollback and Restart . Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara sistem melakukan preempt terhadap sebuah proses dan kembali ke state yang aman. Pada keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.

Kamis, 08 Desember 2011

arsitektur komputer yang menggunakan teknologi hyperthreading dengan dispatching algorithm

Apa itu hyperthreading ?

oke mari belajar sama-sama, hyperthreading (HT) adalah sebuah teknologi yang dikembangkan oleh intel agar dapat meningkatkan kinerja dari sebuah prosesor, dengan cara memberikan instruksi ke pada software yang dalam hal ini adalah sistem operasi untuk membelah diri menjadi beberapa aliran  (thread).

Pada prosesor teknologi ini,dilengkapi teknologi Hyper-Threading oleh software 'Operating System'yang dianggap terdiri dari 2 prosesor(2'logical'prosesor).Dengan demikian 'Operation System'dapat bekerja secara simultan pada kedua prosesor('logical'prosesor) itu.Hal ini mengakibatkan prosesor dapat memproses beberapa pekerjaan (tugas)sekaligus,sehingga pemrosesan berjalan sangat cepat dan memperkecil waktu kerja pada saat pemrosesan.Intinya,walaupun prosesor anda satu,tetapi pada sistem operasi dianggap ada dua bahkan lebih prosesor.Dan teknologi prosesor ini hanya terdapat pada prosesor buatan Intel.


Teknologi Hyper Threading dapat diaktifkan melalui kombinasi antara :
- prosesor intel dan chipset yang mendukung teknologi Hyper Threading
- sistem operasi untuk optimalisasi HT ini
- Bios yang juga suport dengan HT ini.

Prinsip kerja dari hyper threading :
Pada dasarnya Hyper Threading adalah sebuah teknologi yg memungkinkan sebuah CPU dikenal sebagai 2 CPU.
Jadi dengan hanya membeli sebuah CPU, anda serasa mendapatkan performa 2 CPU.
Walaupun secara fisik hanya ada 1 CPU, namun secara logikal ada 2 CPU, sehinga OS dan software akan menganggap ada 2 CPU.
Alasan utama mengapa 2 CPU lebih baik drpd 1 CPU adalah karena bila hanya menggunakan 1 CPU maka banyak Execution Unit yg menganggur (tidak termanfaatkan).
Pada umumnya, sewaktu sebuah CPU memproses instruksi, maka hanya 35% dari Ecexution Unit saja yg terpakai. Sementara 65% sisanya tak mampu dipakai untuk memproses instruksi lainnya, sebelum instruksi yg yg pertama tsb selesai.
Ini disebakan karena pada 1 CPU, beberapa instruksi dikirim dalam bentuk Single-thread. Sehingga instruksi-instruksi tsb mengantri secara berurutan.
Sedangkan pada 2 CPU, urutan instruksi dikirim secara multi-thread (dalam 2 Thread secara paralel/bersamaaan), sehingga sebuah instruksi tidak harus mengantri dulu instruksi di depannya, tapi dapat langsung diproses oleh Execution Unit yg semula menganggur.


Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Dcreators