Process
Proses adalah program yang sedang dieksekusi. Proses merupakan unit kerja terkecil yg secara individu memiliki sumber daya dan merupakan unit terkecil yg dijadwalkan oleh sistem operasi.
Pada Sistem Operasi modern membedakan antara proses dan thread.
Proses merupakan unit pemilikan sumber daya sedangkan thread adalah unit penjadwalan.
Istilah pada Proses
- Multiprogramming (Multitasking)
- Multiprocessing
- Distributed Processing/Computing
Multiprogramming (Multitasking)
Adalah manajemen banyak proses di satu pemroses.
Kebanyakan workstation adalah sistem pemroses tunggal yg menjalankan SO multitasking, seperti MS-Win98, MS-Win XP, OS/2 dan Mac OS7.
Pada multitasking, user memandang terdapat banyak proses dijalankan secara bersamaan pada satu saat.
Proses-proses yang dijalankan pada multitasking adalah sebagai berikut
- Saling tidak bergantung (independent), proses dilakukan scr terpisah & tidak saling mempengaruhi.
- Satu Program pada satu saat (one program at any instant), pada satu saat sesungguhnya hanya satu proses yg dilayani pemroses, menggunakan interleave (saling melanjutkan/bersambung) bukan overlap diantara program-program.
Multiprocessing
Adalah manajemen banyak proses di komputer multiprocessor (banyak pemroses di dalamnya).
Dulunya multiprocessor hanya terdapat pd komputer besar, yaitu sistem mainframe, namun saat ini komputer workstation pun telah dapat dilengkapi multiprocessor.
SO MS-Win NT, UNIX dan Linux telah menyediakan dukungan multiprocessor.
Distributed Processing
Adalah manajemen banyak proses yg dieksekusi di banyak sistem komputer yg tersebar (terdistribusi) di satu jaringan. Pada sistem operasi tersebar yg ideal, program tidak perlu menyadari keberadaan banyak pemroses. Terdapat 3 state dasar pada proses
| State | Diskripsi |
|---|---|
| Running | Pemroses sedang mengeksekusi instruksi proses tersebut |
| Ready | Proses siap (ready) dieksekusi tapi pemroses tidak mengeksekusi proses ini |
| Blocked | Proses menunggu kejadian tertentu selesai.
Contoh: menunggu selesainya operasi I/O device |
Pengertian Threads
Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal.
Apa yang dimiliki oleh Thread
- Status eksekusi thread (running, ready, terminated)
- Running-> Sebuah thread yang sedang dieksekusi dan didalam control dari CPU.
- Ready-> Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya.
- Terminated-> Status yang dimiliki pada saat proses telah selesai dieksekusi.
- Simpanan konteks thread (pada saat tidak running)
- Stack eksekusi
- Beberapa storage statis untuk menyimpan variabel lokal
- Hak akses ke memori dan resource yang dimiliki oleh proses
- Memori dan resource digunakan bersama-sama oleh semua thread dari sebuah proses (share)
Thread memungkinkan beberapa eksekusi berlangsung dalam lingkup proses yang sama.
2 Jenis Thread
- Lightweight Process
Merupakan thread yang mempunyai beberapa properti dari sebuah proses.
- Multithreading
Merupakan kemampuan sistem operasi dalam mengeksekusi banyak thread yang berasal dari sebuah proses Thread Model:

Keuntungan dari penerapan Thread
- Pembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru.
- Penelitian menunjukkan pembentukan thread 10 kali lebih cepat daripada pembentukan proses.
- Terminasi suatu thread jauh lebih cepat daripada terminasi proses.
- Perpindahan eksekusi antar thread jauh lebih cepat.
- Antar thread dapat berkomunikasi tanpa melibatkan kernel.
- Sebagai efek dari penggunaan share memori dan file.
Kapan Menggunakan Thread
- Thread cocok digunakan untuk program yang melakukan task secara bersamaan atau memiliki sejumlah task yang dapat diselesaikan secara paralel untuk menghasilkan hasil.
- Saat membuat program menggunakan thread. kita harus mengatur program tersebut agar berbagai task tersebut dapat dijalankan secara bersamaan.
Contoh : Masalah grafis komputer (ray tracing), manipulasi matriks.