İşletim Sistemleri (Operating Systems)

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

Download "İşletim Sistemleri (Operating Systems)"

Transkript

1 İşletim Sistemleri (Operating Systems) 1

2 PROCESS SENKRONİZASYONU (PROCESS SYNCHRONIZATION)

3 Kritik Bölge Probleminin Olası Çözümleri Donanıma Dayalı Çözümler

4 Donanıma Dayalı Çözümler Yazılım tabanlı kritik bölge problemi çözümlerinin (Peterson un algoritması gibi) modern bilgisayar mimarilerinde çalışmasının garantisi yoktur. Özellikle kritik bölge probleminin çözümünde, karşılıklı dışlama kapsamında yazılımsal yaklaşımlarda process ler, kaynağın serbest olup olmadığını sürekli olarak sınamak suretiyle CPU yu gereksiz yere meşgul ediyorlardı.

5 Donanıma Dayalı Çözümler Dekker ve Peterson'un algoritmaları, N process için genelleştirilebilir. Fakat, N sabitlenmiş ve önceden bilinmelidir. Aynı zamanda, bu algoritmalar çok karmaşıktır ve karşılıklı dışlama mekanizmasının uygulanması zordur! Bu yüzden kritik bölge problemini donanım temelli çözmek için bazı yöntemler geliştirilmiştir.

6 Donanıma Dayalı Çözümler Kritik bölge probleminin çözümü için İki tür donanıma dayalı senkronizasyon metodu vardır: Kesmeleri kapatmak/açmak (Disabling/Enabling interrupts) : Bu metod, çok işlemcili sistemlerde yavaş ve uygulanması zor. Özel ayrıcalıklı makine komutları kullanmak : Test and set (TS) Swap Compare and Swap (CS)

7 Kesmeleri kapatmak/açmak (Disabling/Enabling interrupts) Donanım temelli çözüm yöntemlerinden ilk akla gelen, kesmelerin(interrupt) kritik bölge işleminde kapatılmasıdır. Tek işlemcili sistemlerde, kritik bölge problemi paylaşılan veriler üzerinde process lerin kesme almadan gerçekleştirilmesiyle çözümlenebilir. Böylece paylaşılan veriler üzerinde işlem yapılırken, başka bir değişikliğin yapılması söz konusu olmayacaktır. Ancak bu yöntemin de bazı sakıncaları vardır.

8 Kesmeleri kapatmak/açmak (Disabling/Enabling interrupts) Kesmeler devre dışı bırakıldığından, process kritik bölgede yürütülürken hiçbir bağlam anahtarlama (context switching) oluşmaz. Kesmelere dayanan bazı özellikler (örneğin clock) düzgün çalışmayabilir.

9 Kesmeleri kapatmak/açmak (Disabling/Enabling interrupts) Normal durumda process kesilene veya sistem çağrısı yapana kadar çalışmaya devam eder. Kritik bölge yürütümünde kesmeleri kapatarak karşılıklı dışlama sağlamış olur. Ancak bu yöntem işlemcinin birden fazla process i zaman paylaşımlı olarak çalıştırma özelliğine aykırı bir durumdur.

10 Kesmeleri kapatmak/açmak (Disabling/Enabling interrupts) Bu yöntem tek işlemcili sistemlerde çalışır, çok işlemcili sistemlerde uygun çözüm değildir. İşlemciler bağımsız davranırlar. İşlemciler arasında kesme mekanizması yoktur. Çok işlemcili sistemlerde, kesmelerin disable/enable yapılması için tüm işlemcilere mesaj göndermek için zaman gereklidir ve sistem performansı düşer.

11 Özel Makine Komutlarına Dayalı Çözümler (Special Machine Instructions) Kritik bölge problemi için özel makine komutlarına dayalı çözümler, temel olarak kilitleme (locking) tabanlı yaklaşımlardır. Process kritik bölgeye girmeden önce kilit kullanır, kritik bölgeden çıkarken de kilidi açılır. Günümüzde modern işlemciler, kilidi uygulamak için kullanılabilecek özel atomik donanım komutları sağlar.

12 Özel Makine Komutlarına Dayalı Çözümler Atomik (non-interruptible) komutlar : Tek bir komut çevriminde gerçekleşen komutlardır, kesilemezler. Böyle bir komut yürütüldüğünde, CPU lar tarafından çeşitli aşamalarla yürütülen diğer tüm komutlar bu komut tamamlanıncaya kadar durdurulacaktır. Bu nedenle, iki farklı komut aynı anda verilirse, farklı CPU'larda olsalar da sırayla çalıştırılacaktır. Ayrıcalıklı (Privileged): Bu komutlar genel olarak ayrıcalıklıdır, yani sadece supervisor veya kernel modunda çalışabilirler.

13 Özel Makine Komutlarına Dayalı Çözümler Çoğu modern bilgisayar sistemi, bir word ü test etmeyi/güncellemeyi veya iki word ü yer değiştirmeyi sağlayan özel donanım komutları sağlar. bir word içeriğini test edip değiştirme, (test and set lock -TS) test et ve değiştir komutu -TestAndSet() iki word içeriğini yer değiştirme, (swap lock) yer değiştir komutu Swap() bir word içeriğini karşılaştırıp değiştirme, (compare and swap lock -CS) karşılaştır ve yer değiştir komutu - CompareAndSwap()

14 Özel Makine Komutlarına Dayalı Çözümler Kilitleri Kullanarak Kritik Bölge Problemine Çözüm Kilit çözümünün genel düzeni şöyledir: do { acquire lock critical section release lock remainder section } while (TRUE); Kritik kod bölgesinin mümkün olduğunca küçük olması, yalnızca paylaşılan verilere erişen/değiştiren bölümleri kilitlemesi gerekir.

15 Test and Set Komutunu Kilitleme için Kullanma Test and Set, TS olarak bilinen tek ve bölünmez bir makine komutudur ve IBM tarafından çok işlemcili Sistem 360/370 bilgisayarlar için tanıtıldı. lock önekini alan bir komutun işletimi sırasında, bu komutu işleten işlemcinin bellek erişim döngüsünün bölünmesine izin verilmez. Yani bu komut kesilemez.

16 Test and Set Komutunu Kilitleme için Kullanma Shared data: boolean lock = FALSE; Process P i do { while (TestAndSet(&lock)); critical section lock = FALSE; remainder section } while (TRUE);

17 Test and Set Komutunu Kilitleme için Kullanma lock değişkeni 1 bitlik bellek alanında saklanır. lock = {TRUE, FALSE} Test and Set Lock (TS) komutu ile bellekteki lock değeri önce test edilir dönüş değeri FALSE olduğunda kilit ele geçirilir. Bellekteki lock değişkeni TRUE ile değiştirilir. Process kendi kritik bölgesine girer ve işlemlerini tamamladıktan sonra tekrar lock değişkeninin değerini FALSE olarak değiştirir.

18 Test and Set Komutunu Kilitleme için Kullanma Eğer lock değeri test edildiğinde TRUE ise, bir başka process zaten kilidi ele geçirmiştir. (ve hala ona sahiptir) lock değişkenin bellekten okunup, alınması ve değerinin değiştirilmesi tek hamlede gerçekleştirilen bir işlemdir. Diğer işlemciler de bu süreçte bu değişkene ulaşamazlar. TS komutunu kullanan işlemciler belleğe giden veri yollarını kilitleyerek diğer işlemcilerin belleğe ulaşımını engeller.

19 Test and Set Komutunu Kilitleme için Kullanma

20 Test and Set Komutunu Kilitleme için Kullanma

21 Test and Set Komutunu Kilitleme için Kullanma Bir kilit sisteme iade edildiğinde ve diğer process ler kilit üzerinde harekete geçmek için beklerken yalnızca bir process in FALSE ile döneceğinden emin olunmalıdır. Bu metod ile karşılıklı dışlama (mutual exclusion) ve ilerleme (progress) sağlansa bile sınırlı bekleme (bounded waiting) gerçekleştirilemeyebilir.

22 Swap Komutunu Kilitleme için Kullanma Swap komutu da kesilemeyen özel donanım komutudur. lock ve key adı verilen iki değişkeni kullanır. İlk değeri FALSE olan global bir lock değişkeni ve her process için lokal bir key değişkeni tanımlanır. lock FALSE ise, bir process kritik bölgesine girebilir, aksi takdirde giremez. Bellekteki lock değeri, key değerine eşit olmadığı sürece değiştirilmez.

23 Swap Komutunu Kilitleme için Kullanma Shared data: boolean lock = FALSE; Process P i do { /* Each process has a local Boolean variable key */ key = TRUE; while (key == TRUE) Swap(&lock, &key); critical section lock = FALSE; remainder section } while (TRUE);

24 Swap Komutunu Kilitleme için Kullanma Swap komutu da, karşılıklı dışlama (mutual exclusion) ve ilerlemeyi (progress) sağlarken, yarış durumunun (race condition) önlenmesi için gerekli sınırlı bekleme (bounded waiting) şartını sağlamamaktadır.

25 Compare and Swap Komutunu Kilitleme için Kullanma compare and swap komutu (CS), test and set (TS) komutuna benzerdir, ancak daha karmaşıktır. CS komutu üç parametre alır: belirli bir değer, bellek konumundaki "beklenen değer" ve belirli bir yeni değer. Paylaşılan değişken: global bir lock değişkeni başlangıçta 0 yapılır. compare and swap, bir bellek konumunun içeriğini belirli bir değerle atomik olarak karşılaştırır ve yalnızca aynı oldukları zaman, bu bellek konumunun içeriğini belirli bir yeni değere değiştirir.

26 Compare and Swap Komutunu Kilitleme için Kullanma Shared integer lock initialized to 0; Solution: do { while (compare_and_swap(&lock, 0, 1)!= 0) ; /* do nothing */ /* critical section */ lock = 0; /* remainder section */ } while (true);

27 Compare and Swap Komutunu Kilitleme için Kullanma bellek konumunun içeriği ile karşılaştırılan değerin aynı olması durumunda, compare and swap metodunu çağıran process lock=1 yapar. Sonra process kritik bölümüne girebilir, compare and swap() için müteakip (subsequent) çağrılar cevaplanamaz, çünkü lock beklenen 0 değerinde değildir. Bir process kendi kritik bölgesinden çıktığında lock değerini tekrar 0 yapar ve böylece başka bir process in kritik bölgesine girebilmesini sağlar.

28 Özel Makine Komutlarının Dezavantajları Donanımsal özel makine komutları meşgul beklemeye neden olduğundan bekleyen process de işlemci zamanı harcar. Bir process kritik bölgesine girmeden önce kilidi sınamakta, kilidin meşgul olduğu durumlarda bu sınamaları yineleyerek kilidin açılmasını beklemektedir. Bu durumda, erişeceği kilit meşgul olan bir process, sırası gelip CPU ya anahtarlandığında kendisine ayrılan süre boyunca gerçekleşmeyecek bir koşulun oluşmasını bekleyerek, gereksiz yere CPU yu meşgul edecektir.

29 Özel Makine Komutlarının Dezavantajları Özel makine komutları kritik bölge sorununun çözümünde karşılıklı dışlama (mutual exclusion) ve ilerleme (progress) gereksinimlerini karşılarlar. Ancak kritik bölge sorunun sınırlı bekleme (bounded waiting) gereksinimini karşılamak için diğer mekanizmalarla tamamlanmaları gerekir. Bir process kritik bölgesinden çıktığında birden fazla bekleyen process varsa hangi process in gireceği belirsizdir, sonsuz bekleme durumu yani açlık (starvation) oluşabilir. Açlık (starvation) : Aynı kaynakları kullanan process lerden bazılarının bekledikleri kaynaklara hiç erişememe durumu. Bekleyen process ler sonsuz beklemeye girebilir.

30 Donanım + Yazılım Desteği ile Kritik Bölge Çözümleri

31 Semaforlar (Semaphores)

32 Semaforlar (Semaphores) 1965 yılında Edsger W. Dijkstra, process ler arasındaki senkronizasyonu sağlamak için semafor yapısını geliştirmiştir. Semafor, işletim sistemi tarafından tanınan, donanım + yazılım desteği olan ve tamsayı (integer) değerlerini alabilen özel değişkenlerdir. Semafor değeri, yalnızca bir process in herhangi bir zamanda erişebileceği ve değiştirebileceği paylaşılan bir değerdir. Semaphore, Latince kökenli dillerde deniz feneri anlamına gelmektedir. 32

33 Semaforlar (Semaphores) Semafor tamsayı değer saklayan bir nesne olarak düşünülebilir. Semafor üzerinde temel olarak DOWN =P(S) ve UP =V(S) isimli iki tür işlem tanımlıdır: P(S) semaforun değerini azaltmak. V(S) semaforun değerini arttırmak. Bu işlemler bölünemez (atomic) işlemlerdir ve işletim sistemi tarafından gerçekleştirilirler.

34 Semaforlar (Semaphores) Dijkstra çalışmasında, Almanca Proberen : test et manasına gelen P operatörünü ve Verhogen : arttır manasına gelen V operatörünü tamsayı tipinde değişken olan S semaforu üzerinde uygulamıştır. semaphore S; P(S) : while S 0 do {bekle}; S = S-1 V(S) : S = S+1 P(S) atomik biçimde S değişkenini sınayan eğer S sıfırdan küçük veya eşitse beklemeyi sağlayan, değilse içeriğini bir eksilten, bir işlemdir. V(S) ise S değişkenini bir artırmayı sağlayan bir işlemdir. 34

35 Semaforlar (Semaphores) S semaforu bir tamsayıdır ve sadece wait() ve signal() atomik işlemleri tarafından erişilebilir ve değiştirilebilir. wait(s) işlemi P(S) yerine, signal(s) işlemi V(S) yerine kullanılır. Bir process kritik bölgesine girmeden önce wait(s) işlemini çalıştırır. S nin içerdiği değere göre kritik bölgesine girer yada wait() işlemi üzerinde bekler. Kritik bölge çıkışında mutlaka signal(s) işleminin çalıştırılması gerekir.

36 Semaforlar (Semaphores) Semaforlar pozitif tamsayılar olarak tanımlanmasına rağmen çoğu kez gerçekleştirmede eksi sayılar da kullanılır. wait() semaforun değerini bir azaltır. signal() semaforun değerini bir arttırır. Bu iki yol dışında semaforun değerini değiştirmek mümkün değildir. wait ve signal işlemleri kesilemez.

37 Semaforlar (Semaphores) wait() ve signal() bölünemez (atomik) olarak gerçekleştirilirler. Bu sebeple wait() ve signal() içinde process lere müdahele edilmesi ve CPU nun bir başka process e verilmesi söz konusu değildir. Process ler kritik bölgelerine girmeden wait(), kritik bölgelerinden çıkarken de signal() işlemlerini yaparak karşılıklı dışlamayı garanti ederler.

38 Semaforlar (Semaphores) Semaforlar kullanım alanları ve tasarımları itibariyle ikiye ayrılır: İkili Semafor (Binary Semaphore) Sayma Semaforu (Counting Semaphore) İkili semaforlar sadece iki process arasında senkronizasyon sağlar. Semafor değeri 0 ve 1 ile kısıtlanmıştır. Sayma semaforları ise istenilen miktarda process i kontrol edebilir. Herhangi bir tamsayı değeri alabilirler.

39 İkili semaforlar (Binary semaphores) waitb(s): if (S.value = 1) { S.value := 0; } else { block this process place this process in S.queue } signalb(s): if (S.queue is empty) { S.value := 1; } else { remove a process P from S.queue place this process P on ready list }

40 İkili semaforlar (Binary semaphores) Semaforların sadece 0 ve 1 değerleri alabildiği özel durumdur. 40

41 İkili semaforlar (Binary semaphores)

42 Sayma Semaforu (Counting Semaphore) Eksi tamsayı değerleri de alabilen semaforlar Sayma Semaforu (Counting Semaphore) ya da genel semaforlar olarak adlandırılır. Semafor başlangıç değeri 0 olabilir. Başlangıç değeri n olan bir semafor n process tarafından kullanılır.

43 Sayma Semaforu (Counting Semaphore) wait(s): S.count--; if (S.count<0) { block this process place this process in S.queue } signal(s): S.count++; if (S.count<=0) { remove a process P from S.queue place this process P on ready list }

44 Sayma Semaforu (Counting Semaphore) wait(s): S.value--; if (S.value < 0) { add this process to S.L; block; } signal(s): S.value++; if (S.value <= 0) { remove a process P from S.L; wakeup(p); }

45 Sayma Semaforu (Counting Semaphore) Bir process, wait() operasyonunu işletirse ve semaforun değerinin pozitif olmadığını bulursa beklemelidir (busy waiting). Meşgul bekleme yerine kendini bloke eder. Bloke edilen process semaforla ilişkilendirilir ve durumu bekler-(waiting) konumuna getirilir. Bir semafor üzerinde bekleyen process ler bir kuyrukta tutulur. Bloke edilen process semafor ile ilişkili bekleme kuyruğuna yazılır.

46 Sayma Semaforu (Counting Semaphore) Block() Process durumunu running den waiting e çevirir. Process i bekler(waiting) kuyruğuna yerleştirir. Wake up() Bekler kuyruğundan semaforla ilişkili olan 1 process i çıkarır ve hazır kuyruğuna koyar. Block() ve wakeup(): işletim sistemine ait standart sistem çağrıları ile sağlanır.

47 Sayma Semaforu (Counting Semaphore) Semafor S in üzerinde bekleyen, bloke edilmiş olan process, diğer process lerden bazıları signal() operasyonu işlettiklerinde yeniden başlatılabilir. Process bir wake up operasyonu ile restart edilir. Bu process durumunu beklerden hazır durumuna geçirir.

48 Sayma Semaforu (Counting Semaphore) Her semafor integer bir değere ve bu semafor üzerinde bekleyen process listesine sahiptir (PCB listesine bir pointer kaydı). Bir process bir semafor üzerinde beklemeli ise semaforun process listesine eklenir. signal() operasyonu process i semafor listesinden çıkarır.

49 Örnek - Semafor kullanarak paylaşılan verilere erişen üç process. Sayma Semaforu (Counting Semaphore)

50 İkili Semafor ile Sayım Semaforunu Uygulamak Data structures: binary-semaphore S1, S2; int C; Initialization: S1 = 1 S2 = 0 C = initial value of semaphore S

51 İkili Semafor ile Sayım Semaforunu Uygulamak wait operation: waitb(s1); C--; if (C < 0) { signalb(s1); waitb(s2); } signalb(s1); signal operation: waitb(s1); C ++; if (C <= 0) signalb(s2); else signalb(s1);

52 İkili Semafor ile Sayım Semaforunu Uygulamak Tablo daki 5. durumdan sonra, en uzun bekleme süreci olan P3 process i, kritik bölgeye girmek için seçilmişti, ancak sistem ilk giren ilk çıkar seçim politikasını kullanmıyorsa bu zorunlu değildir. Aslında, işlenecek process in seçimi, Process Zamanlayıcısı tarafından kullanılan algoritmaya bağlıdır.

53 Semaforlar (Semaphore) Semafor ile işlem yapmak, birlikte çalışan process lerin yönetimine hem kuramsal hem de uygulanırlık açısından gerekli ve yeterli desteği sağlıyor olmalarına karşın azımsanamayacak tasarım ve programlama yükünü de birlikte getirirler. Process senkronizasyonu, process lerin içine P() ve V() işlemlerinin serpiştirilmesini gerektirir. Bu durum programların okunurluğu ve anlaşılmasını olumsuz yönde etkiler. Bunun yanı sıra bu işlemlerin yanlış kullanımı, kimi zaman sistem kaynaklarının kilitlenmesine, dolayısıyla sistemin başarımının düşmesine ve güvenirliğinin zedelenmesine de neden olabilir.

54 Semaforlar (Semaphore) Semaforlar kullanıldığında da senkronizasyon hataları olabilmektedir. Tüm process lerin kritik bölüme girmeden önce wait(), sonra ise signal() işlemlerini yapmaları gereklidir. Program geliştirici bu sıraya dikkat etmezse, iki veya daha fazla process aynı anda kritik bölüme girebilir. Bu durumlar programcılar arasında yeterli işbirliği olmadığı durumlarda da olabilmektedir.

55 Semaforlar (Semaphore) Kritik bölüm problemine ilişkin tasarımda oluşan sorunlardan dolayı kilitlenmeler veya eşzamanlı erişimden dolayı yanlış sonuçlar ortaya çıkabilmektedir. Bu gerekçeye dayalı olarak, process senkronizasyonunda alt düzey işlemleri doğrudan kullanmak yerine, bunlara dayalı, daha yalın ve sistemli izleyici (monitor) adı verilen üst düzey araçlardan yararlanılır.

56 Üretici Tüketici Problemi (Producer Consumer Problem) Üretici - Tüketici Problemi (Producer & Consumer Problem), bir dizinin veya kuyruğun içerisinde yer alan elemanların karşılıklı iki semafor tarafından senkronize bir şekilde kullanılmasını tanımlamaktadır. Burada üretici (producer) semafor, veriyi belirli bir miktarda üreterek alanı terkeder ve sırayı tüketici ye (consumer) bırakır. Tüketici ise belirli miktarda üretilen veriyi belirli miktarda tüketerek buffer alanını terkeder. Burada dikkat edilmesi gereken temel nokta üreticinin buffer size miktarını aşmaksızın data üretmesi gerekirken, tüketicinin ise 0 data miktarının altında kalmaksızın datayı tüketmesi gerektiği gerçeğidir. Aksi halde CPU gereksiz yere işgal edilecektir.

57 Üretici Tüketici Problemi (Producer Consumer Problem) Aynı anda çalışan iki process bulunmaktadır ve bunlardan birisi üretmekte diğeri de bu üretilen ürünü tüketmektedir. Buradaki sorun, üretilen ürün henüz tüketilmeden ikincisinin üretilmemesi veya henüz ürün üretilmeden tüketilmemesidir. Problem tanımı itibariyle, process ler arası senkronizasyonu gerektirmektedir ve iki process birbiri ile senkronize olmalıdır. Yani tüketici, ne zaman tüketeceğine, üreticinin hareketlerine bakarak karar vermeli, benzer şekilde üretici de ne zaman üreteceğine, tüketicinin hareketlerine bakarak karar vermelidir. 57

58 Üretici Tüketici Problemi (Producer Consumer Problem) Veri üreten bir kullanıcı process i ile bu verileri yazıcıdan döken sistem process i birlikte çalışan iki process dir. Kullanıcı process inin ürettiği verilerin yazıcı sistem process i tarafından dökülebilmesi, ilgili verilerin bir process den diğer process e aktarılmasını gerektirir. Bu aktarım her iki process in ortak erişebildiği bir tampon bellek (buffer memory) alanı üzerinden gerçekleşebilir. 58

59 Üretici Tüketici Problemi (Producer Consumer Problem) Kullanıcı process i, dökümü alınacak veriyi, sırayla bu tampon bellek alanına yazar. Yazıcı sistem process i de, bu alandan okuduğu verilerin yazıcıdan dökülmesini sağlar. Ortak tampon bellek alanına yazma yapan process üretici, Ortak tampon bellek alanından okuma yapan process ise tüketici olarak nitelenir. Bu nedenle, kullanıcı process üretici, yazıcı sistem process i ise tüketici process konumundadır. 59

60 Üretici Tüketici Problemi (Producer Consumer Problem) Ortak bir bellek alanı üzerinden veri alış-verişinde bulunan üretici ve tüketici process ler birbirlerinin işletimini etkileyen process lerdir. Bu bağlamda, daha önce verilen örnekte yazıcı sistem process inin işletilebilmesi, kullanıcı process inin yazdırılacak bir veriyi ortak tampon bellek alanı üzerinde hazır etmesine bağlıdır. Bunun gibi kullanıcı process inin, yeni bir veriyi tampon bellek alanına yazabilmesi, bir önce yazılan verinin yazıcı process tarafından okunup dökülmüş olmasını gerektirir. 60

61 Üretici Tüketici Problemi (Producer Consumer Problem) Bounded (sınırlanmış) buffer üretici / tüketici probleminde n adet sabit buffer vardır. Üretici n buffer dolunca bekler, tüketici n adet buffer boşalınca bekler. Üretici üretmiş olduğu veriyi buffer da boş yer varsa koyabilir. Yer yok ise tüketicinin buffer dan bir veriyi almasını beklemek durumundadır. Tüketici ise ancak buffer boş değilse veri tüketebilir, aksi taktirde üreticinin buffer a veri girmesini beklemesi gerekir. Unbounded (sınırlanmamış) buffer üretici / tüketici probleminde bufferların sayısında bir sınır yoktur. Tüketici yeni ürünler bekler, ve gelenleri tüketir, sadece ürün bitince bekler fakat üretici daima yeni ürün üretip koyabilir. 61

62 Semafor ile Üretici / Tüketici Problemi (Sınırlanmamış Tampon)

63 Sınırlanmış (Bounded) buffer Üretici / Tüketici problemi Üretici Process 63

64 Sınırlanmış (Bounded) buffer Üretici / Tüketici problemi Tüketici Process 64

65 Semafor ile Üretici-Tüketici Problemi (Sınırlanmış Buffer) Semafor kullanarak üretici tüketici probleminin, sınırlanmış Buffer durumunda çözümü. Üretici ve tüketici birer process olarak oluşturulmaktadır. Burada 3 önemli kısıtlama vardır: Buffer a aynı anda sadece bir process erişebilir (karşılıklı dışlama). Bu maksatla ikili semafor kullanılacaktır. Eğer Buffer boş ise tüketici üreticinin Buffer a veri girmesini bekler. Üretici ve tüketici empty isimli semaforu senkronizasyon amacıyla kullanacaklardır. Eğer Buffer dolu ise üretici tüketicin Buffer dan veri almasını bekler. Üretici ve tüketici full isimli semaforu senkronizasyon amacıyla kullanacaklardır.

66 Semafor ile Üretici-Tüketici Problemi (Sınırlanmış Buffer) # define N 100 # define TRUE 1 typedef int semaphore; semaphore mutex = 1; semaphore empty = N; semaphore full = 0; producer() { int item; while (TRUE) { produce_item(&item); down(empty); down(mutex); enter_item(item); up(mutex); up(full); } } consumer(){ int item; while (TRUE) { down(full); down(mutex); remove_item(&item); up(mutex); up(empty); } } consume_item(item); / * Buffer daki eleman sayısı */ / * Semaforlar int bir tür olarak tanımlanıyor */ / * kritik kısmı karşılıklı dışarlamak */ / * Buffer daki boş yer sayısı */ / * Buffer daki dolu yer sayısı */ / * yerel değişken */ / * Buffer a konulacak veri oluşturuluyor */ / * Buffer dolu ise bekle yoksa bos yer sayısını 1 azalt */ / * Kritik kısma girebilmek için vize al */ / * Veriyi Buffer a gir (Kritik Kısım) */ / * Kritik Kısımdan çıktığını belirt */ / * Bekleyen tüketici varsa uyandır yoksa Buffer daki */ / * dolu yer sayısını 1 arttır */ / * yerel değişken */ / * Buffer boş ise bekle yoksa dolu yer sayısını 1 azalt */ / * Kritik kısma girebilmek için vize al */ / * Veriyi Buffer dan al (Kritik Kısım) */ / * Kritik Kısımdan çıktığını belirt */ / * Bekleyen üretici varsa uyandır yoksa Buffer daki */ / * dolu boş sayısını 1 arttır */ / * Buffer dan alınan veriyi kullan */

İş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ı

İş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ı

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ı

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ı

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

Bölüm 5: Süreç Senkronizasyonu Bölüm 5: Süreç Senkronizasyonu Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 5: Süreç Senkronizasyonu Giriş Kritik bölüm problemi Peterson ın Çözümü Senkronizasyon Donanımı

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ı

İŞ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ı

İş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ı

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ı

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ö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ı

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 Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Ölümcül Kilitlenme (Deadlock) İşletim Sistemlerine Giriş - Ders06 1 Ölümcül Kilitlenme (Deadlock) Bilgisayar sistemleri, bir anda sadece tek bir kullanıcı tarafından kullanılabilecek

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

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ı

İş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ı

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ı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

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ı

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ı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

İşletim Sistemlerinde Çok Prosesli Çalışma

İşletim Sistemlerinde Çok Prosesli Çalışma İşletim Sistemlerinde Çok Prosesli Çalışma Kaan Aslan 4 Mart 2008 İşletim sistemlerini proses yönetimine göre kabaca tek prosesli (single processing) ve çok prosesli (multiprocessing) olmak üzere iki gruba

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ı

İŞ 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ı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; Performans:

Detaylı

Bölüm 7. İfadeler ve atamalar ISBN

Bölüm 7. İfadeler ve atamalar ISBN Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama

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ı

İş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ı

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ı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş Ders Kitapları ve Notlandırma İşletim Sistemlerine Giriş Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Ders kitapları İşletim Sistemleri, Ali Saatçi Modern Operating Systems, Andrew Tanenbaum

Detaylı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER

Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER 21/03/07 İşletim Sistemleri 1 Linux 2.6.8.1 Zamanlayıcısının Temelleri Linux 2.5.x 'in geliştirilmesi sırasında yeni

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 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ı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

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ı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

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ı

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır. DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #2 DİZİLERE ERİŞİMDE MIPS BELLEK TALİMATLARI Amaç: Veri bölütü kullanımını ve tek-modüllü dizi

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür. İŞLEMCİLER (CPU) Mikroişlemci Nedir? Mikroişlemci, hafıza ve giriş/çıkış birimlerini bulunduran yapının geneline mikrobilgisayar; CPU' yu bulunduran entegre devre çipine ise mikroişlemci denir. İşlemciler

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ı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JSP Üst Düzey Programlama-ders04/ 1 JSP JSP durağan HTML ile dinamik oluşturulan içeriği birleştirmeyi sağlar. Bir web sayfası tasarlama programı ile web sayfasını tasarlar daha sonra

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ı

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ı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Bilgisayar İşletim Sistemleri BLG Çok prosesli ortamda birden fazla proses çalışmaya hazır şekilde bellekte yer alır MİB zamanının prosesler arasında paylaştırılması:zaman paylaşımlı çalışma iş sıralama:bir

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

Bölüm 3 Yapısal Programlama

Bölüm 3 Yapısal Programlama 1 Bölüm 3 Yapısal Programlama Konular 3.1 Giriş 3.2 Algoritmalar 3.3 Pseudocode (Sahte kodlar) 3.4 Kontrol yapıları 3.5 If Seçim yapısı 3.6 If Else Seçim yapısı 3.7 While Döngü yapısı 3.8 Algoritmaları

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA 1 İçindekiler Bilgisayarların Çalışma Prensibi Sayı Sistemleri Programlama Dilleri 2 BİLGİSAYARLARIN ÇALIŞMA PRENSİBİ Bilgisayar

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ı

İş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ı

BELLEK YÖNETY. Bellek Yönetimi

BELLEK YÖNETY. Bellek Yönetimi 7 BELLEK YÖNETY NETİMİ Bellek Yönetimi Birden fazla prosese yer verilebilecek şekilde belleğin alt birimlere ayrılması Belleğin prosesler arasında atanması etkin olmalı: en fazla sayıda proses 286 Bellek

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

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ı

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 Bellek ve Adresleme İşaretçi Kavramı

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ı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN PARALEL HESAPLAMA ÇAĞRI GİDER 13011016 ENES BİLGİN - 13011004 Paralel Hesaplama Nedir? Paralel Hesaplamanın Avantajları Paralel Hesaplamanın Kullanım Alanları Paralel Hesaplama Yöntemleri, Donanım ve Yazılım

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ı

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri 6 İŞ SIRALAMA İş Sıralama Çok programlı ortamlarda birden fazla proses belirli bir anda bellekte bulunur Çok programlı ortamlarda prosesler: işlemciyi kullanır bekler giriş çıkış bekler bir olayın olmasını

Detaylı

Çekirdek Nedir? Ne yapar?

Çekirdek Nedir? Ne yapar? Çekirdek Nedir? Ne yapar? Erkan Esmer Nisan, 2014 İçindekiler 1 Giriş.................................................... 2 2 Çekirdek Tipleri.............................................. 3 2.1 Mikrokernel............................................

Detaylı

BÖLÜM 3 OPERAT A ÖRLER - 19 -

BÖLÜM 3 OPERAT A ÖRLER - 19 - BÖLÜM 3 OPERATÖRLER - 19 - 3.1 Operatörler Hakkında Yukarıdaki örnekleri birlikte yaptıysak = işaretini bol bol kullandık ve böylece PHP'nin birçok operatöründen biriyle tanıştık. Buna PHP dilinde "atama

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

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ı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

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ı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz. Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl

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ı

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ı

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 Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Girdi/Çıktı (I/O) İşletim Sistemlerine Giriş - Ders11 1 Girdi/Çıktı (I/O) İşletim sisteminin temel fonksiyonlarından biride bilgisayardaki tüm I/O aygıtlarını kontrol etmesidir.

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ı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

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 Bellek ve Adresleme Dinamik Bellek

Detaylı

Bilgisayar Mimarisi Nedir?

Bilgisayar Mimarisi Nedir? BİLGİSAYAR MİMARİSİ Bilgisayar Mimarisi Nedir? Bilgisayar mimarisi, diğer mimariler gibi, bir yapı kullanıcısının ihtiyaçlarını belirleme ve bu ihtiyaçları ekonomik ve teknolojik kısıtlamalar dahilinde

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ı

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri DONANIM 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri DONANIM SİSTEM BİRİMİ ÇEVREBİRİMLERİ Ana Kart (Mainboard) Monitör İşlemci

Detaylı

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ 1 İkinci Kuşak Bilgisayarlar 1956-1963: Transistor Transistor 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez.

Detaylı

Sanal Bellek (Virtual Memory)

Sanal Bellek (Virtual Memory) Sanal Bellek (Virtual Memory) Bellek yönetim tekniklerinde belleğin zaman içinde parçalanması ve işlemlerin boyutunun fiziksel belleğin boyutuyla sınırlı olması sorunları vardır. Ana belleğin yetersiz

Detaylı