Feribot Simülasyonu
Ferry Simulation, bir İşletim Sistemleri dersi dönem projesi olarak Java 17 ile geliştirilmiş, çok iş parçacıklı bir feribot taşımacılığı simülasyonudur. A ve B sahilleri arasında araç taşıyan bu sistemde 30 araç (ambulans, otomobil, minibüs, kamyon) ve 2 feribot, her biri bağımsız bir thread olarak eş zamanlı çalışmaktadır. Projenin teknik altyapısı Semaphore, ReentrantLock, Condition ve CountDownLatch gibi Java senkronizasyon primitifleri üzerine inşa edilmiştir. Gişe geçişleri, FIFO bekleme kuyruğu ve feribot kalkış kararları özenle senkronize edilmiş; busy-waiting tamamen ortadan kaldırılmıştır. Ambulanslar her zaman kuyruğun önüne geçerken, FERRY_MAX_WAIT_TIME parametresiyle de açlık (starvation) problemi önlenmektedir. Projeye eklenen bonus özellikler arasında çalışma zamanında parametrelerin ayarlanabildiği config.properties, canlı ASCII gösterge paneli ve Swing tabanlı masaüstü arayüzü öne çıkmaktadır. Yapılan testlerde 10'dan fazla çalıştırmada hiçbir deadlock ya da race condition gözlemlenmemiş; tüm araçlar başarıyla gidiş-dönüş tamamlamıştır.