BAB 3 PROSES

1.Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counterregister set, dan stack. Perbedaan thread tunggal dan thread yang banyak adalah thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Keuntungan Thread

Multithreading dapat dipisah menjadi empat kategori:


1.Responsi:Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang
2. Berbagi sumber daya: Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3. Ekonomi:dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switchthread.
4. Utilisasi arsitektur multiprocessor:Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda.

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. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space

Model-model Multithreading:
a. Model Many-to-One. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat.JadiMultiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads
b. Model One-to-One.Model in 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.   
c. Model Many-to-Many. 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.

Pustaka Thread

    Pustaka Thread atau Thread Librarybertugas 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.
Pemberhentian target Thread dapat dilakukan dengan 2 cara:
a. Asynchronous cancellationSuatu thread seketika itu juga membatalkan target thread
b. Deferred cancellationSuatu 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. 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. 

Penjadwalan Thread

Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan.
Untuk menjadwalkan thread, sistem dengan model mulithreadingmany 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).  

2.Client – Server

Pengertian Client Server

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

1. Karakteristik Server
    a. Pasif
    b. Menunggu request
    c. Menerima request, memproses mereka dan mengirimkan balasan berupa service
2. Karakteristik Client
    a. Aktif
    b. Mengirim request
    c. Menunggu dan menerima balasan dari server
Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. 

Model Client-Server
a.Arsitektur Mainframeb.Arsitektur File Sharingc.Arsitektur Client/Serverd.Model Two-tiere.Model Three-tier

3.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. 

Karakteristik dari Agen
1. Autonomy: Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan (environment).
2. Intelligence, Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi (intelligence).
3. Mobility dan Stationary: Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi yang dia miliki yaitu mobilitas.
4. Delegation: Agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user.
5. Reactivity: Kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan.
6. Proactivity dan Goal-Oriented: Sifat proactivity boleh dibilang adalah kelanjutan dari sifat reactivity
7. Communication and Coordination Capability: Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain. 

Klasifikasi Software Agent
1.Klasifikasi menurut Karakteristik yang Dimiliki
Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya.
A. Collaborative AgentAgent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).
B. Interface AgentAgent 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 AgentAgent 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 AgentAgent 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 AgentAgent 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 AgentAgent 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 AgentAgent 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

1.  Object-Orientedness:
2.  Platform Independence:
3.  Communication Capability:
4.   Security:
5.  Code Manipulation:

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

BAB 4 SISTEM OPERASI TERDISTRIBUSI

1.Sistem Operasi

Pengertian Sistem Operasi

Sistem operasi (Operating System atau OS) adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasioperasi dasar sistem, termasuk menjalankan software aplikasi seperti programprogram pengolah kata dan browser web.

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, yaitu 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.Manajemen Proses

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.

B.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. 

C.Manajemen Berkas

Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas tersebut. 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

D.Manajemen Sistem I/O

Sering disebut device manager. Menyediakan "device driver" yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup).
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. 

E.Manajemen Penyimpanan Sekunder

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.

F.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.

G.Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven).Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter, dan UNIX shell.

H.Jaringan

Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri.
      Increased data availability. 
      Enhanced reliability.
      Computation speed-up. 
      Increased data availability. 
      Enhanced reliability.

2.Sistem Operasi Terdistribusi

Pengertian 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:
        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

Sistem operasi terdistribusi berbeda dengan sistem operasi jaringan.  Untuk dapat  membedakannya, sistem operasi jaringan memiliki ciri-ciri sebagai berikut: 
a.       Tiap komputer memiliki sistem operasi sendiri 
b.      Tiap personal komputer memiliki sistem file sendiri, di mana data-data disimpan 
c.       Sistem operasi tiap komputer dapat berbeda-beda atau heterogen 
d.      Pengguna harus memikirkan keberadaan komputer lain yang terhubung, dan harus mengakses, biasanya menggunakan remote login (telnet) 
e.       File system dapat digunakan dengan dukungan NFS

Manfaat Sistem Operasi Terdistribusi

Manfaat-manfaat ini termasuk dalam sharing resource, waktu komputasi dan komunikasi.
1.      Shared Resource
2.      Manfaat Komputasi  
3.      Reliabilitas
4.      Komunikasi

Hardware Sistem Operasi Terdistribusi

Sistem operasi terdistribusi pada umumnya memerlukan  hardware secara spesifik. Komponen utama dalam sistem ini adalah : workstation, LAN,  gateway, dan  processor pool.
Prosesor pool  mengambil alih semua proses yang lain.  Tiap  unit  ini biasanya terdiri dari prosesor, memori lokal, dan koneksi jaringan. Tiap prosesor mengerjakan satu buah proses sampai prosesor yang tidak digunakan habis. Untuk selanjutnya proses yang lain berada dalam antrian menunggu proses yang lain selesai.
Apabila ada  satu unit pemroses yang mati, maka proses yang dialokasikan harus di restart, tetapi integritas sistem tidak akan terganggu, apabila proses deteksi berjalan dengan baik. Desain sistem ini  memungkinkan untuk 10 sampai 100 prosesor. Spesifikasi perangkat keras yang harus disediakan pada tiap 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

Sistem operasi terdistribusi sejati  memiliki arsiitektur  software  yang unik. Arsitektur software ini dikarakterkan dalam objek di dalam hubungan 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 dibawa.  Tiap objek yang dibawa  memiliki karakteristik yang disebut  sebagai kapabilitas. Kapabilitas ini besarnya adalah 128 bits. 48 bits pertama menunjukkan servis mana yang memiliki objek tersebut. 24 bits berikutnya adalah nomor 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. 
Operasi diselesaikan oleh RPC (remote procedure calls) yang dibuat oleh klien di dalam proses yang kecil dan ringan. Proses dengan tipe seperti ini memiliki bidang alamat sendiri, dan bisa saja memiliki satu atau lebih hubungan. Hubungan ini ketika berjalan memiliki program counter dan  stack sendiri, tetapi dapat saling  berbagi  kode dan data  antara hubungan lain di dalam proses. Ada 3 macam basis panggilan sistem yang dapat digunakan dalam proses yang dimiliki user,  yaitu  do_operation, get_request, dan send_reply. Bagian yang pertama mengirimkan pesan ke server, setelah proses memblok sampai server mengirimkan balasan. 
Server  menggunakan panggilan sistem ke dua untuk  mengindikasikan bahwa server akan menerima pesan pada  port  tertentu.  Server juga menggunakan panggilan sistem ke tiga untuk mengirimkan kembali informasi ke proses yang dipanggil.
Dengan dibangun dari perintah sistem yang primitif, maka sistem ini menjadi antarmuka untuk program aplikasi. Hal ini diselesaikan oleh tingkat dari  pengarahan  yang mengijinkan pengguna  untuk berfikir terhadap struktur ini sebagai objek dan operasi-operasi terhadap objek ini. Berhubungan dengan objek-objek adalah  class. Kelas dapat berisi kelas  yang lain dan juga  hierarki secara  alami. Pewarisan membuat antarmuka objek untuk implementasi  manipulasi objek seperti menghapus, membaca, menulis, dan sebagainya.

Jenis Sistem Operasi Terdistribusi

Ada berbagai  macam sistem operasi terdistribusi yang saat ini beredar dan banyak digunakan. Keanekaragaman sistem ini dikarenakan semakin banyaknya sistem yang bersifat opensource sehingga banyak  yang membangun OS sendiri sesuai  dengan kebutuhan  masing-masing, yang  merupakan pengembangan dari OS opensource yang sudah ada. Beberapa contoh dari sistem operasi terdistribusi ini diantaranya : 
Amoeba (Vrije Universiteit).
Angel (City University of London).
Chorus (Sun Microsystems) 
GLUnix (University of California, Berkeley).