Proses & Thread Dalam Sistem Operasi

Definisi Proses

Proses merupakan program sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya [MDGR2006]. Perbedaan antara program dengan proses adalah program merupakan entitas yang pasif, yaitu suatu file yang berisi kumpulan instruksi-instruksi yang disimpan di dalam disk (file executable), sedangkan proses merupakan entitas yang aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi.

Status Proses

Proses yang dieksekusi mempunyai lima status yang terdiri dari:

a. new: Pembentukan suatu proses

b. running: Instruksi-instruksi yang sedang dieksekusi

c. waiting: Proses menunggu untuk beberapa event yang terjadi

d. ready: Proses menunggu untuk dialirkan ke pemroses (processor)

e. terminated: Proses telah selesai dieksekusi.


pst

Process Control Block (PCB)

Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB), juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:

Status proses: status yang mungkin adalah new, ready, running, waiting, halted, dan seterusnya.

Program counter: suatu penghitung yang mengindikasikan alamat dari instruksi selanjutnya yang akan dieksekusi untuk proses tersebut.


CPU register: Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur komputer. Register tersebut termasuk accumulator, index register, stack pointer,general-purposes register, ditambah informasi condition-code. Bersama dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar.

Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.

Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu nyata yang digunakan, batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi.

Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.

PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Thread
Program yang dieksekusi :
1.Proses berat (heavyweight) => proses tradisional
2.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 :
1.Tanggap
2.Pemberdayaan resorce
3.Ekonomis
4.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.

snmthread

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

many2one

2. One to one

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

one2one

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


Persoalan dalam Thread

System Calls fork() dan exec()

Terdapat dua kemungkinan dalam sistem UNIX jika fork dipanggil oleh salah satu thread dalam proses:

a. Semua thread diduplikasi.

b. Hanya thread yang memanggil fork.

Jika suatu thread memanggil System Call exec maka program yang dispesifikasi dalam parameter exec, akan mengganti keseluruhan proses termasuk thread. Penggunaan dua versi dari fork di atas tergantung dari aplikasi. Kalau exec dipanggil seketika sesudah fork, maka duplikasi seluruh thread tidak dibutuhkan, karena program yang dispesifikasi dalam parameter exec akan mengganti seluruh proses. Pada kasus ini cukup hanya mengganti thread yang memanggil fork. Tetapi jika proses yang terpisah tidak memanggil exec sesudah fork maka proses yang terpisah tersebut hendaknya menduplikasi seluruh thread.

Pembatalan Thread

Pembatalan thread merupakan penghentian tugas sebelum prosesnya selesai, sebagai contoh dalam web page, pemanggilan suatu gambar menggunakan beberapa thread. Jika penggambaran belum sempurna sedangkan user menekan tombol stop, maka seluruh penggambaran oleh tiap-tiap thread tersebut akan dibatalkan secara kesuluruhan. Pembatalan suatu thread dapat terjadi dalam dua skenario yang berbeda, yaitu:

a. Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.

b. Deferred cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara berurutan. Kejaidan yang sulit dari pembatalan suatu thread 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. Hal ini akan menjadi masalah yang sulit apabila menggunakanasynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan namun seringkali sistem operasi tidak mengambil kembali seluruh sumber daya dari thread tersebut. Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread akan dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread telah memeriksa apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus berhenti pada titik tersebut secara aman.

Penanganan Sinyal

Sinyal yang digunakan pada sistem UNIX untuk memberitahukan sebuah proses kalau suatu peristiwa telah terjadi. Sebuah sinyal dapat diterima secara synchronous atauasynchronous tergantung dari sumber dan alasan suatu event memberikan sinyal. Semua sinyal (asynchronous dan synchronous) mengikuti pola yang sama, yaitu:

a. Sebuah sinyal dimunculkan oleh kejadian dari suatu event.

b. Sinyal yang dimunculkan tersebut dikirim ke proses.

c. Sesudah dikirim, sinyal tersebut harus ditangani.

Contoh dari sinyal synchronous adalah ketika suatu proses melakukan pengaksesan memori secara ilegal atau pembagian dengan nol, sinyal dimunculkan dan dikirim ke proses yang melakukan operasi tersebut. Contoh dari sinyal asynchronous misalnya kita mengirimkan sinyal untuk mematikan proses dengan keyboard (CTRL+C) maka sinyal asynchronous dikirim ke proses tersebut. Setiap sinyal dapat ditangani oleh salah satu dari dua penanganan sinyal, yaitu:

1. Penanganan sinyal default.

2. Penanganan sinyal yang didefinisikan sendiri oleh user.

Penanganan sinyal pada program yang hanya memakai thread tunggal cukup mudah yaitu hanya dengan mengirimkan sinyal ke prosesnya. Tetapi mengirimkan sinyal lebih rumit pada program multithreading, karena sebuah proses dapat memiliki beberapa thread. Secara umum ada empat pilihan kemana sinyal harus dikirim, yaitu:

1. Mengirimkan sinyal ke thread yang dituju oleh sinyal tersebut.

2. Mengirimkan sinyal ke setiap thread pada proses tersebut.

3. Mengirimkan sinyal ke thread tertentu dalam proses.

4. Menugaskan thread khusus untuk menerima semua sinyal yang ditujukan pada proses.

Metode untuk mengirimkan sebuah sinyal tergantung dari jenis sinyal yang dimunculkan. Sebagai contoh sinyal synchronous perlu dikirimkan ke thread yang memunculkan sinyal tersebut bukan thread lain pada proses itu. Tetapi situasi dengan sinyal asynchronous menjadi tidak jelas. Beberapa sinyal asynchronous seperti sinyal yang berfungsi untuk mematikan proses (contoh: Alt-F4) harus dikirim ke semua thread. Beberapa versi UNIX yang multithreading mengizinkan thread menerima sinyal yang akan ia terima dan menolak sinyal yang akan ia tolak. Karena itu sinyal asynchronouns hanya dikirimkan ke thread yang tidak memblok sinyal tersebut. Solaris 2 mengimplementasikan pilihan ke-4 untuk menangani sinyal. Windows 2000 tidak menyediakan fasilitas untuk mendukung sinyal, sebagai gantinya Windows 2000 menggunakan asynchronous procedure calls (APCs).

Thread Pools

Dalam situasi web server multithreading ada dua masalah yang timbul, diantaranya adalah:

a. Ukuran waktu yang diperlukan untuk menciptakan thread dalam melayani permintaan yang diajukan akan berlebih. Pada kenyataannya thread dibuang ketika sudah menyelesaikan tugasnya.

b. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem. Solusinya adalah dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana thread tersebut menunggu untuk bekerja. Jadi ketika server menerima permintaan maka akan membangunkan thread dari pool dan jika thread tersebut tersedia, permintaan akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka thread tersebut kembali ke pool dan

menunggu pekerjaan lainnya. Bila tidak thread yang tersedia pada saat dibutuhkan, maka server menunggu sampai ada satu thread yang bebas.

Keuntungan menggunakan thread pool adalah:

• Umumnya lebih cepat dalam melayani permintaan thread yang sudah ada dibandingkan dengan menunggu thread baru yang sedang dibuat.

• Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara bersamaan.

Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang bersamaan. Thread yang dimiliki oleh suatu proses memang berbagi data tetapi setiap thread mungkin membutuhkan duplikat dari data tertentu untuk dirinya sendiri dalam keadaan tertentu. Data ini disebut thread-specific data.


Link 1

Read Users' Comments (0)

Software, Teknologi dan Bahasa Komunikasi Agent

Software

Software adalah kumpulan instruksi yang berfungsi untuk menjalankan suatu perintah, seperti memberikan informasi tentang hardware, menentukan fungsi hardware, dan menjalankan sistem.

Agar komputer dapat membaca, mengingat, membuat keputusan (membandingkan), menghitung, menyortir, dan menghasilkan keluaran berupa informasi dalam monitor atau
cetakan, komputer harus dapat membaca dan memasukkan program ke dalam memori utamanya. Program adalah instruksi dalam bahasa mesin atau yang dapat dibaca oleh komputer yang dirancang untuk tujuan tertentu sehingga kalau operator menjalankan komputer dan memijat tombol tertentu (misalnya untuk memroses data akuntansi) disebut
dengan program aplikasi (aplication program). Pengertian perangkat lunak menunjuk pada program dan alat bantu lain yang bersifat menambah kemampuan komputer sebagai alat untuk melaksanakan tugas atau operasi tertentu. Program aplikasi dapat dibuat secara khusus untuk memenuhi kebutuhan khusus pula (tailor-made) atau berupa paket yang mempunyai aplikasi umum.

Disebut juga dengan perangkat lunak, merupakan kumpulan beberapa perintah yang dieksekusi oleh mesin komputer dalam menjalankan pekerjaannya. perangkat lunak ini merupakan catatan bagi mesin komputer untuk menyimpan perintah, maupun dokumen serta arsip lainnya.

Merupakan data elektronik yang disimpan sedemikian rupa oleh komputer itu sendiri, data yang disimpan ini dapat berupa program atau instruksi yang akan dijalankan oleh perintah, maupun catatan-catatan yang diperlukan oleh komputer untuk menjalankan perintah yang dijalankannya. Untuk mencapai keinginannya tersebut dirancanglah suatu susunan logika, logika yang disusun ini diolah melalui perangkat lunak, yang disebut juga dengan program beserta data-data yang diolahnya. Pengeloahan pada software ini melibatkan beberapa hal, diantaranya adalah sistem operasi, program, dan data. Software ini mengatur sedemikian rupa sehingga logika yang ada dapat dimengerti oleh mesin komputer.

Jenis

Berdasarkan jenisnya, software dibagi menjadi 3 yaitu :

Firmware (BIOS)

Sistem Operasi (Windows, Linux, Mac OS, dll)

Software Aplikasi (Photoshop, WinAmp, WinZip, dll)

Propietary software

Propietary software adalah perangkat lunak yang tidak bebas atau semi bebas dan tidak terbuka. Pengguna dilarang atau minta ijin atau dikenakan pembatasan lainnya jika menggunakan, mengedarkan atau memodifikasinya. Source code normalnya tidak tersedia. Contoh dari propietary software adalah sistem operasi windows. Jenis software ini yang paling banyak dikenai razia oleh pihak yang berwajib.

Open source software

Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab.

Open source software seringkali rancu dengan free software, padahal ada sejumlah hal yang harus dipenuhi bila dianggap sebagai open source software, yaitu bebas didistribusikan tanpa adanya persyaratan royalty, program harus memiliki source code, lisensi harus bisa dimodifikasi dan diturunkan, integrity dari pembuat source code, lisensi tidak mendiskriminasi seseorang atau sekelompok orang, tidak ada diskriminasi melawan area pengembangan, hak cipta pada suatu program harus mampu diaplikasi dan didistribusi kembali oleh siapapun, lisensi tidak mengacu pada spesifikasi suatu produk, lisensi tidak membatasi tempat dimanasoftware tersebut didistribusikan, dan lisensi harus berisi teknologi yang netral.

Fungsi

Beberapa fungsi software antara lain :

mengatur Input atau Output (I/O) dari PC

menyediakan dan mengatur serta memerintahkan hardware agar dapat berjalan dengan baik

menjalankan perintah-perintah tertentu seperti menggambar, memutar musik atau film.

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.

Teknologi merupakan perkembangan suatu media / alat yang dapat digunakan dengan lebih efisien guna memproses serta mengendalikan suatu masalah.

Agent

Agent dapat didefinisikan sebagai:

A person or thing that acts or is capable of acting or is empowered to act, for another.

Disini ada dua penjelasan yang bisa kita ambil yaitu :

· Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan.

· Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.

Ditarik dari point-point diatas Caglayan [Caglayan et al., 1997] mendefinisikan software agent sebagai:

Suatu entitas software komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously).

Kemudian beberapa peneliti lain menambahkan satu point lagi, yaitu bahwa agent harus bisa berjalan dalam kerangka lingkungan jaringan (network environment) [Brenner et. al., 1998]. Definisi agent dari para peneliti lain pada hakekatnya adalah senada, meskipun ada yang menambahkan atribut dan karakteristik agent ke dalam definisinya. Secara lengkap definisi agent dan komparasinya, dirangkumnkan oleh Franklin dalam makalahnya [Franklin et. al., 1996].

Karakteristik dan Atribut Software Agent


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.

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, adanya informasi dari luar, dsb [Brenner et. al., 1998].

6. Proactivity dan Goal-Oriented: Sifat proactivity boleh dikata 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). Bagaimanapun juga untuk bisa berkoordinasi dengan agent lain dalam menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim Finin [Finin et al., 1993] [Finin et al., 1994] [Finin et al., 1995] [Finin et al., 1997] dan Yannis Labrou [Labrou et al., 1994] [Labrou et al., 1997] adalah peneliti software agent yang banyak berkecimpung dalam riset mengenai bahasa dan protokol komunikasi antar agent. Salah satu produk mereka adalah Knowledge Query and Manipulation Language (KQML). Kemudian masih berhubungan dengan ini komunikasi antar agent adalah Knowledge Interchange Format (KIF).

Teknologi dan Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki


1. Collaborative Agent: Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).
2. Interface Agent: Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.
3. 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.
4. 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.
5. Reactive Agent: Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.
6. 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.
7. 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.

Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan. Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya di pakai. Diantaranya yaitu :


1. Object-Orientedness
Karena agent adalah berhubungan dengan obyek, bahkan beberapa penelitimenganggap agent adalah obyek yang aktif, maka juga agent harusdiimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-orientedprogramming language).


2. Platform Independence
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup danberjalan diberbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakaiuntuk implementasi adalah yang terlepas dari platform, atau dengan kata lain programtersebut 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 secarafisik. Sehingga diperlukan bahasa pemrograman yang dapat mensupportpemrograman yang berbasis network dan komunikasi.


4. Security
Faktor keamanan (security) adalah factor yang sangat penting dalam memilihbahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobilagent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yangbisa membuat agent bergerak dengan aman.


5. Code Manipulation
Beberapa aplikasi software agent memerlukan manipulasi kode programsecara runtime, sehingga diperlikan bahasa pemrograman untuk software agent yangdapat menangani masalah runtime tersebut.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

Read Users' Comments (0)

Komunikasi data dan Protokol

Komunikasi data adalah merupakan bagian dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang dikirimkan melalui media komunikasi data. Data berarti informasi yang disajikan oleh isarat digital. Komunikasi data merupakan bagian vital dari suatu masyarakat informasi karena sistem ini menyediakan infrastruktur yang memungkinkan komputer-komputer dapat berkomunikasi satu sama lain.

Komponen Komunikasi Data :

1. Pengirim, adalah piranti yang mengirimkan data

2. Penerima, adalah piranti yang menerima data

3. Data, adalah informasi yang akan dipindahkan

4. Media pengiriman, adalah media atau saluran yang digunakan untuk mengirimkan data

5. Protokol, adalah aturan-aturan yang berfungsi untuk menyelaraskan hubungan.

Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras. Protocol digunakan untuk menentukan jenis layanan yang akan dilakukan pada internet.

Komponen Protokol :

1. Aturan atau prosedur, mengatur pembentukan/pemutusan hubungan

2. Format atau bentuk, mengatur proses transfer data representasi pesan

3. Kosakata (vocabulary), jenis pesan dan makna masing-masing pesan

Fungsi Protokol

Secara umum fungsi dari protokol adalah untuk menghubungkan sisi pengirim dan sisi penerima dalam berkomunikasi serta dalam bertukar informasi agar dapat berjalan dengan baik dan benar. Sedangkan fungsi protokol secara detail dapat dijelaskan berikut:

  • Fragmentasi dan reassembly

Fungsi dari fragmentasi dan reassembly adalah membagi informasi yang dikirim menjadi beberapa paket data pada saat sisi pengirim mengirimkan informasi dan setelah diterima maka sisi penerima akan menggabungkan lagi menjadi paket informasi yang lengkap.

  • Encapsulation

Fungsi dari encapsulation adalah melengkapi informasi yang dikirimkan dengan address, kode-kode koreksi dan lain-lain.

  • Connection control

Fungsi dari connection control adalah membangun hubungan (connection) komunikasi dari sisi pengirim dan sisi penerima, dimana dalam membangun hubungan ini juga termasuk dalam hal pengiriman data dan mengakhiri hubungan.

  • Flow control

Berfungsi sebagai pengatur perjalanan datadari sisi pengirim ke sisi penerima.

  • Error control

Dalam pengiriman data tak lepas dari kesalahan, baik itu dalam proses pengiriman maupun pada waktu data itu diterima. Fungsi dari error control adalah mengontrol terjadinya kesalahan yang terjadi pada waktu data dikirimkan.

  • Transmission service

Fungsi dari transmission service adalah memberi pelayanan komunikasi data khususnya yang berkaitan dengan prioritas dan keamanan serta perlindungan data.

Susunan Protokol

Protokol jaringan disusun oleh dalam bentuk lapisan-lapisan (layer). Hal ini mengandung arti supaya jaringan yang dibuat nantinya tidak menjadi rumit. Di dalam layer ini, jumlah, nama, isi dan fungsi setiap layer berbeda-beda. Akan tetapi tujuan dari setiap layer ini adalah memberi layanan ke layer yang ada di atasnya.

Susunan dari layer menunjukkan tahapan dalam melakukan komunikasi. Antara setiap layer yang berdekatan terdapat sebuah interface. Interface menentukan layanan layer yang di bawah kepada layer yang di atasnya.

Pada saat merencanakan sebuah jaringan, hendaknya memperhatikan bagaimana menentukan interface yang tepat yang akan ditempatkan di antara dua layer yang bersangkutan.

Standarisasi Protokol (ISO 7498)

Dahulu, komunikasi antar komputer dari vendor yang berbeda adalah sangat sulit dilakukan, karena mereka mengunakan protokol dan format data yang berbeda beda. Sehingga International Standards Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI), model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari vendorvendor yang berbeda.

Model Layer OSI dibagi dalam dua group: “upper layer” dan “lower layer”. “Upper layer” fokus pada applikasi pengguna dan bagaimana file direpresentasikan di komputer. “Lower layer” adalah intisari komunikasi data melalui jaringan aktual.

ISO (International Standard Organization) mengajukan struktur dan fungsi protocol komunikasi data. Model tersebut dikenal sebagai OSI (Open System Interconnection)Reference Model

Terdiri atas 7 layer (lapisan) yang mendefinisikan fungsi. Untuk tiap layernya dapat terdiri atas sejumlah protocol yang berbeda, masing-masing menyediakan pelayanan yang sesuai dengan fungsi layer tersebut.
  1. Application Layer: interface antara aplikasi yang dihadapi user and resource jaringan yang diakses. Kelompok aplikasi dengan jaringan:
    • File transfer dan metode akses
    • Pertukaran job dan manipulasi
    • Pertukaran pesan
  2. Presentation Layer: rutin standard me-presentasi-kan data.
    • Negosiasi sintaksis untuk transfer
    • Transformasi representasi data
  3. Session Layer: membagi presentasi data ke dalam babak-babak (sesi)
    • Kontrol dialog dan sinkronisasi
    • Hubungan antara aplikasi yang berkomunikasi
  4. Transport Layer:
    • Transfer pesan (message) ujung-ke-ujung
    • Manajemen koneksi
    • Kontrol kesalahan
    • Fragmentasi
    • Kontrol aliran
  5. Network Layer: Pengalamatan dan pengiriman paket data.
    • Routing
    • Pengalamatan secara lojik
    • setup dan clearing (pembentukan dan pemutusan)
  6. Data-link Layer: pengiriman data melintasi jaringan fisik.
    • Penyusunan frame
    • Transparansi data
    • Kontrol kesalahan (error-detection)
    • Kontrol aliran (flow)
  7. Physical Layer: karakteristik perangkat keras yang mentransmisikan sinyal data.

Setiap data yang lewat ke layer lebih rendah ditambah header kontrol yang sesuai dengan layernya. Sebaliknya data ke layer lebih tinggi setelah dikurangi dengan header kontrol.

Protocol TCP/IP

  • Aplication layer: telnet, ftp, dll.
  • Transport Layer:
    • TCP (Transmission Control Protocol) = mengirim data dengan deteksi dan koreksi kesalahan. Selalu memeriksa keterhubungan.
    • UDP (User Datagram Protocol) = mengirim data tanpa koneksi. Melemparkan data ke network begitu saja.
  • Network layer atau Internet: Internet Protocol (IP). Pelayanan pengiriman paket elementer. Definisikan datagram (jika alamat tujuan tidak dalam jaringan lokal, diberi gateway = device yang menswitch paket antara jaringan fisik yang beda; menentukan gateway yang digunakan).
  • Data-link layer: Melakukan fragmentasi atau defragmentasi datagram.
  • Physical layer: sarana sistem mengirimkan data ke device yang terhubung ke network.

Fungsi Lapisan Protokol Datalink

  1. Pembentukan frame (framing)
    1. Protokol berorientasi karakter (BSC = Binary Synchronous Control)
    2. Protocol berorientasi bit (HDLC = High Level Data Link Control)
  2. Transparansi data
    1. Transparansi data pada protokol berorientasi karakter
      Format frame dalam bentuk transparans mode:
      • Data Link Escape (DLE)
      • Start Of Header (SOH)
      • Header
      • DLE
      • Start of TeXt (STX)
      • Data
      • DLE
      • End of TeXt (ETX)
      • Block of Check Character

Semua karakter kontrol didampingi DLE, sehingga ETX tanpa DLE tidak menimbulkan masalah.
Lihat kode ASCII untuk masing-masing DLE, SOH, STX, ETX.

    1. Transparansi data pada protokol berorientasi bit
      Format:
      • Flag sebagai pembatas
      • Header
      • data
      • Frame Check Sequence (FCS) untuk sinkronisasi
      • Flag
  1. Error Control
    Derajat kesalahan, peluang kesalahan
    Kesalahan disebabkan oleh transmisi dengan adanya gangguan (noise). Jenis:
    1. thermal/white : akibat sifat konduktor logam kawat yang dialiri listrik. Panas sebagai hambatan/tahanan
    2. Impulse : misalkan loncatan pulsa (pulse)
    3. Crosstalk
    4. Intermodulation noise, interferensi

Jenis kesalahan berdasarkan bit

    1. Single bit error (kesalahan tunggal)
    2. Even bit error (jumlah kesalahan genap)
    3. Burst error (kesalahan sejumlah bit yang beruntun)

Link 1

Read Users' Comments (0)

Permasalahan pada sistem distribusi




Pertama-tama saya akan menjelaskan tentang Definisi dari sistem terdistribusi yaitu:
Sebuah sistem yg komponennya berada pd jaringan komputer. Komponen tsb saling berkomunikasi & melakukan koordinasi hanya dgn pengiriman pesan (message passing).

Sebelum kita membahas permasalahan sistem terdistribusi kita harus mengetahui definisi dari sistem terdistribusi. Sitem terdistribusi adalah sistem dimana pemrosesan informasi didistribusikan pada beberapa computer dan tidak terbatas hanya pada satu mesin saja. Sitem itu bisa berkomunikasi melalui banyak cara, misalnya melalui jalur telepon atau high speed bus, intranet, internet dan mobile computing.

Contoh umum sistem terdistribusi :

Internet, global jaringan interkoneksi computer yang berkomunikasi melalui IP (Internet Protocol).
Intranet, jaringan teradministrasi terpisah dengan batasan pada kebijakan keamanan local.
Mobile dan komputasi diberbagai tempat, laptops, PDA, mobile phone,printers, peraltan rumah, dll .
World Wide Web (www), sistem untuk publikasi dan akses sumber daya dan layanan melalui Internet.
Dari penjelasan diatas, sistem terdistribusi yang dapat memunculkan masalah antara lain berkaitan dengan :

Software Masalah yang timbul adalah bagaimana kita merancang dan mengatur software yang tepat dalam distribusi sistem.
Ketergantungan pada infrastruktur jaringanInfrastruktur sangat mempengaruhi sistem terdisribusi bila tidak direncanakan dengan baik, hal ini dapat menimbulkan gangguan-gangguan yang diakibatkan bentuk infrastruktur yang kurang baik sehingga menggangu dari kinerja sistem tersebut. Secara umum masalah infrastruktur jaringan sering terjadi, namun dengan perencanaan yang baik permasalahan ini sangat mudah untuk dicari sumber kesalahannya dan memudahkan proses perbaikan.
Kemudahan akses ke data yang dishare, memunculkan masalah keamanan. Sistem terdistribusi sangat dipengaruhi oleh jaringan komputer. Permasalahan akan timbul jika suatu jaringan sistem tersebut tidak aman, dimana tidak terdapat firewall atau proteksi terhadap data di dalam jaringan tersebut. Firewall dapat digunakan untuk menentukan host mana yang dapat mengakses data atau memberi batasan terhadap host dalam mengakses data sedangkan proteksi terhadap data dilakukan dengan penggunaan password atau enkripsi, namun hal ini tidak menjamin data tersebut dalam keadaan aman.

Contoh: Internet, intranet, mobile computing

Mengapa diperlukan Sistem Terdistribusi?

>Performance
Sekumpulan prosesor dapat menyediakan kinerja yang
lebih tinggi daripada komputer yang terpusat
>Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika
Dipisah dalam mesin yang berbeda (contoh: aplikasi
perbankan, komersial)
>Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan
mempengaruhi kinerja system secara keseluruhan
>Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat
Sharing Data/Resource
>Resource adalah:
– Segala hal yang dapat digunakan bersama dalam
jaringan komputer.
– Meliputi hardware (e.g. disk, printer, scanner), juga
software (berkas, basis data, obyek data).
>Communication
Menyediakan fasilitas komunikasi antar manusia


Kesulitan dan Ancaman dalam sistem terdistribusi antara lain :

>Mode pemakaian Variasi yang beragam terhadap karakteristik pemakaian
Contoh : berapa banyak halaman di kunjungi
>Masalah Internal

Ada beberapa masalah internal yaitu Masalah concurrency, Masalah clock, Mode kegagalan
>Lingkungan Sistem

Sistem terdistribusi harus mengakomodasi heterogenitas hardware, sistem operasi dan jaringan. Contoh : berapa banyak versi SO?
>Ancaman Eksternal yaitu Serangan terhadap kesatuan data dan keamanannya

referensi:
Link 1

Read Users' Comments (0)

GAME ENGINE jMonkey Engine(jME)

Definisi Game Engine

Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Tipe – tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrogramman. Tapi dalam pembahasan sekarang ini, ketimbang harus me-list semua jenis game engine yang ada di wikipedia, mendingan kita bahas garis besar nya saja.

Roll-your-own game engine. Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine nya sendiri. Ini berarti mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Disisi lain, mereka kadang menggunakan libraries komersil atau malah open source. Terkadang mereka malah membuat semuanya dari nol.

Biasanya, game engine tipe ini lebih disukai karena selain kemungkinan besar tersedia gratis, juga memperbolehkan mereka, para developer, lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya, banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Menara Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine nya, hanya untuk di tulis ulang semuanya dalam beberapa hari penggunaan karena adanya bug kecil yang sangat mengganggu.

Mostly-ready game engines. Engine engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer / programmer. Semuanya termasuk contoh GUI, physiscs, libraries model dan texture, dan segalanya. Banyak dari mereka yang sudah benar benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama.

Biasanya game engine semacam ini memiliki batasan batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar benar terbuka lebar. Hal ini ditujukan agar tidak terjadi terlalu banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis, dan masih memungkinkan game engine nya itu sendiri untuk mengoptimalkan kinerja game nya. Banyak dari game engine seperti ini, Unreal Engine, Source Engine, id Tech Engine dan sebagainya, yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Hal ini dengan serta merta menyingkat sangat banyak waktu dan jelas, biaya dari para Developer game.

Point-and-click engines. Engine untuk point-and-click merupakan engine yang sangat amat dibatasi, tapi dibuat sangat user friendly. Kamu bahkan bisa mulai membuat game mu sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.

Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan, dan biasanya hal ini mencakup semuanya, mulai dari grafis, hingga tata suara. Tapi bukan berarti game engine jenis ini nggak berguna, bagi developer cerdas dan berdaya kreativitas tinggi, game engine bapuk seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine seperti ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman, dan secepatnya merilis game game mereka.

Beberapa contoh jenis game engine :

1. Freeware game engine/open source game engine
Blender
Golden T Game Engine (GTGE)
DXFramework
Ogre
Aleph One
Axiom Engine
Allegro Library
Box2D
Build Engine
Cube
Cube 2
DarkPlaces
jMonkeyEngine (jME)
Panda3D
Sphere

2. Commercial engines/game engine berbayar (komersial)
Alamo
A.L.I.V.E
BigWorld
DXStudio
Dunia Engine
Euphoria
GameStudio
Jade Engine
Jedi
Medusa
RPG Maker VX
RPG Maker XP
RPG Maker 2003
RPG Maker 95
Vision Engine

jMonkey Engine (jME)

jMonkey Engine (jME) adalah performa tinggi mesin game 3D, yang ditulis seluruhnya di Java. OpenGL didukung melalui LWJGL, dengan dukungan JOGL dalam pembangunan. Untuk suara, OpenAL didukung. Input melalui keyboard, mouse, dan pengontrol lain juga didukung.

jME adalah sebuah komunitas berbasis proyek open source yang dirilis di bawah lisensi BSD yang baru. Saat ini sedang digunakan oleh beberapa studio permainan komersial maupun oleh universitas kelas permainan. Sementara proyek akan terus mendukung dan mengembangkan cabang paling populer selama bertahun-tahun 2,0 masih akan datang, sebuah cabang dengan cepat 3,0 muncul sebagai tanggapan terhadap standar yang lebih tinggi dari generasi berikutnya dalam kinerja dan hardware.


Cara Menginstall jMonkey Engine(jME)

Untuk dapat menggunakan jMonkeyEngine atau yang biasa dikenal dengan jME, kita perlu mengatur library-nya saja.Di sini saya menggunakan NetBeans 6.5 dan jME-nya yaitu versi 2.0. Untuk download jME-nya tinggal ke halaman download pada link di bawah ini:

http://jmonkeyengine.org/downloads/

Saya sarankan untuk mendownload juga javadoc-nya, karena mungkin kita ingin mengetahui mapping dari library tersebut, karena library ini bersifat open source. Selain itu documentation chapternya juga penting, di situ terdapat cara membuat bangun sederhana.

Di dalam JME_2.0.jar terdapat juga contoh-contoh game yang sudah jadi, sehingga jika kita meng-ekstract isi dari jar tersebut, semua file contoh sudah ada dalam package jmetest.

Berikut adalah salah satu setting pada NetBeans untuk menginstal jME.
1. Extract file jME_2.0_Complete_(rxxxx).zip jika sudah download pada halaman download jmonkeyengine.com.
2. Di situ terdapat 2 item yang penting, yaitu JME_2.0.jar dan folder lib.
3. Buka NetBeans, lalu buat sebuah project java.
4. Klik kanan pada Libraries, lalu pilih Add Libraries.



5.Lalu tekan tombol create, maka akan muncul dialog Create New Library, lalu ketik Library Name dengan “JME 2.0″.
6.Kemudian muncul dialog Customize Library, pilih tab classpath, lalu klik Add JAR/Folder..
7.Pilih file JME_2.0.jar yang tadi telah di-extract.
8.Klik OK, lalu Add Library.
9.Hasilnya akan seperti ini :




Jika kita expand tanda + pada JME_2.0 – jME__2.0.jar, maka akan tampil semua source code dalam ekstensi *.java.

Read Users' Comments (1)komentar

Pengalaman pribadi dalam menggunakan sistem informasi

Sebenarnya yang dimaksud sistem informasi tidak harus melibatkan komputer, sistem informasi yang menggunakan komputer biasa disebut sistem informasi berbasis komputer (computer based information system atau CBIS), tetapi dalam prakteknya sistem informasi lebih sering dikait-kaitkan dengan komputer. Berikut beragam definisi sistem informasi menurut para ahli:

1. Turban, McLean, dan Wetherbe (1999)

Sistem informasi adalah sebuah sistem informasi yang mempunyai fungsi mengumpulkan, memproses, menyimpan, menganalisis, dan menyebarkan informasi untuk tujuan yang spesifik.

2. Bodnar dan HopWood (1993)

Sistem informasi adalah kumpulan perangkat keras dan lunak yang dirancang untuk mentransformasikan data ke dalam bentuk informasi yang berguna.

3. Alter (1992)

Sistem informasi adalah kombinasi antara prosedur kerja, informasi, orang, dan teknologi informasi yang diorganisasikan untuk mencapai tujuan dalam sebuah perusahaan.


Pengalaman saya menggunakan sistem informasi yaitu dalam penggunaan billing diwarnet-warnet. Tarif merupakan bagian terpenting dalam billing. Kecanggihan suatu billing ditentukan oleh bagaimana kelengkapan fasilitas serta kemudahan proses konfigurasi dan penggunaannya, baik oleh kasir maupun pengguna warnet. Tarif juga merupakan salah satu strategi marketing. Bila tidak diperhitungkan dengan matang, warnet Anda dapat kalah bersaing dengan warnet lain.

Keuntungan pemakaian program billing pada komputer server adalah memudahkan Anda dalam melakukan perhitungan keuangan, pencatatan waktu lebih akurat, dan pengawasan kepada komputer client. Dengan begitu Anda dapat mengurangi kecurigaan terhadap kasir, dan menjalin hubungan kemitraan dengan penyedia jasa program ini.

Read Users' Comments (0)