Thursday, November 5, 2015

Thread and Inter-Process Communication (IPC)

Hai apakabar? Semoga sehat selalu dan dilindungi oleh yang Maha Esa aamiin.

Disini kali ini gue mau jelasin tentang thread dan IPC di sistem operasi.

Thread

Ulir atau thread (singkatan dari "thread of execution") dalam ilmu komputer, diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan thread lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu thread ke thread lainnya) atau multiprocess (ketika thread-thread tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem).

Thread sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan thread sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer.

Semua proses merupakan unit kepemilikan dan unit penjadwalan (aktivitas). Pada sistem operasi mutakhir, proses dapat mempunyai banyak aktivitas idependen, sehingga:
-  Thread adalah abstraksi dari unit aktivitas (penjadwalan)
 - Proses adalah unit kepemilikan sumber daya
Proses adalah lingkungan eksekusi, unit managemen sumber daya, yaitu kumpulan sumber daya dimana thread-thread dapat mengaksesnya.


Thread sering disebut Light Weight Process (LWP) yaitu unit dasar utilitasi pemroses dan berisi ID thread, progam counter, register set dan stack space. Thread-thread di satu proses berbagi (memakai bersama) bagian kode, data dan sumber daya system operasi seperti file dan signal. Pemakaian ektensif menyebabkan alih pemroses antara thread –thread di satu proses tidak mahal disbanding alih konteks antar proses. Meski alih thread masih memerlukan alih himpunan register, namun tidak ada keterlibatan manajemen memori.

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.

Multithread ing merupakan upaya meningkatkan kinerja system computer, disebabkan :
1. Penciptaan thread baru lebih cepat dibanding penciptaan proses baru
2. Terminasi thread lebih cepat dibanding pengakhiran proses.
3. Alih ke thread lain di satu proses lebih cepat dibanding dari satu proses ke proses lain.
4. Thread-thread di satu proses dapat berbagi kode, data dan sumber daya lain secara nyaman dan efisien dibanding proses-proses terpisah. 

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

Model-model multithreading :
1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread
2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000
3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2.

Contoh thread :
- Java Thread, Java threads dikelola oleh JVM dan biasanya dilaksanakan dengan menggunakan benang model yang disediakan oleh OS. Java threads dapat digunakan untuk Memperluas kelas Thread dan Pelaksanaan Runnableinterface.
 
 
IPC (Inter-Process Communication)
 
IPC (Inter-Process Communication) adalah komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain, baik antar proses dalam satu komputer maupun proses-proses dalam komputer yang berbeda. IPC dapat dilakukan dengan berbagai cara yaitu Shared memory, Pipe, Messages passing, dan sebagainya. Berikut penjelasan mengenai cara-cara tersebut.


Karakteristik dari IPC :
    • Synchronous and asynchronous communication
    • Message destinations
    • Reliability
    • Ordering
  
a.      Shared memory

Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.
 
  
b.      Pipe  
     Pipe merupakan komunikasi sequensial antar proses yang saling terelasi, namun pipe memiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berhubungan, dan komunikasinya yang dilakukan adalah secara sequensial. Urutan informasi yang ada dalam sebuah pipe ada yang mirip dengan antrian queue. Jika komunikasi yang diinginkan adalah komunikasi dua arah maka kita harus membuat dua pipe, karena sebuah pipe hanya bisa digunakan untuk komunikasi satu arah saja.
c. Message Queue 
    Merupakan metode dimana proses (atau program contoh) dapat bertukar data menggunakan atau melalui sebuah interface untuk sistem yang dikelola message queue. Sebuah pesan antrian dapat dibuat oleh satu proses dan digunakan oleh banyak proses yang membaca dan / atau menulis pesan ke antrian. Misalnya, server proses dapat membaca dan menulis pesan dari dan ke pesan antrian dibuat untuk klien proses. Jenis pesan dapat digunakan untuk menghubungkan pesan dengan klien tertentu proses meskipun semua pesan pada antrian yang sama.
 
d. Semaphore 
   Sebuah variabel yang dilindungi atau tipe data abstrak yang merupakan metode klasik untuk membatasi akses ke sumber daya bersama seperti shared memory dalam suatu lingkungan pemrograman paralel.  Semaphore adalah solusi klasik untuk mencegah race condition pada dining philosopher problem, meskipun mereka tidak mencegah deadlock sumber daya. 

No comments:

Post a Comment