yunita

yunita

Jumat, 29 Maret 2013

Proses dan Thread


Pengertian Proses
Proses adalah program dalam eksekusi. Suatu proses adalah 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.

Pengertian Thread
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 user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. 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.


Perbedaab Proses dan Thread
·         Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
·         Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
·         Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
·         Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat sendiri-sendiri.
·         Thread memiliki akses langsung ke segmen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent process-nya.
·         Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus menggunakan komunikasi antar proses.
·         Thread hampir tidak memiliki overhead. Proses memiliki overhead.
·         Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses anakannya.
·         Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada parent proses tidak mempengaruhi proses anakan.


Keadaan Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:

  1. Ready, yaitu status dimana proses siap untuk dieksekusi pada giliran berikutnya
  2. Running, yaitu status dimana saat ini proses sedang dieksekusi oleh prosesor
  3. Blocked, yaitu status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas, Status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses I/O. keadaan ini kadang disebut juga denganWaiting.
Terdapat dua status tambahan, yaitu saat pembentukan dan terminasi:

  1. NewStatus yang dimiliki pada saat proses baru saja dibuat
  2. TerminatedStatus yang dimiliki pada saat proses telah selesai dieksekusi.
Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Blocked. Ada tiga kemungkinan bila sebuah proses memiliki status Running:

  1. Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
  2. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
  3. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M/K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Blocked.


Berikut ini adalah beberapa kemungkinan suatu proses terjadi: 
a. Dari ready ke running
Pada saat memilih proses untuk dioperasikan, sistem operasi memilih salah satu proses yang berada didalam keadaan ready. 
b. Running ke block
Suatu proses ditaruh dalam keadaan blocked apabila proses itu meminta sesuatu yang akan menyebabkannya harus menunggu. Sebuah request ke sistem operasi umumnya merupakan bentuk panggilan layanan sistem (panggilan dari program yang sedang beroperasi ke prosedur yang sedang beroperasi ke prosedur yang merupakan bagian kode sistem operasi) misalnya sebuah proses dapat meminta suatu layanan dari sistem operasi yang tidak dapat siap dilakukan sistem opersi dengan segera. Atau proses dapat menginisiasi suatu aksi, misalnya operasi I/O, yang harus diselesaikan sebelum proses itu melanjutkan operasinya. Pada saat proses saling berkomunikasi dengan proses lainnya, suatu proses dapat diblokir apabila sedang menunggu proses lainnya untuk menyediakan input atau sedang menunggu pesan dari proses lainnya.
c. Running ke ready
Umumnya alasan transisi ini adalah dimana proses yang sedang berjalan telah mencapai waktu maksimum yang diizinkan bagi instruksi yang tidak diinterupsi. Terdapat beberapa alasan lainnya yang menyebabkan transisi ini, yang tidak diimplementasikan disetiap sistem operasi. Misalnya apabila sistem operasi meng-assign tingkat prioritas yang berbeda pada proses yang berlainan, suatu proses dapat diambil lebih dulu.
d. Blocked ke ready
Apabila proses dalam keadaan Blocked sudah selesai mendapatkan sumber daya, seperti file atau bagian virtual memori bagi pakai atau juga sudah selesai setelah menunggu proses lainnya untuk menyediakan input atau sudah selesai menunggu pesan lainnya.
e. Runing ke finish
proses yang sedang berjalan dihentikan oleh SO pabila proses itu telah selesai atau dibatalkan. Hal ini terjadi karena apabila proses induknya sendiri telah berhenti.




Referensi:
http://didikakata.wordpress.com/2012/11/18/thread-dan-proses-sistem-operasi/
http://fazza01.wordpress.com/2009/04/11/tugas-pertemuan-5/ 
http://tri-yangzuka.blogspot.com/2012/04/diagram-keadaan-proses-sistem-operasi.html 






Tidak ada komentar:

Posting Komentar