LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER UNIVERSITAS BRAWIJAYA BAB : SYNCHRONIZATION NAMA : TRI SUSANTO NIM : 145150400111007 TANGGAL : 30/04/2015 ASISTEN : - AGUNG YUDHA BERLIANTARA 1. Jelaskan apa yang dimaksud dengan thread synchronization! Jawab : Suatu proses pengendalian akses dari sumber daya terbagi pakai (shared resource) oleh banyak thread sedemikian sehingga hanya satu thread yang dapat mengakses sumber daya tertentu pada satu waktu. 2. Jelaskan apa yang dimaksud dengan mutex! Jawab : Suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama. Jadi, Mutual Exclusive terjadi ketika hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut. 3. Untuk apa mutex digunakan? Jawab : Mutex memberikan solusi dari problem race condition saat beberapa thread berusaha mengakses kode secara bersamaan, sehingga hanya satu thread yang bisa mengaksesnya dalam satu waktu dan thread lain akan menunggu saat thread tersebut telah selesai mengaksesnya. Artinya jika satu thread telah mengunci mutex, dan thread berikutnya berusaha mengunci mutex, maka thread ini akan diblock atau pending, sampai thread pertama membuka kunci mutex. 4. Materi Praktikum! A. Mutex. 1. Pertama buat file dengan isi sebagai berikut :
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
1. Jelaskan apa yang dimaksud dengan thread synchronization!
Jawab :
Suatu proses pengendalian akses dari sumber daya terbagi pakai (shared
resource) oleh banyak thread sedemikian sehingga hanya satu thread yang dapat
mengakses sumber daya tertentu pada satu waktu.
2. Jelaskan apa yang dimaksud dengan mutex!
Jawab :
Suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel
atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan
dikeluarkan dari pekerjaan yang sama. Jadi, Mutual Exclusive terjadi ketika
hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang
ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi
dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
3. Untuk apa mutex digunakan?
Jawab :
Mutex memberikan solusi dari problem race condition saat beberapa thread
berusaha mengakses kode secara bersamaan, sehingga hanya satu thread yang
bisa mengaksesnya dalam satu waktu dan thread lain akan menunggu saat thread
tersebut telah selesai mengaksesnya. Artinya jika satu thread telah mengunci
mutex, dan thread berikutnya berusaha mengunci mutex, maka thread ini akan
diblock atau pending, sampai thread pertama membuka kunci mutex.
4. Materi Praktikum!
A. Mutex.
1. Pertama buat file dengan isi sebagai berikut :
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
2. Compile file dengan perintah seperti pada gambar :
3. Jalankan program dengan perintah sebagai berikut :
Kesimpulan :
Pada kasus ini, mutex dapat mencegah terjadinya race condition
dan juga deadlock dengan lock and key. Saat thread 1 mengakses
variable counter maka thread 2 tidak bisa mengaksesnya sampai thread 1
selesai mengakses variable counter itu. Berlaku juga sebaliknya.
B. Join
1. Pertama buat file dengan isi sebagai berikut :
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
2. Compile file dengan perintah seperti pada gambar :
3. Jalankan program dengan perintah sebagai berikut :
Kesimpulan :
Pada kasus ini, join dapat membuat thread dapat berjalan saat
thread yang lain sudah terminate. Dengan kata lain fungsi join adalah
mengatur thread untuk melakukan proses secara bergantian. Ketika
thread yang lain sedang dijalankan maka thread yang lain akan
menunggu dan akan dijalankan ketika thread yang lain terminate.
C. Condition Variable
1. Pertama buat file dengan isi sebagai berikut :
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
2. Compile file dengan perintah seperti pada gambar :
3. Jalankan program dengan perintah sebagai berikut :
Kesimpulan :
LAPORAN PRAKTIKUM PEMROGRAMAN LANJUT
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB : SYNCHRONIZATION
NAMA : TRI SUSANTO
NIM : 145150400111007
TANGGAL : 30/04/2015
ASISTEN : - AGUNG YUDHA BERLIANTARA
Pada kasus diatas, conditional variable membuat thread 1 yang
telah dieksekusi menunggu thread 2 yang akan dieksekusi selanjutnya.
Sedangkan thread 1 akan kembali dieksekusi setelah thread 2 selesai
dieksekusi.
5. Tugas Praktikum.
a. Jelaskan kenapa perlu sinkronisasi!
Jawab :
Sinkronisasi sangat diperlukan untuk menghindari race condition dan
deadlock yang dapat menghambat proses dari suatu program yang sedang
dijalankan.
b. Jelaskan secara singkat penggunaan dari mutex, join, dan condition
variable!
Jawab :
Mutex digunakan untuk menghindari ketidakkonsistenan data
karena sebuah variabel yang dimodifikasi oleh banyak thread
dalam waktu yang bersamaan. Hal ini menyebabkan terjadinya
apa yang disebut dengan race condition. Oleh karena itu, setiap
ada variabel global yang bisa dimodifikasi oleh banyak thread,
digunakan mutex untuk menjaga agar variabel global tersebut
dimodifikasi oleh banyak threads dengan suatu urutan tertentu.
Join digunakan untuk melakukan proses dengan ketentuan proses
akan dieksekusi jika proses lain sudah terminate
Condition variable digunakan untuk suatu program yang berjalan