Anda di halaman 1dari 8

PROSES vs THREAD

- Proses
Adalah suatu program yang sedang dieksekusi/dijalankan oleh CPU yang membuat program
counter, register, dan variabel. Suatu proses membutuhkan resource, seperti CPU, memori, file,
dan I/O device untuk menyelesaikan proses tersebut. Untuk melakukan pekerjaannya, resource-
resource ini dialokasikan oleh proses pada saat dibuat atau pada saat dieksekusi.

 Process States/Status Proses


Pada saat proses dieksekusi maka akan terjadi perubahan status. Status-status ini didefinisikan
sebagai keadaan atau aktivitas proses yang sedang berlangsung saat itu. Setiap proses akan
memiliki salah satu dari status berikut :
1. New, proses sedang dibuat/dikerjakan
(yaitu proses yang sedang dibuat oleh penjadwalan tingkat tinggi, tetapi belum siap
melakukan eksekusi. Sistem akan menginisialisasi proses yang akan mengubahnya menjadi
berada dalam keadaan siap untuk dieksekusi.
2. Ready, yaitu proses yang sedang menunggu dan siap memasuki CPU untuk dieksekusi
3. Running, yaitu proses yang sedang dieksekusi CPU
4. Waiting, yaitu proses yang sedang menunggu beberapa event yang akan terjadi (misalnya
menunggu untuk menyelesaikan I/O)
5. Terminated, yaitu proses yang sudah selesai dieksekusi.

Gambar 1. Skema status proses


 Process Control Block (PCB)
Process Control Block adalah struktur data yang dipakai oleh OS untuk mengelola proses
Masing-masing proses dipresentasikan oleh sistem operasi dengan menggunakan Process
Control Block, seperti tampak pada gambar berikut :

Gambar 2. Process Control Block (PCB)

PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah
proses yang spesifik, termasuk hal-hal di bawah ini :

 Status proses: new, ready, running, waiting, terminated, dan lain-lain.

 Program counter: suatu penghitung yang mengindikasikan alamat dari instruksi

selanjutnya yang akan dieksekusi untuk proses tersebut.


 CPU register: Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur

komputer. Register tersebut termasuk accumulator, index register, stack


pointer,general-purposes register, ditambah informasi condition-code. Bersama
dengan program counter, keadaan/status informasi harus disimpan ketika gangguan
terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar.
 Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai

nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung
pada sistem memori yang digunakan oleh sistem operasi.
 Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu nyata yang

digunakan, batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi.
 Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada

proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
 Scheduling information : berisis penjadwalan proses beserta algoritmanya. Untuk

memkasimalkan pengguna CPU ada yang di sebut penjadwalan proses agar proses yang
di jalankan berjalan tanpa hambatan.

- Thread
Thread, atau kadang-kadang disebut sebagai proses ringan (lightweight) merupakan unit dasar dari
utilisasi CPU yang di dalamnya terdapat ID thread, program counter, register, dan stack. Atau
dengan kata lain, thread merupakan satu kumpulan instruksi yang akan dieksekusi secara
independen. Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi
dengan thread lain yang mengacu pada proses yang sama. Dengan banyak kontrol, thread dapat
melakukan lebih dari satu pekerjaan pada waktu yang sama.

 Thread States/Status Thread


Status Thread dapat diartikan sebagai keadaan atau aktivitas thread yang sedang berlangsung
saat itu. Status Thread diilustrasikan seperti pada diagram di bawah ini:

Gambar 3. Thread States


 Unstarted, ketika sebuah thread baru dibuat oleh runtime.
 Running, Thread baru dibuat tetap dalam keadaan Unstarted sampai program panggilan
Thread Start.
 AbortRequested, fungsi Thread ini adalah Thread Abort telah dipanggil tetapi thread belum
menerima pengecualian Thread AbortException yang akan mencoba untuk menghentikannya.
 Stopped, sebuah thread aktif memasuki state Berhenti ketika delegasi ThreadStart tersebut
berakhir.
 WaitSleepJoin, jika kode thread pertemuan tidak dapat mengeksekusi (karena beberapa
kondisi tidak selesai).
 Aborted, Thread dihentikan

 Single-Thread dan Multi-Thread

1. Single-Thread : proses hanya mengeksekusi satu thread pada satu waktu, atau dapat
diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing
thread (terstruktur) dan hanya mengerjakan satu tugas(task) dalam satu waktu.
2. Multi-Thread : proses dapat mengeksekusi beberapa thread dalam satu waktu.

Gambar 4. Single-Thread dan Multi-Thread


Keuntungan Multi-Threading

1. Responsive; tanggap : Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada
bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang
lama/panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya : Secara default, thread membagi memori dan sumber daya dari proses.
Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat
mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk
membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan
dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor
yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap
thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu
thread yang berjalan di setiap waktu.

Kerugian Multi-Threading
1. Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace
memory.
2. Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove (ditambah), tapi
malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika terjadi
pergantian thread yang berjalan.
3. Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.
Proses vs Thread

Proses Thread
Bersifat heavyweight Bersifat lightweight
Membutuhkan lebih banyak waktu dalam Membutuhkan lebih sedikit waktu dalam pembentukan
pembentukan dan mengakhiri proses dan mengakhiri thread
Switch antar Proses lebih lama Switch antar Thread lebih cepat
Proses memiliki overhead Thread hampir tidak memiliki overhead
Proses memiliki ruang alamat atau IP address Thread menggunakan secara bersama ruang alamat
masing-masing atau IP address dari proses yang menciptakannya
Proses hanya dapat mengendalikan proses Thread dapat memiliki pengaruh kontrol yang besar
anakannya/turunan. terhadap thread lain dalam satu proses

KESIMPULAN

 Proses dan Thread merupakan dua bagian yang saling berhubungan dan berkaitan.

 Suatu program yang sedang dieksekusi merupakan pengertian dari suatu 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.
Race Condition

Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses shared memory/sumber
daya, pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung dari proses mana yang
terakhir selesai dieksekusi, sehingga hasil akhirnya terkadang tidak sesuai dengan yang dikehendaki.

Anda mungkin juga menyukai