Jumat, 24 Oktober 2014

Proses dan Sistem Operasi pada Sistem Terdistribusi

1. PROSES

Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
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.

Multithreading Models
Beberapa terminologi yang akan dibahas:
a.      Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
b.      Thread Kernel: . Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Model-model Multithreading:
a.      Model Many-to-One. Model ini 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. Contoh: Solaris Green Threads dan GNU Portable Threads.
b.      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. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
c.       Model 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 multiprosessor.

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:
a.      Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
b.      Deferred cancellation. Suatu 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. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. 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. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus batal pada waktu dimana ia dapat dibatalkan secara aman yang aman. Pthread merujuk sebagai cancellation points.

Penjadwalan Thread
Begitu dibuat, 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.
Untuk menjadwalkan thread, sistem dengan model mulithreading many 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).

Client-Server

1.      Pengertian Client Server
Client-Server adalah pembagian kerja antara server dan client yg mengakses server dalam suatu jaringan. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client dan server yang saling berkomunikasi ketika mengakses server dalam suatu jaringan.
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.
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. Begitu ada client yang menghubungi server maka server akan menyetujui komunikasi dengan client melalui socket yang dibangun.

2.      Model Client-Server
Ada beberapa model client/server yang penting untuk diketahui. Dimulai dari arsitektur mainframe hingga arsitektur client/server.
a.      Arsitektur Mainframe
Pada 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. Model ini berkembang pada akhir tahun 1980-an.
b.      Arsitektur File Sharing
Pada arsitektur ini 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. Hal ini dapat mengakibatkan transfer data menjadi lambat. Model ini populer pada tahun 1990-an.
c.       Arsitektur Client/Server
Karena 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. RPC (Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
d.      Model Two-tier
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 :
1.      User Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user.
2.      Manajemen proses
3.      Database
Model ini memisahkan peranan user interface dan database dengan jelas, sehingga terbentuk dua lapisan.
e.       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. Ada berbagai macam software yang dapat digunakan sebagai server middle-tier. Contohnya MTS (Microsoft Transaction Server) dan MIDAS.

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 Agen:
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 ke dalam [Woolridge et. al., 1995].
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. Berbeda dengan stationary agent. Tetapi keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan berkomunikasi dengan agent lain.
4. Delegation: Agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user. Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program disebut agent.
5. Reactivity: Kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan. Lingkungan itu bisa mencakup: agent lain, user, informasi dari luar, dsb [Brenner et. al., 1998].
6. Proactivity dan Goal-Oriented: Sifat proactivity boleh dibilang 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.

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.

2. Klasifikasi menurut Lingkungan Dimana Dijalankan
a. Desktop Agent: Agent 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 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
Service Agent
Mobile Agent
c. 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
Resource Brokering Agent

Bahasa Pemrograman yang digunakan
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 [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. Terutama untuk mobil agent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yang bisa membuat agent bergerak dengan aman.
5. 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 sebagai berikut :
• Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl

2. SISTEM OPERASI TERDISTRIBUSI
Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, di mana sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan. Tujuan utamanya adalah untuk memberikan hasil secara lebih, terutama dalam:
1.      file system:
a.       name space
b.      Waktu pengolahan
c.       Keamanan
d.      Akses ke seluruh resources, seperti prosesor, memori, penyimpanan sekunder, dan perangakat keras
2.      Proses:
a.       Dijalankan secara bersamaan (execute concurrently)
b.      interaksi untuk bekerjasama dalam mencapai tujuan yang sama
c.       mengkoordinasikan aktifitas dan pertukaran informasi yaitu pesan yang dikirim melalui jaringan
3.      komunikasi

Fungsi Sistem Operasi Terdistribusi
a.       Komputer (Resource Manager).
Semua komponen yang memberikan fungsi (manfaat) atau dengan pengertian lain adalah semua yang terdapat atau terhubung ke sistem komputer dapat untuk memindahkan, menyimpan, dan memproses data, serta untuk mengendalikan fungsi-fungsi tersebut.
Sumber daya pada sistem komputer, antara lain :
·         Sumber daya fisik
Seperti keyboard, bar-code reader, mouse, joystick, lightpen, track-ball, touchscreen, pointing devices, floppy disk drive, hard-disk, tape drive, optical disk, CD ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA, RAM, cache memory, register, kamera, sound card, radio, digitizer, scanner, plotter, dan sebagainya.

·         Sumber daya abstrak
Seperti Semaphore untuk pengendalian sinkronisasi proses-proses, PCB (Process Control Block) untuk mencatat dan mengendalikan proses, tabel segmen, tabel page, i-node, FAT, file dan sebagainya.

b.      Manfaat Komputasi
Salah satu keunggulan sistem operasi terdistribusi ini adalah bahwa komputasi berjalan dalam keadaan paralel. Proses komputasi ini dipecah dalam banyak titik, yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain.
c.       Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya satu node tidak akan berdampak terhadap integritas sistem. Hal ini berbeda dengan PC, apabila ada salah satu hardware yang mengalami kerusakan, maka sistem akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati.
d.      Komunikasi
Sistem operasi terdistribusi biasanya berjalan dalam jaringan dan biasanya melayani koneksi jaringan. Sistem ini biasanya digunakan user untuk proses networking. Uses dapat saling bertukar data, atau saling berkomunikasi antara titik baik secara LAN maupun WAN.

Komponen Inti SO
Komponen sistem operasi terdiri dari:
1)      Manajemen Proses
Proses adalah keadaan ketika sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
·         Pembuatan dan penghapusan proses pengguna dan sistem proses.
·         Menunda atau melanjutkan proses.
·         Menyediakan mekanisme untuk proses sinkronisasi.
·         Menyediakan mekanisme untuk proses komunikasi.
·         Menyediakan mekanisme untuk penanganan deadlock.

2)      Manajemen Memori Utama
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori utama termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang begitu sistem dimatikan. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen memori seperti:
·         Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
·         Memilih program yang akan di-load ke memori.
·         Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.
·         Manajemen Penyimpanan Sekunder
Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan secondary storage yang bersifat permanen dan mampu menampung banyak data. Contoh dari secondary storage adalah harddisk, disket, dll. Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan disk management seperti: free-space management, alokasi penyimpanan, penjadualan disk.
3)      Manajemen Sistem I/O
Sering disebut device manager. Menyediakan “device driver” yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca berkas pada hard-disk, CD-ROM dan floppy disk.
Komponen Sistem Operasi untuk sistem I/O:
·         Buffer: menampung sementara data dari/ ke perangkat I/O.
·         Spooling: melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
·         Menyediakan driver untuk dapat melakukan operasi “rinci” untuk perangkat keras I/O tertentu.
4)      Manajemen Berkas
Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.).
Sistem operasi bertanggung-jawab:
·         Pembuatan dan penghapusan berkas.
·         Pembuatan dan penghapusan direktori.
·         Mendukung manipulasi berkas dan direktori.
·         Memetakan berkas ke secondary storage.
·         Mem-backup berkas ke media penyimpanan yang permanen (non-volatile).
5)      Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya.
Mekanisme proteksi harus:
·         membedakan antara penggunaan yang sudah diberi izin dan yang belum.
·         specify the controls to be imposed.
·         provide a means of enforcement.
6)      Jaringan
Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem.
·         Increased data availability.
·         Enhanced reliability.
·         Computation speed-up.
·         Increased data availability.
·         Enhanced reliability.
7)      Command-Interpreter System
Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, commandline interpreter, dan UNIX shell. Command-Interpreter System sangat bervariasi dari satu system operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.

Konsep Dasar Proses Dalam Sistem Operasi
Proses dalam sistem operasi adalah suatu bagian dari program yang berada pada status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem Operasi, kita lebih sering membahas proses dibandingkan dengan program. Pada Sistem Operasi modern, pada satu saat tidak seluruh program dimuat dalam memori, tetapi hanya satu bagian saja dari program tersebut. Sedangkan bagian lain dari program tersebut tetap beristirahat di media penyimpan disk. Hanya pada saat dibutuhkan saja, bagian dari program tersebut dimuat di memory dan dieksekusi oleh prosesor. Hal ini akan sangat menghemat pemakaian memori.

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.

Sumber:
https://www.scribd.com/doc/16677284/Jenis-Sistem-Operasi-Terdistribusi
http://dhy-tha.blogspot.com/2012/01/sistem-operasi-terdistribusi.html
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11.html#c31101
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2002/riene101/produk/Materi/Threads.html
http://rofiqsiregar.wordpress.com/2007/05/09/defenisi-clientserver/
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s05.html
http://rofiqsiregar.wordpress.com/2007/05/29/model-clientserver/

Jumat, 17 Oktober 2014

Gambar Komunikasi Server & Client dan Protocol

Gambar Komunikasi Server dan Client


Komunikasi yang terjadi antara server dan client adalah saling memberi dan menerima data melalui networking.
berikut merupakan kegunaan client dan Server
Client
1.      Mengatur user interface
2.      Menerima dan memeriksa sintaks input dari pemakai
3.      Memproses aplikasi
4.      Generate permintaan basis data dan memindahkannya ke server
5.      Memberikan response balik kepada pemakai
6.      Menyediakan akses basis data secara bersamaanMenyediakan kontrol recovery
Server
1.      Menerima dan memproses basis data yang diminta dari client
2.      Memeriksa autorisasi
3.      Menjamin tidak terjadi pelanggaran terhadap integrity constraint
4.      Melakukan query/pemrosesan update dan memindahkan response ke client
5.      Memelihara data dictionary

Protocol
Protocol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titikkomputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.
Macam-macam protocol:
1.      Net Beui
Beui merupakan protocol yang banyak digunakan dalam jaringan local berbasis SO windows. Protocol ini sangat baik dan cepat untuk bersharing data, namun protocol ini tidak dapat dirouting.
2.      IPx & SPx ( Internetwork Paket Exchange / Sequence Paket Exchange )
Protocol hamper sama bahkan mirip dengan NetBeui hanya saja perbedaannya protocol ini dapat di routing, jadi dapat memungkinkan terjadinya MAN.
3.      Protocol yang dikembangkan OSI/ISO
Protocol ini sudah digunakan oleh beberapa institusi, sayangnya segala informasi tentang protocol ini harus dibeli melalui ISO dan hal ini yang menyebabkan perkembangan ISO/OSI menjadi lambat.
4.      TCP/IP (Transmition Control Protocol/Intenet Protocol)
Protocol yang digunakan dijaringan global karena memiliki system pengalamatan yang baik dan memiliki system pengecekan data.

Susunan Protocol
Pada model OSI ada 7 layer/lapisan protokol yaitu:
1)      Aplikasi Layer, mengatur interaksi antara pengguna komputer dengan program aplikasi yang dipakai.
2)      Presentation Layer, menconvert/memformat data sehingga dapat dimengerti dan dapat  dikirim ke penerima.
3)      Session Layer, bertanggung jawab memberikan 2 macam layanan, yaitu Mengelola proses komunikasi dua arah.
4)      Transport Layer, untuk memecah data dari lapisan application menjadi segmen-segmen dan membangun hubungan dari satu titik ke titik lainnya.
5)      Network Layer, bertanggung jawab untuk memindahkan data dari satu lokasi ke lokasi lainnya. menambahkan alamat jaringan pada paket data.
6)      Data link Layer,Memberikan petunjuk kepada paket dalam melewati link pada jaringan.(akses)
7)      Physical Layer, mengirim data melalui media transmisi.(Hardware)

Fungsi Protocol
fungsi protokol adalah sebagai penghubung  dalam komunikasi data sehingga proses penukaran data bisa berjalan dengan baik dan benar. secara khusus fungsi protokol sebagai berikut:
a.       fragmentasi dan re-assembly
pembagian informasi yang dikirim menjadi beberapa paket data dari sisi pengirim. jika telah sampai kepenerima. paket data tersebut akan digabungkan menjadi paket berita yang lengkap.
b.      enkapsulasi
enkapsulasi adalah proses pengiriman data yang dilengkapi dengan alamat, kode-kode koreksi dan lain-lain
c.       conection control
membangun hubungan komunikasi berupa pengiriman data dan mengakhiri hubungan dari pengirim ke penerima
d.      flow control
fungsi dari flow kontrol adalah sebagai pengtur jalannya data dari pengirim ke penerima
e.       error control
tugasnya adalah mengontrol terjadinya kesalahan sewaktu data dikirim
f.       transmission service
fungsinya adalah memberikan pelayanan komunikasi data yang berhubungan dengan prioritas dan keamanan data.

Metode protocol RPC (Report Procedure Call)
Kelebihannya:
1)      Perfect
2)      Efisien
3)      Easy to use
Kekurangannya:
1)      Statik (enggak flexibel)
2)      OOP ketinggalan jaman

Sumber:


Kamis, 09 Oktober 2014

Sistem Terdistribusi

Pengertian Sistem Terdistribusi
Sistem Terdistribusi adalah suatu perangkat komputer autonom yang transparan dan terdiri dari kesatuan elemen-elemen yang berinteraksi secara sistematis antara satu dengan yang lainnya, yang dihubungkan oleh jaringan dengan software yang dirancang untuk menghasilkan fasilitas komputasi terintegrasi. Sedangkan dari segi pengguna, user menggunakannya sebagai satu kesatuan komputer.
Dalam sistem terdistribusi ini, terdapat sebuah jaringan yang merupakan sarana yang menjembatani komunikasi antar elemen. Bagian terluar dari sistem terdistribusi ini adalah Client. Aplikasi client disini adalah front-end yang akan berhubungan langsung dengan sistem. Dibelakangnya terdapat beberapa lapisan logik seperti presentation server, bussiness object server dan database server. Sistem terdistribusi disini juga membutuhkan sebuah proxy server. Lapisan yang berada dibelakang front-end ini tersembunyi dari pengguna (transparancy). Jika server dalam suatu sistem distribusi down atau mengalami gangguan, maka proses transaksi antar client akan disimpan di dalam memory komputer client tersebut. Apabila server sudah kembali normal, maka proses transaksi tersebut akan dilanjutkan kembali.
Model-model Sistem Terdistribusi:
1.      Client-Server
Sistem yang terdiri dari kumpulan – kumpulan  proses disebut dengan server, dan memberikan layanan kepada user yang disebut dengan client.
Model client-server biasanya berbasiskan protokol request/reply. Contoh implementasi nya, atara lain RPC (Remote Procedure Calling) dan RMI (Remote Method Invocation) :
a.       client mengirimkan request berupa pesan ke server untuk mengakses suatu service.
b.      server menerima pesan tersebut dan mengeksekusi request client dan mereply hasil ke client.


2.      Proxy Server
Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain.
Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke server, hal yang pertama dilakukanadalah memeriksa proxy server apakah yang dimita oleh client terdapatpada proxy server.
Proxy server dapat diletakkan pada setiap client atau dapat di pakaibersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencegah frekwensi akses ke server.


3.      Peer Process (Peer to Peer)
Semua proses (object) mempunyai peran yang sama.
a.       Proses berinteraksi tanpa ada nya perbedaan antara client dan server.
b.      Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan.
c.       Merupakan model yang paling general dan fleksible.

4.      Multiple Server
Service disediakan oleh beberapa server. Sebagian besar layanan web komersial diterapkan melalui server fisik yang berbeda.
Server menggunakan replikasi atau database terdistribusi.



Karakteristik Sistem Terdistribusi
a.      Resource Access and Sharing
Kemampuan menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat .htaccessyang hanya dapat diakses oleh user-user yang telah memiliki grant access terhadap file tersebut.
b.      Openness (Keterbukaan)
Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance.
c.       Concurrency
Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut.
d.      Scalability
Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading tersebut, komponen dalam web tidak perlu diubah.
e.       Fault Tolerance (Toleransi Kesalahan)
Kesalahan pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya.
f.       Transparency
Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut.
Contoh Sistem Terdistribusi
Sistem Terdistribusi Pada ATM
ATM merupakan sebuah terminal data yang mempunyai dua perangkat input dan empat perangkat output. Seperti halnya sebuah terminal data, ATM harus memiliki koneksi ,terhubung, dan berkomunikasi melalui sebuah host processor (pusat proses). Pusat proses yang disertai oleh Internet service provider (ISP) yg berfungsi sebagai jalur gateway untuk menuju keberbagai macam jaringan ATM.
Model client-server inilah yang diterapkan pada cara kerja bank yang memiliki banyak kantor cabang dan ATM, yaitu mesin ATM sebagai fasilitas yang terhubung langsung dengan client sedangkan server merupakan database pusat yang menyimpan seluruh data pelanggan. Pada ATM terdapat sistem komputer yang terhubung ke jaringan. Satu komputer server dapat menjalankan pemrosesan aplikasi dan satu komputer server yang lainnya digunakan untuk manajemen data aplikasi sebagai server logika yang terpisah. Selain itu ada juga fasilitas Internet-banking dimana transaksi dapat dilakukan dari ruang kerja dengan mengakses internet dimana internet juga merupakan contoh sistem terdistribusi.





Referensi: