🎓 Bounlu tarafından hazırlandı
42.654 görüntülenme

Süreç Senkronizasyonu Nedir?

Bilgisayar sistemlerinde aynı anda birden fazla süreç (process) çalışabilir. Bu süreçler, bellek, I/O cihazları gibi paylaşılan kaynaklara erişmek isteyebilirler. Süreç senkronizasyonu, bu erişimi düzenleyerek veri tutarlılığını ve sistem kararlılığını sağlamak için kullanılan tekniklerdir.

Kısa cevap

Süreç senkronizasyonu, birden fazla sürecin paylaşılan kaynaklara aynı anda erişmesini engelleyerek veya düzenleyerek veri yarışlarını (race conditions) önleyen ve sistemin doğru çalışmasını sağlayan bir mekanizmadır.

01

Adım adım çözümlü örnekler

İki sürecin paylaşılan bir değişkene erişimi nasıl senkronize edilir?

1. Kritik bölge (critical section) tanımlanır: Paylaşılan değişkene erişilen kod parçasıdır.
2. Senkronizasyon mekanizması seçilir: Örneğin, mutex (mutually exclusive) kilitler veya semaforlar kullanılabilir.
3. Süreçler, kritik bölgeye girmeden önce kilidi almaya çalışır. Kilit alınırsa kritik bölgeye girilir, aksi halde beklenir.
4. Kritik bölgeden çıkarken kilit serbest bırakılır, böylece başka bir süreç kilidi alabilir.

Üretici-Tüketici (Producer-Consumer) problemi nedir ve nasıl çözülür?

1. Problem: Bir üretici süreç, bir tampona (buffer) veri üretir ve bir tüketici süreç bu tampondan veriyi tüketir. Tamponun boyutu sınırlıdır.
2. Senkronizasyon İhtiyacı: Üretici dolu tampona veri ekleyemez, tüketici boş tampondan veri alamaz.
3. Çözüm: İki adet semafor kullanılır: 'boş_yer' (üretici için) ve 'dolu_yer' (tüketici için). Ayrıca tamponun erişimi için bir mutex kullanılır. Üretici 'boş_yer' semaforunu azaltır, tüketici 'dolu_yer' semaforunu azaltır. Her ikisi de tampon erişimi için mutex kullanır.
02

Bilgi kartları

03

Mini test

S1.Aşağıdakilerden hangisi süreç senkronizasyonu için kullanılan bir mekanizma DEĞİLDİR?

Doğru cevap: C. İş parçacığı (thread), bir sürecin alt birimidir ve senkronizasyon mekanizması değildir. Mutex, semafor ve kondisyon değişkenleri senkronizasyon mekanizmalarıdır.

S2.Kritik bölgeye girmeden önce hangi işlem gerçekleştirilmelidir?

Doğru cevap: B. Kritik bölgeye girmeden önce, o bölgeye sadece bir sürecin girebilmesini sağlamak için bir giriş protokolü (genellikle kilidi alma) uygulanır.

S3.Üretici-Tüketici probleminde, üretici dolu tampona veri eklemeye çalıştığında ne olur?

Doğru cevap: B. Üretici, eğer tampon doluysa, 'boş_yer' semaforunun değerinin sıfır olması nedeniyle beklemeye alınır ve bir tüketici veri aldığında tekrar çalışmaya başlar.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Süreç senkronizasyonu, süreçlerin birbirini engellemeden serbestçe çalışmasını sağlar.Doğrusu: Süreç senkronizasyonu, süreçlerin paylaşılan kaynaklara erişimini düzenleyerek gerektiğinde birbirini beklemesini sağlar.

Her paylaşılan kaynak için tek bir mutex yeterlidir.Doğrusu: Her paylaşılan kaynak veya kaynak grubu için uygun bir senkronizasyon mekanizması (mutex, semafor vb.) seçilmeli ve doğru şekilde uygulanmalıdır.

05

Sıkça sorulan sorular

Süreç senkronizasyonu neden önemlidir?

Birden fazla sürecin aynı anda paylaşılan verilere erişmesi durumunda veri tutarsızlığı (veri yarışı) oluşabilir. Senkronizasyon, bu tür hataları önleyerek sistemin güvenilir ve doğru çalışmasını sağlar.

İş parçacığı (thread) senkronizasyonu ile süreç senkronizasyonu arasındaki fark nedir?

İş parçacıkları aynı bellek alanını paylaştığı için daha sıkı senkronizasyon gerektirir ve senkronizasyon mekanizmaları genellikle daha hafiftir. Süreçler ise daha bağımsızdır ve genellikle IPC (Inter-Process Communication) mekanizmalarıyla senkronize edilirler.

Ölü kilit (deadlock) nedir ve senkronizasyonla ilgisi nedir?

Ölü kilit, iki veya daha fazla sürecin birbirlerinin sahip olduğu kaynakları sonsuza dek beklemesi durumudur. Yanlış senkronizasyon uygulamaları ölü kilitlere yol açabilir.

İlgili konular