• Tidak ada hasil yang ditemukan

Tugas 7 SO(2022210123)

N/A
N/A
Anthony pedro

Academic year: 2025

Membagikan "Tugas 7 SO(2022210123)"

Copied!
3
0
0

Teks penuh

(1)

NAMA : ANTHONY PEDRO NPM : 2022210123

TUGAS PERT 7 SISTEM OPERASI

1. Apa yang Dimaksud dengan Race Condition?

Race condition adalah kondisi yang terjadi ketika dua atau lebih proses atau thread mengakses data atau sumber daya bersama pada waktu yang sama dan hasil akhirnya bergantung pada urutan atau jadwal pelaksanaan proses tersebut. Kondisi ini dapat menyebabkan perilaku tak terduga atau error, terutama bila proses-proses ini melakukan operasi write atau update pada data bersama.

Untuk mengatasi race condition, diperlukan mekanisme sinkronisasi untuk mengatur akses ke sumber daya bersama.

2. Apa yang Dimaksud dengan Critical Section?

Critical section adalah bagian dari kode dalam proses atau thread di mana terdapat akses ke sumber daya atau data bersama yang harus diproteksi agar tidak diakses secara bersamaan oleh lebih dari satu proses atau thread. Masalah critical section ini umumnya dihadapi dalam pemrograman concurrent dan multiprogramming, di mana beberapa proses berjalan pada waktu yang sama.

Untuk menyelesaikan masalah critical section, terdapat tiga syarat utama yang harus dipenuhi:

Mutual Exclusion: Hanya satu proses yang dapat berada di dalam critical section pada satu waktu. Ini untuk mencegah race condition.

Progress: Jika tidak ada proses dalam critical section, dan terdapat satu atau lebih proses yang ingin masuk, maka salah satu proses tersebut harus diizinkan untuk masuk tanpa adanya penundaan yang tidak diperlukan.

Bounded Waiting: Terdapat batas maksimal waktu bagi proses untuk menunggu masuk ke dalam critical section sehingga tidak ada proses yang harus menunggu selamanya (starvation).

3. Bagaimana Algoritma Bakery untuk Sinkronisasi Banyak Proses (n Proses)?

Algoritma Bakery adalah algoritma untuk sinkronisasi proses pada critical section yang dirancang oleh Leslie Lamport untuk menghindari race condition. Algoritma ini bekerja dengan prinsip yang mirip dengan antrian pada toko roti: setiap proses diberi nomor yang menunjukkan giliran mereka.

Berikut langkah-langkahnya:

Setiap proses yang ingin memasuki critical section mengambil "nomor tiket" yang lebih besar dari semua nomor yang saat ini aktif.

Setelah mendapat nomor, proses akan menunggu sampai nomor mereka adalah yang paling kecil dibandingkan proses lain yang juga ingin memasuki critical section.

Proses dapat memasuki critical section hanya jika nomor mereka lebih kecil dari proses lain yang ingin masuk.

(2)

Setelah keluar dari critical section, proses melepaskan nomor tersebut sehingga proses lain dapat melanjutkan.

Algoritma ini efektif untuk sinkronisasi banyak proses karena memastikan bahwa hanya satu proses yang bisa masuk ke critical section, dan setiap proses mendapat giliran.

4. Apa yang Dimaksud dengan Semaphore dan Sebutkan Operasi pada Semaphore

Semaphore adalah variabel atau struktur data yang digunakan untuk mengelola akses ke sumber daya bersama dalam lingkungan concurrent. Semaphore memiliki dua operasi utama, yaitu wait (P) dan signal (V):

Wait (P): Operasi ini mengurangi nilai semaphore. Jika nilai semaphore kurang dari nol, proses akan diblokir atau menunggu.

Signal (V): Operasi ini menambah nilai semaphore. Jika ada proses yang sedang menunggu (karena nilai semaphore negatif), operasi ini akan membangunkan salah satu proses yang menunggu.

Semaphore dapat digunakan dalam berbagai bentuk sinkronisasi proses, terutama untuk memastikan mutual exclusion dan mencegah race condition.

5. Bagaimana Struktur Semaphore yang Digunakan untuk Menyelesaikan Permasalahan?

a. Bounded Buffer Problem

Dalam bounded buffer problem (masalah produsen-konsumen), terdapat sebuah buffer berukuran tetap, dan dua tipe proses: produsen (yang menambahkan data ke buffer) dan konsumen (yang mengambil data dari buffer). Untuk menyelesaikan masalah ini, digunakan tiga semaphore:

Mutex: Menjaga agar hanya satu proses yang dapat mengakses buffer pada suatu waktu (mutual exclusion).

Empty: Menghitung jumlah ruang kosong dalam buffer. Hanya produsen yang dapat mengurangi nilai empty.

Full: Menghitung jumlah item yang ada dalam buffer. Hanya konsumen yang dapat mengurangi nilai full.

b. Reader and Writer Problem

Dalam reader and writer problem, terdapat beberapa proses yang membaca dan menulis ke data bersama. Pembaca bisa membaca bersama-sama, tetapi penulis harus mengakses data secara eksklusif. Struktur semaphore yang digunakan adalah:

Mutex: Mengontrol akses ke counter pembaca sehingga hanya satu pembaca yang dapat memperbarui counter pada suatu waktu.

Write: Memastikan bahwa hanya satu penulis yang dapat mengakses data, dan tidak ada pembaca saat proses menulis berlangsung.

(3)

c. Dining Philosopher Problem

Dalam dining philosopher problem, beberapa filsuf duduk di meja bundar dengan satu garpu di antara masing-masing dari mereka. Untuk makan, seorang filsuf memerlukan dua garpu (di kiri dan kanan). Semaphore yang digunakan:

Semaphore untuk setiap garpu: Setiap garpu diwakili oleh sebuah semaphore, di mana setiap filsuf harus mendapatkan dua semaphore (garpu) sebelum dapat makan.

Semaphore tambahan: Beberapa implementasi menambahkan semaphore tambahan untuk mengatur jumlah filsuf yang dapat mengambil garpu pada saat yang sama, menghindari situasi deadlock di mana setiap filsuf hanya memegang satu garpu.

Referensi

Dokumen terkait

Tugas dan tanggung jawab bagian sumber daya manusia pada PT PLN (Persero) UIP RING SUM-I mengkoordinir kegiatan Administrasi Sumber Daya Manusia, meliputi penyusunan

(6) Penyediaan sumber daya air sebagaimana dimaksud pada ayat (2) direncanakan dan ditetapkan sebagai bagian dalam rencana pengelolaan sumber daya air pada setiap wilayah sungai

Konteks ini, diwakili oleh kelas Context Android, dapat digunakan dalam kode aplikasi untuk mendapatkan akses ke sumber daya aplikasi pada saat runtime.. Selain itu, berbagai

Penyediaan sumber daya air sebagaimana dimaksud pada ayat (2) direncanakan dan ditetapkan sebagai bagian dalam rencana pengelolaan sumber daya air pada setiap wilayah sungai

Penyiapan bahan pelaksanaan kebijakan di bidang layanan hubungan media, Penguatan Kapasitas Sumber Daya Komunikasi Publik dan penyediaan akses informasi, pelayanan

NIST mendefiniskan Clud Computing adalah sebuah model untuk kenyamanan, akses jaringan on-demand untuk menyatukan pengaturan konfigurasi sumber daya komputasi (seperti,

3) Efficiency, banyaknya sumber daya komputasi dan kode program yang dibutuhkan suatu perangkat lunak untuk melakukan fungsinya. 4) Integrity, sejauh mana akses ke

Dengan mengakses sumber daya yang dapat digunakan bersama-sama tersebut akan memberikan keuntungan dalam : • Meningkatkan kecepatan komputasi • Meningkatkan ketersediaan data •