Anda di halaman 1dari 9

BAB II

Multithreading
2.1 Thread
Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan
dieksekusi. Namun ada kalanya proses-proses akan menggunakan resource secara
bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter,
kumpulan register, dan ruang stack disebut dengan thread atau lighweight
process(LWP). Thread akan bekerja sama dengan thread lainnya dalam hal
penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open
file dan sinyal secara kolektif yang sering disebut dengan task.

Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh

sistem operasi.
Merupakan sebuah status eksekusi (ready, running, suspend, block, queue,

dll)
Kadang disebut sebagai proses ringan (lightweight).
Unit dasar dari dari sistem utilisasi pada processor (CPU).
Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
Sebuah thread berbagi code section, data section dan resource sistem
operasi dengan thread yang lain yang memiliki proses yang sama.

2.2
Multi-

Single-

Threading

dan

Threading

Single-Threading

adalah sebuah lightweight process (proses sederhana) yang mempunyai thread


tunggal yang berfungsi sebagai pengendali/ controller.

Multi-Threading

adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas
dalam satu waktu.

Dalam gambar tersebut terlihat perbedaan antara single thread dengan multi
thread. Setiap thread dapat melakukan proses tersendiri, sehingga proses yang
semula besar dipecah ke dalam proses kecilkecil, sedangkan pada single thread
hanya ada 1 thread yang menangani proses yang besar. Tentu multithread akan
lebih cepat dari pada single thread, namun dalam kasus tertentu terlalu banyak
multithread justru memperlambat kerja atau proses.

2.3 Keuntungan Multi-Threading

1. Responsive; tanggap : Multi-Threading mengizinkan program untuk berjalan


terus walau-pun pada bagian program tersebut di block atau sedang dalam
keadaan menjalankan operasi yang lama/panjang. Sebagai contoh, multithread
web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika
suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya : Secara default, thread membagi memori dan
sumber daya dari proses. Ketika thread berjalan pada data yang sama, thread
tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan sumber daya untuk membuat proses
adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari
proses, ini lebih ekonomis untuk membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading
dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat
jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal,
CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga
terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang
berjalan di setiap waktu.

2.4 Thread dalam Sistem Operasi

Sistem operasi telah mendukung proses multithreading.


Setiap
sistem
operasi
memiliki
konsep
tersendiri

pengimplementasiannya.
Sistem operasi dapat mendukung thread pada tingkatan kernel maupun

dalam

tingkatan pengguna.

2.5 Model Multi-Threading


1. Many-to-One
Model manytoone ini memetakan beberapa
tingkatan pengguna thread hanya ke satu buah
kernel thread. Managemen proses thread
dilakukan oleh (di ruang) pengguna, sehingga
menjadi efisien, tetapi apabila sebuah thread
melakukan sebuah pemblokingan terhadap
sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan
dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel
di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses
kernel dalam suatu waktu.
2. One-to-One
Model

onetoone

memetakan

setiap

thread pengguna ke dalam satu kernel


thread. Hal ini membuat model onetoone
lebih sinkron daripada model manytoone
dengan mengizinkan thread lain untuk
berjalan ketika suatu thread membuat
pemblokingan

terhadap

sistem

pemanggilan hal ini juga mengizinkan


multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan
model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan
korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread
dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi
model ini membatasi jumlah thread yang didukung oleh sistem. Model onetoone
diimplementasikan oleh Windows NT dan OS/2.

3. Many-to-Many
Beberapa
pengguna

tingkatan
dapat

thread

menggunakan

jumlah kernel thread yang lebih


kecil atau sama dengan jumlah
thread

pengguna.

Jumlah

dari

kernel thread dapat dispesifikasikan


untuk

beberapa

aplikasi

dan

beberapa mesin (suatu aplikasi


dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada
dalam uniprosesor) dimana model manytoone mengizinkan pengembang untuk
membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai
karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Model onetoone mempunyai konkurensi yang lebih tinggi, tetapi pengembang
harus hatihati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam
kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.

2.6 Thread cancellation


Thread cancellation/ pembatalan thread ialah pemberhentian thread sebelum
tugasnya selesai. Misalnya jika dalam program Java hendak mematikan Java
Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang
berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan disebut
sebagai target thread. Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation: suatu thread seketika itu juga memberhentikan
target thread.
2. Deffered cancellation: target thread secara perodik memeriksa apakah dia
harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan
dirinya sendiri secara terurut.

2.7 Thread Pools


Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses
startup dan menempatkan mereka ke pools.
Keuntungan menggunakan Thread Pools

Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada

dibanding dengan menunggu thread baru dibuat.


Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini
penting pada sistem yang tidak dapat mendukung banyak thread yang
berjalan secara concurrent.

BAB III
Multiprocessing
2.1 Defenisi Multiprocessing
Multiprocessing System adalah penggunaan dua atau lebih central
processing unit (CPU) dalam satu sistem komputer. Istilah ini juga merujuk pada
kemampuan dari suatu sistem untuk mendukung lebih dari satu prosesor dan / atau
kemampuan untuk mengalokasikan tugas antara mereka. Terdapat banyak variasi
pada tema dasar ini, dan definisi multiprocessing dapat bervariasi tergantung
konteks, kebanyakan sebagai fungsi dari seberapa CPU didefinisikan (multiple
core pada satu mati, beberapa chip dalam satu paket, beberapa paket dalam satu
unit sistem, dll).
Suatu kemampuan sistem operasi yang menjalankan dua atau lebih
interuksi secara serentak dengan menggunakan sejumlah CPU dalam sebuah
komputer.Dengan pendekatan seperti ini, sistem operasi dapat mengatur agar
sejumlah CPU menjalankan instruksiinstruksi yang berbeda yang terletak dalam
sebuah program dalam waktu yang sama.
Kegunaan : Komputer ini memiliki lebih dari satu processor. Akibatnya
meningkatkan jumlah suatu proses yang dapat diselesaikan dalam satu unit waktu
(pertambahan throughput ). Perlu diingat hal ini tidak berarti daya komputasinya
menjadi meningkat sejumlah prosesornya. Yang meningkat adalah jumlah
pekerjaan yang bisa dilakukannya dalam waktu tertentu.
Cara Kerja : Uang yang terpakai lebih sedikit karena prosesor prosesor terdapat
dalam satu komputer dan dapat membagi peripheral(ekonomis) seperti disk dan
catu daya listrik. Jika satu processor mengalami suatu gangguan, maka proses
yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang
terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan istilah Graceful
Degradation . Sistemnya sendiri dikenal bersifat fault tolerant atau failsoft system
9

2.2 Jenis-Jenis Multiprocessing


1. Asymmetric Multi Processing
Pada model processingASMP (Asymmetric Multi Processing), ide
dasarnya adalah master/slave, yaitu kernel selalu berjalan di prosesor tertentu,
sedangkan prosesorprosesor lainnya menjalankan utiliti yang ada di system
operasi atau mengerjakan tugastugas tertentu. Prosesor master bertugas
menjadwal proses atau thread. Ketika suatu proses/thread aktif, dan prosesor slave
membutuhkan layanan (misal untuk I/O), maka dia harus mengirim permintaan ke
prosesor master dan menunggu hingga permintaanya dilaksanakan. Model ini
adalah sederhana, karena hanya satu prosesor yang mengatur sumber daya memori
dan I/O.
2. Symmetric Multi Processing
pada model processing lainnya adalah SMP (Symmetric Multi Processing).
Pada model ini, kernel bisa dijalankan di prosesor mana saja, dan tiap prosesor
bisa melakukan penjadwalan proses/thread secara mandiri. Model seperti ini
membuat desain sistem operasi menjadi lebih rumit, karena prosesproses bias
berjalan secara paralel. Karena itu, haruslah dijamin agar hanya 1 prosesor yang
mengerjakan tugas tertentu dan prosesproses itu tidak mengalami starvation.
3. Non-uniform memory access (NUMA) multiprocessing
Metoda

mengkonfigurasi

sekelompok

multiprocessing system sehingga mereka

mikroprosesor

dapat berbagi memori

dalam
local,

meningkatkan kinerja dan kemampuan system yang akan di perluas.


4.Clustering
Clustering adalah metode penganalisaan data, yang sering dimasukkan
sebagai salah satu metode Data Mining, yang tujuannya adalah untuk
mengelompokkan data dengan karakteristik yang sama ke suatu wilayah yang
sama dan data dengan karakteristik yang berbeda ke wilayah yang lain.

10

11

Anda mungkin juga menyukai