Asenkron Programlama

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

Download "Asenkron Programlama"

Transkript

1 Asenkron Programlama Hazırlayan : Umut Rıza ERTÜRK Tarih : Ekler: asenkronprogramlama_ornek.jar asenkronprogramlama_ornek_kaynak.jar - 0 -

2 Đndex Asenkron Programlama Đndex Tanım Đşletim Dizileri (threads) Monitor Kavramı ve Kullanımı Đşletim Dizileri (threads) ve Asenkron Görevler Bir Senkron Asenkron Programlama Karşılaştırması (Synchronous versus asynchronous programming) JAVA ĐLE PARALEL PROGRAMLAMA ÖRNEĞĐ Program Arayüzü-Tanımı: Programın Çalıştırılması ve Sonuçları Örnek Örnek Örnek Kullanılan programlar: Kullanılan Donanım: Kaynakça, Yararlanılan internet siteleri: Yararlanılan Kitap:

3 Tanım Genel anlamıyla asenkron (asynchronous, okunuşu ay- SIHN-kro-nuhs; yunanca da asyn- olumsuzluk anlamında, chronous ise zaman anlamındadır); zamanlanmamış objeleri veya olayları ifade etmek için kullanılan sıfattır. Bu tanımı biraz daha belirgin bir hale getirecek olursak; zamanlanmamış demekle olay için oluşma anının obje içinse kullanılma/meydana gelme anının belli olmadığı ifade edilmeye çalışmaktadır. Bilgi teknolojilerinde ise asenkron sıfatı farklı çağrışımlar yapmaktadır. 1. Telekomünikasyon da birden çok network arasında veya bir network içinde, asenkron sinyal; başka bir sinyale göre farklı saat aralığında iletilen sinyal anlamındadır. Ancak bu bizim konumuz dışında olduğu için incelenmeyecektir. 2. Bilgisayar programları açısından ise asenkron işlem; diğer işlemlerden bağımsız zamanlamayla çalışan işlem anlamında kullanılmaktadır. Halbuki klasik programlama anlayışı olan senkron programlamaya göre bir işlem ancak bir başka işlemin sonucu veya yolu ile çalışabilmektedir

4 - 3 -

5 Yukarıdaki çizimlerde gösterilen a() ve b() farklı amaçlarla çalışan görevleri temsil etmektedir. Đlk örnekte b() işleminin çalışması tamamıyla a() işlemi tarafında çağrılma anına bağlıdır. Đkinci örnekteyse b() işlemi a() işleminden zamanlama gereksinimi duymadan çalışabilmekte ve sonlanabilmektedir. Bu noktada akla gelebilecek ilk soru a() ve b() işlevlerinin her ikisi birden tarafından kullanılan bir alanın kullanımının kontrolü ve tutarlılığının nasıl sağlanacağıdır. Senkron bir programlama anlayışı açısından bakıldığında sorun boyut değiştirmekte ve çözülmesi gereken sorun ortak kullanılan alanların her iki işlem için nasıl ortak kılınacağıdır. Bu sorunu çözmek amacıyla senkron işleyiş içinde bellek adresleri aktarımı yapılmakta ve bu sorun ortadan kalkmaktadır. Asenkron işleyiş içinde ise ortak kullanımda olan alanların işlemler arasında bir anlaşma şeklinde istenilen şekilde düzenlenmesi için kilit (lock) kavramı ortaya atılmıştır. Ancak bu anlayışında kendine göre çıkmazları bulunmaktadır. Buna en kolay örnek sonlandırıcı kilitlenme (dead lock) dir. Bu kilitlenmede iki görev birbirleri açısından kritik alanları kilitlemekte ve kilitlenmeye uğrayan bu görevler de bu kritik kaynakları açacak başka bir görev olmadığından zaman gecikmesi(time out) sonucu sonlandırılmaktadır. Bu tür kilitlenmelerden korunmak için farklı algoritmalar ortaya atılmıştır. Đşletim Dizileri (threads) Görev bir programın işletimine verilen addır. Kimi programlar, yerine getirdikleri işlev açısından koşut işletilebilecek kesimler içerir. Bu kesimlerin tek bir program içinde yer almaları ardı ardına işletilmelerini zorunlu kılar. Koşut işletilebilir her kesim için ayrı bir program öngörüp bunları koşut işletmek ve bu yolla işletimi hızlandırmak ve verilen hizmetin niteliğini arttırmak mümkünüdür. Ancak ortak bir amaca(işleve) dönük değişik kesimlerin ayrı programlar tarafından ele alınması, bu kesimlere ana bellekte işletim sistemi tarafından ayrı adres (kod ve veri) alanları ayrılması sonucunu doğurur ve söz konusu kesimlerin ortak verileri paylaşmalarını zorlaştırır. Bu paylaşım çoğunlukla bir programın adres evreninden diğer bir programın adres evrenine veri aktarma yoluyla gerçekleşir. Örneğin UNIX - 4 -

6 işletim sisteminde koşut çalışan iki ayrı programın(görevin) veri alışverişi, genelde bir adres evereninden diğer bir adres evrenine veri aktarımı yapan pipe ve fifo gibi kimi görevler arası veri iletişim araçları(sistem çağrıları) ile, işletim sistemi ve sistem kaynakları yönünden pahalı bir biçimde mümkün olabilmektedir. Bu durum aslında işletim sisteminin her görevi tek bir işletim dizi gibi görmesinden kaynaklanmaktadır. Tek bir program içinde birden çok koşut çalıştırılabilir işletim dizisi öngörülebilmesi durumunda bu dizilerin aynı adres evrenini paylaşması ve bu yolla veri alışverişinin kolaylaştırılması sağlanır. Bir program içinde yer alan koşut çalıştırılabilir kesimler işletim dizileri(threads) olarak adlandırılır. Bu bağlamda görev, ilgili işletim dizlerinin çalıştığı ortak bir işletim alanı olarak düşünülür. Đşletim sistemi, ana bellek, giriş/çıkış (kütükler) gibi sistem kaynaklarını görevler düzeyinde atar ve o düzeyde izler. Bir görev içinde tanımlı işletim dizileri söz konusu bu kaynakları paylaşırlar. Ancak işletim dizi olarak tanımlanmış her kesimin kendine özgü bir program sayacı bulunur. Bu yolla ana işlem birim(ler)ine ayrı ayrı anahtarlanarak koşut bir biçimde işletilebilirler. Bir göreve ilişkin işletim dizilerinin ana işlem birimine anahtarlanmaları görev anahtarlama ya göre daha dar kapsamlı dolayısıyla hızlı ve daha ucuz bir yol olan bağlam anahtarlama yoluyla gerçekleşir. Đşletim dizileri, aynı görevler gibi, işletimleri sırasında hazır, bekler, çalışır gibi durumlarda bulunurlar. Đşletim dizilerinin yönetimi genelde, kullanıcı evreninde yada işletim sistemi evereninde olmak üzere iki değişik biçimde gerçekleşir. Eğer yönetim kullanıcı evreninde ele alınıyorsa işletim sistemi işletim dizilerinin varlığından habersizdir. Bu durumda kullanıcı evreninde çalışan bir yönetim paketi bir görev içinde tanımlanmış değişik işletim dizilerinin yönetimini üstlenir. Bir işletim dizisi herhangi bir sebepten işletimi bıraktığında, aynı görev içinde tanımlı hangi işletim dizisinin işletime alınacağını, ilgili görevle birlikte işletimde bulunan söz konusu yönetim paketi belirler. Aynı yönetim paketi birden çok işletim dizisi içeren programlar tasarlanırken, programcılara işletim dizisi tanımlama, çalıştırma, - 5 -

7 durdurma, zamanuyumlama gibi işlevleri de sağlarlar. Başka bir değişle bu tür programlar tasarlanırken ilgili paketin tanım ve işlevleri kullanılır. POSIX P-Threads ve Mach C-Threds, günümüzde bu tür işletim dizisi yönetim paketlerine verilebilecek adlardır. Kimi modern işletim sistemleri, görevlerin yanı sıra görevler altında yer alan işletim dizlerinin yönetimini de üstlenir. Çok işletim dizili işlem (multi-thread), bu durumda işletim sisteminin bu amaçla sağladığı sistem çağrıları kullanılarak gerçekleştirilir. Windows NT böyle bir işletim sistemine verilebilecek en belirgin örnektir. Çok işletim dizili işlemin, kullanıcı evreni yönetim paketleriyle mi yoksa işletim sisteminin sağladığı araçlarla mı ele alınması gerektiği halen tartışılan bir konudur. Her iki yaklaşımın da kendine özgü üstünlükleri ve sakıncaları söz konusudur. Bununla birlikte UNIX gibi çok yaygın kullanımı olan işletim sistemlerinde çok işletim dizili işlem, yukarıda anılan kimi yönetim paketleriyle gerçekleştirmenin dışında da başkaca bir seçenek mevcut değildir. Monitor Kavramı ve Kullanımı Monitor, birlikte çalışan görevlerin, ortak kaynağa erişim yapan yordamlarının (kritik kesilmelerinin) toplandığı kümeye verilen addır. Görevlerin ortak kaynağa erişimlerini denetim altında tutmanın bir yolu da bunların, kritik kaynaklara merkezi bir denetim altında erişmelerini sağlamaktan geçer. Monitor kavramının temelinde bu ilke yatar. Birlikte çalışan görevler programlanırken ortak kaynağa erişim yapacak yordamlar özel bir kümede toplanır. Bu kümenin tüm görevlerce bilinen özel bir adı bulunur. Đşletim aşamasında bir görev ortak kaynağa erişmek istediğinde, ilgili yordamı bu kümeden çağırır. Programlama aşamasında bu küme özel bir tür olarak, monitor biçiminde tanımlandığından, derleme aşamasında bu kümenin başına, karşılıklı dışlamayı sağlayacak gerekli karşılıklı dışlamayı sağlayacak dışlama komutları derleyici tarafından eklenir. Bu yolla bu kümeden aynı anda birden çok görevin yordam çağrısına izin verilerek ortak kaynağa aynı anda ençok bir görevin erişim yapması sağlanır. Görevlerin monitor da yer alan bir yordamı - 6 -

8 çağırmaları monitora girmeleri olarak nitelenir. Bir görev monitor içindeki bir yordamın işletimini tümüyle tamamlamadan diğer bir görev monitor içinden yordam çağıramaz. Başka bir değişle bir görev monitorun içinde iken başka bir görev monitora giremez. Bu amaçla monitora ilişkin bir bekleme kuyruğu da öngörülür. Yukarıda verilen açıklamalardan da anlaşılacağı gibi monitor bir programlama dili yapısıdır. Monitorla ilgili önemli bir sorun, monitora birkez girmiş bir görevin burada, karşılıklı dışlama gereğinin dışında, başka bir nedenle beklemesi gerektiğinde bu beklemenin, diğer görevleri kilitlemeden nasıl gerçekleşeceği sorunudur. N tutanaklık bir yastık üzerinden iletişim yapan iki görevin, bu yastığa erişim yapan kesimlerinin üretici-tüketici adlı bir monitor içine konduğu düşünülebilir. Bu görevlerden üretici olanının, monitora girerek, yastık doluyken buraya yeni bir tutanak eklemeye kalkması durumunda beklemeye alınması gerekir. Bu görev gerekli önlemler alınmadan beklemeye alınırsa, hala monitor içinde göründüğünden tüketici görevin monitora girmesi engellenir. Tüketici görev monitora girip bir bir tutanak almadan üretici görevin bekleme durumu son bulamayacağından, kilitlenme olarak bilinen, görevlerin karşılıklı bekleşme durumu ortaya çıkar. Bu önemli sakıncayı ortadan kaldırmak için kimi koşullarda, bekleme durumundaki bir görev, halen monitor içinde iken, diğer bir görevin de monitora girişinin sağlanması gerekir. Bunun için monitorda, koşul(condition) adlı yeni bir değişken türü ile bunlar üzerinde işlem yapan wait ve signal adlı komutlar tanımlanır. Wait komutu kendisini çalıştıran görevi koşul değişkenine bağlı bekleme kuyruğuna koyar. Signal komutu ise koşul değişkenine bağlı kuyruktaki görevi hazır görev durumuna getirir. Görevler monitor içinde bekleme koşul değişkeniolarak tanımlarlar. Monitor içinde sınanan bir koşul değişkeni bekleme yapmayı gerektiriyorsa wait komutu çalıştırılarak bekleme durumuna geçilir. Wait komutu, aynı zamanda, varsa, monitora girmeyi bekleyen bir görevin monitora girmesini de sağlar. Bekleme durumundaki bir görevin hazır görev durumuna geçebilmesi, monitora bundan sonra giren görevlerden birinin, aynı koşul değişkenine ilişkin signal komutunu çalıştırmasıyla gerçekleşir

9 Birlikte çalışan görevler yönünden monitor, bölüşülen ortak kaynak için vardır. Bir sistemde birden çok ortak kaynak ve bunların çevresinde kümelenen birden çok birlikte çalışan görev bulunur. Koşut işlem, her görev kümesi için ayrı bir monitor tanımlanarak yürütülür. Monitor yaklaşımını kullanan sistemlerde, zamanuyumlanmaları gereken yordamlar belli kümeler içinde toplandıklarından, semaforlar yada işletim komutları kullanılarak gerçekleştirilenlere göre daha kolay anlaşılır ve bakılır yazılımların elde edilmesi sağlanır. Daha önce de blirtildiği üzere, monitor bir programla dili aracıdır. Bu aracı kullanan sistem programcıları programladıkları görevler arası ayrıntılı zamanuyulama eklerini öngörme zorunluluğundan kurtulurlar. Zire monitor kullanımına olanak veren programlama dillerinde görevler arası zamanuyumla işlevi, tanım gereği, derleyici ve sistem yazılımlarının yükümlülüğüne girer. Monitor kullanımını destekleyen üst düzey programla dillerine örnek, java dır. Java, programların işletim dizileri içermesine olanak vermekte ve bunların zamanuyumlanmasını monitor yaklaşımıyla ele almaktadır. Bu amaçla, üretici-tüketici nitelikli işletim dizi sınıfları içinde, paylaşılan özel nesneye erişim yapan yordamlar: synchronized void yordam1(){ synchronized void yordam2(){ biçiminde, synchronized nitelikli herhangi bir yordam ençok bir işletim dizisinin işletilmesi sağlanmaktadır. Bu işletim dizisi paylaşılan nesneyle ilgili synchronized nitelikli bir yordamın işletimini tümüyle tamamlamadan diğer bir işletim dizisi de, aynı nesneye ilişkin synchronized nitelikli başka bir yordamı işletmeye kalktığında, bu sonuncunun, otomatik olarak bekler duruma geçmesi sözkonusu olmaktadır. Zira java da her nesne için bir kilit(lock) belirtici öngörülmekte ve synchronized nitelikli bir yordam bir nesne üzerinde işlem yaparken bu nesne kilitlenerek diğer synchronized nitelikli yordamların erişimine kapalı tutulmaktadır. Kilit belirteci, bu niteliğiyle, paylaşılan nesnenin (zamanuyumlanması gereken) yordam kümesini belirlemekte ve monitor olarak anılmaktadır

10 Peki, Đşletim Dizileri ile Asenkron programlama anlayışı arasındaki fark nedir? Bu soruya yanıt vermek için aşağıda verilen.net te yazılmış program parçalarını irdelemek gerekecektir. Đşletim Dizileri (threads) ve Asenkron Görevler Đşletim dizileri genel olarak bir görevin arka planda çalışması istendiğinde kullanılır ve bu yeni görevlerin yaratımı, yönetimi ve yaşam döngüleri ana görev tarafından belirlenir, bu paralel programlama ile benzetilebilir. Diğer taraftan asenkron programlama daha çok istem cevap (request-response) şeklinde işlemektedir. Bu bağımsız bir görevdir ve ana işletim dizisi cevabın nasıl oluşacağını, çalışacağını veya ne zaman yollanacağını bilemez. Sadece cevabın tamamlandığını veya oylanması gerektiğini bilir. Bunun dışında Đşletim dizilerinden hiçbir farkı yoktur. Bir kod parçasıyla örneklemek gerekirse; private WorkerMethod( void ) { while(true) // ever { Console.WriteLine("Hala Çalışıyor..."); Thread.Sleep( 2000 ); Thread BackgroundThread = new Thread( new ThreadStart( WorkerMethod )); Console.WriteLine("Arka fon işletim dizgesi yaratıldı"); BackgroundThread.Start(); Console.WriteLine("Arka fon işletim dizgesi çalıştırıldı "); - 9 -

11 bu kodda arka fonda çalışmak üzere bir WorkerMethod tanımlanmış ve çalıştırılmıştır. Bu işletim dizisi çalışırken ekranda görünen formun yerini Mouse yardımıyla değiştirmeye çalıştığımızda çıktı penceresinde yarattığımız işletim dizisini kesen başka görevlerin devreye girdiğini görebiliriz. Buda bize bloklayıcı metot çağrılarını kullanmamızın yolunu açar. Örneğin Socket.Connect() işletim dizgisi Connect() çağrısı sonlanana kadar bloklanmıştır ve bu sizin programınız tarafından kontrol edilemez. Asenkron programlama yakın bir davranış biçimiyle beraber daha farklıdır. Örneğin bir.net sunucuya bağlanmak istediğimizi düşünelim; MySocketState MySocketState; Socket MySocket; MySocket.BeginConnect( ConnectCallback, MySocketState ); // ön plan çalışmasına devam et BeginConnect() çağrısı bloklamaz ve hemen ön plan işletim dizesi geri işlemeye devam eder. Bir yandan da arka fonda sizin için bir işletim dizisi çalışmaya devam eder. Ne zaman cevap gelirse o sizin yerinize callback metodunu çağırır. private void ConnectCallback( IAsyncResult AResult ) { Socket S = (Socket)AResult.AsyncState; Socket ClientSocket = S.EndConnect( AResult ); // işleme devam edilebilir ClientSocket.BeginReceive(...); Asenkron çağırma özelliğini tamamlamak için EndXXX() metodu çağrılmalıdır, burada bu metot EndConnect() olarak geçmektedir. Burada tanımlamanız gereken metotlar BeginXXX() ve EndXXX() metotlarıdır, ki bunlar işletim dizisi havuzunda çalışmakta olan arka fon görevlerdir. Bu işletim dizilerinin nasıl çalışacağı hakkında bir bilgiye ihtiyacınız yoktur, çünkü bunlar sistem tarafında belirlenir. Bu örnek için tavsiye edilen yöntem elbette asenkron yöntemdir, çünkü sistem

12 kaynakları boş yere harcanmamakta, program işlem karmaşıklığından kurtulmaktadır. Şimdi senkron asenkron programlama ayrımına varabilmek için farklı bir örnek inceleyelim. Bir Senkron Asenkron Programlama Karşılaştırması (Synchronous versus asynchronous programming) Genel tanımıyla; Senkron programlarda görevler arası iletişim yastık alanları kullanılmadan yapılmakta ve görevler birbirlerini bilgi transferi bitene kadar beklemektedir. Asenkron programlarda görevler arası iletişim için kullanılan yastık alanları vardır ve bu alanların büyüklükleri kavramsal olarak sınırsız kabul edilir. Gönderici hiçbir zaman gönderdiğinin ardında beklemez, alıcı ise sadece yastık alanı boş ise bekler. Ortada birçok, asenkron mesajlaşma düzenlemesini kesin belirleyen protokoller vardır. Bazıları bir çift görev arasındaki adres düzenlemesi, bazıları ise çoklu görevler arasındaki düzenlemelerdir. Bununla beraber bir düzenleme çok kesin ve kolaylıkla yapılabilmektedir ( örneğin sebepsel düzenleme Causal Ordering (CO)), buna rağmen da asenkron programlama hiçbir zaman kolaylıkla yapılamaz, çünkü asenkron programlama açısından, dağıtılmış sistemlerde programlar için hız kısıdı ve etkili çözüm çok önemlidir. Aslında, asenkronizasyon birçok insana görünenden daha zordur. Çok çeşitli sistemler çok farklı noktalarda asenkronizasyon kullanırlar ve bunu çoğu zaman tam doğru bir dokümantasyon yapmadan, hangi modelin kullanıldığını anlatmadan, açık bir anlayış sergilemeden yaparlar. Örneğin GAY (grafik ara yüzü) kullanan uygulamalar, ara yüzlerinin biraz hızlı kullanımı sonucu kolaylıkla çökerler ve bunun sebebi çoğu kez tam olarak tespit edilemez. Bunda en büyük sebebin probleme yol açan

13 sistemin tam olarak dökümante edilmemesi olduğu genel bir kanıdır. Çünkü doküman eksikliği sebebiyle sorunun tam olarak kalbine inilememektedir. Örnek verecek olursak DIVE nin kullanım talimatlarında şöyle bir bölüm geçmektedir; bir özelliğin bir değerinin tüm DB anında günlendiğinden emin olunamaz. Bu sebeple programlama yaparken en dikkat etmeniz gereken husus sıklıkla değişikliğe maruz kalan DB içerikleridir. Eğer DB i günleme işleminden daha hızlı bir şekilde günlemeye çalışırsanız bu eninde sonunda çıkmaz bir durumla karşı karşıya kalacaksınız anlamına gelmektedir. Bu paradoksal problem tüm noktadan-noktaya (peer-to-peer) iletişim kuran birimler arasında yaşanan ve kalıtımsal olarak geçen bir sorundur. Eğer bir veriyi bu şekilde çok hızlı bir şekilde günleme istiyorsanız DIVE bu iş için uygun bir platform olmayabilir DIVE nin bahsedilen durum için çözümü veriyi çok hızlı bir biçimde değiştirmemektir, aksi taktirde, program er yada geç normal olmayan bir biçimde sonlanacaktır. Burada aradaki farkı belirtilmek yerine asenkron program az yada çok bir biçimde senkron bir program gibi tanımlanmıştır. Peki gerçekten yapılan iş sırasıyla belirtilmiş midir? Bir düğümün güncellenmesi bir başka düğümü etkilerse ne olacak? Đnsanlar genelde iletişim modelini tam olarak anlamadan bu problemi atlar ve geçerler çünkü çoğunlukla çalışmayan parça sistemde hayati önem taşımaya bir noktada bulunmaktadır. Örneğin kullanıcı bir yerde Mouse a çok hızlı ardı ardına tıklar ve sonuçta hemen bir hata mesajı alır. Bu yüzden kullanıcılar ya hatanın kendisinden kaynaklandığını düşünür ya da bu küçük hatayla çok sık karşılaştıkları için bu konuyu es geçerler. Ancak bu düşünce tarzı, sorunla başa çıkılabilmesi için kabul edilebilir değildir. Bu soruna ilişkin bir çözüm gerekmeyen yerlerde asenkron modelin kullanılmaması, yerine senkron modelin kullanılmasıdır. Fakat bu iki modeli bir arada kullanmak pek kolay değildir. Aşağıda bu iletişim modelleri açıklanmaya çalışılacaktır

14 Görüldüğü gibi en genel bakış açısıyla iki programlama anlayışının da birbirlerine göre artıları ve eksileri bulunmakta, her iki anlayışın da kullanılması için kaçınılmaz sebepler bulunmaktadır. Biz araştırma konumuzun bundan sonraki kısımlarında asenkron programlama anlayışı üzerinde duracak, zaman zaman da senkron programla anlayışı ile kıyaslamalar yapılacaktır. Fakat unutulmamalıdır ki mantıksal anlamda her yöntemin kullanılması için kendilerine göre kaçınılmaz noktalar vardır ve günümüze kadar evrimleşerek gelen bu anlayışlar daima bir bütün olarak programlama anlayışında kullanılmışlar ve kullanılacaklardır. JAVA ĐLE PARALEL PROGRAMLAMA ÖRNEĞĐ Gerçekleştirmeye çalışacağımız programla örneği ile java da paralel programlama mantığına anlatmaya çalışacağız. Verilecek örnek çok temeldir. Ancak java da paralel programlama yapacak bir kişinin kesinlikle bilinmesi gereken çok temel bilgiler içermektedir. Yapacağımız örnekte geçecek olan bazı teknik terimler şunlardır; synchronized : daha önce de anlatıldığı gibi, kritik kaynağa erişmede kitlenmesi istenen yordam yada nesnelerin bu anahtar kelime sayesinde kilitlenmeleri java da mümkündür. Synchronized anahtar kelimesi ile bir blok kitleneceği gibi bir metod da kilitlenebilir. Örneğin; synchronized(toplam){ sayac++; toplam.arttir (arritmamiktari); settext(); sleep(uyumasuresi);

15 Yukardaki örnekte toplam adındaki obje (referans) diğer objelerin kullanımına kapatılmıştır. Diğer bir kullanım şekli de: private synchronized void senkronislem(){ synchronized(toplam){ sayac++; toplam.arttir (arritmamiktari); settext(); sleep(uyumasuresi); Şeklindedir, bunun anlamı ise bu metod kesiminin çalışması aşamasında diğer kesilmeye uğramamasıdır. wait() metodu Object ten kalıtımla gelen bir metoddur ve parametresiz olarak yazıldığında, işletilmekte olduğu objeyi bekleme konumuna getirerek objenin çalıştığı monitor a başka objelerin de girmesini sağlar. sleep() bu fonksiyon da tıpkı wait() gibidir ancak wait-notify ikilisi kullanılabilirken sleep-notify ikilisinin kullanımı sonuç vermez. Bunun anlamı sleep() komutuyla beklemeye alınan bir thread bu süreden daha fazla süre de uykuda kalabilir. Ayrıca sleep() metodu Thread den kalıtarak geçer. notify(), notifyall() metodları da Object le kalıtarak gelen metodlardır, bunlar wait() in aksine bulunduğu monitordeki kitli olan thread leri açmaya yarar. notifyall() monitordeki tüm thread leri serbest bırakır, bu durumda monitore bir sonra anahtarlanacak thread herhengi bir thread olabilir. Program Arayüzü-Tanımı: Program geliştirme platformu:netbeans ide beta verison Kullanılan Java versiyoun: java version "1.5.0_06"

16 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing) Đşlemci: AMD Athlon XP+ Class diagram : Class diagram dan da anlaşılacağı gibi görsel arayüzümüz Ekran adlı sınıfta tanımlanırken, kullanacağımız Thread ler olan s1 ve s2 ise Sayici sinifinin birer nesnesidir. Ayrıca Sayici sınıfının içinde yer alan toplam static nesnesi ise Toplam sınıfından olan basit bir nesnedir. toplam static nesnesi s1 ve s2 nesneleri için kritik kaynak niteliğindedir. Program çok basit bir ilkeyle çalışır. Her thread (s1 ve s2) kendilerine verilen artış miktarına göre toplam static nesnesi içinde olan toplam:double değerini arttır yada azaltırlar. Yaptıkları her arttırma yada azaltma sonunda kendilerine verilen JTextField leri ve bahsedilen toplam nesnesini günlerler

17 Ekranın sol tarafındaki değerler s1 için sağ tarafındakiler ise s2 threadleri için kullanılırlar. Yukardaki şekilde gözüken sayaç 1 ve sayaç 2 alanları yazılabilir alanlar değildirler ve her bir thread için başlangıç değerleri 0 dır. Bu alanlara yazılacak değer class diagramda Sayici sınıfının bir niteliği olan sayac değeridir

18 Şekilde yer alan artırma miktarı alanı ise sadece başlata basmadan önce yazılabilir bir alandır. sayaç 1 s1 in her devreye girişinde ekranın sol tarafındaki artırma miktarı kadar arttırılır. Bu işlem aynı şekilde toplam için de yapılır. Yani s1 veya s2 her devreye girişinde hem kendi içlerindeki sayaçları artış miktarına göre arttırırlar hemde toplam içindeki toplam değerini artış miktarına göre arttırırlar. Şekilde görünen JSplitter lar ise threadlerin sayı saymadaki hızlarını belirlemek için kullanılırlar. Bunun anlamı threadlerin ne kadar süre uyumaları gerektiği bu kaydırıcılarla belirlenebilir. Kaydırıcılar program çalışmaya başladıktan sonra da değiştirilebilir. Class digramda Sayici içindeki uyumasuresi, jsplitterların değerleri değiştikçe günenirler bu sayede dinamik bir yapı elde edilmiş olunur. Bununla ilgili kod kesimi aşağıdaki gibidir: Public class Sayici{ private void islem() throws InterruptedException{ sayac++; toplam.arttir (arritmamiktari); settext(); sleep(uyumasuresi);

19 Şekilde görünen öncelik seçici düğmeler ise threadlerin (s1 ve s2) önceliklerini belirlemede kullanılırlar. Program varsayılan şekilde başlatıldığında bu sekmelerin değiştirilmesinin hiçbir işe yaramadığını kolaylıkla görebiliriz. Çünkü threadlere uyumaları için verilen sürede işlemciyi kullanmadıkları düşünüldüğünde, her bir thread için bir toplama ya da çıkarma işlemi yapmak çok kısa süreceğinden, böyle bir durumda öncelik sıralaması gerekmeksizin threadler işlemlerini verilen sürelerde kolaylıkla bitirebileceklerdir. Öncelik belirlemesi sekmelerini işe yarar şekillerde kullanabilmek için yapılması gereken işlem, önceden bahsedilen sayma hızını 0 a getirmektir. Sayma hızının 1/0 a getirilmesi demek işlemler için yeterli sürenin threadlere verilmemesi anlamına gelmektedir. Böyle bir durumda ana işlem birimine anahtarlanabilmek için öncelik önem kazanır ve thread in ana işlem birimine anahtarlanma süresini bu öncelik belirler. Ancak programlama aşamasında karşılaşılan en önemli sorun testler sırasında bilgisayarın kilitlenme derecesine gelmesi ve gui içinde kullanılan JTextField objelerinin zaman zaman yanlış değerlerle set edilmesi idi. Bu sorunları aşmak için aşağıdaki kod kesimi kalınitalik alanlar sonradan eklenerek elde edildi

20 public synchronized void settext () { try { synchronized(texttf){ texttf.settext (sayac+""); sleep(1); synchronized(toplamtf){ toplamtf.settext(sayici.toplam.ver ()+""); sleep(1); catch (InterruptedException ex) { ex.printstacktrace(); Bu kod kesiminde amaç tamamen görsel arayüze kendini toparlayabilmesi için süre tanımaktır. Yukarda görülen şekildeki senkronize sekmesi iki thread için de kritik olan toplam objesinin kilitlenerek kullanılıp kullanılmayacağını belirler. Bu sekme işaretli ise toplam objesi, sekmenin işertli olduğu thread içinde kilitlenir. Bunu sağlaya bilmek için objelerin içinde senkron:boolean adından bir nitelik bulunur. Bu nitelik thread içindeki run fonksiyonunda

21 kritik kaynağın kilitlenip kilitlenmemesine göre iki farklı metoddan birini çağırır. Bu amaçla aşağıdaki kod kesimi yazılmıştır: private synchronized void senkronislem() throws InterruptedException{ synchronized(toplam){ sayac+=arritmamiktari; toplam.arttir (arritmamiktari); settext(); sleep(uyumasuresi); private void islem() throws InterruptedException{ sayac+=arritmamiktari; toplam.arttir (arritmamiktari); settext(); sleep(uyumasuresi); public void run() { try { while(true){ if(senkron) senkronislem(); else islem(); catch(interruptedexception e){ Yukardaki koddan da anlaşılabileceği gibi, eğer senkron mod çalışmakta ise toplam objesi kilitlenir. Son olarak bahsedilmesi gereken sekme duraklama süresi kesimidir. Buradaki JSplitter dur düğmesine basıldığında uyumanın ne kadar süreceğini belirler

22 Programla ilgili bahsedilmesi gereken son kesim konsol çıktı kısmıdır. S1 veya s2 de dur a basıldığı anda o thread duraklama süresi kadar beklemeye geçecektir. Peki duraklamayan thread o süre içinde ne kadar saymıştır sorusuna cevap bulamak için böyle bir yöntem benimsenmiştir

23 Programın Çalıştırılması ve Sonuçları Örnek 1 S1: S2: Arttırma miktarı : 1 Arttırma miktarı : -1 Sayma hızı : 0 Sayma hızı : 0 Öncelik : Az Öncelik : Normal Senkronize :değil Senkronize :değil Program bu değerler ile günlendiğinde bir - iki saniye sonra oluşan çıktı; sayaç 1 = 307, sayaç 2 =-454, toplam sayaç = -148 Görüldüğü gibi sonuç öncelik farkı nedeniyle thread 2 ye doğru kaymıştır. Ayrıca toplam sayaç = sayaç 1 + sayaç 2 olması gerekirken =-147 dir. Sonucun böyle farklı olmasındaki sebep yazılan program içinde toplam ve sonuç değerlerinin aynı anda günlenememesi yani görüntü arabiriminin göreli yavaşlığından kaynaklanabilmektedir. Ayrıca kritik kaynak olan toplam ın kilitlenmemiş olması ise olası bir başka etkendir

24 Örnek 2 S1: S2: Arttırma miktarı : 1 Arttırma miktarı : -1 Sayma hızı : 0 Sayma hızı : 0 Öncelik : Az Öncelik : Normal Senkronize :evet Senkronize :evet Program bu değerler ile günlendiğinde üç-dört saniye sonra oluşan çıktı; sayaç 1 = 425, sayaç 2 =-427, toplam sayaç = -1 Önceliğinin yüksek olmasına rağmen toplam sayacının değerinin 0±5 olması dikkat çeki olduğu kadar synchronized ın ne işe yaradığınıda ortaya koymaktadır. Ortak (kritik) kaynak olan toplam kilitlendiği için s1 ve s2 threadi karşı taraf serbest bırakmadan toplam a erişemedikleri için öncelikleri yüksek olsa bile toplam ı değiştirememektedirler. Ayrıca burada işlemcinin veriminin düştüğü de gözlemlenmiştir. Đlk örneğe göre daha uzun sürmesine karşın işlemci hemen hemen aynı miktarda bu threadlere anahtarlanmıştır. Burada yapılabilecek başka bir deneme de duraklama süresini 1 gibi yüksek bir değere getirerek, örneğin s1 de dur a basmaktır. Bunun sonucnda oluşan çıktı: s1 uyu s1 uyan s1 uyanana kadar; sayac 1: 1 tane saydi sayac 2: -254 tane saydi şeklinde olmuştur

25 Örnek 3 S1: S2: Arttırma miktarı : 1 Arttırma miktarı : -1 Sayma hızı : 0.05 Sayma hızı : 0.5 Öncelik : normal Öncelik : Normal Senkronize :evet Senkronize :evet Program bu değerler ile günlendiğinde altı saniye sonra oluşan çıktı; sayaç 1 = 12, sayaç 2 =-12, toplam sayaç = 0 şeklinde olmuştur. S1 in 6 saniyede tek başına sayması gereken miktar 120 iken sadece 12 tane saymasındaki sebep yine kritik kaynak olan toplam ın kilitlenmesidir. Her ne kadar s1 s2 nin yarım saniyelik uykusundan ötürü boş kalsa da, s2 nin uykuya girerken toplam kritik kesimini de kitlemesi s1 in bu kritik kesime ulaşamamsına dolayısıyla toplamı arttıramamasına, bunun sonucu olarak da o kad satırında beklemesine (toplamı günleme satırı) yol açmıştır. -SON

26 Kullanılan programlar: Windows XP sp2 Netbeans ide beta java version "1.5.0_06" Java(TM) Eclipse 3.1 Office 2003 Mozilla firefox Macromedia Firewroks Screenshot utility Kullanılan Donanım: Asus a7v600 Amd athlon xp+ 1GB ddr ram Nvidia 6600GT TDH Klavye Mouse Samsung 793 df monitor Philips cdwriter Kaynakça, Yararlanılan internet siteleri: o o o reads o ial/jtthreadex.html o threads.html o o brary/enus/cpguide/html/cpconasynchronousprogramming.asp o threads-p2.html Yararlanılan Kitap: o Bilgisayar Đşletim Sistemleri : Prof. Dr. Ali SAATÇĐ

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

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ı

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ı

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

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

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

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ı

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

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ı

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

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ı

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ı

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ı

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ı

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

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ı

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : 1.01.01 Tarih : 10.01.2008. Copyright 2008 AKINSOFT

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : 1.01.01 Tarih : 10.01.2008. Copyright 2008 AKINSOFT AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu Doküman Versiyon : 1.01.01 Tarih : 10.01.2008 1 - Çalışma Şekli Hakkında Kısa Bilgi modülü kısaca aşağıdaki işlemleri yapar. Bu özelliklerin çalışabilmesi

Detaylı

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

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

Detaylı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü OMNET++ 4.2.2 Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları OMNET++ OMNET++ (Objective Modular Network Testbed in C++), nesneye yönelik (objectoriented)

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

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ı

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ı

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

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ı

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ı

BİLGİSAYAR AĞLARI Bilgisayar İletişimi Nedir? Veri İşleme Modelleri ve Ağ Gelişimi Merkezi İşleme

BİLGİSAYAR AĞLARI Bilgisayar İletişimi Nedir? Veri İşleme Modelleri ve Ağ Gelişimi Merkezi İşleme BİLGİSAYAR AĞLARI Bilgisayar ağlarının kullanımındaki temel amaç bilgi ve servislerin paylaşımıdır. Bu bölümde bilgisayar ağlarının sınıflandırılması ve kullanım amaçları anlatılmaktadır. Bu bilgi ve servislerin

Detaylı

SIMAN KULLANIM KILAVUZU

SIMAN KULLANIM KILAVUZU SIMAN KULLANIM KILAVUZU Önder Öndemir SIMAN Simülasyon programı Model Çatı ve Deneysel Çatı olmak üzere iki kısımdan oluşur. Model çatı genel itibariyle modullerin ve işlem bloklarının yazıldığı kısımdır.

Detaylı

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi arvento Araç Takip ve Filo Yönetim Sistemleri ile araçlarınızı 7 gün 24 saat on-line ve geçmişe yönelik olarak izleyebilir, hızlarını, izlemiş oldukları güzergahı, duraklama yaptıkları yerleri uzaktan

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ı

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

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

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ı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

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ı

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ı

5. PROGRAMLA DİLLERİ. 5.1 Giriş

5. PROGRAMLA DİLLERİ. 5.1 Giriş 5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması

Detaylı

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr Gölhisar Meslek Yüksekokulu Bilgisayarın Yapısı Donanım (Hardware): Bir bilgisayara genel olarak bakıldığında; Kasa, Ekran, Klavye, Fare, Yazıcı, Hoparlör,

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

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ı

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ı

Çözüm Bilgisayar. Çözüm SIRAMATİK

Çözüm Bilgisayar. Çözüm SIRAMATİK Çözüm Bilgisayar Çözüm SIRAMATİK Çözüm Sıra Sistemi Amaç : Hastanelerde çeşitli birimlerde oluşan hasta sıralarının (poliklinik müracaat, poliklinik hasta kabul, ssk eczane vb.) bankolar önünden uzaklaştırılarak,

Detaylı

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014 14 Temmuz 2014 İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL İlgili Modül/ler : E-Fatura Gelen e-fatura Dosyalarının Transferi Firmalara tedarikçilerinden veya hizmet aldıkları firmalardan gelen e-faturalar,

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Java Programlamaya Giriş

Java Programlamaya Giriş Java Programlamaya Giriş Amaçlar: 1. Java kurulumu (Netbeans ve JDK) 2. Java Netbeans Kullanımı 3. Program yazma Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek

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ı

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon Dinamik Kodlama Ürün Grubu Kategori Versiyon Önkoşulu [X] Fusion@6 [X] Yeni Fonksiyon @6 Uygulama @6 Serisi ürünlerde, kullanıcı arabirimlerinin her yerine eklenen dinamik kodlama özelliği ile, programın

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

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ı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1 SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

DESTEK DOKÜMANI. Masaüstü için rapor kısayolu. Ürün : GO Bordro-Tiger2Bordro-IK Bölüm : Görev Zamanlayıcı

DESTEK DOKÜMANI. Masaüstü için rapor kısayolu. Ürün : GO Bordro-Tiger2Bordro-IK Bölüm : Görev Zamanlayıcı Bölüm Görev Zamanlayıcı, kullanıcının belirlediği batch işlem ve raporları, sıralı bir şekilde seçerek takvime bağlayabilmekte, takvime bağlanan görev tanımlarını belirtilen zamanda otomatik olarak çalıştırmaktadır.

Detaylı

Dokunmatik Yüzey ve Klavye

Dokunmatik Yüzey ve Klavye Dokunmatik Yüzey ve Klavye Kullanıcı Kılavuzu Copyright 2007 Hewlett-Packard Development Company, L.P. Windows, Microsoft Corporation kuruluşunun ABD de tescilli ticari markasıdır. Bu belgede yer alan

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

DESTEK DOKÜMANI. Masaüstü için rapor kısayolu. Ürün : GO Bölüm : Görev Zamanlayıcı

DESTEK DOKÜMANI. Masaüstü için rapor kısayolu. Ürün : GO Bölüm : Görev Zamanlayıcı Bölüm Görev Zamanlayıcı, kullanıcının belirlediği batch işlem ve raporları, sıralı bir şekilde seçerek takvime bağlayabilmekte, takvime bağlanan görev tanımlarını belirtilen zamanda otomatik olarak çalıştırmaktadır.

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI

MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU MATRİKS TRADER VE JAVA MATRİKS ENTEGRASYONLARI İMKB ve VOB Emir İletim ve Yönetim Platformu MATRİKS E-BROKER ELEKTRONİK İŞLEM PLATFORMU NEDİR? E-Broker programı,

Detaylı

7. Bölüm Robot Programlamada Mantıksal Fonksiyonlar

7. Bölüm Robot Programlamada Mantıksal Fonksiyonlar 7. Bölüm Robot Programlamada Mantıksal Fonksiyonlar 7. Bölüm: Mantıksal Fonksiyonlar 7.1. Mantıksal Programlamanın Temelleri Endüstriyel Robot sisteminde çevre birimlerle olan iletişimin sağlanmasında

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

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

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ı

Kılavuz içerisinde TalksPBX kurulumu anlatılmakta olup, yapacağınız konfigürasyonlar satın aldığınız lisans ile sınırlıdır.

Kılavuz içerisinde TalksPBX kurulumu anlatılmakta olup, yapacağınız konfigürasyonlar satın aldığınız lisans ile sınırlıdır. HAKKIMIZDA Aktiftelecom, 1994 yılından bu yana deneyimli kadrosu ile telekomünikasyon sektöründe hizmet vermektedir. Satış sonrası hizmetler konusunda uzmanlaşmış teknik destek ekibi ve yurt çapında yayılmış

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

İnternet Programcılığı

İnternet Programcılığı 1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

25.10.2011. Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI 2008639402

25.10.2011. Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI 2008639402 Arayüz Tasarımı ve Programlama Neleri Konuşacağız Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları Ömer Faruk MIZIKACI 2008639402 Arayüz Nedir? Bilgisayar ve uygulamalarının

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

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ı

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı JSON Korsanlığı Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı İnternetin gün geçtikçe hayatımızdaki önemi arttı ve web siteleri milyonlarca insan tarafından girilen yerler haline geldi. Artık çevremizden

Detaylı

1. PROGRAMLAMA. PDF created with pdffactory Pro trial version www.pdffactory.com

1. PROGRAMLAMA. PDF created with pdffactory Pro trial version www.pdffactory.com . PROGRAMLAMA UTR-VC Windows altında çalışan konfigürasyon yazılımı aracılığıyla programlanır. Programlama temel olarak kalibrasyon, test ve giriş/çıkış aralıklarının seçilmesi amacıyla kullanılır. Ancak

Detaylı

VAN EDREMİT İLÇE MİLLİ EĞİTİM MÜDÜRLÜĞÜ

VAN EDREMİT İLÇE MİLLİ EĞİTİM MÜDÜRLÜĞÜ VAN EDREMİT İLÇE MİLLİ EĞİTİM MÜDÜRLÜĞÜ DyNed TANITIM VE BİLGİLENDİRME TOPLANTISI HAZIRLAYAN Murat ÇILGIN DyNed NEDİR? DYNED, Dynamic ve Education (Dinamik ve Eğitim) kelimelerinin bir araya getirilerek

Detaylı

Şekil 7.14: Makro Kaydet Penceresi

Şekil 7.14: Makro Kaydet Penceresi 7.2.4. Makrolar Kelime işlemci programında sık kullanılan bir görevi (çok kullanılan düzenleme ve biçimlendirme işlemlerini hızlandırma, birden çok komutu birleştirme, iletişim kutusu içinde daha kolay

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Yasin Hınıslıoğlu 1 Mehmet Serdar Güzel 2 1 Ahmet Yesevi Üniversitesi Yönetim Bilişim Sistemleri Bölümü, Ankara 2 Ankara Üniversitesi Bilgisayar

Detaylı

Kurulum ve Sistem Gereklilikleri 1

Kurulum ve Sistem Gereklilikleri 1 Kurulum ve Sistem Gereklilikleri 1 1 KURULUM VE SISTEM GEREKLILIKLERI...2 1.1 DONANIM VE YAZILIM GEREKLILIKLERI...2 1.2 KURULUM...3 1.3 LIFTDESIGNER 5 UYGULAMASINI İLK DEFA BAŞLATMA...6 1.4 DIGIPARA SUITE

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

COM API v2.0 Belge sürümü : 2.0.3

COM API v2.0 Belge sürümü : 2.0.3 COM API v2.0 Belge sürümü : 2.0.3 1. Đçindekiler 1. Đçindekiler...2 2. Bu belgenin amacı...3 3. Belge sürümleri...3 4. Sistem gereksinimleri...3 5. Kullanım şekli...4 5.1 Genel...4 5.2 Uyarılar...4 5.3

Detaylı

08217 Internet Programcılığı I Internet Programming I

08217 Internet Programcılığı I Internet Programming I Ders Tanıtım Sunumu 08217 Internet Programcılığı I Internet Programming I Elbistan Meslek Yüksek Okulu 2012 2013 GÜZ Yarıyılı 17 Eyl. 2012 Pzt. Öğr. Gör. Murat KEÇECİOĞLU Dersin Adı Ders Tanıtım Bilgileri

Detaylı

İNTERNET EXPLORER AYARLARI 1. Başlat-Ayarlar-Denetim Masası menüsünden "İnternet Özellikleri" (Seçenekleri)'ni seçiniz. Resim. 1

İNTERNET EXPLORER AYARLARI 1. Başlat-Ayarlar-Denetim Masası menüsünden İnternet Özellikleri (Seçenekleri)'ni seçiniz. Resim. 1 A.K.Ü VERİTABANLARINA UZAKTAN ERİŞİM AYARLARI Araştırmacılar, kampüs dışından erişim için kullanıcı adı ve parola doğrulaması ile Üniversitemiz sistemi üzerinden Kütüphane veri tabanlarını kullanabilmektedir.

Detaylı

9 Ekim 2009. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Cari II

9 Ekim 2009. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Cari II 9 Ekim 2009 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Cari II CARĐ BAZLI FĐYAT TANIMLAMA YÖNTEMLERĐ Cari bazlı fiyat takibi sayesinde programımız, her cari için ayrı ayrı fiyat tanımlamaya

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ı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Bilgisayar İşletim Sistemleri BLG 312 İşletim Sistemlerine Giriş Bilgisayar Sistemi uygulama programları derleyici editör komut yorumlayıcı işletim sistemi makina dilinde programlar mikroprogram (ROM da)

Detaylı

1 PROGRAMLAMAYA GİRİŞ

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

Detaylı

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ı

1.Yazılım Geliştirme Metotları 1

1.Yazılım Geliştirme Metotları 1 1.Yazılım Geliştirme Metotları 1 1.1 Klasik Çevrim(Waterfall) 1.2 V Modeli 1.3 Prototipleme/Örnekleme 1.4 Spiral Model 1.5 Evrimsel Geliştirme 1.6 Evrimsel Prototipleme 1.7 Artımlı Geliştirme 1.8 Araştırmaya

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ı

WOLVOX Hızlı Satış. AKINSOFT WOLVOX 7 Hızlı Satış Yardım Dosyası

WOLVOX Hızlı Satış. AKINSOFT WOLVOX 7 Hızlı Satış Yardım Dosyası AKINSOFT WOLVOX 7 Hızlı Satış Yardım Dosyası Doküman Versiyon : 1.02.01 Oluşturma Tarihi : 01.03.2011 Düzenleme Tarihi : 01.03.2011 Sayfa 1 Copyright 2011 1. İŞLEMLER 1.1. Satış Ekranı AKINSOFT Programı,

Detaylı

Seri Takibi Yenilikleri

Seri Takibi Yenilikleri Seri Takibi Yenilikleri Ürün Grubu [X] Fusion@6 [X] Fusion@6 Standard [X] Entegre@6 Kategori Versiyon Önkoşulu [X] Yeni Fonksiyon @6 Uygulama Yardımcı Programlar/ Şirket/Şube/Parametre Tanımlamaları bölümünde

Detaylı

Java Programlama Giriş

Java Programlama Giriş Java Programlama Giriş 2013-2014 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2014 Muhammer İLKUÇAR 1 Neden Java Programlama Platformdan bağımsızdır

Detaylı

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net

Ünite-3 Bilgisayar Yazılımı. www.cengizcetin.net Ünite-3 Bilgisayar Yazılımı Yazılım Kavramı Bilgisayarın belirli bir işi gerçekleştirebilmesi için kullanıcı tarafından her adımda ne yapacağı tarif edilmiş olmalıdır. Yani kullanıcı bilgisayara uygun

Detaylı

Scan Station Pro 550 Adminstration & Scan Station Service Araçları

Scan Station Pro 550 Adminstration & Scan Station Service Araçları Scan Station Pro 550 Adminstration & Scan Station Service Araçları Yapılandırma Kılavuzu A-61732_tr 7J4367 Kodak Scan Station Pro 550 Administration İçindekiler Farklılıklar... 1 Yükleme... 2 İş ayarları

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ı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. SİSTEM VE YAZILIM o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. o Yazılım, bilgisayar sistemlerinin bir bileşeni olarak ele alınmalıdır. o Yazılım yalnızca

Detaylı

E-UYGULAMALAR VE DOKÜMAN YÖNETİM SİSTEMİ PROJESİ (EUP) ECZANE İŞLEMLERİ KULLANIM KILAVUZU

E-UYGULAMALAR VE DOKÜMAN YÖNETİM SİSTEMİ PROJESİ (EUP) ECZANE İŞLEMLERİ KULLANIM KILAVUZU İlaç Takip Sistemi ile ilgili olarak İl Sağlık Müdürlüğü nüze şahsen başvuru yapan eczanelerin bilgilerini sisteme kayıt etmek ve daha sonra bu bilgilerden sorgulamalar yapabilmek amacıyla bu kılavuzda

Detaylı