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.
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:
- Ready, yaitu status
dimana proses siap untuk dieksekusi pada giliran berikutnya
- Running, yaitu status
dimana saat ini proses sedang dieksekusi oleh prosesor
- 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:
- New. Status yang
dimiliki pada saat proses baru saja dibuat
- 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:
- Jika program
telah selesai dieksekusi maka status dari proses tersebut akan berubah
menjadi Terminated.
- Jika waktu yang
disediakan oleh OS untuk proses tersebut sudah habis maka akan
terjadi interrupt dan proses tersebut kini
berstatus Ready.
- 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