Pages

Subscribe:

Ads 468x60px

Selasa, 02 April 2013

Proses dan Thread


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.
-Blocked
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
@ Suspendedready
Terjadinya suspen pada proses ready oleh proses lain dan transisi dari proses suspendedblocked
@ Suspendedblocked
Terjadinya transisi suspen setelah proses bloked