Jumat, 23 September 2016

RISUMAN BAB 4. SISTEM OPERASI TERDISTRIBUSI

4.1  Sistem Operasi
Pengertian Sistem Operasi
            Sistem operasi (Operating System) adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web. 
Secara umum, Sistem Operasi adalah software pada lapisan pertama yang di taruh pada memori komputer pada saat komputer dinyalakan.
Sistem Operasi secara umum terdiri dari beberapa bagian :
  1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory.
  2. Kernel, yaitu inti dari sebuah Sistem Operasi.
  3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna.
  4. Pustaka-pustaka, yaiu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain.
  5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.
Komponen Sistem Operasi
Komponen sistem operasi terdiri dari:
A.ManajemenProses
Proses adalah keadaan ketika sebuah program sedang di eksekusi. sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-perangkat I/O.
B.ManajemenMemori Utama
Memori utama atau lebih dikenal sebagai memori adalah sebuah arrayyang besar dari wordatau 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.
C.ManajemenBerkas
Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll).
D. 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.
E.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-storageyang bersifat permanen dan mampu menampung banyak data. Contoh dari secondary-storage adalah harddisk,disket, dll.
F.Sistem Proteksi
Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistemsumber daya.
G.Command-Interpreter System
SistemOperasi menunggu instruksi dari pengguna (command driven). Programyang membaca instruksi danmengartikan control statementsumumnya disebut: control-cardinterpreter, command-line interpreter, dan UNIX shell. Command-Interpreter Systemsangat bervariasi dari satu sistemoperasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devicesyang ada. Contohnya: CLI, Windows, Pen-based(touch), dan lain-lain.
H.Jaringan
Sistemterdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tetapi prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke bermacamsumber-daya sistem.
4.2  Sistem Operasi Terdistribusi
Pengertian Sistem Operasi Terdistribusi
Sistemoperasi terdistribusi adalahsalah satu implementasi dari sistemterdistribusi, di mana sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan. Koleksi-koleksi dari objek-objek ini secara tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau pekerjaan tertentu. Tujuan utamanya adalah untuk memberikan hasil secaralebih, terutamadalam:
–file system
–name space
–Waktu pengolahan
–Keamanan
–Akses ke seluruh resources, seperti prosesor, memori, penyimpanan sekunder, dan perangakat keras.
Sistem Operasi Jaringan Versus Sistem Operasi Terdistribusi
Suatu sistem operasi terdistribusi yang sejati adalah yang berjalan padabeberapa buah mesin, yang tidak melakukan sharing memori, tetapi terlihat bagi user sebagai satu buah komputer single. Contoh dari sistemseperti ini adalah Amoeba. Sistemoperasi terdistribusi berbeda dengan sistemoperasi jaringan. Untuk dapat membedakannya,sistemoperasi jaringan memiliki ciri-ciri sebagai berikut:
a.Tiap komputer memiliki sistemoperasi sendiri
b.Tiap personal komputer memiliki sistemfile sendiri, di mana data-datadisimpan
c.Sistemoperasi tiap komputer dapat berbeda-beda atau heterogen
d.Pengguna harus memikirkan keberadaankomputer lain yang terhubung, dan harus mengakses, biasanya menggunakan remote login (telnet)
e.File systemdapat digunakan dengan dukungan NFS
Manfaat Sistem Operasi Terdistribusi
            Sistem operasi terdistribusi memiliki manfaat dalam banyak sistemdan dunia komputasi yang luas. Manfaat-manfaat ini termasuk dalam sharing resource, waktu komputasi dan komunikasi.
1.      Shared Resource
Walaupun perangkat sekarang sudah memiliki kemampuan yang cepat dalamproses-proses komputasi, atau misal dalam mengakses data, tetapi pengguna masih saja menginginkan sistemberjalan dengan lebih cepat. Apabila hardwareterbatas, kecepatan yang diinginkan user dapat di atasi dengan menggabung perangkat yang ada dengan sistemDOS.
2.      Manfaat Komputasi
Salah satu keunggulan sistemoperasi terdistribusi ini adalah bahwakomputasi berjalan dalamkeadaan paralel.Proses komputasi ini dipecahdalambanyak titik, yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain.
3.      Reliabilitas
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya satu node tidakakan berdampak terhadap integritas sistem.
4.      Komunikasi
Sistemoperasi terdistribusi biasanyaberjalan dalamjaringan dan biasanya melayani koneksi jaringan. Sistemini biasanya digunakan user untuk proses networking. Uses dapat saling bertukar data, atau saling berkomunikasi antara titik baik secara LAN maupun WAN.
Hardware Sistem Operasi Terdistribusi
Sistemoperasi terdistribusi, yang saatini akan dibahas sebagai titik tolak adalah Amoeba, yang saat ini banyak digunakan sebagai salah satu implementasi dari sistemoperasi terdistribusi itu sendiri. SistemAmoeba ini tumbuh dari bawah hingga akhirnya tumbuh menjadi sistemoperasi terdistribusi. Sistemoperasi terdistribusi pada umumnya memerlukan hardware secara spesifik. Komponen utama dalam sistemini adalah : workstation, LAN, gateway, dan processor pool, seperti yang diilustrasikan pada gambar di atas. Workstation atau komputer personal mengeksekusi proses yangmemerlukan interaksi dari user seperti text editor atau manager berbasis window. Server khusus memiliki fungsi untukmelakukan tugas yang spesifik. Server ini mengambil alih proses yang memerlukan I/O yang khusus dari larikan disk. Gateway berfungsi untuk mengambil alih tugas untuk terhubung ke jaringan WAN.
Spesifikasi perangkat keras yang harus disediakan padatiap cluster minimalnya adalah :
File server: 16 MB RAM, 300MB HD, Ethernet card. ƒ
Workstation: 8 MB RAM, monitor, keyboard, mouse
Pool processor: 4 MB RAM, 3.5” floppy drive
Arsitektur Software
Sistemoperasi terdistribusi sejati memiliki arsitektur software yangunik. Arsitektur software ini dikarakterkan dalamobjek di dalamhubungan antara klien dan server. Proses-proses yang terjadi di klien menggunakan remote procedure yang memanggil dan mengirimkan request ke server untuk memproses data atau objek yang dibawaTiap objek yang dibawa memiliki karakteristik yang disebut sebagai kapabilitas. Kapabilitas ini besarnya adalah 128 bits. 48 bits pertama menunjukkan servismana yang memiliki objek tersebut.24bits berikutnya adalahnomor dari objek. 8 bits berikutnya menampilkan operasi yang diijinkan terhadap objek yang bersangkutan. Dan 48 bits terakhir merupakan “check field” yang merupakan field yang telah terenkripsi agar tidak dapat dimodifikasi oleh proses yang lain.
JenisSistemOperasiTerdistribusi
Beberapa contoh dari sistemoperasi terdistribusi ini diantaranya :
Amoeba (Vrije Universiteit).Amoeba adalah sistemberbasis mikro-kernel yang tangguh yang menjadikan banyak workstation personal menjadi satu sistemterdistribusi secara transparan. Sistemini sudah banyak digunakan dikalangan akademik, industri, dan pemerintah selamasekitar 5 tahun.
Angel (CityUniversityof London).Angel didesain sebagai sistemoperasi terdistribusi yang pararel, walaupun sekarang ditargetkan untuk PC dengan jaringan berkecepatan tinggi.
Chorus (Sun Microsystems).CHORUS merupakan keluargadari sistemoperasi berbasis mikro-kernel untuk mengatasi kebutuhan komputasi terdistribusi tingkat tinggi di dalam bidang telekomunikasi, internetworking, sistemtambahan, realtime, sistemUNIX, supercomputing, dan kegunaan yang tinggi.
GLUnix (University of California, Berkeley).Sampai saat ini, workstationdengan modemtidak memberikan hasil yang baik untuk membuat eksekusi suatu sistem operasi terdistribusi dalamlingkungan yang shared dengan aplikasi yangberurutan.
Referensi:
1.http://id.wikipedia.org/wiki/Sistem_operasi
2.vlsm.org, Komponen SistemOperasi, http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch05.html#c20501
3.Wahyu Wijanarko, Sistem Operasi Terdistribusi,
http://ilmukomputer.com/2006/08/20/sistem-operasi-terdistribusi/

RISUMAN BAB.3 PROSES


3.1 Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
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.
·         Keuntungan Thread
Keuntungan dari program yang multithreading dapat dipisah menjadi empat kategori:
1.       Responsi
2.       Berbagi sumber daya
3.       Ekonomi
4.       Utilisasi arsitektur multiprocessor

·         Multithreading Models
Beberapa terminologi yang akan dibahas:
a.        Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna.
b.       Thread Kernel: . Thread yang didukung langsung oleh kernel.

Model-model Multithreading:
a.       Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread.
b.      Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread.
c.       Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna.

·         Pustaka Thread
Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread:
a.       Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call.
b.      Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi.

Pembatalan Thread (Thread Cancellation)
Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. 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:
  1. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
  2. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.
Penjadwalan Thread
Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan.
Untuk menjadwalkan thread, sistem dengan model mulithreading many to many atau many to one menggunakan:
  1. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.
  2. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread , kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).
3.2. Client – Server
Pengertian Client Server
Client Server adalah pada sistem client/server harus terdapat satu atau beberapa server yang menyediakan layanan dan satu atau beberapa klien yang meminta layanan tersebut (tidak perduli apakah kondisi tersebut berada pada sebuah sistem jaringan ataupun stand-alone).
Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server .
Socket adalah sebuah endpoint untuk komunikasi didalam jaringan.. Socket dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara umum socket digunakan dalam client/server system, dimana sebuah server akan menunggu client pada port tertentu.
Model Client-Server
Ada beberapa model client/server yang penting untuk diketahui. 
a.       Arsitektur Mainframe
Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan.
b.       b.  Arsitektur File Sharing
Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna.
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.
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
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. Ada berbagai macam software yang dapat digunakan sebagai server middle-tier. Contohnya MTS (Microsoft Transaction Server) dan MIDAS.
3.3.    Agent
Software Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan
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
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
3    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, ervice Agent ,dan Mobile Agent.


4    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 dan Resource Brokering Agent.
Bahasa Pemrograman yang digunakan
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.
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 Java dan Telescript, Tcl/Tk, Safe-Tcl, Agent-Tcl .
Referensi:
1.      http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11.html#c31101
2.      http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2002/riene101/produk/Materi/T hreads.html
3.      Rofiq Siregar, Definisi Client/Server, http://rofiqsiregar.wordpress.com/2007/05/09/defenisi-clientserver/
4.      http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s05.html
5.      Rofiq Siregar, Model Client/Server, http://rofiqsiregar.wordpress.com/2007/05/29/model-clientserver/
6.      Ayu Anggriani dkk., Tugas Kuliah Pengantar Sistem Terdistribusi, 2008.
7.      Romi Satria Wahono, Pengantar Software Agent: Teori dan Aplikasi, http://ilmukomputer.com/2006/08/21/pengantar-software-agent/