1. Apa yang dimaksud dengan proses dan
thread ?
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.
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.
2. Apa perbedaan proses dengan thread
?
Sebuah proses adalah sebuah peristiwa
adanya sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses,
maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses
dapat didefinisikan oleh aktivitas proses tersebut. 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. Setiap proses mungkin menjadi
satu dari beberapa state berikut, antara lain: new, ready, running, waiting,
atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan
proses-control-block (PCB)-nya.
Saya 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 seperangkatsumber
daya/resource yang berkenaan dengannya.
Proses memiliki dua karakteristik
namun kedua karakteristik dilakukan secara independen oleh sistem operasi :
- Resource ownership (kepemilikan
sumber daya)
Proses mempunyai ruang alamat virtual
untuk menangani image proses yang didefinisikan dalam PCB.
- Scheduling-execution
(penjadwalan-eksekusi)
Mengikuti suatu path eksekusi (trace),
ada pergatian dari satu proses ke lainnya Unit dari kepemilikan sumber daya
diacu sebagai proses atau taskuatu thread yang salah dapat menganggu thread
yang lain didalam proses yang sama,karena thread berbagai pakai ruang memori
virtual dan sumber daya lain yang sama.
Thread adalah unit dasar dari
penggunaan CPU, thread mengandung Thread ID, program counter, register set, dan
stack. Sebuah Thread berbagi code section, data section, dan sumber daya sistem
operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga
sering disebut lightweight process. Sebuah proses tradisional atau heavyweight
process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan
antara proses dengan thread tunggal dengan proses dengan thread yang banyak
adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas
pada satu satuan waktu.
Perbedaan proses dan thread?
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.
3. Gambar state proses
Diagram State Proses
Status proses
Terdapat tiga state dasar dalam proses,
yaitu running, ready, dan blocked.
Keterangan:
Proses di blok untuk melayani input
karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga
menunggu kejadian muncul.
Penjadwalan mengambil proses lain.
Penjadwalan mengambil proses ini
(baru).
Input telah tersedia.
1. Peralihan Status (State)
Terdapat transisi di antara
state-state selama siklus hidup proses, yaitu:
Proses yang baru diciptakan akan
segera mempunyai stateReady.
Proses denagan state running →blocked karena
sumber daya yang diminta belum tersedia atau meminta layanan perangkat
masukan/keluaran sehingga menunggu kejadian muncul. Proses menunggu kejadian
alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event
wait).
Proses denagan state running → ready karena
penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses
tersebut telah habis (time-out).
Proses denagan state blocked → ready saat
sumber daya yang diminta/diperlukan telah tersedia atau layanan perangkat
masukan/keluaran selesai (event occurs).
Proses denagan state ready →running karena
penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses yang
saat itu running berubah state(menjadi ready atau blocked)
atau telah menyelesaikan sehingga disingkirkan dari sistem Proses menjadi
mendapatkan jatah pemroses.
2. Suspend dan Resume
Penundaan (suspendsion) adalah operasi
penting dan telah diterapkan dengan berbagai cara. Penundaan biasanya
berlangsung singkat. Proses yang ditunda (suspended process) tidak berlanjut
(resume). Untuk waktu jangka peanjang, sumber daya-sumber daya proses dibebaskan
(dilucuti).Keputusan membebaskan sumber daya-sumber daya bergantung sifat
masing-masing sumber daya. Memory utama seharusnya segera dibebaskan begitu
proses yang ditunda agar memori itu dapat dimanfaatkan proses-proses lain.
Perintah pelanjutan kembali terhadap proses adalah perintah untuk menjalankan
proses dari titik (instruksi) dimana proses ditunda.
Operasi suspend dan resume penting,
sebab :
Jika sistem berfungsi secara buruk dan
mungkin gagal maka proses-proses dapat disuspend agar diresume setelah masalah
diselesaikan.
Contoh :
Pada proses pencetakan, bila tiba-tiba
kerta habis maka proses di tunda (suspend). Setelah kertas dimasukkan kembali,
proses pun dapat di lanjutkan kembali (resume).
Pemakai yang ragu/khawatir mengenai
hasil suatu proses dapat mensuspend proses (bukan langsung membuang (abort)
proses). Saat pemakai yakin proses akan berfungsi secara benar maka dapat
me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang
di-suspend.
Sebagai tanggapan terhadap fluktuasi
jangka pendek beban sistem, beberapa proses dapat di-suspend dan di-resume saat
beban kembali ke tingkat normal.
3. Diagram State Proses
Diagram State Proses
Diagram State Dasar (3 Proses)
Proses melewati serangkaian state
diskrit. Beragam kejadian dapat menyebabkan perubahan state proses. Terdapat 3
state dasar yang dialami proses:
-Running
Pemroses sedang mengeksekusi intruksi
proses itu.
-Ready
Proses siap (ready) dieksekusi, tapi pemroses tidak tersedia untuk eksekusi proses ini.
Proses siap (ready) dieksekusi, tapi pemroses tidak tersedia untuk eksekusi proses ini.
-Blocked
Proses menunggu kejadian untuk melengkapi tugasnya seperti :
a. Menunggu selesainya operasi perangkat masukan/keluaran
b. Menunggu tersedianya memori
c. Menunggu tibanya pesan jawaban
Proses menunggu kejadian untuk melengkapi tugasnya seperti :
a. Menunggu selesainya operasi perangkat masukan/keluaran
b. Menunggu tersedianya memori
c. Menunggu tibanya pesan jawaban
Diagram State Lanjut (5 Proses)
Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara.
Penundaan biasanya berlangsung singkat, sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
2 state baru dimasukkan sehingga membentuk diagram 5 state, yaitu
Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara.
Penundaan biasanya berlangsung singkat, sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak.
2 state baru dimasukkan sehingga membentuk diagram 5 state, yaitu
@ Suspendedready
Terjadinya suspen pada proses ready oleh proses lain dan transisi dari proses suspendedblocked
Terjadinya suspen pada proses ready oleh proses lain dan transisi dari proses suspendedblocked
@ Suspendedblocked
Terjadinya transisi suspen setelah proses bloked
Terjadinya transisi suspen setelah proses bloked