PROSES
Pembahasan
Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari 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 Thread
Dengan Proses
Ø Thread adalah
bagian dari suatu
proses
Ø Tiap proses mempunyai
informasi status dan sumber daya sendiri,
thread berbagi informasi status dan sumber
daya dengan thread
yang lain dalam
satu proses
Ø Tiap proses mempunyai alamat yang berbeda,
sedangkan thread berbagi
alamat yang sama
Ø Pergantian antar threads
lebih cepat daripada antar proses
Web server : sebuah web server dapat mempunyai
ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan
sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani satu klien pada pada satu satuan
waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai
dilayani. Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan
membuat thread yang akan mendengar permintaan klien,
ketika permintaan lain diajukan maka web server akan
menciptakan thread lain yang akan melayani permintaan tersebut.
Web
browser : sebuah web browser mempunyai
thread
untuk menampilkan gambar atau tulisan
sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Ø Thread adalah
bagian dari suatu
proses
Ø Tiap proses mempunyai
informasi status dan sumber daya sendiri,
thread berbagi informasi status dan sumber
daya dengan thread
yang lain dalam
satu proses
Ø Tiap proses mempunyai alamat yang berbeda,
sedangkan thread berbagi
alamat yang sama
Ø Pergantian antar threads lebih cepat daripada antar proses
Web server : sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.
Web browser : sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.Single & Multithread Proses
Keuntungan Thread
Keuntungan dari program yang multithreading dapat dipisah
menjadi empat kategori:
1. Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program
terus berjalan meski pun
sebagian dari program tersebut diblok
atau melakukan operasi yang panjang, karena itu
dapat meningkatkan respons kepada pengguna. Sebagai contohnya
dalam web browser yang
multithreading, sebuah thread dapat melayani
permintaan pengguna
sementara thread lain berusaha
menampilkan image.
2. Berbagi
sumber daya: thread berbagi memori dan sumber
daya dengan thread lain yang dimiliki
oleh proses yang sama. Keuntungan
dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai
beberapa thread yang berbeda dalam lokasi
memori yang sama
3.
Ekonomi : dalam
pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya
adalah dengan penggunaan thread, karena thread berbagi
memori dan sumber daya proses
yang memilikinya maka akan
lebih ekonomis untuk membuat dan
context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan
dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses
lebih lama 30 kali dibandingkan pembuatan thread, dan context
switch proses 5 kali lebih lama dibandingkan context switch thread.
4. Utilisasi arsitektur multiprocessor: Keuntungan dari multithreading
dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan
secara pararel di atas processor
yang berbeda. Pada arsitektur processor
tunggal, CPU menjalankan setiap thread secara
bergantian tetapi hal ini berlangsung sangat cepat
sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada
satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut
time slice atau
quantum).
Macam – macam Thread
Thread pengguna
: Thread yang pengaturannya dilakukan oleh pustaka thread pada
tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan
penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
Thread
Kernel : . Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh
kernel pada kernel space. Karena
dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.
Kernel adalah sebuah perangkat lunak yang membuat
komunikasi / mediator antara aplikasi
komputer dan perangkat keras, yang
menyediakan pelayanan sistem seperti pengaturan memori untuk proses-proses yang sedang berjalan, pengaturan file-file, input-output terhadap
dan dari suatu device dan masih banyak lagi fungsi tambahan yang lainnya. Intinya
adalah kernel merupakan suatu penghubung (antara
software dan hardware).
Model – Model Multithreading
Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor.
Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Thread Cancellation
Thread Cancellation ialah pembatalan thread
sebelum tugasnya selesai.
Umpamanya, jika dalam program Java hendak
mematikan Java Virtual Machine (JVM). Sebelum
JVM dimatikan, maka seluruh thread
yang berjalan harus dibatalkan terlebih dahulu. Contoh lain adalah di masalah search.
Apabila sebuah thread mencari sesuatu
dalam database dan menemukan serta mengembalikan hasilnya,
thread sisanya akan dibatalkan. Thread yang
akan diberhentikan biasa
disebut target thread.
Pemberhentian target Thread dapat
dilakukan dengan 2 cara:
1. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
2. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut





Komentar
Posting Komentar