undefined
undefined
PROSES DAN THREAD
PROSES DAN THREAD
1. 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.
Konsep Dasar
Kami tekankan bahwa
program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas
pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana
sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang
mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat
sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat
dihubungkan dengan program yang sama, program tersebut dianggap dua urutan
eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy
yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak
copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau
bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum
untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja. Kami
mendiskusikan masalah tersebut pada bagian berjudul Hubungan
Antara Proses.
Keadaan Proses
Sebagaimana proses
bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari
sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses
tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:
- New:
Proses sedang dikerjakan/ dibuat.
- Running:
Instruksi sedang dikerjakan.
- Waiting:
Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
- Ready:
Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
- Terminated:
Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama tersebut
adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang sistem
operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem
operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah
penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor
mana pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau
waiting.
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.
Single thread dan multi thread
1.Single
thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi
thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.
Model Multithread
Sebelumnya,
perlu diketahui apa itu user thread dan kernel thread.
User
thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel
thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak
dapat menginterupsi.
Model-model
multithreading :
1.
Many to one.
-
Beberapa thread user-lever dipetakan ke dalam single kernel thread
-
Penggunaannya pada sistem tidak memerlukan dukungan kernel thread
-
Memetakan beberapa user level thread hanya ke satu buah kernel thread.
2.
One to one
-
Setiap user-level thread dipetakan ke kernel thread.
-
Memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
-
Contoh : Windows 95/98/NT/2000
3. Many to many
- Membolehkan setiap
user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem
operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000
dengan paket ThreadFiber 10, Solaris 2
PERBEDAAN PROSES DENGAN THREAD
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.
1.Pembentukan Thread
membutuhkan waktu yang lebih sedikit daripada pembentukan process.
2.Membutuhkan waktu yang
lebih sedikit untuk menhakhiri Thread daripada process.
3.Lebih mudah dan cepat
untuk melakukan switch antar Thread daripada switch antar process.
4.Thread menggunakan
secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki
ruang alamat sendiri-sendiri.
5.Thread memiliki akses
langsung ke segemen data dari prosesnya. Masing-masing proses memiliki salinan
segmen data dari parent process-nya.
6.Thread dapat saling
komunikasi dengan thread lain dalam satu process. 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 anakannya.
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
anakan.
STATE PROSES
Status proses selalu berubah-ubah selama suatu
program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi
tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani processor
- terminated : proses telah menyelesaikan eksekusi.
Referensi:
This entry was posted
on Senin, 01 April 2013
at 21.38
and is filed under
SISTEM OPERASI
. You can follow any responses to this entry through the
comments feed
.