🔄 Concurrency & Synchronization

Level: Advanced

Concurrency adalah kemampuan sistem operasi untuk menjalankan banyak proses atau thread secara bersamaan. Namun, tanpa synchronization, proses bisa saling berebut resource dan menimbulkan masalah. Bayangkan beberapa orang sedang menulis di papan tulis yang sama: jika tidak ada aturan giliran, tulisan bisa tumpang tindih dan kacau.

📖 Penjelasan Singkat

OS menggunakan algoritma sinkronisasi untuk memastikan semua proses berjalan adil dan konsisten.

🛠️ Praktik Kecil

Coba jalankan program multithreading sederhana (contoh Python):

import threading

x = 0

def tambah():
    global x
    for _ in range(1000000):
        x += 1

t1 = threading.Thread(target=tambah)
t2 = threading.Thread(target=tambah)

t1.start()
t2.start()
t1.join()
t2.join()

print("Hasil:", x)

👉 Jalankan beberapa kali. Hasilnya bisa berbeda-beda karena terjadi race condition.

🎮 Mini Challenge

Bayangkan ada dua orang yang ingin menggunakan printer yang sama:

Tugas: Jelaskan kenapa situasi ini disebut deadlock, dan bagaimana OS bisa mencegahnya dengan mekanisme sinkronisasi.