Proses dan Thread dalam OS
Proses adalah program sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya (MDGR2006). Perbedaan antara program dengan proses adalah program merupakan entitas yang pasif, yaitu suatu file yang berisi kumpulan instruksi-instruksi yang disimpan di dalam disk (file executable), sedangkan proses merupakan entitas yang aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi. Sedangkan SO sebagai Manager Proses.
Status Proses
Proses yang dieksekusi mempunyai lima status yang terdiri dari:
- new : Pembentukan suatu proses
- running : Instruksi-instruksi yang sedang dieksekusi
- waiting : Proses menunggu untuk beberapa event yang terjadi
- ready : Proses menunggu untuk dialirkan ke pemroses (processor)
- terminated : Proses telah selesai dieksekusi.
Proses : model, kreasi, terminasi, hierarchies, states dan implementasi
Thread : model, penggunaan, implementasi, scheduler activation, pop-up
KONSEP PROSES
- Definisi Proses menurut Stalling adalah meliputi hal-hal berikut:
- Suatu program yang sedang dieksekusi
- Instansiasi suatu program yang berjalan pada komputer
- Entitas yang diassign ke prosesor dan dieksekusi oleh prosesor
- Unit aktifitas yang dicirikan oleh pengksekusian sederatan instruksi pada state yang sama dan berkaitan dg resource sistem.
Tanggung jawab Sistem operasi terhadap aktifitas yang berhubungan dengan manager proses:
- Pembuatan dan penghapusan proses
- Penundaan dan pelanjutan proses
- Penyedia mekanisme untuk Sinkronisasi antar proses
- Penyedia mekanisme Komunikasi antar proses
- Penyedia mekanisme Penanganan Deadlock
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 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 main program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda walaupun bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja. Dalam komputer modern, banyak proses yang dapat dilakukan dalam satu waktu (Proses Paralel) Contoh ketika kita sedang mengetik kata dg MS-Word, Proses-proses yang terjadi (proses paralel) meliputi:
- Komputer terus-menerus menampilkan kata yg kita tulis di monitor.
- Komputer terus-menerus memeriksa spelling/bahasa
- Komputer terus-menerus menampilkan info ttg page, word number dll
Kasus yang berbeda terjadi untuk multiple-programming, dimana program/proses akan berpindah-pindah dari suatu program/proses ke program/proses lainnya. Atau untuk multiprocessor, dimana suatu proses yang dikerjakan beberapa prosesor dengan menggunakan satu memori yang bisa dishare. Kasus kedua adalah contoh untuk Proses Serial .
THREAD
Proses memiliki 2 karakteristik:
- Resource Ownership dari waktu ke waktu suatu proses dialokasikan memiliki resource2 spt main memory, I/O device dan File. SO membentuk fungsi khusus utk melindungi hal ini thd interfensi luar Schedulling/execution eksekusi dari proses melalui program.
- Thread: Bagian proses memiliki karakteristik execution, disebut juga proses ringan (lightweight).
Konsep Dasar
1. Thread memiliki :
- ID : identitas unik suatu thread
- Program counter yang menjaga track dg instruksi-instruksi berikutnya.
- Register yang mengendalikan variable2 yg sedang bekerja
- Stack berisi history dari eksekusi-eksekusi yg telah dilakukan
Konsep MULTI THREADING
Didefinisikan sebagai.beberapa thread yang berada dalam satu proses
Multithread bekerja dengan prinsip yang mirip dg multiprogramming, tetapi berbeda dlm hal independensinya. Dalam multiprogramming, sistem memberi ilusi beberapa proses bekerja secara serial terlihat seperti paralel.
Beberapa state dalam Thread (stall 165)
- Spawn/new : ketika sebuah proses baru dibentuk, maka thread baru yg terkait dg proses tsb juga dibentuk.
- Block : terjadi ketika thread menunggu suatu event, CPU mungkin menjalankan thread lainya(ready) dlm proses yg sama/berbeda. semua info disimpan dlm user register, program pointer, stack
- Unblock/ready : bila thread tdk di blok
- Finish : stack selesai dijalankan, isi register dan stack (dealokasi)
referensi :
- http://www.igi-global.com/book/distributed-artificial.html
- http://www.akademik.unsri.ac.id/download/journal/files/gdr/Pendahuluan%20SisTer.pptwww.akademik.unsri.ac.id/download/.../Pendahuluan%20SisTer.ppt
- http://www.g-excess.com
Tidak ada komentar:
Posting Komentar