Top Banner
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 :
13

BAB 8 SISTEM OPERASI : SYNCHRONIZATION

Apr 09, 2023

Download

Documents

MARETA HARLIA
Welcome message from author
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
Page 1: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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 :

Page 2: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 3: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 4: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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 :

Page 5: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 6: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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 :

Page 7: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 8: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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 :

Page 9: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

membutuhkan kondisi tertentu untuk dieksekusi.

c. Tugas Praktikum 1

Jawab :

Source code :

Page 10: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 11: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Output

d. Tugas Praktikum 2

Source code :

Page 12: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Page 13: BAB 8 SISTEM OPERASI : SYNCHRONIZATION

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

Output.