I. Thread
Thread adalah sebuah
alur kontrol dari sebuah proses. 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 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.
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.
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.
Client Server
Menurut Gallaugher &
Ramanathan (1996) : client/server adalah client mengirim permintaan
ke server, server menterjemahkan
pesan, kemudian berusaha memenuhi permintaan . Sedangkan
menurut Blaha & Premerlani
(1998) : client/server adalah suatu arsitektur dimana sumber daya
server menyediakan komputasi
untuk banyak komponen client. Client dapat mengakses satu server atau multiple
server. Client dan server bisa berjalan pada mesin yg sama atau berbeda,
ditulis dalam berbagai bahasa dan menggunakan sistem operasi yang berbeda.
Agent
Software Agent adalah entitas
perangkat lunak yang didedikasikan untuk tujuan tertentu yang
memungkinkan user untuk
mendelegasikan tugasnya secara mandiri, selanjutnya software agent
nantinya disebut agent saja. Agen
bisa memiliki ide sendiri mengenai bagaimana menyelesaikan
suatu pekerjaan tertentu atau
agenda tersendiri. Agen yang tidak berpindah ke host lain disebutstationary
agent.
Karakteristik
dari Agen:
1. Autonomy: Agent dapat
melakukan tugas secara mandiri dan tidak dipengaruhi secara
langsung oleh user, agent lain
ataupun oleh lingkungan (environment). Untuk mencapai
tujuan dalam melakukan tugasnya
secara mandiri, agent harus memiliki kemampuan kontrol
terhadap setiap aksi yang mereka
perbuat, baik aksi keluar maupun kedalam [Woolridge et.
al., 1995]. Dan satu hal yang
penting yaitu mendukung autonomy dan masalah intelegensi
(intelligence) dari agent.
2. Intelligence,
Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum
untuk bisa disebut agent, yaitu
intelegensi (intelligence). Dalam konsep intelligence, ada tiga
komponen yang harus dimiliki:
internal knowledge base, kemampuan reasoning berdasar
pada knowledge base yang
dimiliki, dan kemampuan learning untuk beradaptasi dalam
perubahan lingkungan.
3. Mobility dan
Stationary:
Khusus untuk mobile agent, dia harus memiliki kemampuan yang
merupakan karakteristik tertinggi
yang dia miliki yaitu mobilitas. Berbeda dengan stationary
agent. Tetapi
keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan
berkomunikasi dengan agent lain.
4. Delegation: Sesuai dengan
namanya dan seperti yang sudah kita bahas pada bagian definisi,
agent bergerak dalam kerangka
menjalankan tugas yang diperintahkan oleh user. Fenomena
pendelegasian (delegation)
ini adalah karakteristik utama suatu program disebut agent.
5. Reactivity: Karakteristik
agent yang lain adalah kemampuan untuk bisa cepat beradaptasi
dengan adanya perubahan informasi
yang ada dalam suatu lingkungan (enviornment).
Lingkungan itu bisa mencakup:
agent lain, user, informasi dari luar, dsb [Brenner et. al.,
1998].
6. Proactivity
dan Goal-Oriented:
Sifat proactivity boleh dibilang adalah kelanjutan dari sifat
reactivity. Agent tidak
hanya dituntut bisa beradaptasi terhadap perubahan lingkungan,
tetapi juga harus mengambil
inisiatif langkah penyelesaian apa yang harus diambil [Brenner
et. al., 1998]. Untuk itu agent
harus didesain memiliki tujuan (goal) yang jelas, dan selalu
berorientasi kepada tujuan yang
diembannya (goal-oriented).
7. Communication
and Coordination Capability: Agent harus memiliki kemampuan
berkomunikasi dengan user dan
juga agent lain. Masalah komunikasi dengan user adalah
masuk ke masalah user interface
dan perangkatnya, sedangkan masalah komunikasi,
koordinasi, dan kolaborasi dengan
agent lain adalah masalah sentral penelitian Multi Agent
System (MAS).
Tidak ada komentar:
Posting Komentar