Konsep Dasar dan Definisi Proses
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.
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.
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/ mengeksekus
Keadaan proses sumber
Process Control Block
Tiap proses digambarkan
dalam sistem operasi oleh sebuah process control block (PCB) - juga
disebut sebuah control block.
PCB berisikan banyak bagian
dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk
ini:
·
Keadaan proses: Keadaan mungkin, new, ready,
running, waiting, halted, dan juga banyak lagi.
·
Program counter: Counter
mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses
ini.
·
CPU register: Register bervariasi dalam jumlah
dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk
accumulator, index register, stack pointer, general-puposes register, ditambah
code information pada kondisi apa pun. Besertaan dengan program counter,
keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk
memungkinkan proses tersebut berjalan/ bekerja dengan benar
·
Informasi managemen 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 riil yang digunakan, batas waktu, jumlah akun, 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 open berkas
dan banyak lagi.
·
PCB hanya berfungsi sebagai tempat menyimpan/
gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.
Threads
Model
proses yang didiskusikan sejauh ini telah menunjukkan bahwa suatu proses adalah
sebuah program yang menjalankan eksekusi thread tunggal. Sebagai contoh, jika
sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread
tunggal dari instruksi-instruksi yang sedang dilaksanakan.
Kontrol thread tunggal ini
hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak
sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan
sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara
terus menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam
proses yang sama. Maka sistem operasi tersebut memungkinkan proses untuk
menjalankan lebih dari satu tugas pada satu waktu. Pada bagian berjudul Thread
akan dibahas proses multithreaded
Thread yaitu
kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena
thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya
thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun
penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita
pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking,
networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
1. Membuat subclass dari thread
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
1. Membuat subclass dari thread
Untuk menjalankan thread,
dapat dilakukan dengan start(). Saat start() dijalankan, maka sebenarnya
method dijalankan. Jadi untuk membuat thread, harus
mendefinisikan pada definisi class. Konstruktor dari cara ini adalah :
ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
New ClassThread().start();
ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
New ClassThread().start();
2. Mengimplementasikan
interface Runnable
Cara ini merupakan cara yang
paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu
kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan
fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan
instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :
ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());
ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());
Sumber :
mantap sih ini min, makaish banyak sudah share
BalasHapussolder uap