Bölüm 5: Süreç Senkronizasyonu

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Bölüm 5: Süreç Senkronizasyonu"

Transkript

1 Bölüm 5: Süreç Senkronizasyonu Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013

2 Bölüm 5: Süreç Senkronizasyonu Giriş Kritik bölüm problemi Peterson ın Çözümü Senkronizasyon Donanımı Mutex Kilitleri Semaforlar Klasik Senkronizasyon Problemleri İzleyiciler Senkronizasyon Örnekleri Alternatif Yaklaşımlar 5.2 Silberschatz, Galvin and Gagne 2013

3 Hedefler Süreç senkronizasyonu kavramına giriş Paylaşılan verinin tutarlılığına ilişkin kritik bölüm problemine giriş Kritik bölüm problemine yazılım ve donanım çözümleri sunmak Klasik süreç senkronizasyonu problemlerini incelemek Süreç senkronizasyonu problemlerini çözmekte kullanılan araçları incelemek 5.3 Silberschatz, Galvin and Gagne 2013

4 Giriş Süreçler eşzamanlı olarak yürütülebilir. Herhangi bir anda kesilebilirler, yürütülme yarım kalabilir. Paylaşılan veriye eşzamanlı erişim veri tutarsızlığına yol açabilir. Veri tutarlılığını ve işbirliği yapan süreçlerin sıralı yürütülmesini sağlamak için mekanizmalar gereklidir. 5.4 Silberschatz, Galvin and Gagne 2013

5 Giriş Üretici-tüketici problemi için bütün buffer ları dolduran bir çözüm istiyoruz. Bunu yapmak için bir sayaçla dolu buffer sayısını takip edebiliriz. Sayaç 0 dan başlar ve üretici tarafından arttırılır, tüketici tarafından azaltılır. 5.5 Silberschatz, Galvin and Gagne 2013

6 Üretici while (true) { /* produce an item in next produced */ } while (counter == BUFFER_SIZE) ; /* do nothing */ buffer[in] = next_produced; in = (in + 1) % BUFFER_SIZE; counter++; 5.6 Silberschatz, Galvin and Gagne 2013

7 Tüketici while (true) { while (counter == 0) ; /* do nothing */ next_consumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; counter--; /* consume the item in next consumed */ } 5.7 Silberschatz, Galvin and Gagne 2013

8 Yarış Durumu counter++ farklı şekillerde gerçekleştirilebilir: register1 = counter register1 = register1 + 1 counter = register1 counter-- farklı şekillerde gerçekleştirilebilir: register2 = counter register2 = register2-1 counter = register2 count = 5 durumundan başlayan örnek yürütme: S0: producer execute register1 = counter {register1 = 5} S1: producer execute register1 = register1 + 1 {register1 = 6} S2: consumer execute register2 = counter {register2 = 5} S3: consumer execute register2 = register2 1 {register2 = 4} S4: producer execute counter = register1 {counter = 6 } S5: consumer execute counter = register2 {counter = 4} 5.8 Silberschatz, Galvin and Gagne 2013

9 Kritik Bölüm Problemi n süreçli {p 0, p 1, p n-1 } bir sistem düşünün. Her sürecin kritik bölüm denen bir kod parçası var Süreç ortak değişkenleri değiştiriyor, tablo güncelliyor, dosyaya yazıyor vs. olabilir. Bir süreç kendi kritik bölümündeyken başka hiçbir süreç kritik bölümde olamaz. Kritik bölüm problemi bu durumu çözmek için protokol geliştirmeyi hedefler. Her süreç kritik bölüme girmek için izin istemeli (entry section giriş bölümü), daha sonra çıkış bölümü - exit section bulunabilir, daha sonra kalan bölüm - remainder section 5.9 Silberschatz, Galvin and Gagne 2013

10 Kritik Bölüm P i sürecinin genel yapısı 5.10 Silberschatz, Galvin and Gagne 2013

11 P i Sürecinin Algoritması do { while (turn == j); critical section turn = j; remainder section } while (true); 5.11 Silberschatz, Galvin and Gagne 2013

12 Kritik Bölüm Problemine Çözüm 1. Karşılıklı Dışlama (Mutual Exclusion) - Eğer P i süreci kritik bölümündeyse, başka bir süreç kritik bölümde olamaz. 2. İlerleme Eğer hiçbir süreç kritik bölümde değilse ve kritik bölüme girmek isteyen süreçler varsa, kritik bölüme girecek sonraki sürecin seçimi süresiz ertelenemez. 3. Sınırlı Bekleme (Bounded Waiting) Bir sürecin kritik bölüme girme isteği yapmasından bu isteğin yerine getirilmesine kadarki sürede diğer süreçlerin kendi kritik bölümlerine kaç kere girebilecekleri sınırlanmış olmalıdır. Her sürecin sıfır olmayan bir hızda yürütüldüğü varsayılır. n sürecin göreceli hızları hakkında varsayım yapılmaz Silberschatz, Galvin and Gagne 2013

13 OS içinde Kritik Bölüm Yönetimi İki yaklaşım Preemptive çekirdek modundaki süreçlerin boşa çıkarılmasına izin verir Non-preemptive çekirdek modundan çıkana kadar çalışır, engeller, veya CPU yu kendisi verir. Çekirdek modunda yarış durumları oluşmaz Silberschatz, Galvin and Gagne 2013

14 Peterson Çözümü İki süreç için çözüm load ve store makine dili komutlarının atomik olduğunu, yani kesilemeyeceklerini varsayalım. Süreçler iki değişken paylaşır: int turn; Boolean flag[2] turn değişkeni kritik bölüme girme sırasının kimde olduğunu gösterir. flag dizisi bir sürecin kritik sürece girmeye hazır olup olmadığını gösterir. flag[i] = true ise P i hazırdır Silberschatz, Galvin and Gagne 2013

15 P i Sürecinin Algoritması do { flag[i] = true; turn = j; while (flag[j] && turn == j); critical section flag[i] = false; remainder section } while (true); 5.15 Silberschatz, Galvin and Gagne 2013

16 Peterson Çözümü Üç kritik bölüm gereksiniminin karşılandığı ispatlanabilir: 1. Karşılıklı dışlama korunur. P i kritik bölüme ancak şu koşulda girer: flag[j] == false veya turn == i 2. Süreç ilerlemesi sağlanır. 3. Sınırlı bekleme gereksinimi karşılanır Silberschatz, Galvin and Gagne 2013

17 Senkronizasyon Donanımı Birçok sistemde kritik bölüm kodunun gerçekleştirimini destekleyen donanım vardır. Bundan sonra açıklanacak bütün çözümler locking (kiliteme) fikrine dayalıdır. Kritik bölümler kilitlerle korunur. Tekli işlemciler kesmeleri devre dışı bırakabilir. Çalışan kod preemption olmadan yürütülür. Çok işlemcili sistemlerde verimsizdir. Modern makineler özel atomik donanım komutları sunar. Atomic = kesilemez Ya bellek kelimesini sına (test) ve değerini değiştir (set). Veya iki bellek kelimesinin değerlerini değiş-tokuş et (swap) Silberschatz, Galvin and Gagne 2013

18 Kritik Bölüm Problemine Kilitlerle Çözüm do { acquire lock critical section release lock remainder section } while (TRUE); 5.18 Silberschatz, Galvin and Gagne 2013

19 test_and_set Komutu Tanım: boolean test_and_set (boolean *target) { boolean rv = *target; *target = TRUE; return rv: } 1. Otomatik olarak yürütülür. 2. Verilen parametrenin orijinal değerini döndürür. 3. Verilen parametrenin yeni değerini TRUE olarak değiştirir Silberschatz, Galvin and Gagne 2013

20 test_and_set() Kullanan Çözüm Paylaşılan boolean değişken - lock, ilk değeri FALSE Çözüm: do { while (test_and_set(&lock)) ; /* do nothing */ lock = false; } while (true); /* critical section */ /* remainder section */ 5.20 Silberschatz, Galvin and Gagne 2013

21 compare_and_swap Komutu Tanım: int compare _and_swap(int *value, int expected, int new_value) { int temp = *value; if (*value == expected) *value = new_value; return temp; } 1. Otomatik olarak yürütülür. 2. Verilen value parametresinin orijinal değerini döndürür. 3. Ancak value == expected ise, value parametresine verilen new_value parametresinin değerini yaz. Değiş-tokuş için yukarıdaki eşitlik şarttır Silberschatz, Galvin and Gagne 2013

22 compare_and_swap Kullanan Çözüm Paylaşılan tamsayı lock ilk değeri 0 Çözüm: do { while (compare_and_swap(&lock, 0, 1)!= 0) ; /* do nothing */ /* critical section */ lock = 0; /* remainder section */ } while (true); 5.22 Silberschatz, Galvin and Gagne 2013

23 test_and_set ile Sınırlı Beklemeli Karşılıklı Dışlama do { waiting[i] = true; key = true; while (waiting[i] && key) key = test_and_set(&lock); waiting[i] = false; /* critical section */ j = (i + 1) % n; while ((j!= i) &&!waiting[j]) j = (j + 1) % n; if (j == i) else lock = false; waiting[j] = false; /* remainder section */ } while (true); 5.23 Silberschatz, Galvin and Gagne 2013

24 Mutex Kilitleri Bundan önce sunulan donanım çözümleri karmaşıktır ve genelde uygulama programcılarının kullanımına açık değildir. OS tasarımcıları kritik bölüm problemini çözmek için yazılım araçları geliştirirler. En basiti mutex kilididir. Kritik bölümü korumak için önce kilit acquire() ile alınır, sonra release() ile bırakılır. Kilidin alınabilir olup olmadığını bir boolean değişken belirler. acquire() ve release() çağrıları atomik olmalıdır. Çoğunlukla donanımdaki atomik komutlarla gerçekleştirilirler. Fakat bu çözüm busy waiting (meşgul bekleme) gerektirir Silberschatz, Galvin and Gagne 2013

25 acquire() ve release() acquire() { while (!available) } ; /* busy wait */ available = false;; release() { } do { available = true; acquire lock critical section release lock remainder section } while (true); 5.25 Silberschatz, Galvin and Gagne 2013

26 Semafor Süreçlerin senkronize olması için mutex kilitlerinden daha ileri yöntemler sunan senkronizasyon aracı Semafor S tamsayı değişken Sadece iki bölünemez (atomik) işlem ile erişilebilir. wait() ve signal() Eski isimleri P() ve V() wait() işlemi wait(s) { } while (S <= 0) S--; ; // busy wait signal() işlemi signal(s) { } S++; 5.26 Silberschatz, Galvin and Gagne 2013

27 Semafor Kullanımı Sayan semafor sınırsız tamsayı değer İkili semafor sadece 0 veya 1 olabilen tamsayı değer mutex kilidi ile aynı Çeşitli senkronizasyon problemlerini çözebilir. P 1 ve P 2 süreçlerinde S 1 olayı S 2 den önce gerçekleşmek zorunda olsun. synch semaforu oluştur ve 0 yap. P1: S 1 ; signal(synch); P2: wait(synch); S 2 ; Sayan semafor S ikili semafor olarak gerçekleştirilebilir Silberschatz, Galvin and Gagne 2013

28 Semafor Gerçekleştirimi Aynı semafor üzerinde aynı anda iki sürecin wait() ve signal() yürütememesi garantilenmelidir. wait ve signal kodunun kritik bölüme koyulduğu bir kritik bölüm problemine dönüştü. Şimdi kritik bölüm gerçekleştiriminde meşgul bekleme bulunabilir. Ama kod kısa Kritik bölüm nadiren doluysa meşgul bekleme azdır. Uygulamalar kritik bölümlerde uzun zaman harcayabilir, dolayısıyla bu iyi bir çözüm değildir Silberschatz, Galvin and Gagne 2013

29 Meşgul Beklemesiz Semafor Gerçekleştirimi Her semafor için bir bekleme kuyruğu bulunur. Kuyruktaki her girdi iki tür veri tutar: değer (tamsayı) bir sonraki kayda pointer İki işlem: block (engelle) işlemi çağıran süreci uygun bekleme kuyruğuna yerleştir. wakeup (uyan) bekleme kuyruğundaki süreçlerden birini oradan çıkarıp hazır kuyruğuna yerleştir. typedef struct{ int value; struct process *list; } semaphore; 5.29 Silberschatz, Galvin and Gagne 2013

30 Meşgul Beklemesiz Semafor Gerçekleştirimi wait(semaphore *S) { } S->value--; if (S->value < 0) { add this process to S->list; } block(); signal(semaphore *S) { } S->value++; if (S->value <= 0) { remove a process P from S->list; } wakeup(p); 5.30 Silberschatz, Galvin and Gagne 2013

31 Deadlock and Starvation Deadlock (kilitlenme) iki veya daha fazla sürecin yalnızca içlerinden birinin sebep olabileceği bir olayı süresiz beklemesi S ve Q semafor, ilk değerleri 1 P 0 P 1 wait(s); wait(q); wait(q); wait(s); signal(s); signal(q); signal(q); signal(s); Starvation (açlık) süresiz engelleme Sürecin askıda beklediği semafor kuyruğundan hiç çıkamaması Priority Inversion (önceliğin ters dönmesi) düşük öncelikli sürecin elindeki bir kilide yüksek öncelikli sürecin ihtiyaç duyması Çözüm için priority-inheritance (öncelik kalıtım) protocol 5.31 Silberschatz, Galvin and Gagne 2013

32 Klasik Senkronizasyon Problemleri Önerilen yeni senkronizasyon yöntemlerini sınamak için kullanılan klasik problemler: Bounded-Buffer (Sınırlı Arabellek) Problemi Readers and Writers (Okurlar ve Yazarlar) Problemi Dining-Philosophers (Yemek Yiyen Felsefeciler) Problemi 5.32 Silberschatz, Galvin and Gagne 2013

33 Sınırlı Arabellek Problemi n arabellek, her biri bir item tutabilir. mutex semaforunun ilk değeri 1 full semaforunun ilk değeri 0 empty semaforunun ilk değeri n 5.33 Silberschatz, Galvin and Gagne 2013

34 Sınırlı Arabellek Problemi Üretici sürecin yapısı do {... /* produce an item in next_produced */... wait(empty); wait(mutex);... /* add next produced to the buffer */... signal(mutex); signal(full); } while (true); 5.34 Silberschatz, Galvin and Gagne 2013

35 Sınırlı Arabellek Problemi Tüketici sürecin yapısı Do { wait(full); wait(mutex);... /* remove an item from buffer to next_consumed */... signal(mutex); signal(empty);... /* consume the item in next consumed */... } while (true); 5.35 Silberschatz, Galvin and Gagne 2013

36 Okurlar Yazarlar Problemi Eşzamanlı süreçler arasında paylaşılan veri kümesi Okurlar yalnızca okuyabilir; güncelleme yapamazlar Yazarlar hem okuyup hem yazabilir Problem birden fazla okurun aynı anda okumasına izin verme Bir anda sadece bir yazar veriye erişebilir Paylaşılan veri Veri kümesi rw_mutex semaforunun ilk değeri 1 mutex semaforunun ilk değeri 1 read_count semaforunun ilk değeri Silberschatz, Galvin and Gagne 2013

37 Okurlar Yazarlar Problemi Yazar sürecin yapısı do { wait(rw_mutex);... /* writing is performed */... signal(rw_mutex); } while (true); 5.37 Silberschatz, Galvin and Gagne 2013

38 Okurlar Yazarlar Problemi Okur sürecin yapısı do { wait(mutex); read_count++; if (read_count == 1) wait(rw_mutex); signal(mutex);... /* reading is performed */... wait(mutex); read count--; if (read_count == 0) signal(rw_mutex); signal(mutex); } while (true); 5.38 Silberschatz, Galvin and Gagne 2013

39 Okurlar ve Yazarlar Probleminin Çeşitleri İlk farklı çeşit yazarın paylaşılan nesneye erişim izni olmadığı sürece okurlar bekletilmez. İkinci farklı çeşit yazar hazır olur olmaz yazma işlerimi yapar. İki durumda da açlık olabilir. Çözüm bazı sistemlerde çekirdekteki okur-yazar kilitleri ile sağlanır Silberschatz, Galvin and Gagne 2013

40 Yemek Yiyen Filozoflar Problemi Çinli filozoflar düşünerek ve yiyerek hayatlarını sürdürürler. Tabaktaki pilavı yemek için iki çubuk almaları gerekir. Yedikten sonra ikisini de bırakırlar. 5 filozoflu durum Paylaşılan veri Pilav tabağı (veri kümesi) chopstick [5] semaforunun ilk değeri Silberschatz, Galvin and Gagne 2013

41 Yemek Yiyen Filozoflar Problemi Algoritması Filozof i: do { wait (chopstick[i] ); wait (chopstick[ (i + 1) % 5] ); // eat signal (chopstick[i] ); signal (chopstick[ (i + 1) % 5] ); // think } while (TRUE); Bu algoritmadaki sorun nedir? 5.41 Silberschatz, Galvin and Gagne 2013

42 Yemek Yiyen Filozoflar Problemi Algoritması Deadlock yönetimi En fazla 4 filozofun masada oturmasına izin ver. Filozofun çubukları almasına ancak iki çubuk da boştaysa izin ver. (alma kritik bölümde olmalı) Asimetrik çözüm kullan tek numaralı filozof önce sol sonra sap çubuğu, çift numaralı filozof önce sağ sonra sol çubuğu alsın Silberschatz, Galvin and Gagne 2013

43 Semafor Sorunları Semafor işlemlerinin yanlış kullanımı: signal (mutex). wait (mutex) wait (mutex) wait (mutex) wait (mutex) veya signal (mutex) ten birini (veya ikisini) yazmamak Kilitlenme ve açlık mümkün Silberschatz, Galvin and Gagne 2013

44 İzleyiciler Süreç senkronizasyonu için kolay ve etkin bir mekanizma sunan bir soyutlama Abstract data type (soyut veri tipi), iç değişkenlere ancak yordam içindeki kodla erişilebilir. İzleyici içinde bir anda sadece bir süreç aktif olabilir. Bazı senkronizasyon yöntemlerini modellemek için yeterince güçlü değildir. monitor monitor-name { // shared variable declarations procedure P1 ( ) {. } procedure Pn ( ) { } } } Initialization code ( ) { } 5.44 Silberschatz, Galvin and Gagne 2013

45 İzleyicinin Şematik Görüntüsü 5.45 Silberschatz, Galvin and Gagne 2013

46 Koşul Değişkenleri condition x, y; Koşul değişkeni ile iki işlem yapılabilir: x.wait() çağıran süreç x.signal() işlemine kadar askıya alınır x.signal() x.wait() i çağırmış olan süreçlerden birini devam ettir x.wait() çağıran yoksa değişkene etkisi olmaz Silberschatz, Galvin and Gagne 2013

47 Koşul Değişkenleri ve İzleyici 5.47 Silberschatz, Galvin and Gagne 2013

48 Koşul Değişkeni Seçenekleri Eğer süreç P x.signal() çağırırsa, ve süreç Q x.wait() içinde askıdaysa, ardından ne olmalı? Q ve P paralel olarak çalışamaz. Eğer Q devam ederse, P bekler. Seçenekler Signal and wait P, Q izleyiciden ayrılana kadar veya başka bir koşul gerçekleşene kadar bekler. Signal and continue Q, P izleyiciden ayrılana kadar veya başka bir koşul gerçekleşene kadar bekler. İkisinin de iyi ve kötü yanları vardır. Concurrent Pascal içindeki izleyiciler P signal yürütünce anında izleyiciden ayrılır, Q devam eder. Mesa, C#, Java gibi başka dillerde gerçekleştirilmiştir Silberschatz, Galvin and Gagne 2013

49 Yemek Yiyen Filozoflara İzleyici Çözümü monitor DiningPhilosophers { enum { THINKING; HUNGRY, EATING) state [5] ; condition self [5]; } } void pickup (int i) { state[i] = HUNGRY; test(i); if (state[i]!= EATING) self[i].wait; void putdown (int i) { state[i] = THINKING; // test left and right neighbors test((i + 4) % 5); test((i + 1) % 5); 5.49 Silberschatz, Galvin and Gagne 2013

50 Yemek Yiyen Filozoflara İzleyici Çözümü void test (int i) { if ((state[(i + 4) % 5]!= EATING) && (state[i] == HUNGRY) && (state[(i + 1) % 5]!= EATING) ) { state[i] = EATING ; self[i].signal () ; } } } initialization_code() { for (int i = 0; i < 5; i++) state[i] = THINKING; } 5.50 Silberschatz, Galvin and Gagne 2013

51 Yemek Yiyen Filozoflara İzleyici Çözümü Her filozof i, pickup() ve putdown() işlemlerini aşağıdaki sırada çağırır: DiningPhilosophers.pickup(i); EAT DiningPhilosophers.putdown(i); Deadlock yok, ama açlık mümkün 5.51 Silberschatz, Galvin and Gagne 2013

52 Semaforlarla İzleyici Gerçekleştirimi Değişkenler semaphore mutex; // (başta = 1) semaphore next; // (başta = 0) int next_count = 0; Her yordam F yerine şu koyulur: wait(mutex); body of F; if (next_count > 0) signal(next) else signal(mutex); İzleyici içinde karşılıklı dışlama garanti edilir Silberschatz, Galvin and Gagne 2013

53 Koşul Değişkenleriyle İzleyici Gerçekleştirimi Her koşul değişkeni x için: semaphore x_sem; // (başta = 0) int x_count = 0; x.wait işlemi şöyle gerçekleştirilebilir: x_count++; if (next_count > 0) signal(next); else signal(mutex); wait(x_sem); x_count--; 5.53 Silberschatz, Galvin and Gagne 2013

54 Koşul Değişkenleriyle İzleyici Gerçekleştirimi x.signal işlemi şöyle gerçekleştirilebilir: if (x_count > 0) { next_count++; signal(x_sem); wait(next); next_count--; } 5.54 Silberschatz, Galvin and Gagne 2013

55 İzleyici İçindeki Süreçlerin Sürdürülmesi Birkaç süreç x koşulunun kuyruğundaysa, x.signal() yürütülünce hangisi devam etmelidir? FCFS (ilk gelene ilk hizmet) yetersiz olabilir. conditional-wait (koşullu bekleme) - x.wait(c) c - priority number (öncelik sayısı) En küçük sayı (yani en yüksek öncelik) sahibi süreç ilk sıraya koyulur Silberschatz, Galvin and Gagne 2013

56 Tek Kaynak Ayırma Her sürecin kaynağı en çok ne kadar süreyle kullanacağını belirten öncelik sayıları var. Bunlar kullanılarak tek bir kaynak rakip süreçler arasında paylaştırılır. R.acquire(t);... kaynağa eriş;... R.release; R, ResourceAllocator tipinin bir örneği 5.56 Silberschatz, Galvin and Gagne 2013

57 Tek Kaynak Ayırma için İzleyici monitor ResourceAllocator { boolean busy; condition x; void acquire(int time) { if (busy) x.wait(time); busy = TRUE; } void release() { busy = FALSE; x.signal(); } initialization code() { busy = FALSE; } } 5.57 Silberschatz, Galvin and Gagne 2013

58 Senkronizasyon Örnekleri Solaris Windows Linux Pthreads 5.58 Silberschatz, Galvin and Gagne 2013

59 Solaris te Senkronizasyon Çok görevli, çok iş parçalı ve çok süreçli yapı için çeşitli kilitler vardır. Adaptive mutexes kısa kod bölümlerinden veriyi korumada verimlilik için Standard semafor gibi başlar Kilidi başka CPU üzerinde çalışan bir thread tutuyorsa, thread bekler Kilidi tutan thread çalışır durumda değilse, thread engellenir ve kilit bırakılana kadar uyur Koşul değişkenleri kullanılır. Uzun kod bölümlerinin veriye erişmesi gerektiğinde okur-yazar kilitleri kullanılır. Adaptive mutex veya okur-yazar kilidi bekleyen threadleri sıralamak için turnike kullanılır Silberschatz, Galvin and Gagne 2013

60 Windows ta Senkronizasyon Tek işlemcili sistemlerde global kaynaklara erişimi kontrol etmek için kesme maskeleri kullanılır. spinlocks - çok işlemcili sistemlerde Kilitleyen thread boşa çıkartılmaz. dispatcher objects - mutexler, semaforlar, olaylar, süreölçerler Events (olaylar) Koşul değişkeni gibi davranır. Süreölçerler süre dolunca bir veya daha fazla thread e haber verir Dispatcher objects signaled-state (nesne boşta) veya non-signaled state (thread engellenir) içinde bulunabilir Silberschatz, Galvin and Gagne 2013

61 Linux ta Senkronizasyonu Linux: Çekirdek Versiyon 2.6 öncesinde, kesmeleri devre dışı bırakarak kısa kritik bölümleri gerçekleştirirdi. Versiyon 2.6 ve sonrasında, tamamen preemptive Linux şunları sağlar: Semaforlar atomik tamsayılar spinlocks Okur-yazar kilitleri Tek cpu lu sistemde, spinlock yerine çekirdek preemption açılır ve kapanır Silberschatz, Galvin and Gagne 2013

62 Pthreads ile Senkronizasyon Pthreads API OS-bağımsızdır. Şunları sunar: mutex kilitleri Koşul değişkeni Taşıabilir olmayan eklentiler: Okur-yazar kilitleri spinlocks 5.62 Silberschatz, Galvin and Gagne 2013

63 Diğer Yaklaşımlar Transactional Memory OpenMP İşlevsel Programlama Dilleri 5.63 Silberschatz, Galvin and Gagne 2013

64 Transactional Memory Memory transaction atomik olarak yapılan okuma-yazma işlemleri dizisi void update() { /* read/write memory */ } 5.64 Silberschatz, Galvin and Gagne 2013

65 OpenMP OpenMP paralel programlamayı destekler. void update(int value) { #pragma omp critical { count += value } } #pragma omp critical altındaki kod kritik bölgedir ve atomik olarak çalışır Silberschatz, Galvin and Gagne 2013

66 İşlevsel Programlama Dilleri İşlevsel programlama dilleri farklı bir paradigma sunar, durum bilgisi tutmazlar. Değişkenler değer atamasından sonra değiştirilemez. Erlang, Scala gibi işlevsel dillere ilgi giderek artmaktadır Silberschatz, Galvin and Gagne 2013

67 Bölüm 5 Sonu Silberschatz, Galvin and Gagne 2013

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

Bölüm 6: İşlem Senkronizasyonu (1) Operating System Concepts with Java 8 th Edition

Bölüm 6: İşlem Senkronizasyonu (1) Operating System Concepts with Java 8 th Edition Bölüm 6: İşlem Senkronizasyonu (1) 6.1 Silberschatz, Galvin and Gagne 2009 İşlem Senkronizasyonu Arkaplan Bilgisi Kritik-kısım Problemi Peterson Çözümü Senkronizasyon Donanımı Semaforlar Senkronizasyonun

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM 6.2 Bu bölümde, Mutex ve Semafor Farkları Klasik Senkronizasyon

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM 6.1 Bu bölümde, Proses Senkronizasyonu Kritik Bölge Problemi

Detaylı

YZM 3102 İşletim Sistemleri Uygulama

YZM 3102 İşletim Sistemleri Uygulama YZM 3102 İşletim Sistemleri Uygulama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 6 Bu laboratuvarda, Semaphore Uygulamaları

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 PROCESS SENKRONİZASYONU (PROCESS SYNCHRONIZATION) Kritik Bölge Probleminin Olası Çözümleri Donanıma Dayalı Çözümler Donanıma Dayalı Çözümler Yazılım tabanlı kritik

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Süreçler Arası İletişim (IPC-Inter Process Communication) İşletim Sistemlerine Giriş - Ders02 1 Süreçler Arası İletişim Süreçler, sıklıkla birbirleri ile iletişim kurarlar. Bir

Detaylı

Bölüm 6: İşlem Senkronizasyonu (2) Operating System Concepts with Java 8 th Edition

Bölüm 6: İşlem Senkronizasyonu (2) Operating System Concepts with Java 8 th Edition Bölüm 6: İşlem Senkronizasyonu (2) 6.1 Silberschatz, Galvin and Gagne 2009 İşlem Senkronizasyonu Arkaplan Bilgisi Kritik-kısım Problemi Peterson Çözümü Senkronizasyon Donanımı Semaforlar Senkronizasyonun

Detaylı

Bölüm 7: Kilitlenme (Deadlocks)

Bölüm 7: Kilitlenme (Deadlocks) Bölüm 7: Kilitlenme (Deadlocks) Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 7: Kilitlenme (Deadlocks) Sistem modeli Kilitlenme Belirleme Kilitlenme Yönetim Yöntemleri

Detaylı

Prosesler Arası Haberleşme ve Senkronizasyon

Prosesler Arası Haberleşme ve Senkronizasyon 4 Prosesler Arası Haberleşme ve Senkronizasyon Eş Zamanlılık Eş zamanlı prosesler olması durumunda bazı tasarım konuları önem kazanır: Prosesler arası haberleşme Kaynak paylaşımı Birden fazla prosesin

Detaylı

Multicore/Multithread Programlama

Multicore/Multithread Programlama Multicore/Multithread Programlama Onur Tolga Şehitoğlu Bilgisayar Mühendisliği 7 Şubat 2008 Başlıklar 1 Gereksinimi Dal ile Süreç Çok İşlemci ve Dal Modelleri Neden Çoklu Dal Programlama? 2 Çok İşlemci/Çok

Detaylı

Bölüm 4: Threads (İş Parçaları)

Bölüm 4: Threads (İş Parçaları) Bölüm 4: Threads (İş Parçaları) Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 4: Threads (İş Parçaları) Genel bakış Çok çekirdekli programlama Çok iş parçalı modeller

Detaylı

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri Bölüm 13: Giriş-Çıkış (I/O) Sistemleri Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 13: Giriş-Çıkış (I/O) Sistemleri Genel bakış I/O donanımı Uygulama I/O arayüzü Çekirdek

Detaylı

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition Bölüm 5: İşlemci Zamanlaması 5.1 Silberschatz, Galvin and Gagne 2009 Temel Kavramlar Çoklu programlama sayesinde CPU kullanımının optimize edilmesi CPU I/O İşlem Döngüsü Bir işlemin çalıştırılması birbirlerini

Detaylı

ve Senkronizasyon Senkronizasyon Eş Zamanlılık Sorunlar Sorunlar Çözüm Örnek

ve Senkronizasyon Senkronizasyon Eş Zamanlılık Sorunlar Sorunlar Çözüm Örnek Eş Zamanlılık 4 Prosesler Arası Haberleşme ve Senkronizasyon Eş zamanlı prosesler olması durumunda bazı tasarım konuları önem kazanır: Prosesler arası haberleşme Kaynak paylaşımı Birden fazla prosesin

Detaylı

CENG/BILM 341 FINAL REVIEW. Dr. Esma Yıldırım

CENG/BILM 341 FINAL REVIEW. Dr. Esma Yıldırım CENG/BILM 341 FINAL REVIEW Dr. Esma Yıldırım Ques@on 1 Ques@on: An array of threads are working for filling and emptying a buffer that can hold mul@ple elements. There are two types of threads in the system.

Detaylı

İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI

İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI İŞLETİM SİSTEMLERİ DÖNEMİÇİ SINAVI 31 Mart 2011 1) (20 puan) Aşağıdaki soruları kısaca cevaplayınız. a) Bir proses çalışmış ve kısa bir süre sonra sonlanmıştır, bu arada sistemde çalışan başka prosesler

Detaylı

İŞLETİM SİSTEMLERİ. (Operating Systems)

İŞLETİM SİSTEMLERİ. (Operating Systems) İŞLETİM SİSTEMLERİ (Operating Systems) İşletim Sistemi Tanımı, Görevleri, Bilinen İşletim Sistemleri Çok Kullanıcılı Sistemler, Bellek Yönetim Birimi Linux ve Windows Ailesi, Bilinen İşletim Sistemleri

Detaylı

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara REALTIME LINUX 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Giriş Bilgisayar İşletim Sistemleri BLG 312 İplikler geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü vardır bazı durumlarda, aynı adres uzayında birden fazla akış kontrolü

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences İstemci-Sunucu Uygulamaları: Aktive Monitörler Pasif monitörden(paylaşılan durum) aktif

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 4 Bu bölümde, IPC (Interprocess Communication) Shared

Detaylı

Bölüm 7: Kilitlenmeler. Operating System Concepts with Java 8 th Edition

Bölüm 7: Kilitlenmeler. Operating System Concepts with Java 8 th Edition Bölüm 7: Kilitlenmeler 7.1 Silberschatz, Galvin and Gagne 2009 Bölüm 7: Kilitlenmeler Kilitlenme Problemi Sistem Modeli Kilitlenme Tarifi Kilitlenmeler için Çözüm Yöntemleri Kilitlenme Önleme Kilitlenmeden

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Süreçler ve İş Parçacıkları(Thread) İşletim Sistemlerine Giriş - Ders03 1 Süreç -Tüm modern bilgisayarlarda bir çok iş aynı anda yapılabilir. *kullanıcı programları çalışır *disk

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 5 Bu bölümde, Thread (İş Parçacığı) Thread lerin Faydaları

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition Bölüm 8: Ana Bellek 8.1 Silberschatz, Galvin and Gagne 2009 Bölüm 8: Ana Bellek Arka Plan Bilgisi Yer Değiştirme (Swapping) Bitişik Bellek Yerleşimi (Contiguous Memory Allocation) Sayfalama (Paging) Sayfa

Detaylı

İş Parçacıkları (Threads)

İş Parçacıkları (Threads) İş Parçacıkları (Threads) Bir elin nesi var iki elin sesi var -Atasözü- Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 11 1 İŞ PARÇACIKLARI (THREADS) Geçen bölümlerde yapılan uygulama örnekleri

Detaylı

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 5 Kuyruk VY ve ADT Basit Kuyruk (Simple Queue)

Detaylı

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1 Görsel Programlama DERS 11 Görsel Programlama - Ders11/ 1 ÇOKLU KULLANIM(Multi Threading) Günümüz işletim sistemleri çok görevli(multi tasking) dir. Aynı anda farklı programlar çalışmakta, görevler yerine

Detaylı

Montoya montoya@csharpturk.net http://www.csharpturk.net

Montoya montoya@csharpturk.net http://www.csharpturk.net Montoya montoya@csharpturk.net http://www.csharpturk.net Thread (İş Parçacığı) 03.04.2007 Bir çok yerde, makalede ya da kitapda threadler hakkında yazı okudum ama hepsi parça parçaydı ve birleştirmesi

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Dağıtık Programlar ve Uygulamalar II - - 2 Katman / 3 Adım Yaklaşımı Dağıtık Programlar

Detaylı

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

İşlem Yönetimi (Process Management)

İşlem Yönetimi (Process Management) İşlem Yönetimi (Process Management) 2 Bir işletim sisteminde, temel kavramlardan bir tanesi işlemdir. İş, görev ve süreç kelimeleri de işlem ile eşanlamlı olarak kullanılabilir. Bir işlem temel olarak

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 3 Bu bölümde, Proses Kavramı Proses Üzerindeki Bilgiler

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 Ölümcül Kilitlenme (Deadlock) 2 Bilgisayardaki kilitlenmeler trafikteki kilitlenmelere benzer. Örneğin, bir dörtyol kavşağına gelindiğinde uygulanması gereken kural

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

Proses. Prosesler 2. İşletim Sistemleri

Proses. Prosesler 2. İşletim Sistemleri 2 PROSESLER Proses Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkinbirdenfazlaprosesolabilir. Görev

Detaylı

PROSESLER. Proses. Proses

PROSESLER. Proses. Proses Proses 2 PROSESLER Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkin birden fazla proses olabilir.

Detaylı

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009 Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim

Detaylı

Komutların Yürütülmesi

Komutların Yürütülmesi Komutların Yürütülmesi Bilgisayar Bileşenleri: Genel Görünüm Program Sayacı Komut kaydedicisi Bellek Adres Kaydedicisi Ara Bellek kaydedicisi G/Ç Adres Kaydedicisi G/Ç ara bellek kaydedicisi 1 Sistem Yolu

Detaylı

Bölüm 9. Altprogramlar ISBN

Bölüm 9. Altprogramlar ISBN Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS İşletim Sistemleri BIL252 4 4+0 4 5 Ön Koşul Dersleri Yok Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz Yüze Dersin

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sisteminin Tanımı Donanımsal ve Yazılımsal Kaynaklar Kısa Tarihçe Toplu programlama Çoklu programlama İnteraktif sistem Zaman paylaşımlı sistemler İşletim Sisteminin

Detaylı

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN

Bölüm 8. İfade Seviyesindeki Kontrol Yapıları ISBN Bölüm 8 İfade Seviyesindeki Kontrol Yapıları ISBN 0-321-49362-1 Bölüm 8 Konular Giriş Seçme İfadeleri Yinelemeli İfadeler Şartsız Dallanma Korumalı Komutlar Sonuçlar Kontrol Akışının Seviyeleri İfadeler

Detaylı

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir 3 İPLİKLER Giriş geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var. aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel

Detaylı

Bölüm 9: Sanal Bellek

Bölüm 9: Sanal Bellek Bölüm 9: Sanal Bellek Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 9: Sanal Bellek Temeller İsteğe bağlı sayfalama Yazma olunca kopyalama (Copy-on-Write) Sayfa değişimi

Detaylı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Handel Kavramı: Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Alanın yaratıldığı bölge Windows'un kendi

Detaylı

Multithreading & Asynchronous Programlama

Multithreading & Asynchronous Programlama Multithreading & Asynchronous Programlama Concurent : Aynı zamanda olan olayları tanımlamak için kullanılır. Multithreaded : Çoklu yürütme içeriklerini tanımlar. Parallel : Aynı anda gerçekleşen işlemler

Detaylı

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan BİLGİ TEKNOLOJİLERİ YÖNETİMİ EĞİTİM MODÜLLERİ Tarih Saat Modül Adı Öğretim Üyesi 01/05/2018 Salı Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan Bu dersin amacı, bilgisayar bilimlerinin temel kavramlarını

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 1 Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 Alıştırmalar 2 - Dağıtık Sistemler Alıştırma 1 1. Neden dağıtık algoritmalar ardışık algoritmaların aksine her zaman literatürde bir melin

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Sıralı erişimli dosya organizasyonu yöntemleri Sunum planı Sıralı erişimli dosya organizasyonu yöntemleri Basit sıralı

Detaylı

PROCESS YARATIMI (TEKRAR):

PROCESS YARATIMI (TEKRAR): PROCESS YARATIMI (TEKRAR): Gecen haftaki dersten hatırlayabileceğiniz üzere, bir process başka bir process yaratabilmesi için UNIX sistemlerinde fork() sistem çağrısı kullaılıyordu. Başka bir process yaratan

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Prosesler Bilgisayar İşletim Sistemleri BLG 312 Prosesler ve Proses Yönetimi bilgisayar sisteminde birden fazla iş aynı anda etkin olabilir kullanıcı programı diskten okuma işlemi yazıcıdan çıkış alma

Detaylı

Görevler Arası Zamanuyumlama

Görevler Arası Zamanuyumlama Görevler Arası Zamanuyumlama Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Birlikte Çalışan Görevler Bilgisayar kaynaklarının etkin kullanımı için, görevlerin birlikte ve koşut işlemi

Detaylı

İşletim Sistemleri-II

İşletim Sistemleri-II EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ İşletim Sistemleri-II Ödev-II Barış Taşkend 05090000006 16.02.2012 İçindekiler 1. Barrier... 2 1.1. Giriş... 2 1.2. Barrier Nedir ve Nasıl Çalışır?... 2 1.2.1.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık  İşletim Sistemleri İşletim Sistemleri Dr. Binnur Kurt binnur.kurt@gmail.com Omega Eğitim ve Danışmanlık http://www.omegaegitim.com 1 S a y f a İÇİNDEKİLER 1. İşletim Sistemi 2. Kabuk 3. Prosesler 4. İplikler 5. İplikler

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009 Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 5 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Çoklu Koşul Yapıları, Sözde Kod, Algoritmalar Arasında Dönüşüm) Yrd. Doç. Dr. İbrahim

Detaylı

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler İşlem Kavramı İşlem Zamanlaması (Process Scheduling) İşlemler Üzerindeki Faaliyetler İşlemler Arası İletişim (Interprocess Communication)

Detaylı

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler İşlem Kavramı İşlem Zamanlaması (Process Scheduling) İşlemler Üzerindeki Faaliyetler İşlemler Arası İletişim (Interprocess Communication)

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2 İş Sıralamanın Amaçları İŞ SIRALAMA İşleri zaman içinde işlemciye yerleştirmek Sistem hedeflerine uygun olarak: İşlemci verimi Cevap süresi (response time) Debi (throughput) 23 İş Sıralama İş Sıralama

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle 2 Processor organization İşlemci

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

Detaylı

10/17/2007 Nesneye Yonelik Programlama 3.1

10/17/2007 Nesneye Yonelik Programlama 3.1 Procedure-Based Programming in C++ Çoğu gerçek dünya problemleri binlerce kod satırı gerektirir ( MS Windows NT 5.0 25 million dan fazla kod satırından oluşmaktadır). Yazılımın tasarımı, kodlanması ve

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

İş Parçacıkları Thread(s)

İş Parçacıkları Thread(s) İş Parçacıkları Thread(s) Bir çok geliştirici programlarını doğrusal(linear) bir şekilde oluşturmaktadır. Böyle bir durumda tek bir processin işini bitirmesi beklenmekte ve ardından bir sonraki kod parçasına

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Kuyruk, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Bilgisayar Bileşenleri Ve Programların Yürütülmesi Özer Çelik Matematik-Bilgisayar Bölümü Program Kavramı Bilgisayardan istenilen işlerin gerçekleştirilebilmesi için gereken işlem dizisi

Detaylı

YMT219 VERİ YAPILARI ÖDEV-1

YMT219 VERİ YAPILARI ÖDEV-1 YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){

Detaylı

İşletim Sistemlerine Genel Bakış

İşletim Sistemlerine Genel Bakış İşletim Sistemlerine Genel Bakış 1.1 Silberschatz, Galvin and Gagne 2009 İşletim Sistemi Nedir? Bilgisayar donanımı ile bilgisayar kullanıcısı arasında bir ara katman olarak aracılık etmek İşletim sisteminin

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

Detaylı

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var. Giriş 3 İPLİKLER geleneksel işletim sistemlerinde her in özel adres uzayı ve tek akış kontrolü var. aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel ler gibi

Detaylı

Linux Assembly Programlamaya Giriş

Linux Assembly Programlamaya Giriş Linux Assembly Programlamaya Giriş Barış Metin Konular gcc / gas / ld Intel ve AT&T söz dizimleri gdb INT 80H C kütüphane fonksiyonları Stack Frame Örnek

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı