ARTIKEL PERBEDAAN PROSES DENGAN THREAD
Di susun Oleh: Nama: Sri Wahyuni Nim : 13111061
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS MERCU BUANA YOGYAKARTA TAHUN AJARAN 2015
A. Defenisi Proses Proses adalah sebuah contoh dari mengeksekusi program komputer. Dengan kata lain, adalah konsep dari kejadian tunggal dari program komputer yang berjalan. Proses yang berjalan secara binar akan mengandung satu atau lebih thread. B. Defenisi Thread Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen dengan sebagian program lainnya. Dalam threading anda dapat menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan. C. Perbedaan Proses dengan Thread a. Proses 1. Merupakan program yang sedang di eksekusi 2. Proses mencakup program counter, yaitu sebuah stack untuk menyimpan
alamat dari
instruksi yang selanjutnya akan di eksekusi dan di registrasi. 3. Memiliki ruang alamat atau IP address masing-masing. 4. Dari satu proses dengan proses lainnya harus menggunakan komunikasi. 5. Memiliki overhead 6. Hanya dapat mengendalikan proses turunannya. 7. Perubahan pada parent proses tidak mempengaruhi proses turunannya. 8. Pembentukan proses membutuhkan waktu yang lebih lama. 9. Waktu yang dibutuhkan untuk mengakhiri proses lebih lama. b. Thread 1. Adalah alur kontrol dari suatu proses. 2. Merupakan unit dasar dari penggunaan CPU dan sering disebut dengan lightweight process. 3. Ruang alamat atau IP address digunakan secara bersama-sama dari proses yang menciptakannya. 4. Memiliki akses langsung ke segmen data dari prosesnya 5. Dapat saling berkomunikasi dengan thread lain dalam satu proses. 6. Hampir tidak memiliki overhead. 7. Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses. 8. Pembentukan thread membutuhkan waktu yang lebih sedikit. 9. Waktu yang dibutuhkan untuk mengakhiri thread lebih sedikit
10. Lebih mudah dan cepat melakukan swicth antar thread daripada switch antar proses. D. Keuntungan Thread 1. Responsiveness : Melakukan multithreading pada aplikasi yang interaktif dapat membuat program terus berjalan meskipun bagian dari program tersebut diblok atau sedang menjalankan operasi yang panjang, karena itu dapat meningkatkan respon kepada user. 2. Resource sharing : sebuah aplikasi dapat mempunyai beberapa thread yang berbeda dalam sebuah alamat memori yang sama karena Thread berbagi memori dan sumber daya dari proses yang memilikinya. 3. Economy: karena mahal untuk mengalokasikan memori dan sumber daya untuk pembuatan proses. Alternatifnya adalah dengan pengunaan thread. Sebab thread berbagi sumber daya dari proses yang memilikinya, oleh sebab itu akan lebih ekonomis untuk membuat sebuah thread daripada menggunakan memory baru. 4. Utilization of multiproccesor architectures: keuntungan dari multithreading dapat meningkat secara drastis dalam arsitektur multiprosesor, dimana setiap thread dapat berjalan secara pararel pada prosesor yang berbeda. E. Jenis Multitreaading Model Gambar Single and Multithreaded Processes
Single thread proses hanya mengeksekusi satu thread saja pada satu waktu Multi thread proses dapat mengeksekusi sejumlah thread pada satu waktu
1. Many to One Model a. Many to One Model memetakan beberapa user-level Threads ke satu kernel threads. b. Examples:
Solaris Green Threads
GNU Portable Threads
c. Kelemahan:
Satu block semua block
2. One to One model memetakan setiap user thread ke kernel thread. Examples
Windows NT/XP/2000
Linux
Solaris 9 and later
Keuntungan:
Konkurensi
Butuh space, waktu,
Tidak blocking
Terbatas
3. Many to many model Many to many model memetakan banyak user-level thread ke kernel thread yang lebih sedikit atau sama. User dapat membuat banyak thread, masing2 kernel thread dpt jalan di lingkungan multiprocessor Examples
Solaris prior to version 9
Windows NT/2000 with the ThreadFiber package
Kelebihan: * Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat berjalan secara parallel pada multiprocessor. * Dan ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Kekurangan: * Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Model ini ada pada Solaris, IRIX, dan Digital UNIX.
4. Two-level Model memungkinkan thread pengguna untuk terikat pada sebuah kernel. Examples
IRIX
HP-UX
Tru64 UNIX
Solaris 8 and earlier
5. Thread Libraries Thread perpustakaan menyediakan programmer dengan API untuk membuat dan mengelola benang Dua cara utama pelaksanaan 1.Perpustakaan sepenuhnya dalam ruang pengguna 2.Perpustakaan kernel-level yang didukung oleh OS 6. Thread cancellation
Thread cancellation/ pembatalan thread ialah pemberhentian thread sebelum tugasnya selesai. Misalnya jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan disebut sebagai target thread. Pembatalan Thread terdiri dari 2 jenis: 1. Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread. 2. Deffered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut. 7. Thread Pools Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools. Keuntungan menggunakan Thread Pools • Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat. • Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent.
Sumber : http://maungampus.blogspot.co.id/2013/09/pengertian-thread-dan-macam-macamnya.html https://empi378.wordpress.com/2013/02/10/perbedaan-proses-dengan-thread/ http://guruinformatika.blogspot.co.id/2015/04/pengertian-dan-model-multithreading.html