Senin, 12 Desember 2011

Aplikasi DDBMS Menggunakan MY SQL atau Basis Data Terdistribusi


Sistem terdistribusi dalam basis data disimpan pada beberapa komputer. Komputer pada sistem terdistribusi berkomunikasi satu sama lain melalui media komunikasi seperti jaringan berkecepatan tinggi atau telpon. Mereka tidak berbagi memori atau disk. Komputer pada sistem terdistribusi bisa berfariasi dalam hal ukuran dan fungsi serta berkisar dari sistem workstation hingga mainframe.
            Komputer pada sistem terdistribusi bisa disebut situs atau node tergantung pada konteknya. Istilah situs digunakan untuk menyatakan distribusi fisik sistem. Sebuah sistem basis data terdistribusi berisi sekumpulan situs dimana tiap-tiap situs dapat berpartisipasi dalam pengeksekusian transaksi-transaksi yang mengakses pada satu atau beberapa situs.
Basis data terdistribusi sering terpisah secara geografis, diatur terpisah dan mempunyai interkoneksi yang lambat. Sistem basis data terdistribusi memiliki transaksi lokal dan global. Transaksi lokal adalah transaksi yang mengakses data hanya dari situs dimana transaksi dilakukan. Kemudian transaksi global adalah transaksi yang mengakses data pada situs yang berbeda dari situs transaksi dilakukan atau pada beberapa situs berbeda.Arsitektur yang dilakukan adalah sistem basis data terdistribusi karena


  • Data bersama, aturan suatu lingkungan dimana pengguna pada satu situs bisa mengakses data pada situs lainnya.
  • Otonomi, masing-masing situs dapat mempertahankan kontrol terhadap data yang disimpan terhadap data.
  • Ketersedian, jika satu situs gagal pada suatu sistem terdistribusi, maka situs lainnya melanjutkan operasi. Apalagi jika datanya disimpan pada beberapa situs, Sebuah transaksi yang memerlukan data tertentu bisa mencarinya pada sembarang situs lain. Oleh karena itu kegagalan satu situs tidak mengakibatkan sistem berhenti.

    kali ini saya akan meriview aplikasi DDBMS dengan menggunakan MY SQL
    Keistimewaan MySQL
    MySQL memiliki beberapa keistimewaan, antara lain :
    Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
    Open Source.MySQL didistribusikan secara open source, dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
    'Multiuser'. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
    'Performance tuning'. MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
    Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
    Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
    Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses userdengan sistem perizinan yang mendetail serta sandi terenkripsi.
    Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
    Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
    Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
    Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
    Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
    Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle

    Contoh Kasus dan implementasi MY sql
    Contoh Basis Data terdistribusi Pada SI Kependudukan

    Misalkan sebuah daerah terdiri atas empat desa masing-masing desa memiliki komputer yang menangani data kependudukan pada desa. Masing-masing computer merupakan sebuah lokasi  kemudian ada satu lokasi yang menangani tentang data kependudukan semua desa. Masing-masing desa menangani skema kependudukan:


    skema – kependudukan = (nomor_ktp, alamat, nama_desa)
    Lokasi yang mempunyai tentang menangani skema-desa:
       Skema – desa = (jumlah_penduduk, nama_desa, kota)

    Contoh untuk menggambarkan perbedaan antara dua tipe kependudukan, lokal dan global pada satu daerah adalah menambah data penduduk pada sebuah desa. Jika penambahan dilakukan di desa maka ini dianggap lokal jika tidak dianggap global. Sebaliknya untuk sebuah kependudukan dimana seseorang akan pindah dari desa A ke desa B. Orang tersebut meminta KTP baru di desa B, karena yang harus diakses terletak pada dua lokasi berbeda.

       Pada sistem basis data terdistribusi yang ideal, lokasi akan berbagi skema global. Semua lokasi akan menjalankan software DBMS terdistribusi yang sama dan masing-masing lokasi akan mengetahui keberadaan lokasi yang lainnya. Jika dibangun dari awal sebuah basis data terdistribusi yang mungkin dapat mencapai tujuan di atas. Namun ,dalam kenyataannya basisdata terdistribusi harus dibuat dengan menggabungkan beberapa sistem basis data yang sudah ada, masing-masing dengan skemanya sendiri dan mungkin menjalankan DBMS berbeda. Sistem semacam ini kadang disebut sistem multi basisdata atau sistem basisdata teridstribusi heterogen.

Rabu, 07 Desember 2011

HYPER-THREADING & DISPATCHING ALGORITHM

1. Teknologi Hyper Threading 






 
 
 
 
 
 
Teknologi Hyper-Threading adalah teknik yang memungkinkan sebuah CPU tunggal dapat bertindak seperti beberapa CPU. Sebuah CPU (single thread) terdiri dari banyak komponen kecil. Pada saat menjalankan proses, beberapa komponen mungkin sibuk memproses instruksi, sedangkan komponen lainnya sedang menuggu untuk dimanfaatkan. Sehingga hal ini mengakibatkan CPU bekerja tidak maksimal.

Hyper-threading memungkinkan bagian-bagian yang berbeda dari CPU untuk bekerja pada tugas yang berbeda secara bersamaan. Dengan cara ini, sebuah komputer dengan CPU Hyper-Threading tampaknya lebih dari satu CPU.

Sebuah CPU dengan Hyper-Threading memiliki dua set sirkuit yang melacak keadaan CPU. Sirkuit ini mencakup sebagian besar register dan petunjuk instruksi. Sirkuit ini berfungsi sebagai fasilitas penyimpanan sementara untuk melacak dimana CPU saat ini bekerja. Bagian dari CPU yang tidak direpleksi adalah L1 dan L2 cache. Hyper-Threading meduplikat sekitar 5% sirkuit dari CPU. Tergantung pada aplikasi perangkat lunak yang digunakan, Hyper-Threading dapat meningkatkan performa hingga enam kali lipat.

Perangkat Lunak Yang Mendukung
Manfaat kinerja Hyper-Threading  hanya dapat dijalankan dengan menggunakan sistem operasi yang mendukung beberapa CPU. Pada sistem operasi, Hyper-Threading akan terlihat seperti dua CPU. Sistem operasi yang mendukung Hyper-Threading diantaranya Microsoft Windows NT 4.0, Microsoft Windows 2000, Microsoft XP Profesional, dan sebagian besar varian Unix.

Cara Kerja Teknologi Hyper-Threading
Pada saat CPU (tanpa Hyper-Threading) memproses instruksi, hanya sekitar 35% unit CPU saja yang terpakai. Sisanya menganggur dan menunggu instruksi sebelumnya selesai. Hal ini disebabakan karena 1 CPU, instruksi-instruksi dikirimkan dalam bentuk single thread. Sehingga instruksi-instruksi tersebut mengantri secara berurutan.
Sedangkan pada CPU Hyper-threading, urutan instruksi dikirim secara multithread (dalam 2 thread secara paralel/bersamaan), sehingga sebuah instruksi tidak harus mengantri dulu instuksi didepannya, tapi dapat langsung diproses oleh Execution Unit yang semula menganggur.

Perbandingan Dengan CPU biasa
Seberapapun besar GHz sebuah CPU, apabila Execution Unitnya sedang memproses instruksi yang belum selesai, maka CPU tersebut akan tetap terhambat untuk menerima instruksi berikutnya, ini karena instruksi harus mengantri berurutan pada jalur single-thread.
Oleh karena itu Tomshardware pernah menyatakan bahwa performa P4 3.06 GHz dengan HT sanggup mengalahkan P4 4GHz tanpa HT. Situasi seperti itu bisa saja terjadi terutama bila dalam pengujiannya Tomshardware menjalankan aplikasi secara bersamaan.
Untuk pemakaian sehari-hari kita seringkali menjalankan banyak aplikasi bersamaan, disaat itulah kita makin sadar bahwa 2 akan lebih baik dari 1. Petinju profesional sekalipun, tapi bila hanya memiliki 1 tangan, maka akan dengan mudah dikalahkan oleh tukang becak yang mempunyai 2 tangan.


OK, diatas sudah dijelaskan secara umum tentang Hyper-Threading itu apa??? Sekarang kita ulas lebih dalam lagi si Hyper-Threading ini...

Teknologi Hyper-Threading (HT) adalah sebuah teknologi yang dikembangkan oleh Intel agar dapat meningkatkan kinerja prosesor, dengan cara memberikan instruksi melalui software untuk membelah diri (spliting) menjadi beberapa aliran (thread). Teknologi Hyper-Threading menyediakan thread-level secara paralel pada setiap processor, sehingga penggunaan sumber daya processor menjadi lebih efisien, memungkinkan beberapa thread untuk berjalan pada setiap inti (core). Teknologi Hyper-Threading dapat dapat diaktifakn melalui kombinasi antara :
  • Processor Intel® dan chipset yang mendukung Teknologi Hyper-threading
  • Sistem Operasi (OS) untuk optimalisasi Teknologi Hyper-Threading
  • BIOS (Basic Input Output System) yang support Teknologi Hyper-Threading

Dengan aktifnya Teknologi Hyper-Threading pada processor maka sebuah komputer akan mampu :
  • Menjalankan aplikasi berat secara bersamaan dengan tetap mempertahankan respon sistem
  • Menjaga sistem lebih aman, efisien dan meminimalkan dampak terhadap produktivitas
  • Mengaktifkan grafis menjadi lebih baik, sehingga penggemar multi media dapat  membuat, mengedit, menjalakan encoding file grafis, pada saat yang sama komputer juga menjalankan aplikasi dibelakang layar seperti program anti virus tanpa mengorbankan kinerja sistem

Teknologi Hyper-Threading jika digabungkan dengan Teknologi Intel® Turbo Boost ataupun Intel® Turbo Boost 2.0 memungkinkan processor untuk mengolah data secara simultan pada beberapa thread, menyesuaikan beban kerja dan secara otomatis akan mematikan core yang tidak aktif, serta processor akan meningkatkan frekuensi pada core yang sibuk untuk menambah kinerja lebih besar.

Perlu diketahui bahwa fungsi Hyper-Treading ini bisa bekerja optimal bila didukung oleh sistem operasi yang sesuai, misalnya wnidows XP, selain bergantung pada dukungan sistem operasi, juga bergantung pada :
  • Dukungan Chipset yang digunakan pada motherboard
  • Dukungan BIOS untuk mengatur aktif tidaknya fungsi HT dari BIOS
  • Dukungan Aplikasi software yang digunakan

Teknologi Hyper-Threading adalah teknologi Eksklusif milik Intel, tidak dimiliki oleh processor-processor yang bukan produksi Intel.
 
2. Dispatching Algorithm 
Dispatching adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short term scheduling. Fungsi-fungsi yang terkandung didalamnya meliputi :
  • Switching Context
  • Switching ke User Mode
  • 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.

Beberapa algoritma penjadwalan CPU dispatching :
  • First-Come First-Served Scheduling (FCFS)
  • Shortest Job First Scheduler (SJF)
  • Priority Scheduling
  • Round-Robin Scheduling



3. Sistem Operasi Yang Mendukung 
    Teknologi Hyperthreading

Pengelompokan ke dalam Multi Threading :
  • one-to-one Model           : Windows NT/XP/2000, solaris 9
  • many-to-many Model  : Windows NT/2000, IRIX, Digital UNIX dan Solaris
  • two-level Model              : IRIX, HP-UX, Tru64, UNIX, Solaris 8