Bölüm 5: Süreç Senkronizasyonu
|
|
- Si̇mge Akgül
- 5 yıl önce
- İzleme sayısı:
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ü 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) 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 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 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 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) 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ş 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) 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) 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
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 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ı) 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 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ı 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
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 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 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) İş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 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
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 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 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 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ş 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 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ü 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 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) 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ü 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ü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,
Detaylı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ı 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 Ç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 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 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ü 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Ş
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) 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 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) 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ı 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
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
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ı 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 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 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
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 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 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 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
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 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 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.
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 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ü 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 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 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
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. [10 puan] int param = 30; int result = 300; if (param > 45) result
Detaylı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., 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
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 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 Ö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): 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 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 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
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 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
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 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 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 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 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 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ı 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İŞ
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 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 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 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
İş 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
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 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 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)
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
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 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
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 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) 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Ç 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ü 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 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ış 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ı 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ş 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ş 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
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İŞ
İÇİ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ı