Apa ya pengertian serta kelebihan dari proses dan thread pada OS itu?

Dari judul yang sudah kita lihat bisa kita tebak apa yang akan dibahas, nah bagi siapapun itu saya mau coba jelasin nih apa itu thread?, apa itu proses? Dan kekurangan serta kelebihannya di dalam OS.

Thread merupakan unit dasar dari penggunaan CPU yang terdiri dari Thread_ID, program counter, register set, dan stack dan thread disebut juga lightweight process. Secara umum kita bisa simpulkan bahwa, Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna (responsif), pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Akan tetapi, multithread juga dapat merugikan pengguna. Salah satunya, jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads.

                Selain itu dapat dilihta disini keuntungan dari thread yaitu:
  • 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. 
  • 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.
  • 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 
  • 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.
Keadaan thread yang dapat kita ketahui seperti:

  1. new: sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat. 
  2. runnable: memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek. 
  3. block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan. Contohnya: sleep() atau suspend(). 
  4. dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil.


Thread pada OS seperti, Threads di dalam Solaris 2 sudah dilengkapi dengan library mengenai API-API untuk pembuatan dan managemen thread. Di dalam Solaris 2 terdapat juga level tengah thread. Di antara level pengguna dan level kernel thread terdapat proses ringan/ lightweight (LWP). Setiap proses yang ada setidaknya mengandung minimal satu buah LWP. Library thread memasangkan beberapa thread level pengguna ke ruang LWP-LWP untuk diproses, dan hanya satu user-level thread yang sedang terpasang ke suatu LWP yang bisa berjalan. Sisanya bisa diblok mau pun menunggu untuk LWP yang bisa dijalankan.

Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
  • Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
  • Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
  • Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Nah kan thread udah sedikit saya bahas sekarang saatnya bahas tentang proses yuk! Proses adalah suatu program yang sedang dieksekusi. Suatu proses meliputi:
·         Program counter
Tempat untuk menyimpan alamat suatu proses yang akan dieksekusi selanjutnya
·         Stack
tempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi
·         Data section
mengandung variabel global dari suatu proses

Itu kan dibahas secara khusus, tapi kalo secara informal; proses adalah program dalam eksekusi. Suatu proses itu merupakan lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.
Keadaan proses itu seperti di bawah ini:

·         New                      : Proses sedang dikerjakan/ dibuat.
·         Running              : Instruksi sedang dikerjakan.
·         Waiting               : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
·         Ready                  : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
·         Terminated      : Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Dari pernyataan dan pengertian antara thread dan proses maka kita bisa simpulkan bahwa perbedaan thread dengan prose situ adalah thread berbeda dengan proses karena thread memiliki address space yang sama yang artiya mereka berbagi variable global. karenanya masing2 thread dapat saling mengakses virtual address, membaca, menulis bahkan menghentikan thread lain. Sedangkan proses bisa dimiliki oleh user dan kemungkinan proses tersebut menunggu atau ditahan proses yang lain. proses selalu dimiliki oleh satu user sehingga mereka dapat saling bekerja sama tidak saling berbenturan.

alhasil hanya segitu yang bisa saya bagiin deh informasinya, makasih juga buat referensi di bawah yang udah membantu banget. kalo masi ada yang kurang dilanjutin pembahasan lain kali ya.. terima kasih...
Referensi :
file.unsri.ac.id/.../%5BRev%5DTugas3_SO_MayaKinanty_SK4B.doc
[1] Naghibzadeh, Mahmoud  (2005) Operating Systems Concepts and Techniques. United Stated of America. iUniverse (Published)
[2] Tanenbaum, Andrew and Woodhull, Albert (1997) Operating Systems Design and Implementation Second Edition. United State of America. Pearson Education International (Published)
[3] Stallings, William (2009) Operating Systems Internals and Design Principles Sixth Edition. United State of America. Pearson Prentice Hall (Published)
[4] Silberschatz, Abraham and Galvin, Peter Baer and Gagne, Greg (2005) Operating System Concepts Seventh Edition. United State of America. John Wiley and Sons (Published)
[5] Patterson, David A. and Hennessy, John L (2005) Computer Organization and Design. United State of America. Morgan Kauffman Publishers (Published)

0 Response to "Apa ya pengertian serta kelebihan dari proses dan thread pada OS itu?"

Posting Komentar