Selasa, 17 April 2012

Konsep dasar Name Service

Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama.

Pengaksesan resource pada sistem terdistribusi yang memerlukan:
- Nama resource (untuk pemanggilan),
- Alamat (lokasi resource tsb),
- Rute (bagaimana mencapai lokasi tsb).

Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan Komputer. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.

Contoh penamaan pada aplikasi sistem terdistribusi:
– URL untuk mengakses suatu halaman web.
– Alamat e-mail utk komunikasi antar pemakai.

Name Resolution, Binding, Attributes
– Name resolution: Nama ditranslasikan ke data ttg resource/object tsb.
– Binding: Asosiasi antara nama & obyek, dan biasanya nama diikat (bound) ke attributes dr suatu obyek.
– Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi.
─ Attribute: nilai suatu object property.

Tujuan atau manfaat penamaan antara lain adalah:
• Identifikasi:
Seorang pemakai menginginkan obyek/layanan A, bukan obyek/layanan B.
• Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai (tidak harus nama yang sama).
• Memungkinkan location independence:
Perubahan lokasi tidak menuntut perubahan nama, asalkan lokasi tidak menjadi bagian dari nama resource tsb.
• Memberikan kemampuan keamanan (security)
- Jika sebuah nama dipilih secara acak dari himpunan besar interger, maka nama tsb hanya bisa diketahui dari legitimate source, bukan dari menebak.
- Jadi jika seseorang mengetahui nama obyek tsb, maka dia memang diberitahu, karena sulit sekali menebak nama tsb.

Jenis nama
User names:
• Dibuat oleh pemakai (user).
• Merujuk pada suatu obyek atau layanan.
• Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
System names:
- Terdiri dari bit string.
- Internal untuk sistem, tidak ditujukan untuk manusia.
- Lebih compact dari user names, shg dapat dibandingkan dengan lebih efisien.
• Pure name : nama yang tidak perlu di terjemahkan, karena pada nama tersebut sudah menunjuk alamat objek langsung.
– Contoh : IP
• non-pure name : dalam nama mengandung suatu informasi (atribut misalnya) tentang
suatu objek.
– Contoh : URL, alamat email, X.500 Directory Service, IOR (Interoperability Object
Reference).

Kebutuhan terhadap name service
• penamaan unik yang standard
• scalability
• Consistency
• performance dan availability
• mudah menyesuaikan terhadap perubahan perlindungan kegagalan

Struktur nama
Primitive/‡at names (Unique Identi…ers = UIDs)
a. Tanpa struktur internal, hanya string of bits.
b. Digunakan utk perbandingan dengan UID lain.
c. Tidak membawa informasi lain -> pure names.
d. Sangat berguna & banyak digunakan karena:
• Location & application independent, shg tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan, di-pass, & jika cukup besar menjadi sulit ditebak.
a) Partitioned Names (PN)
- Komposisi dari beberapa nama primitif, biasanya disusun secara hirarkis. Contoh:
www.gunadarma.ac.id/cs/docs/akademik/SisDis/naming.ppt.
- Membawa informasi -> impure names.
- Biasanya tidak secara unik mengidenti…kasikan obyek, beberapa nama bisa
dipetakan ke satu obyek (e.g. UNIX file links).
b) Descriptive names (DN)
- Daftar atribut yang secara bersama-sama mengidentifikasikan obyek secara unik.
- Membawa informasi -> impure names.
- DN adalah superset dari PN.

Tujuan fasilitas Penamaan
a. Efisien, karena fasilitas penamaan merupakan dasar pada sisdis & digunakan secara terus menerus.
b. Terdistribusi. Renungkan jika UIDs dibangkitkan oleh centralized generator.
• Bottleneck.
• Node tempat generator tsb mengalami kegagalan.
c. Tampak seperti global space, tidak tergantung konekti…tas, topologi, dan lokasi obyek.
d. Mendukung pemetaan 1:many antara nama & obyek, untuk memungkinkan multicast.
e. Mendukung dynamic relocation of objects, jika obyek/proses potensial untuk mobile
(berpindah-pindah). Jadi diperlukan dynamic binding antara nama & alamat, juga antara alamat & rute.
f. Memungkinkan local aliases, shg pemakai dapat mengekspresikan interpretasi
semantik mereka thdp suatu obyek. Tentu saja diperlukan pemetaan antara aliases dan
full names.


Source:
- http://sisterfrisca.blogspot.com/
- http://teg849.wordpress.com/2011/04/27/name-service/
- http://blogerahman.staff.unisbank.ac.id/files/2011/07/Sist-Terdistribusi-Anton-Pres10.pdf

Selasa, 10 April 2012

Proses & Thread Dalam Sistem Operasi

Proses

Proses adalah konsep pokok dari sistem operasi. Berbagai macam defnisi mengenai proses telah dicetuskan. Secara sederhana, proses adalah sebuah program yang dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses sesuai kebutuhan.


Konsep dasar

Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor's register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.

Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.

* Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
a. New : proses baru diciptakan
b. Running : proses sedang dijalankan
c. Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
d. Ready : proses menunggu untuk dilayani processor
e. terminated : proses telah menyelesaikan eksekusi.


Diagram status proses

* Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :

1. Process State >> berisi informasi status proses. (new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory management information >> berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan dalam proses
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.


Diagram PCB


Thread

Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.

Konsep dasar

Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread.

Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

Program yang dieksekusi :
a.Proses berat (heavyweight) => proses tradisional
b.Proses ringan (lightweight) => THREAD

Thread terdiri dari ID thread, program counter,himpunan register dan stack. Thread dapat melakukan lebih dari satu
pekerjaan pada waktu yang sama (multithreading). Thread bekerja sama dengan thread lain dalam penggunaan bagian kode, bagian data, dan resource. Dengan penggunaan thread CPU dapat secara ekstensif di antara peer thread tanpa menggunakan manajemen memori.

Keuntungan penggunaan thread :
>Tanggap
>Pemberdayaan resorce
>Ekonomis
>Pemberdayaan arsitektur multiprocessor

- Single thread dan multi thread

1.Single thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.

- Model Multithread
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread.
User thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak dapat menginterupsi.

Model-model multithreading :

1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread

2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000

3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2


http://ekohandoyo.blog.undip.ac.id/2009/12/08/proses-dan-thread/

http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/i2.html

http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/i25.html

Selasa, 03 April 2012

Software, Teknologi dan Bahasa Komunikasi Agent

Software

Software adalah perintah (program komputer) yang dieksekusi memberikan fungsi dan petunjuk kerja seperti yang diinginkan. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional dan dokumen yang menggambarkan operasi dan kegunaan program.

Software memiliki dua peran, disatu sisi berfungsi sebagai sebuah produk dan disisi lain sebagai pengontrol pembuatan sebuah produk. Sebagai produk, software mengantarkan potensi perhitungan yang dibangun oleh software komputer. Software merupakan transformer informasi yang memproduksi, mengatur, memperoleh, memodifikasi, menampilkan atau memancarkan informasi, ini dapat sesederhana bit tunggal atau sekompleks sebuah simulasi multimedia. Sedangkan peran sebagai pengontrol yang dipakai untuk mengantarkan produk, software berlaku sebagai dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan), dan penciptaan serta kontrol dari program-program lain (peranti dan lingkungan software).

Perangkat lunak komputer berfungsi untuk :

  1. Mengidentifikasi program
  2. Menyiapkan aplikasi program sehingga tata kerja seluruh perangkat komputer terkontrol.
  3. Mengatur dan membuat pekerjaan lebih efisien

Macam-macam Perangkat Lunak

  1. Sistem Operasi (Operating System),
  2. Program Aplikasi (Application Programs),
  3. Bahasa Pemrograman (Programming Language),
  4. Program Bantu (Utility)

Teknologi

Teknologi adalah metode ilmiah untuk mencapai tujuan praktis; ilmu pengetahuan terapan atau dapat pula diterjemahkan sebagai keseluruhan sarana untuk menyediakan barang-barang yg diperlukan bagi kelangsungan dan kenyamanan hidup manusia.

Ada tiga klasifikasi dasar dari kemajuan teknologi yaitu :

  • Kemajuan teknologi yang bersifat netral (bahasa Inggris: neutral technological progress)Terjadi bila tingkat pengeluaran (output) lebih tinggi dicapai dengan kuantitas dan kombinasi faktor-faktor pemasukan (input) yang sama.

  • Kemajuan teknologi yang hemat tenaga kerja (bahasa Inggris: labor-saving technological progress)Kemajuan teknologi yang terjadi sejak akhir abad kesembilan belas banyak ditandai oleh meningkatnya secara cepat teknologi yang hemat tenaga kerja dalam memproduksi sesuatu mulai dari kacang-kacangan sampai sepeda hingga jembatan.

  • Kemajuan teknologi yang hemat modal (bahasa Inggris: capital-saving technological progress) Fenomena yang relatif langka. Hal ini terutama disebabkan karena hampir semua riset teknologi dan ilmu pengetahuan di dunia dilakukan di negara-negara maju, yang lebih ditujukan untuk menghemat tenaga kerja, bukan modalnya.

Bahasa Komunikasi Agent

Menurut Nwana [Nwana, 1996], konsep agent sudah dikenal lama dalam bidang AI, tepatnya dikenalkan oleh seorang peneliti bernama Carl Hewitt [Hewitt, 1977] dengan concurrent actor model-nya pada tahun 1977. Dalam modelnya Hewitt mengemukakan teori tentang suatu obyek yang yang dia sebut actor, yang mempunyai karakteristik menguasai dirinya sendiri, interaktif, dan bisa merespon pesan yang dating dari lain obyek sejenis. Dari berbagai penelitian berhubungan dengan hal diatas, kemudian lahirlah cabang ilmu besar yang merupakan turunan dari AI yaitu Distributed Artificial Intelligence (DAI), yang antara lain membawahi bidang penelitian, Distributed Problem Solving (DPS), Parallel Artificial Intelligence (PAI), dan Multi Agent System (MAS).

Masa ini terkenal dengan masa generasi pertama penelitian software agent, yaitu periode 1970-1990. Pada umumnya konsentrasi penelitian pada periode ini tertuju ke arah: pemodelan internal agent secara simbolik, isu-isu makro mengenai interaksi, koordinasi, dan komunikasi antar agent dalam kerangka MAS. Tujuan utamanya adalah untuk menganalisa, mendesain, dan mengintegrasikan system dalam kerangka agent yang bias berkolaborasi satu dengan yang lain. Berbagai macam penelitian yang dilakukan pada generasi pertama (1970-1990) itu terangkum secara lengkap dan terorganisir dengan baik dalam buku-buku yang dieditori oleh Bond dan Gasser [Bond et. al., 1988], Gasser dan Huns [Gasser et. al., 1989], dan Chaib-draa [Chaib-draa et. al., 1992]. Kemudian masa generasi kedua dari penelitian agent adalah periode tahun 1990 sampai saat ini. Konsentrasi penelitian pada periode ini khususnya adalah pada: pengembangan dan penelitian teori agent (agent theory), arsitektur agent (agent architecture) dan bahasa pemrograman yang digunakan (agent language). Terangkum dengan baik dalam buku-buku dan makalah-makalah oleh Wooldridge dan Jennings [Woolridge et. al., 1994], [Woolridge et. al.,1995], dan [Woolridge et. al., 1996].

Karakteristik dan Atribut Software Agent

Untuk memperdalam pemahaman tentang software agent, fungsi, peran, dan perbedaan mendasar dikaitkan software program yang ada, berikut ini akan dijelaskan tentang beberapa atribute dan karakteristik yang dimiliki oleh software agent. Tentu tidak semua karakteristik dan atribut terangkum dalam satu agent (lihat bagian 4 tentang klasifikasi software agent). Pada hakekatnya daftar karakteristik dan atribut dibawah adalah merupakan hasil survei dari karakteristik yang dimiliki oleh agent-agent yang ada pada saat ini.

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 penting lagi yang mendukung autonomy adalah 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. Berkebalikan dari hal tersebut adalah stationary agent. Bagaimanapun juga 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.

http://www.ilmukomputer.org/wp-content/uploads/2006/08/romi-agent.zip

http://arydj.files.wordpress.com/2009/12/01-pengertian-teknologi.pdf

http://sofdis.blogspot.com/2012/04/software-teknologi-dan-bahasa.html