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.
1. Pertanyaan :
Tuliskan perbedaan dari Sinkronisasi dengan Semaphore, Sinkronisasi dengan
Conditional Variable, dan Sinkronisasi dengan MUTEX!
Jawab:
Perbedaan dari Sinkronisasi dengan Semaphore
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.
Dalam hal ini, Conditional Variable membantu memastikan bahwa thread tidak
menghabiskan waktu menunggu sumber daya yang tidak tersedia, sementara
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 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.
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
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.
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.
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.