PROSES-SISTEM TERDISTRIBUSI

PROSES 

THREAD

    Thread adalah sekumpulan instruksi (proses) yang dieksekusi secara independen (sendiri). Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan kita menggunakan thread kita dapat membuat program menjadi lebih sederhana dan lebih mudah dan dapat membagi proses dalam aplikasi di dalam waktu yang bersamaan.
    Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.

KEUNTUNGAN MULTI THREAD

1.Responsivie dimana yang dimaksud pada responsive ialah  program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.

2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses.Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.

3. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.

4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

Kerugian Multi-Threading

  1. Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace memory.
  2. Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove (ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika terjadi pergantian thread yang berjalan.
  3. Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.

Thread dalam Sistem Operasi

  • Sistem operasi telah mendukung proses multithreading.
  • Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
  • Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.
    Contoh Multithread 7 Web browser : sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.

Single & Multithread Proses

Macam – Macam Thread: 
 1. Thread pengguna : Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan. 
2. Thread Kernel :Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Macam – Macam Thread 
    Kernel adalah sebuah perangkat lunak yang membuat komunikasi / mediator antara aplikasi komputer dan perangkat keras, yang menyediakan pelayanan sistem seperti pengaturan memori untuk proses-proses yang sedang berjalan, pengaturan file-file, input-output terhadap dan dari suatu device dan masih banyak lagi fungsi tambahan yang lainnya. Intinya adalah kernel merupakan suatu penghubung (antara software dan hardware).

Model Many-to-One. 
Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor.



One to One Model

Model ini dimana setiap user thread memilki relasi dengan hanya satu kernel thread. sehinggal user thread memiliki jumlah yang sama dengan jumlah kernel thread. dengan ini jika salah satu thread kernel sedang di block, thread lain bisa berjalan secara parallel. Namun kekurangan dari model ini adalah sistem akan menanggung beban yang berat jika jumlah kernel thread terlalu banyak. Model ini banyak digunakan oleh sistem operasi Microsoft Windows, Linux/GNU, dan Apple MacOS.

Many to Many Model

Model ini dimana terdapat banyak user thread dan setiap threadnya dapat dijalankan oleh salah satu thread yang di kernel space. Kernel thread memilki jumlah yang sama atau lebih sedikit dari jumlah user thread. dalam model ini sangat flexible dibandingkan dengan model sebelumnya namun untuk programmer untuk mengimplementasikannya lebih sulit.

Thread Cancelation 
Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Umpamanya, jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh lain adalah di masalah search. Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut target thread. 

Thread Cancelation
Pemberhentian target Thread dapat dilakukan dengan 2 cara: 
1.Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread. 
2.Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.

    Demikian Materi yang telah saya sampaikan atau yang telah saya utarakan di dalam blog tersebut..Saya Harap kita dapat memahami serta dapat mengerti arti dalam pembahasan tersebut mengenai proses di dalam thread dan pembagian thread... sampai jumpa di materi selanjutnya....



Komentar