Proses
& Thread Dalam Sistem Operasii
1. Apa yg dimaksut dgn Proses ???
Proses adalah konsep pokok dari sistem operasi. Berbagai macam defnisi mengenai proses telah dicetuskan. Secara sederhana, proses adalah sebuah program yang dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses sesuai kebutuhan.
Secara informal; 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. Process StateStatus 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
2. Apa yg dimaksut dgn 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.
Beberapa terminologi yang akan
dibahas:
Thread pengguna:
Thread yang pengaturannya dilakukan
oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan
fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat
dan dikendalikan.
Thread Kernel:
Thread yang didukung langsung oleh
kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada
kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan
lebih lambat jika dibandingkan dengan thread pengguna.
Model-model 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.
3. Apa
perbedaan thread dengan proses?
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.
Sedangkan 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.
Kesimpulan:
Proses dan Thread merupakan dua bagian yang saling
berhubungan dan berkaitan. Suatu
program yang sedang dieksekusi merupakan pengertian
dari sutau proses. Proses
membutuhkan sumber daya. Sistem operasi mengeksekusi
proses dengan dua cara yaitu batch
system yang mengeksekusi jobs dan
time-shared system yang mengatur pengeksekusian
program pengguna ( user) atau tasks. Proses berisikan
stack yang menyimpan alamat register
dan juga alamat dari sebuah instruksi yang berisikan
data – data yang dibutuhkan untuk
instruksi selanjutnya. Program Counter, register set
serta stack merupakan bagian dari thread.
Thread berbagi code section, data section dan juga
sumber daya sistem operasi dengan thread
lain yang
dalam proses yang sama. Kelebihan thread antara lain responsif,
berbagi sumberdaya, ekonomis serta utilitas arsitektur mikroprosessor.