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