- Threadadalah sebuah alur kontrol dari sebuah proses. kontrol thread tunggal ini banyak memungkinkan proses untuk menjalankan satutugas pada satu waktu. banyak SO moderen yang telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan di dalam proses yang sama , maka SO tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.Keuntungan dari multithreaded yaitu peningkatan respondari pengguna, pembagian sumber daya proses, ekonomisdan kemampuan untuk mengambil keuntungan dari arsitektur multiprosessor. threadd merupakan unit dasar dari penggunaan CPU , yang terdiri dari thread_ID, program counter, register set dan stack, sebuah tread berbagi code section, data section dan sumber daaya SO dengan thread lain yang dimiliki oleh proses yang sama heavyweight process mempunyai thread tungga yang berfungsi sebagai pengen daliPerbedaan antara thread dan multithreadd seperti pada gambar dibawah ini :banyak perangkat lunak sekarang dirancang dengan multithreadding , biasanya di bagi menjadi beberapa thread yang berfungsin untuk pengendali contoh sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari networkKeuntungan Threadkeuntungan dari program yang multithreadding dapat di pisah menjadi 4 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.4.Utilisasi Arsitektur Multiprocessor , Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbedaMultithreading Modelbeberapa terminologi yang akan di bahas :1. THread penguna , pengaturan di lakukan oleh pustaka thread pada tingkatan pengguna karna pustaka menyediakan fasilitas untuk pembuatan dan penjadwalan thread , thread pengguna cepat dibuat dan dikendalikan2.Thread karnel , didukung langsung oleh karnel, pembuatan penjadwalan dan manajemen thread dilakukan oleh karnel pada karnel space karena dilakukan oleh SO , pembuatannya akan lebih lambat dari thread pengguna.Model Model Multithreadding1. Model Many to One , 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.2. Model one to one , Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia 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.3. Mode 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 multiprosessorPustaka Threadataujuga thread library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread ada 2 cara mengimplementasikan nya sbb :1. Menyediakan API dalam level pengguna tanpa dukungan dari karnel sehinga pemangilan fungsi tidak melalui system call2. menyediakan API di level karnel yang didukung secara langsung oleh SO, pemangilan fungsi call akan melibatkan system call ke karnalada 3 pustaka thread saat ini yaitu POSIX , JAva, dan win32Pembatalan thread ( thread cancellation )ialah pembatalan thread sebelum tugasnya selesai jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dibatalkan terlebih dahulu.Pemberhentian target thread dapat di lakukan dengan 2 cara sbb :1. Asynchronous cancellation , suatu thread seketika itu juga membatalkan target thread2. Deferrend cancellation , suatu thread secara periodik memeriksa apakah harus dibatalkan cara ini memperoleh target thread untuk membatalkan dirinya secara tururut.
Hal yang sulit dari pembatalan thread adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan di batalkan , selain itu ketika thread yang dibatalkan sedang mengupdate data yang ia bagi dengan thread lain. ini akan jadi maslah yang sulit apabila digunakan asynchronous cancellation. Alternatif nya dengan menggunakan defferend cancelalation , cara kerja nya dengan menggunakan satu thread yang berfungsi sebagai pengindiasi bahwa target thread hendak dibatalkan, tapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal pada waktu dimana. Pthread merujuk sebagai cancellation points. Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation
Penjadwalan thread
Thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.
sistem model mulithtreadding many to many atau many to one menggunekan
1. Process countetion scope (PCS) , menjadwalkan thread pengguna untuk berjalan pda LWP ( light weight process ) yang tersedia
2.System contention scope ( SCS) berfungsi memilih satu dari banyak thread, kemudian di jadwalkan ke satu tread tertentu. - Client Server
client server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi kedalam dua pihak client dan server. client server harus terdapat satu atau beberapa server yang menyediakan layanan dan satu atau beberapa client yang meminta layanan tersebut.Server bisa juga berupa proses, seperti RPC Server yang terdapat pada sistem operasi server seperti Novell, Windows NT, Linux dll. Lebih dalam lagi, pada kernel (inti) sebuah sistem operasi juga banyak terdapat proses-proses yang bertanggung- jawab menyediakan layanan-layanan agar hardware komputer dapat bekerja sebagai mana mestiya. Microsoft menamakan proses tersebut services sedangkan keluarga Unix/Linux menyebutnya daemons. Services/daemons tersebut umumnya menyediakan manajemen memory, akses file/jaringan, serta penjadwalan (scheduling).
Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server. Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.
Karakteristik server yaitu pasif, mengunggu request , menerima request dan memperoses mereka dan mengirimkan balasan berupa service. sedangkan client yaitu aktif , mengirim request , dan mengunggu 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. 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 bebrapa model yang penting di ketahui ialah sebagai berikut
1. Arsitektur mainframe , arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan. Melalui komputer terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya memiliki monitor/keyboard dan tidak memiliki CPU. Semua sumber daya yang diperlukan terminal dilayani oleh komputer host
2. Arsitektur File Sharing , komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing memiliki keterbatasan, terutama jika jumlah pengakses semakin banyak serta ukuran file yang di shaing sangat besar
3. Arsitektur CLient Server , keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server. Dikenalkan pula RDBMS (Relational Database Management System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut
4. Model Two tier
model ini 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
Pada gambar tersebut, user interface yang merupakan bagian dari program aplikasi melayani input dari user. Input tersebut diproses oleh Manajemen Proses dan melakukan query data ke database (dalam bentuk perintah SQL). Pada database server juga bisa memiliki Manajemen Proses untuk melayani query tersebut, biasanya ditulis ke dalam bentuk Stored Procedure
5. Model Three Tier , Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier. Tier tersebut dinamakan middle-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. Dengan adanya server middle-tier ini, beban database server berkurang. Jika query semakin banyak dan/atau jumlah pengguna bertambah, maka server-server ini dapat ditambah, tanpa merubah struktur yang sudah ada
- 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. Agent bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent
karakteristik dari Agent :
1. Autonomy
2. Intelligence , Reasoning , dan learning
3. Mobility dan stationary
4. Delagation
5. Reactivity
6. Proactivity dan Gold Oriented
7. COmunication and coordination capability
Klasifikasi software agent
1. Klasifikasi menurut karakter yang dimiliki
menurut Nwana agent bisa di klasifikasikan menjadi 7 berdasarkan karakterisitiknya
- Collaborative agent , Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System
- Interface Agent , Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user
- 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
- Information dan internet Agent , Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri
- Reactive agent , Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada
- Hybrod Agent adalah gabungan dari 5 karakteristik yang sebelumnya
- Heterogeneous Agent System , Dalam lingkungan (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 di jalankan
a. Desktop Agent , Agen yang bertugas dalam lingkungan personal computer dan berjalan diatas suatu OS termasuk dalam klasifikasi ini adalah
- Operating system Agent
- Application Agent
- Application Suite Agent
b. Internet Agent , Agent yang bertugas dalam lungkungan jaringan internet , melakukan tugas memanage informasi yang ada di internet termasuk dalam kalsifikasi ini adlah :
- Web search agent
- web server agent
- information filtering agent
- information retrieval agent
- notification agent
- service agent
- mobile agent
c.Intranet Agent , agent yang bertugas dalam lingkungan jaringan intranet melakukan tugas memanange informasi yang ada di intranet termasuk dalam klasifikasi ini adlaalah
- collaborative customization agent
- process automation agent
- database agent
- resource brokering agent
Bahasa Pemograman yang di gunakan
Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan diantaranya yaitu :
- Object Orientedness , pemrograman berorientasi objek
- Platfrom independence , pemrograman yang dipakai untuk implementasi adalah yang terlepas dari platform atau dengan kata lain program tersebut harusbisa dijalankan di platform apapun
- comunication capability , pemograman yang dapat mensupport pemrograman yang berbasi network dan komunikasi
- security ,
- code manipulation , pomograman yang mensupport level level keamanan yang bisa membuat agent bergerak dengan aman
- code manipulation , pemograman yang layak untuk mengimplementasikan agent adalah sebagai berikut : Java , Telescript , Tcl/Tk, Safe-Tcl, Agent-Tcl
Rabu, 14 Oktober 2015
Proses
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar