PIN : 7c9bc7f6 , Twitter : @nonariizka , Instagram : @nonariizka 'Just Promote'

Selasa, 08 April 2014

Proses dan Thread


Proses adalah program yang dieksekusi sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.
Thread adalah sebuah alur kontrol dari sebuah proses. Merupakan jalur eksekusi tunggal dengan stack eksekusi, status processor,dan informasi penjadwalan. Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
Perbedaan antara proses dan thread :
1. Pembentukkan Thread yang membutuhkan waktu lebih sedikit daripada pembentukan proses.
2. Membutuhkan waktu yang lebih sedikit untuk mengakhiri Thread daripada proses.
3. Lebih mudah dan cepat untuk melakukan switch antara Thread daripada switch antara proses.
4. Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat terpisah.
5. Thread memiliki akses langsung ke segmen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent prosesnya.
6. Thread dapat saling komunikasi dengan thread lain dalam satu proses. Antar proses harus menggunakan komunikasi antar proses.
7. Thread hampir tidak memiliki overhead. Proses memiliki overhead.
8. Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses yang kecil.
9. 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 yang kecil.
Gambar keadaan state proses



Definisi keadaan state proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda.



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. New. Status yang dimiliki pada saat proses baru saja dibuat
2. Terminated. Status 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.

0 komentar:

Posting Komentar