Montoya

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

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

Transkript

1 Montoya Thread (İş Parçacığı) Bir çok yerde, makalede ya da kitapda threadler hakkında yazı okudum ama hepsi parça parçaydı ve birleştirmesi açısından çok sıkıntı çektim. Bu yazımda DotNet e ki Thread lerden bahsedecem sonra thread yonetimi ve senkronizasyonu, threadpoollardan ve en son olarak da asenkron programlamadan bahsedeceğim. Her yerde karşınıza çıkacak bir tanım yapacam ve bunu ingilizce yapacağım için özür dilerim. Thread is the execution part of the process Yani eğer programlamada yeniyseniz ve process ve threadleri karıştırıyorsanız diye koyduğum bu açıklama şu kanıyı gidersin diyedir. Thread yaratmadan thread olmaz. Herhangi bir programlama dilinde main fonksiyonu vardır ve İşletim sistemi main fonksiyonuna girmeden önce main fonksiyonu için bir thread oluştuturur. Process aslında fabrika, thread de fabrikadaki araçlar gibi düşünülebilir. Eğer siz kendiniz thread oluşturursanız kendi yazdığını herhangi bir kısım için bu multithreaded programming adını alır. Son olarak da şunu eklemek isterim siz task manager da bir process in önceliğini (prioritysini ) ayarlıdaığınızı düşünürsünüz, aslında yaptığınız o process e ait threadin prioritysidir. Bu iki önemli önbilgiden sonra uzuuuuun dokümanı okuyabilirsiniz. Şu soruyla başlayalım: Thread nedir, neden kullanılır? İşte bu soruyu anlarsak kullanım açısından bazen programları kullanıcı açısından rahatlatabiliriz. Örnek olarak şu anda bu makelemi yazdığım kelime işlemci (microsoft word) spell checking yapıyor arkada, belli aralıklara dökümanımı kaydediyor, yazımı yazmamı sağlıyor..vs. Sonuçta dokumanı kaydederken beni rahatsız etmemesinin sebebi ya da yazarken durdurup ben Microsoft Office Word um bekle iki dakika da bi doğru mu yazmışsın kontrol edeyim demiyor. Arkada işini yapması için başka bir kanal açıyor ve bu kanal aracılığı ile de yazımı kontrol ediyor. İşletim sistmelerine girecek olursak, multitasking in porgram bazına indirilmiş hali diyebiliriz. Başka bir örnek verirsek : Bir programı yüklerken kullanıcıya ne kadar süre kaldığını söylemesi ve arkada da gerekli dosyaları da kopyalayıp, ayarlaması gerek. 1. Threads Virtual Machine ler temeline bakalırsa işletim sistemine benzer mesela işletim sistemleri processleri yönitirken onlar için yer ayarlarken Virtual Machine ler de JVM ve Microsoft.NET Framework işletim sistemiyle kendi process'i için araya girerek aracılık yapar. İşletim sistemindeki threadleri işletim sistemi yönetirken daha üst katmandaki threadleri de Framework de System.AppDomain lightweight threadleri yönetir. AppDomain içinde bir veya daha fazla thread olabilir. 1/11

2 Threadlere bakıldığında biraz pahalıdır nedeni ise programcı ve mühendis için en pahalısı ise kalitelidir mantığından çok, pahalı ise kolaydır, o zaman threadler kolaydır ancak performanslı değildir demek daha uygun olur. Nedeni ise bir thread yaratıldığı zaman düzgün bir şekilde çalışması için tüm CPU registerları, gerekli kod ve stack alanı kopyalanır. dotnet te Threadlerin kullanılması için öncelikle System.Threading namespace ine bakmamız gerekmektedir. Çünkü gerekli sınıflar o namespace içinde yer almaktadır. Küçük uygulamamıza geçmeden önce en son söyleyeceğim şeyse COM mimarisinde threadler unmanaged code a dayanırken.net mimarisinde managed code a dayanmaktadır. O yüzden işletim sistmi dersimizdeki bilgilerimizi yoklarsak.net Threadleri user mode threadlere girer diyebiliriz. 1.1 Process Synchronization Critical Section Critical Section denilen olay kısaca birden fazla threadin aynı kaynağa erişmesine denir. Mesela CD yazarken onu okuyamayız ya da daha derine inersek iki tane process aynı anda bir dosyaya yazmaya kalkarsa birinden biri hata çıkaracaktır. İşte her processde critical section denilen yer bir kod parçası olup global değişkeni değiştirdiği,update ettiği ya da bir file a bir şeyler yazdığı kısımdır. Gerçek hayata uyarlarsak bir erkekiğin iki tane kız arkadaşı olabilirken bir kızın sadece bir erkek arkadaşı olabilir, erkek burda process olup kız arkadaş da resource olmaktadır.erkeğin kız arkaşıyla harcadığı zaman ise CriticalSectiondır. Her process criticalsection a girerken bir istekte bulunur bu entry sectiondır ve çıkarkenki kısmı da exit sectiondır. Zaten bu konudan Process cooperation çıkmaktadır. ExitSection dan sonra kodun geri kalan kısmına da Remiander Section adı verilir. Eğer anlattığımı özetlemek gerekirse aşağıdaki kısım gibi olmaktadır. Do { EntrySection Critical Section ExitSection } while(true) Mutual Exlusion ise eğer bir process entry criticalsection dan sonra bir işlem yapıyorsa o anda hiçbir process criticalsection da olamaz.mesela bir process bir file s erişmiş ya da bir global değişken update edilirken diğer threadler bu global değişkeni update etmeye kalkarsa okunacak olan data istenildiği gibi olmaz ( Dirty Read ) Semaphore Yukarda bahsettiğimiz gibi aynı anda bir resource a sadece bir thread erişebilir o resource sadece bir process ilgilenebilir. İstediğimiz soruna çözüm iki yöntemle olabilir. 2/11

3 Birincisi hardware tanbanlı bir synchronization ikinsici ise software tabanlı bir çözüm. Semaphore software tabanlı bir çözüm olup oldukça basit bir implementasyonu vardır. Semaphore iki kısımdan oluşup bunlar da wait ve signal dır. Aşağıdaki gibi bir çözüm semaphore u ifade eder. wais(s) { } while S<=0 ; //Nop = No operation S-- signal ın da tanımı signal(s) { } S++; Signal ve wait işlemi bölünmeden yani bir process semaphore a girdikten sonra diğer processler bu semaphordaki integer değerini değiştirmemelidir. Mutex lock larin temelde çok bir farklılığı yoktur semaphoreden. Semaphore u ikiye ayırırsak counting semaphore ve binary semaphore diye yukarda yazdığımız tanım counting semaphore olup binary sempahore sa genelde mutex lock olarak bilinir. Daha doğru bir şekilde ifade etmek gerekirse semaphore mutex ın bir extension ı olup mutex lerde bir thread critical section da olduğunda başka threadler critical section da olamaz ancak semaphore da işler değişir, n tane thread critical section da olabilir. Bu durum bir resource ın birden çok örneği (instance) olduğunda yararlıdır. Semaphore un alacağı n sayısını 1 olara ayarlarsak bu mutex olur Monitor Her zamanki gibi çoğu programcının semaphore ları yanlış kullanmasından dolayı bilim adamları üst düzey bir implementation olan Monitor ı çıkardı. Kişisel görüşümü yazmam gerekirse çoğu Object-Oriented Dilde yanlış multiple inheritance kullanılmasından dolayı multiple class inheritance yoktur. O yüzden bir dil ya da bir uygulma ne kadar eski ise güzeldir diyebilirim. Örnek olaral verilebilecek problemler wait(mutex)... critical section 3/11

4 ... wait(mutex) Yukardaki probleme sadece şunu diyebilirm bekle babam bekle problemidir. İşte bunun gibi bir çok problemi çözen monitor aşağıdaki gibi çalışır ve kod içersinde kullanılması çoğu programcı açısından kolaydır. monitor { //paylaşılan değişkenler kısaca global variables procedure p1(...) { Update Global Variables } procedure p2(...) { Update Global Variables } } x,y gibi iki tane durum belirtirsek x.wait() ve x.siganl() diyerek bu durumları update edecek kod çalışır ve sadece bir thread bir resource a erişir 1.2 Deadlocks Bu kadar konu içersinde bu konu en sevdiğim konudur çünkü hayatta durmadan başıma gelir. Örnek olarak kapıda karşılaşan ve sadece tek kişinin geçebileceği bir kapıda biri diğerini beklerken diğeri de karşısındakini beklerse bu bir deadlockdır. Burda iki insan iki thread olarak düşünebiliriz. Ya da hoca soru sorduğu zaman sınıfta herkes elbet biri cevap verir diye beklemesi kısaca bu tip örnekler çoğaltılabilir ama teknik olarak açıklaması şudur birden fazla thread aynı anda bir resource erişmeye kalkığında hepsi wait state e girip diğer threadleri beklerse bu bir deadlock'tır. Sonuçta her thread birbirini beklediğinde hiç biri signal konumuna geçmeyeceğinden ömür boyu birbirlerini beklerler. Ya da iki thread iki resource olsun ve aynı anda karşılıklı resource istesin. Tabii bu deadlock ın bir de kardeşi var o da starvation iki kardeş birbirine huy olarak ne kadar farklıysa bile aynı ana babadan çıktığı için birbirine tip olarak benzer. Aynı şekilde starvation da bir thread bir resourcesa eriştikten sonra onu 4/11

5 bırakmıyorsa diğerleri wait konumunda beklerler. bu da starvationdır sonuçta deadlockın türevi ya da kardeşi diyebiliriz. Örnek vermek gerekirse bir hoşlandığınız kızın ömür boyu biriyle çıkmasıdır yani siz thread olduğunuzdan ömür boyu starvation çekeceksinizdir, algoritmanız o resource dolu ise başka resourcesa gitme diyorsa Resource Allocation Graph Resource Allcation Graph yazdığınız ya da yazağınız programda deadlock oluşabilir mi oluşamaz mı onu anlamaya yarayan graph tabanlı bir metoddur. Graph ın özelliği olan çizge ve düğümlerden oluşur. Matematiksel olarak ifade etmek gerekirsek Processler P kümesi Resourcelar R kümesi ve E de Hangi düğümden nereye gidebileceğimi bulunduran küme olsun P = {P1, P2, p3} R = {R1, R2, R3, R4} E = {P->R1, P2->R3, R1->P2, R2->P2, R2->P1,R3->P3} P1,P2 ve P3 gibi üç tane process Bir tane R1, iki tane R2 bir tane R3 ve üç tane R4 olsun ve yukardaki kümleri kullanarak resource allocation graphını çizelim 5/11

6 Artık graphımıza bakarak durumu inceleyelim Process P1, R2 kaynağının bir örneğini tutuyor ve R1 kaynağını bekliyor Process P2, R1 in ve R2 nin bir örneğini tutuyor ve R3 resourcesunu bekliyor. Process P3 ise R3 kaynağını tutuyor. Eğer bu graph da herhangi bir şekilde cycle olsaydır o zaman deadlock a müsait olur diyebilirdik ve deadlock oluşur derdik. Bu graph baktığımızda okların yönlerini takip ederek hiç bir şekilde başladığım noktaya ulaşamadığımdan deadlock oluşmaz diyebilirim. İkinci bir örnek vermek gerekirse : P = {P1, P2, P3} R = {R1,R2,R3} E = {R3->P1, R1->P2,R3->P2,P2->R2,R2->P3,P3->R3} Bir tane R1 1 tane R2 iki tane ise R3 kaynağının örneklerinden olsun. Graphını çizersek 6/11

7 P1 process i R3 resourcesunu tutuyor. P2 process i R3 ve R1 resourcesunu tutup R2 resourcesunu bekliyor. P3 processi R2 resourcesunu tutuğ R3 resourcesunu bekliyor. Evet cycle var o zaman deadlock oluşabilir! Olaşabilir çünkü doğru deadlock onlenme metodları ile bu olayın önüne geçilebilir. Kısaca resource allocation graph sadece oluşabilir (kesinlik anlamı YOK) olmasına bakıyor, gerisi yazılımcıya kalmıştır Deadlock Onlenmesi Deadlock önlenmesi esasen biraz mantıklı düşünmeye dayalı bir konu. Sonuçta bir program yazarken yaptığımız en büyük hatalardan biri File I/O işlemi yapacaksak write ya da read çağırısı yollamadan dosyayı sahiplenmemiz.mesela cd den okuduğumuz datayı bir file a yazalım aynı anda iki kaynağa erişip okuduktan sonra file a yazmak biraz saçmalıktır. İlk cd ye erişilip data alınmalı sonra da memorydeki data file a yazılmalıdır. Readonly datalar için bu çok önemlidir. Bir processin resource tablsundaki resourcelara maximum şekilde deadlock oluşmadan erişebiliyorsa buna safe state denir. Eğer bir sistem için safe state denilebiliyorsa o sistemde safe sequance vardır. Resource Allocation graph dan daha kötü ama anlaşılması daha kolay bir yöntem olan Banker algoritması ise sistemin safe state durumunda olup olmayacağını anlayan bir algoritmadır. Banker algoritmasından bahsetmek gerekirse aşağıdai gibi bir tablodan 12 tanedvd romu olan bir serverı nasıl safe state sokabiliriz onu incelememize yarar.hangi 7/11

8 processlerin daha önce işlenmesi gerektiğini, sıralama yapılmasını ve maximum verimde sistemin kullanılmasını çıkaran bir algoritmadır. Görüşümise bu algoritma cidden kolay ve pratik zekanın ürünüdür. Processler Maximum İhtiyacı Şimdiki İhtiyacı P P2 4 2 P3 9 2 Aşağıdaki verdiğim tabloyu incelersek Processler Allocation MAX Available A B C A B C A B C P P P P P Evet yukardaki tabloda process kümesi olan P = {P0, P1, P2,P3,P4} maximum resource kümesi olan R= {A, B, C} den maximum erişmesi gereken sayı ve yapatığı allocation için verilmiş sayılar ve boşta bulunan resourceların sayılarıdır. Şimdi Banker Algoritmasını kullanırsak bir tablo daha karşımıza çıkıyor. Processler Need A B C P P P P P Bu tabloya da Need Tablosu dersek Need tablosunun need kolonunda şu sorunun cevabını vermektedir: Benim şuan ne kadar resource a ihtiyacım var? Yani Need = MAX Allocation. Şimdi Yukardaki tabloyu ve Need tablosunu kullanarak Processlerimizi safe state olacak şekilde sıraya koyalım. P0 = A dan 7 tane B den 4 tane C den 3 tanedir ama available resource sayısı ABC için dir yani P0 processi 7 tane A 8/11

9 resourcesuna ihtiyaç duyarken available A resource sayısı 3 tanedir. Aynı process için B den 4 tane resource ihtiyacı vardır ancak available B resource sayısı 3 tür. Bu durumda safe state olmayacaktır. P1 proccess ine bakarsak A dan 1 tane B den 2 tane C den de 2 tane resource ihtiyacı vardır available resource sayısına bakarsak A için 3 tane B için 3 tane C içinse 2 tanedir. Bu durumda P1 process i ilk olarak çalıştırabiliriz. P1 processi ilk olarak çalışırsa elindeki resourcelarla işi bittikten sonra geri vereceğinden available resource sayısı den ye çıkar. Aynı şekilde devam edip execution için processleri sıralarsak <P1,P3,P4,P2,P0 > sıralamasını elde ederiz. Umarım örnek iyi anlaşılmıştır sanki bir banker işi derseniz zaten adından da anlaşılacağı gibi bankacı anlamına gelen banker konmuştur. Kısaca algoritmayı özetlersek Available = available request Allocation = Allocation + request Need = need - request Deadlock Bulunması Eğer bir sistem deadlock önlenmesi için herhangi bir şey yapmadıys ya da herhangi bir algoritma geliştirmediyse o zaman sistemin deadlock a girmesi gibi doğal bir şeyden kaçamazsınız. Genelde yapılan sisteme reset atmak oluyor. Bu bölümde size deadlock önleme algoritması barındırmayan bir sistemde nasıl deadlock bulunur ve önlenir onu anlatacağım. Sisteminizde her bir kaynağın sadece bir örneği vasa o zaman gene resource allocation graph ını çizebilirsiniz. Ancak bu çizdiğiniz graph ın adı wait-for graph olur. Gene aynı şekilde cycle olup olmadığına bakarak dead-lock oluşup oluşmayacağına bakılabilir. 9/11

10 Eğer sisteminizde çok şekilde deadlock oluşuyorsa deadlock önleyici algoritmanız sürekli çalışmalıdır. Mesela windows 98 de deadlock a girince reset atmanız gibi aynı şekilde yazılımınıza tekrar reset atılmalıdır ya da en az tercih edilen yöntem deadlock a giren processin kapatlıp yeniden başlatılmasıdır. Eğer başka processiniz kapatılması gerekiyorsa ve deadlock bulucu algoritmanız bunu öngörüyorsa o zaman seçmeniz gerekn process in belli kriterleri olmalıdır ve şu soruların cevaplarını vermelidir? Process in önceliği nedir? Process in kapatılıp açılması halinde sisteme ne kadar zarar verir ne kadar veri kaybı olur Her kaynak için bir istek geldiğinde deadlock önleyici algoritmanızın çalışması esasen performans düşürücüdür. Resource allocation graph daki oluşabilecek kısaca potansiyel oluşturabilecek threadler istek geldiğinde ya da belli kısır yerlerde çalıştırılması sistem için performans yükseltici bir olaydır 1.3 Win32 Thread Programlama Bu konu esasen başlı başına bir konu, bir sonraki yazıda detayları ile açıkladıktan sonra.net te thread programlamaya geçeceğim. Bilindiği gibi Microsoft Teknolojilerinin çoğu win32 tabanlı programlamadan meydan geliyor. Windows 2000 den 2003 server a kadar çoğu yerde.net kullanılmıyor. dotnet kullanım amacı işletim sistemi geliştirmek değil hızlı ve güvenilir bir şekilde yazılım yapmaktır. Win32 programalada framework den en temel farklılığı arada katman olmadan işletim sistemi çağrıları yapabilmesidir. Bu yüzden CreateThread() gibi bir fonksiyonda arada bir katman olmadan kernel mode threadler çalışacağından daha hızlı olacaktır CreateProcess() CreateThread() WaitForSingleObject() WaitForMultipleObjects() CreateEvent() CreatePipe() Shared Memory Win32 Thread Senkronizasyonu 10/11

11 Mutex Semaphore Events Interlocks ThreadPools 1.4 dotnet te Thread Programlama 11/11

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

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

Detaylı

Multithreading & Asynchronous Programlama

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

Detaylı

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ı

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

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine İŞLETİM SİSTEMLERİNE GİRİŞ - 2 Kaynakların Paylaşımı (Resource Sharing) Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde paylaşılan kaynaklar

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ı

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR ve ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ BTÖ201- Programlama Dilleri 1 Hazırlayanın; Adı Soyadı Çağdaş KARADEMİR Numarası 20742248 Ders Sorumlusu Hakan Tüzün İçindekiler Problem

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü BM-209 Nesne Yönelimli Programlama Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü Java Programlama Dili Java bayt kodları Java Sanal Makineleri üzerinde

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ı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Bir fabrika nasıl çalışır? Örneğin; HAMMADDENİN İŞLENEREK ÜRÜNE DÖNÜŞMESİ (İŞLEM) ÜRÜNÜN ÇIKIŞI (ÇIKIŞ) HAMMADDE GİRİŞİ (GİRİŞ)

Bir fabrika nasıl çalışır? Örneğin; HAMMADDENİN İŞLENEREK ÜRÜNE DÖNÜŞMESİ (İŞLEM) ÜRÜNÜN ÇIKIŞI (ÇIKIŞ) HAMMADDE GİRİŞİ (GİRİŞ) ALGORİTMA-3 Hatırlayalım! Önceki ders, günlük hayatta kararlar alırken veya herhangi bir şey yaparken, aslında adım adım düşündüğümüzü öğrendik. Ancak bizler çok zeki canlılar olduğumuz için bu düşünme

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ı

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

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

Detaylı

Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar.

Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar. Kilitlenme (Deadlock) 2 Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar. Bir işlem bir kaynak için talepte bulunur. Eğer bu kaynak müsait değilse, işlem

Detaylı

PROCESS YARATIMI (TEKRAR):

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

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

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ı

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

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

Detaylı

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

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

Detaylı

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ı

http://www.microsoft.com/visualstudio/eng/downloads

http://www.microsoft.com/visualstudio/eng/downloads Visual Studio 2012'nin kurulumunu, Visual Studio'nun kullanımını ve Windows Store'da basit bir proje hazırlanmasını anlatacağım. Hepsinden önce Visual Studio ortamından biraz bahsedelim. Visual Studio

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ı

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ı

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

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

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ı

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Bilgisayar, kendine önceden yüklenmiş program gereğince

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

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN WINDOWS XP SCHEDULING ALGORITHMS & WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN WIN 32 Win 32 de süreçler oluştuğu bir sınıf önceliği üzerine verilmiştir. >>Idle(tembel),below,below normal,normal,above normal,high,ve

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ı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

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ı

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

Kabuk Programlama (Bash)

Kabuk Programlama (Bash) Kabuk Programlama (Bash) Erkan Esmer Ocak, 2013 İçindekiler 1 Giriş.................................................... 2 2 Kabuk(Shell)............................................... 3 3 Çekirdek(Kernel).............................................

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ı

YZM 3102 İşletim Sistemleri

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

Detaylı

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ı

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği İŞLETİM SİSTEMLERİNE GİRİŞ Von Neumann Mimarisi Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği mimariyi temel almaktadır. Merkezi İşlem Birimi Aritmetik ve Mantık Birimi Kontrol

Detaylı

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013 How to ASP Language Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı 29 Eki. 1 Kas. 2013 Öğr. Gör. Murat KEÇECĠOĞLU Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine bir

Detaylı

Windows Eski Sürümleri Bellek Yapısı

Windows Eski Sürümleri Bellek Yapısı Windows Eski Sürümleri Bellek Yapısı -Intel 8086/8088 mimarili işlemciler//640k RAM -Segment Modeli(Segmented Model) -Her segment 64K uzunluğunda -Intel 80286,640K dan daha fazla RAM i destekledi -Windows

Detaylı

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI NOT: Çalışma kâğıtları Algoritma Tasarımı ve Excel olmak üzere 2 kısımdan oluşmakta ve sınavda her ikisinin de çalışılması gerekmektedir. ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI Bu çalışma sayfalarında

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ı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 Thread (İşlemcik) Thread (İşlemcik) Nedir? Thread (işlemcik-iplik); Belli bir process e bağlıdır. Bağlı bulundukları process in adres uzayını kullanırlar, Thread

Detaylı

Bilgisayarın Yapıtaşları

Bilgisayarın Yapıtaşları Bilgisayarın Yapıtaşları Donanım (Hardware) bilgisayarın fiziki yapısını oluşturan şeylerdir. Yazılım (Software) bilgisayarın fiziki yapısını kulanan ve ona hayat veren komutlar bütünüdür. 1 Dosyalar (Files)

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

Windows XP'ye Format Atmak, XP Repair ve XP Kurmak

Windows XP'ye Format Atmak, XP Repair ve XP Kurmak Son zamanlarda format atmak ve Xp kurmak ile ilgili karşılaştığım sorular üzerine böyle bir dökümanı hazırlayıp sizlerle paylaşmak istedim. Burada sizlere Türkçe XP kurulumunu, onarımını (repair) ve Windows

Detaylı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

Detaylı

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ İşletim Sistemlerine Giriş 2 Kaynakların Paylaşımı Öğr.Gör. Dr. Şirin KARADENİZ Kaynakların Paylaşımı Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde

Detaylı

İMAGE (SİSTEM GÖRÜNTÜSÜ) ALMA VE YÜKLEME NASIL YAPILIR. İmage nedir?

İMAGE (SİSTEM GÖRÜNTÜSÜ) ALMA VE YÜKLEME NASIL YAPILIR. İmage nedir? İMAGE (SİSTEM GÖRÜNTÜSÜ) ALMA VE YÜKLEME NASIL YAPILIR İmage nedir? Sistem yüklemelerini en kolay ve en hızlı şekilde yapmak için kullanılan yöntemlerden biridir. Format atılan bir bilgisayara önce işletim

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

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ı

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği İŞLETİM SİSTEMLERİNE GİRİŞ Von Neumann Mimarisi Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği mimariyi temel almaktadır. Merkezi İşlem Birimi Aritmetik ve Mantık Birimi Kontrol

Detaylı

Java JDK (Java Development Kit) Kurulumu:

Java JDK (Java Development Kit) Kurulumu: Java JDK ve Eclipse Kurulumu Öncelikle java ile program geliştirmeye başlamak istiyorsanız iki şeye ihtiyacınız olacak; 1-Java JDK (Java Development Kit) : Java ile yazdığımız kodları derleyip çalıştırmak

Detaylı

Yrd.Doç.Dr. Celal Murat KANDEMİR

Yrd.Doç.Dr. Celal Murat KANDEMİR Bilgisayar Mimarisi Ara Bağlantı Yapıları ve Bus Kavramı Yrd.Doç.Dr. Celal Murat KANDEMİR ESOGÜ Eğitim Fakültesi - BÖTE twitter.com/cmkandemir Ara Bağlantı Yapıları Bir bilgisayar sistemi MİB, bellek ve

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ı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

vsphere Client(viClient) ile ESXI Kontrolü

vsphere Client(viClient) ile ESXI Kontrolü vsphere Client(viClient) ile ESXI Kontrolü - ESXI ye Tarayıcıdan Bağlanmak - ESXI ye vsphere Client ile Bağlanmak - ESXI Üzerinde Bir Virtual Machine(Sanal Makine) Oluşturmak ESXI ye Tarayıcıdan Bağlanmak

Detaylı

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması Sistem Programlama Sistem programlama bilgisayar mühendisliğinin bir alanı olup karmaşık sistemlerin ve bu sistemlerin parçalarının ile ilgilenir. İşletim Sistemlerinin Programlaması Giriş/Cıkış( I/O)

Detaylı

OPC Data Access (DA) Temelleri

OPC Data Access (DA) Temelleri OPC Data Access (DA) Temelleri Hazırlayan Kepware Technologies Türkçe Meal Salih GÖK Anket Data Access nedir? Data Access in getirileri OPC DA e giriş (Data Access) OPC DA Özelliklerine bakış Hızlı bir

Detaylı

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Internet Programming I Hafta III Elbistan Meslek Yüksek Okulu 2016 2017 Güz Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Dönen Değer? Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine

Detaylı

Pandora'nın Kutusu Nasıl Açılır?

Pandora'nın Kutusu Nasıl Açılır? Pandora'nın Kutusu Nasıl Açılır? Zararlı yazılım analistini nedense meraklı Pandora ya benzetirim çünkü işi gereği kötülük ile dolu olan o kutuyu (paketlenmiş zararlı yazılım) açarak kötülüğün tüm işletim

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ı

İş Parçacıkları (Threads)

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

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

Acronis True Image Echo ile Sanallastırma

Acronis True Image Echo ile Sanallastırma Acronis True Image Echo ile Sanallastırma Bildiğiniz gibi günümüzün en önemli bilişim konularından biri sanallaştırma ve bir çok firma sanallaştırma üzerine çalışmalar yapıyor. Yedeklemeye getirdiği farklı

Detaylı

Microsoft networkte, "Access Control" default olarak "Share-level access control" a ayarlı gelir:

Microsoft networkte, Access Control default olarak Share-level access control a ayarlı gelir: Microsoft networkte, "Access Control" default olarak "Share-level access control" a ayarlı gelir: Bir kaynağı sağ tıklayıp paylaştırma menüsüne girdiğimizde : 1 / 14 Paylaştırdığımız (read, tanımlama olacaktır.

Detaylı

Windows Server 2012 Active Directory Kurulumu

Windows Server 2012 Active Directory Kurulumu Windows Server 2012 Active Directory Kurulumu Active Directory(A.D): Merkezi yönetim yapmamızı sağlayan servisin adı. Windows 2000 Server ile gelen özelliklerin basında "Active Directory" gelir. Active

Detaylı

PORT HABERLEŞME SERİ PORT FARUK BOZAN

PORT HABERLEŞME SERİ PORT FARUK BOZAN PORT HABERLEŞME SERİ PORT FARUK BOZAN farukbozan@javatiryakileri.com bozanfaruk@gmail.com Merhaba değerli Java dostları. Bu yazımızda port haberleşme konusuna değineceğiz. Yalnız şu noktaya dikkatinizi

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ı

BM-311 Bilgisayar Mimarisi

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

Detaylı

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ı

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

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI 2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI Bilgi BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ (BTY) Türkiye de orta eğitimde bilgisayar eğitimi,

Detaylı

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR İşletim Sistemleri Bilgisayar Mühendisliğine Giriş Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör.Günay TEMÜR İşletim sistemi (Operating System) Bir işletim sistemini orkestrayı yöneten bir maestro

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Android Nedir ve Uygulama Temelleri Android Uygulama Bileşenleri

Detaylı

Ölümcül Kilitlenme- Deadlock

Ölümcül Kilitlenme- Deadlock Ölümcül Kilitlenme- Deadlock İşletim Sistemleri Bu Haftada ne Göreceğiz? Bir kilitlenme nedir? Güvenli Kalmak: kilitlenme önlenmesi ve kaçınmak Tehlikeli Yaşam: kilitlenme, ne o zaman olacağının tespiti

Detaylı

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

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

Detaylı

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

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07 Grafik tabanlı işletim sistemleri (Windows, Linux altındaki grafik kullanıcı arabirimleri vb.) çalışabilmek için, bir çoğumuzun bilgisayarında takılı olan fiziksel RAM (DDR, SDRAM diye değişik tipleri

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş C Programlama Dr. Serkan DİŞLİTAŞ 1.1. C# ile Program Geliştirme.Net Framework, Microsoft firması tarafından

Detaylı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

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 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

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ı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

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ş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri

Detaylı

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir? 2.1.1. PROGRAMLAMA NEDIR? Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir? Bu düşünme şekli matematiğin, mühendisliğin ve doğa bilimlerinin bazı özelliklerini birleştirmektedir.

Detaylı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; } for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) ifadeler; Başlangıç değeri; koşul içinde tanımladığımız değişkene ilk değerin atanmasını sağlar. Koşul: Döngünün

Detaylı

Windows XP: Simple Sharing, Security ve ForceGuest Perşembe, 07 Eylül :02 - Son Güncelleme Cumartesi, 12 Eylül :36

Windows XP: Simple Sharing, Security ve ForceGuest Perşembe, 07 Eylül :02 - Son Güncelleme Cumartesi, 12 Eylül :36 Bu son derece ilgi ÇEKİCİ :) konuya bir göz atalım. The " Microsoft Windows XP Professional : Resource Kit Documentation " Part II, chapter 6 bakın neler diyor: Simple Sharing ve ForceGuest Domain'e üye

Detaylı

LSI Keywords İle Sitenizin Sıralamasını Ve Trafiğini Arttırın

LSI Keywords İle Sitenizin Sıralamasını Ve Trafiğini Arttırın LSI Keywords İle Sitenizin Sıralamasını Ve Trafiğini Arttırın Giriş Her web sitesi sahibi, Seo açısından anahtar kelimelerin önemi çok iyi bilir. Fakat içeriğinizi optimize etmek için kullandığınız ana

Detaylı

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr 1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II Öğr.Gör. Hakan YILMAZ hakanyilmaz@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve AraştırmaMerkezi 2 İçindekiler 1. GİRİŞ... 3 1.1 ASP NEDİR?...

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

Detaylı

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

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ı