BAB 3 PROSES

1.Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counterregister set, dan stack. Perbedaan thread tunggal dan thread yang banyak adalah thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Keuntungan Thread

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
2. Berbagi sumber daya: 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. karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switchthread.
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.

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. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space

Model-model Multithreading:
a. Model Many-to-One. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat.JadiMultiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads
b. Model One-to-One.Model in menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel.Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel.   
c. Model Many-to-Many. 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.

Pustaka Thread

    Pustaka Thread atau Thread Librarybertugas 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.
Pemberhentian target Thread dapat dilakukan dengan 2 cara:
a. Asynchronous cancellationSuatu thread seketika itu juga membatalkan target thread
b. Deferred cancellationSuatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.  

Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan dibatalkan.Selain itu kesulitan lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan thread lain. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang dibatalkan.
Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak dibatalkan.Tetapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal atau tidak. 

Penjadwalan Thread

Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan.
Untuk menjadwalkan thread, sistem dengan model mulithreadingmany to many atau many to one menggunakan: 
a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia. 
b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread , kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).  

2.Client – Server

Pengertian Client Server

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

1. Karakteristik Server
    a. Pasif
    b. Menunggu request
    c. Menerima request, memproses mereka dan mengirimkan balasan berupa service
2. Karakteristik Client
    a. Aktif
    b. Mengirim request
    c. Menunggu dan menerima balasan dari server
Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. 

Model Client-Server
a.Arsitektur Mainframeb.Arsitektur File Sharingc.Arsitektur Client/Serverd.Model Two-tiere.Model Three-tier

3.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. 

Karakteristik dari Agen
1. Autonomy: Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan (environment).
2. Intelligence, Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi (intelligence).
3. Mobility dan Stationary: Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi yang dia miliki yaitu mobilitas.
4. Delegation: Agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user.
5. Reactivity: Kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan.
6. Proactivity dan Goal-Oriented: Sifat proactivity boleh dibilang adalah kelanjutan dari sifat reactivity
7. Communication and Coordination Capability: Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain. 

Klasifikasi Software Agent
1.Klasifikasi menurut Karakteristik yang Dimiliki
Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya.
A. Collaborative AgentAgent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).
B. Interface AgentAgent 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 AgentAgent 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 AgentAgent 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

2.Klasifikasi menurut Lingkungan Dimana Dijalankan

a.       Desktop AgentAgent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS). Termasuk dalam klasifikasi ini adalah:
      Operating System Agent
      Application Agent
     Application Suite Agent
b.      Internet AgentAgent 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
      Service Agent
      Mobile Agent
c.       Intranet AgentAgent 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

      Resource Brokering Agent

Bahasa Pemrograman yang digunakan

1.  Object-Orientedness:
2.  Platform Independence:
3.  Communication Capability:
4.   Security:
5.  Code Manipulation:

Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai berikut : 
      Java 
      Telescript 
     Tcl/Tk, Safe-Tcl, Agent-Tcl