3.1 Thread
Thread adalah
sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya
memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
Perbedaan antara proses dengan thread tunggal
dan proses dengan thread yang banyak adalah proses dengan thread 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
2.
Berbagi
sumber daya
3.
Ekonomi
4.
Utilisasi
arsitektur multiprocessor
·
Multithreading
Models
Beberapa terminologi yang akan dibahas:
a.
Thread pengguna: Thread yang
pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna.
b.
Thread Kernel: . Thread yang
didukung langsung oleh kernel.
Model-model Multithreading:
a.
Model Many-to-One.
Model ini memetakan beberapa thread
tingkatan pengguna ke sebuah thread.
b.
Model One-to-One.
Model ini memetakan setiap thread
tingkatan pengguna ke setiap thread.
c.
Model Many-to-Many.
Model ini memultipleks banyak thread
tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama
dengan tingkatan pengguna.
·
Pustaka Thread
Pustaka Thread atau yang lebih familiar dikenal
dengan Thread Library bertugas untuk menyediakan API untuk programmer
dalam menciptakan dan memanage thread. Ada dua cara dalam
mengimplementasikan pustaka thread:
a.
Menyediakan
API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi
tidak melalui system call.
b.
Menyediakan
API di level kernel yang didukung secara langsung oleh sistem operasi.
Pembatalan
Thread (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:
- Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
- Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.
Penjadwalan
Thread
Begitu dibuat, thread baru
dapat dijalankan dengan berbagai macam penjadwalan.
Untuk menjadwalkan thread, sistem
dengan model mulithreading many to many atau many to one menggunakan:
- Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.
- System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread , kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).
Pengertian
Client Server
Client Server
adalah pada sistem client/server harus terdapat satu atau beberapa server
yang menyediakan layanan dan satu atau beberapa klien yang
meminta layanan tersebut (tidak perduli apakah kondisi tersebut berada
pada sebuah sistem jaringan ataupun stand-alone).
Server adalah
komputer yang dapat memberikan service ke client, sedangkan
client adalah komputer yang mengakses beberapa service yang ada di
server .
Socket adalah
sebuah endpoint untuk komunikasi didalam jaringan.. Socket dibuat
dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara
umum socket digunakan dalam client/server system, dimana sebuah server
akan menunggu client pada port tertentu.
Model
Client-Server
Ada beberapa model client/server yang penting
untuk diketahui.
a. Arsitektur
Mainframe
Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan.
b. b. Arsitektur File Sharing
c. Arsitektur Client/ServerPada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna.
d. Model Two-tierKarena keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server.
Model
Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client
(yang meminta service) dan server (yang menyediakan
service). Tiga komponen tersebut yaitu :
- User Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user.
- Manajemen proses
- Database
Model
ini memisahkan peranan user interface dan database dengan jelas, sehingga
terbentuk dua lapisan.
e. Model Three-tier
Middle-Tier terdiri dari bussiness logic
dan rules yang menjembatani query user dan database, sehingga program aplikasi
tidak bisa mengquery langsung ke database server, tetapi harus memanggil
prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier. Ada berbagai
macam software yang dapat digunakan sebagai server middle-tier. Contohnya MTS
(Microsoft Transaction Server) dan MIDAS.
3.3. Agent
Software Agent adalah entitas
perangkat lunak yang didedikasikan untuk tujuan
Klasifikasi
Software Agent
1. Klasifikasi menurut Karakteristik yang
Dimiliki
Menurut
Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.
a. Collaborative
Agent: Agent yang
memiliki kemampuan melakukan kolaborasi dan koordinasi antar
agent dalam kerangka Multi Agent System (MAS).
b. Interface
Agent:
Agent yang memiliki kemampuan untuk berkolaborasi dengan
user, melakukan fungsi monitoring dan learning untuk memenuhi
kebutuhan user.
c. Mobile
Agent:
Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke
tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut,
dalam lingkungan jaringan komputer.
d. Information
dan Internet Agent: Agent yang
memiliki kemampuan untuk menjelajah internet untuk melakukan
pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri.
Atau dengan kata lain, memanage informasi yang ada di dalam jaringan Internet.
e. Reactive
Agent:
Agent yang memiliki kemampuan untuk bisa cepat beradaptasi
dengan lingkungan baru dimana dia berada.
f. Hybrid
Agent:
Kita sudah mempunyai lima klasifikasi agent. Kemudian
agent yang memiliki katakteristik yang merupakan gabungan
dari karakteristik yang sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid
agent.
g. Heterogeneous
Agent System: Dalam lingkungan
Multi Agent System (MAS), apabila terdapat
dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan
karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous
agent system.
Desktop Agent: Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS). Termasuk dalam klasifikasi ini adalah:3 Internet Agent: Agent yang hidup dan bertugas dalam lingkungan jaringan Internet, melakukan tugas memanage informasi yang ada di Internet. Termasuk dalam klasifikasi ini adalah: Web Search Agent, Web Server Agent, Information Filtering Agent,Information Retrieval Agent, Notification Agent, ervice Agent ,dan Mobile Agent.
• Operating System Agent• Application Agent• Application Suite Agent
4 Intranet Agent: Agent yang hidup dan bertugas dalam lingkungan jaringan Intranet, melakukan tugas memanage informasi yang ada di Intranet. Termasuk dalam klasifikasi ini adalah: Collaborative, Customization Agent, Process Automation Agent, Database Agent dan Resource Brokering Agent.
Bahasa
Pemrograman yang digunakan
Beberapa peneliti memberikan
petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya di
pakai [Knabe, 1995] [Brenner et al., 1998]. Diantaranya yaitu :
1.
Object-Orientedness:
Karena agent adalah berhubungan
dengan obyek, bahkan beberapa peneliti menganggap agent adalah obyek yang
aktif, maka juga agent harus diimplementasikan kedalam pemrorgaman yang
berorientasi obyek (object-oriented programming language).
2.
Platform Independence:
Seperti sudah dibahas pada bagian
sebelumnya, bahwa agent hidup dan berjalan diberbagai lingkungan. Sehingga
idealnya bahasa pemrograman yang dipakai untuk implementasi adalah yang
terlepas dari platform, atau dengan kata lain program tersebut harus bisa
dijalankan di platform apapun (platform independence).
3.
Communication Capability:
Pada saat berinteraksi dengan agent
lain dalam suatu lingkungan jaringan (network environment), diperlukan
kemampuan untuk melakukan komunikasi secara fisik. Sehingga diperlukan bahasa
pemrograman yang dapat mensupport pemrograman yang berbasis network dan
komunikasi.
4.
Security:
Faktor keamanan (security) adalah
factor yang sangat penting dalam memilih bahasa pemrorgaman untuk implementasi
software agent.
Code
Manipulation:
Beberapa aplikasi software agent
memerlukan manipulasi kode program secara runtime, sehingga diperlikan bahasa
pemrograman untuk software agent yang dapat menangani masalah runtime tersebut.
Dari karakteristik di atas dapat
disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan
software agent adalah Java dan Telescript, Tcl/Tk, Safe-Tcl, Agent-Tcl .
Referensi:
1.
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11.html#c31101
2. http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2002/riene101/produk/Materi/T
hreads.html
3. Rofiq
Siregar, Definisi Client/Server, http://rofiqsiregar.wordpress.com/2007/05/09/defenisi-clientserver/
4.
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s05.html
5. Rofiq
Siregar, Model Client/Server, http://rofiqsiregar.wordpress.com/2007/05/29/model-clientserver/
6. Ayu
Anggriani dkk., Tugas Kuliah Pengantar Sistem Terdistribusi, 2008.
7.
Romi Satria Wahono,
Pengantar Software Agent: Teori dan Aplikasi, http://ilmukomputer.com/2006/08/21/pengantar-software-agent/
Tidak ada komentar:
Posting Komentar