Anda di halaman 1dari 5

Sinkronisasi Proses/Thread

Minggu/Sesi : V/2
Kode Mata Kuliah : 1031202
Nama Mata Kuliah : Sistem Operasi
Setoran : Lembar jawaban(pdf)
Batas Waktu : Akhir Sesi
Setoran
Tujuan : 1. Mampu menjelaskan istilah penting dalam struktur sistem operasi.
2. Mampu menjelaskan pemuatan sistem operasi ke memori utama komputer.
3. Mampu menjelaskan komponen-komponen sistem operasi.
4. Mampu menjelaskan konsep-konsep dasar struktur sistem operasi seperti
pemanggilan sistem dan struktur/arsitektur sistem operasi.

Petunjuk
1. Sebelum memberikan pertanyaan silahkan baca buku yang ada pada referensi.
2. Mencontoh pekerjaan dari orang lain akan dianggap plagiarisme dan anda akan ditindak
sesuai dengan sanksi akademik yang berlaku di IT Del atau sesuai dengan kebijakan saya
dengan memberikan nilai 0.
3. Jawaban diketik menggunakan word processor kemudian dikonversi ke file
berekstensi .pdf
4. Penamaan file HARUS sesuai dengan format NIM_Tugas-X_NamaTugas.pdf (contoh:
13319013_Tugas-2_Struktur_Sistem_Operasi.pdf).
5. Keterlambatan menyerahkan laporan tidak ditolerir dengan alasan apapun. Oleh karena
itu, laporan harus dikumpul tepat waktu.
6. Gunakan Sistem Operasi Linux boleh menggunakan Distro apapun namun disarankan untuk
mempermudah praktikum gunakan Ubuntu.

Laporan Praktikum Sistem Operasi 1


Sistem Operasi

1. Pertanyaan :
Tuliskan perbedaan dari Sinkronisasi dengan Semaphore, Sinkronisasi dengan
Conditional Variable, dan Sinkronisasi dengan MUTEX!
Jawab:
 Perbedaan dari Sinkronisasi dengan Semaphore

Sinkronisasi mengacu pada proses koordinasi antara thread untuk memastikan


bahwa mereka berinteraksi dengan sumber daya bersama secara benar.
Sinkronisasi digunakan untuk menghindari situasi seperti race condition dan
deadlocks, di mana dua atau lebih thread mencoba mengakses sumber daya
bersama secara bersamaan.

Sementara itu, Semaphore adalah variabel yang dapat digunakan untuk membatasi
jumlah thread yang dapat mengakses sumber daya bersama secara bersamaan.
Semaphore memiliki dua operasi dasar, yaitu operasi wait dan signal. Operasi wait
digunakan untuk mengurangi nilai semaphore, sementara operasi signal digunakan
untuk meningkatkan nilai semaphore.

Perbedaan utama antara Sinkronisasi dan Semaphore adalah bahwa Sinkronisasi


berfokus pada koordinasi antara thread, sementara Semaphore berfokus pada
pembatasan akses ke sumber daya bersama. Dalam hal ini, Semaphore adalah
mekanisme yang dapat digunakan untuk membantu mencapai sinkronisasi.

Dengan menggunakan Semaphore, thread dapat meminta izin untuk mengakses


sumber daya bersama, dan Semaphore akan memastikan bahwa hanya sejumlah
thread tertentu yang dapat mengakses sumber daya tersebut pada satu waktu.
Dalam hal ini, Semaphore membantu memastikan sinkronisasi antara thread dan
mencegah situasi seperti race condition.

Dalam kesimpulannya, Sinkronisasi dan Semaphore adalah dua konsep yang


berbeda, tetapi sering kali digunakan bersama-sama untuk mengontrol akses ke
sumber daya bersama dalam lingkungan komputasi yang dilakukan secara paralel.
Sinkronisasi berfokus pada koordinasi antara thread, sedangkan Semaphore
berfokus pada pembatasan akses ke sumber daya bersama. Semaphore membantu
mencapai sinkronisasi dengan membatasi jumlah thread yang dapat mengakses
sumber daya bersama secara bersamaan.

 Perbedaan dari Sinkronisasi dengan Conditional Variable

Sinkronisasi berfokus pada koordinasi antara thread untuk memastikan bahwa


mereka berinteraksi dengan sumber daya bersama secara benar, sedangkan
Conditional Variable digunakan untuk menunggu hingga kondisi tertentu
terpenuhi sebelum melanjutkan eksekusi.

Dalam hal ini, Conditional Variable membantu memastikan bahwa thread tidak
menghabiskan waktu menunggu sumber daya yang tidak tersedia, sementara

Laporan Praktikum Sistem Operasi 2


Sinkronisasi membantu memastikan bahwa thread berinteraksi dengan sumber
daya bersama secara benar.

Dalam penggunaannya, Conditional Variable sering digunakan bersama Mutex


untuk menghindari situasi di mana thread menunggu sumber daya yang tidak
tersedia, sementara Sinkronisasi sering kali digunakan bersama Semaphore untuk
membatasi akses ke sumber daya bersama.

Dalam kesimpulannya, Sinkronisasi dan Conditional Variable adalah dua konsep


yang berbeda, tetapi sering kali digunakan bersama-sama dalam pengembangan
perangkat lunak untuk mengontrol akses ke sumber daya bersama dalam
lingkungan komputasi yang dilakukan secara paralel. Sinkronisasi berfokus pada
koordinasi antara thread, sedangkan Conditional Variable digunakan untuk
menunggu hingga kondisi tertentu terpenuhi sebelum melanjutkan eksekusi.

 Perbedaan dari Sinkronisasi dengan MUTEX

Sinkronisasi berfokus pada koordinasi antara thread untuk memastikan bahwa


mereka berinteraksi dengan sumber daya bersama secara benar, sementara Mutex
berfokus pada pembatasan akses ke sumber daya bersama dengan memungkinkan
hanya satu thread untuk mengakses sumber daya tersebut pada satu waktu.

Dalam hal ini, Mutex membantu mencegah situasi seperti race condition dengan
memastikan bahwa hanya satu thread yang dapat mengakses sumber daya bersama
pada satu waktu. Dalam kasus ini, Mutex memastikan sinkronisasi antara thread
dan mencegah situasi di mana dua atau lebih thread mencoba mengakses sumber
daya bersama secara bersamaan.

Namun, Mutex hanya dapat digunakan untuk mengatur akses ke sumber daya
bersama tunggal, sementara sinkronisasi dapat digunakan untuk mengatur akses
ke sumber daya bersama yang lebih kompleks.

Dalam penggunaannya, Mutex sering digunakan bersama dengan Conditional


Variable untuk memastikan bahwa thread tidak menunggu akses ke sumber daya
bersama yang tidak tersedia. Sedangkan Sinkronisasi sering kali digunakan
bersama dengan Semaphore untuk membatasi akses ke sumber daya bersama.

Dalam kesimpulannya, Sinkronisasi dan Mutex adalah dua konsep yang berbeda,
tetapi sering kali digunakan bersama-sama dalam pengembangan perangkat lunak
untuk mengontrol akses ke sumber daya bersama dalam lingkungan komputasi
yang dilakukan secara paralel. Sinkronisasi berfokus pada koordinasi antara
thread, sedangkan Mutex berfokus pada pembatasan akses ke sumber daya
bersama dengan memungkinkan hanya satu thread untuk mengakses sumber daya
tersebut pada satu waktu.

Laporan Praktikum Sistem Operasi 3


2. Pertanyaan:
Pada saat kapan kita menggunakan ketiga sinkronisasi tersebut?
Jawab:

Ketiga jenis sinkronisasi (Semaphore, Conditional Variable, dan Mutex)


digunakan dalam pengembangan perangkat lunak untuk memastikan bahwa
thread dalam lingkungan komputasi paralel berinteraksi dengan sumber daya
bersama secara benar dan efisien. Namun, setiap jenis sinkronisasi digunakan
dalam situasi yang berbeda-beda.

 Semaphore

Semaphore digunakan ketika kita ingin membatasi akses ke sumber daya bersama
dalam jumlah yang telah ditentukan. Misalnya, jika kita memiliki sumber daya
bersama seperti buffer dalam program yang digunakan oleh beberapa thread, kita
dapat menggunakan Semaphore untuk membatasi jumlah thread yang dapat
mengakses buffer secara bersamaan.

 Conditional Variable

Conditional Variable digunakan ketika thread perlu menunggu kondisi tertentu


terpenuhi sebelum melanjutkan eksekusi mereka. Misalnya, jika ada dua thread,
satu thread menulis ke buffer sementara thread lain membaca dari buffer, thread
yang membaca perlu menunggu sampai ada data yang tersedia dalam buffer
sebelum membaca data. Dalam hal ini, thread penulis dapat mengirim sinyal ke
thread pembaca menggunakan Conditional Variable ketika ada data yang tersedia
untuk dibaca.

 Mutex

Mutex digunakan ketika kita ingin mengatur akses ke sumber daya bersama
tunggal. Misalnya, jika ada dua thread yang ingin mengakses sumber daya
tunggal seperti variabel global, kita dapat menggunakan Mutex untuk memastikan
bahwa hanya satu thread yang dapat mengakses variabel tersebut pada satu
waktu. Dengan menggunakan Mutex, kita dapat menghindari situasi seperti race
condition di mana dua thread mencoba mengakses variabel secara bersamaan.

Dalam penggunaannya, kita dapat menggunakan kombinasi dari ketiga jenis


sinkronisasi ini untuk mengatur akses ke sumber daya bersama dalam lingkungan
komputasi yang dilakukan secara paralel. Misalnya, kita dapat menggunakan

Laporan Praktikum Sistem Operasi 4


Mutex dan Conditional Variable untuk memastikan bahwa hanya satu thread yang
dapat mengakses sumber daya bersama tunggal pada satu waktu dan
mengirimkan sinyal ke thread lain ketika sumber daya tersebut tersedia untuk
digunakan. Sedangkan Semaphore dapat digunakan bersama dengan Mutex untuk
membatasi jumlah thread yang dapat mengakses sumber daya bersama secara
bersamaan.

3. Pertanyaan:
Sinkronisasi apa yang paling baik digunakan?
Jawab:

Tidak ada jenis sinkronisasi tunggal yang terbaik untuk digunakan dalam semua
situasi. Keputusan untuk menggunakan jenis sinkronisasi tertentu tergantung pada
konteks dan kebutuhan program.

Jika kita ingin membatasi jumlah thread yang dapat mengakses sumber daya
bersama secara bersamaan, maka Semaphore adalah pilihan yang baik. Jika
thread perlu menunggu kondisi tertentu terpenuhi sebelum melanjutkan eksekusi
mereka, maka Conditional Variable adalah pilihan yang baik. Jika kita ingin
mengatur akses ke sumber daya bersama tunggal, maka Mutex adalah pilihan
yang baik.

Dalam beberapa kasus, kombinasi dari beberapa jenis sinkronisasi dapat


memberikan solusi terbaik. Misalnya, kita dapat menggunakan Mutex untuk
menghindari race condition pada variabel bersama tunggal, menggunakan
Conditional Variable untuk menunggu kondisi tertentu terpenuhi sebelum
melanjutkan eksekusi, dan menggunakan Semaphore untuk membatasi jumlah
thread yang dapat mengakses sumber daya bersama secara bersamaan.

Oleh karena itu, untuk menentukan jenis sinkronisasi yang terbaik untuk
digunakan, penting untuk mempertimbangkan kebutuhan program dan cara
terbaik untuk mengelola sumber daya bersama secara benar dan efisien dalam
lingkungan komputasi paralel.

Laporan Praktikum Sistem Operasi 5

Anda mungkin juga menyukai