Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreç (process) ve iş parçacıklarının (thread) neler olduklarını ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik. Bize verilen ikinci ödevde, iki matrisin çarpma işleminin her satırını bir iş parçacığına yaptıracağımız bir program istendi.
Ödevde, yaratılan bir thread çalışmaya başlamadan önce diğer tüm threadlerin yaratılmasını beklemeliydi. Biz de bu ödevi POSIX kütüphanesi ile hayata geçirdik.
POSIX: Linuxgiller. Onun için aşağıdaki kod Windows’ta çalışmaz.
Kaynak kodlarında mutex kullanımına örnek bulabilirsiniz. Kaynak kodlarını, ödev metnini ve ödev raporunu aşağıdan indirebilirsiniz. Kaynak kodu indirmek istemezseniz yazının devamına göz atabilirsiniz.
Dipnot: Kaynak kodları eğitim amaçlı olup, acemisi olduğum bir konu üzerinde yazılmış olduğundan bu kodları geliştirip Max Payne 3 yazarsanız ve yazdığınız oyun çökerse beni suçlayıp topuğuma sıkamayacağınızı bilmenizi isterim. Devamını oku »
Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreçleri (processler) ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik.
Bize verilen ödevde, iki matrisin çarpma işleminin her satırını bir sürece yaptıracağımız bir program istendi. Ödevin daha sonra değiştirilen ve kontrolü iptal edilen ilk sürümünde, henüz IPC’leri görmediğimizden süreçler arası bilgi aktarımını süreçleri aynı adres sahasında farklı program counterlar ile çalıştırarak sağlamıştık. (vfork)
Zaten sonra IPC’lere dönüştürmek 15 dakikamı ya aldı ya almadı.
Vfork bir linux sistem çağrısıdır. (system call) Onun için aşağıdaki kod Windows’ta çalışmaz.
Kaynak kodlarını, örnek girdi dosyasını ve ödev metnini aşağıdan indirebilirsiniz. Kaynak kodunu indirmek istemezseniz yazının devamına göz atabilirsiniz. Devamını oku »
Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreçleri (process) ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik. Üzerinde durduğumuz konulardan bir tanesi Inter Process Communication (Süreçler Arası İletişim) idi.
Bize verilen ödevde, iki matrisin çarpma işleminin her satırını bir sürece yaptıracağımız bir program istendi. Bu processler birbirleri ile bir IPC yöntemi olan pipeler ile iletişecekti.
Biz de bu ödevi POSIX arayüzünü kullanan işletim sistemlerine yönelik sistem çağrılarını kullanarak hayata geçirdik.
POSIX: Linuxgiller. Onun için aşağıdaki kod Windows’ta çalışmaz.
Kaynak kodlarını, ödev metnini ve ödev raporunu aşağıdan indirebilirsiniz. Kaynak kodu indirmek istemezseniz yazının devamına göz atabilirsiniz. Devamını oku »
NYHM, iki tane sayıyı, toplayan, çıkartan, çarpan veya bölen, NetBeans ortamı ile JAVA dilinde geliştirilmiş, Nesneye Yönelik Programlamanın (Object Oriented Programming) temellerine örnek teşkil eden basit bir programcıktır.
Bu programcıkta
adları verilen OOP’un olmazsa olmaz temel parçalarına basit (ama umuyorum anlaşılır) örnekler bulacaksınız. Devamını oku »
Geçen hafta PHP kursunda amacımızı biraz aşıp, istemci taraflı kütüphanelere daldık. AJAX’ın ne olduğu, neden AJAX’a ihtiyaç duyduğu, kısa bir tarihçesi gibi konular üzerinde durduktan sonra, popüler kütüphanelerden jQuery yardımı ile, AJAX yöntemini kullanan bir hesap makinesi yazdık.
Amacı ne, PHP’ye ne gerek var, JavaScript zaten toplama çıkarma yapabiliyor diyecek olursanız, sonuna kadar haklısınız. Bu programcıkta amaç, AJAX’ı basit bir şekilde örneklemek, öğrenebilmek, anlayabilmek…
…diyor ve sizi kodlarla baş başa bırakıyorum. Devamını oku »
ezSQL, PHP üzerinden veri tabanına erişimi kolaylaştıran hazır bir sınıftır. PHP’nin 4. ve 5. sürümleriyle uyumludur. Justin Vincent tarafından yazılan bu sınıfın kendi sitesine buradan erişilebilir. Eğer kendi sitesine girmek istemezseniz bu yazının yazıldığı dönemdeki son sürümü olan 2.05′i buradan indirebilirsiniz.
Yakuter, ezSQL sınıfının kullanımı ile ilgili çok kapsamlı bir yazı hazırladığından bir daha anlatmayı gereksiz buluyorum.
Bu yazıdaki kod örneğinde ezSQL sınıfı kullanılarak veri tabanına ekleme yapma ve basit sorgularla bilgi çekme örnekleri bulabilirsiniz. Daha önemlisi, veri tabanına erişimde ve web sayfasına çıktı yaparken Türkçe karakterlerde çıkabilecek sorunların nasıl giderilebileceğine dair ipuçları bulabilirsiniz. Devamını oku »
Başlık da maşallah Melekler & Şeytanlar gibi oldu, neyse.
Nesneye Dayalı Programlama dersinin ilk ödevini bu hafta teslim ettik. Bizden basit bir restoran yönetim sistemi yazmamız istendi. Tabii ki nesneleri, nesneler arası kalıtım (inheritance), çok şekillilik (polymorphism), arayüzler (interface) kullanarak!
Proje JAVA’da geliştirildi. Takım halinde, üç kişi geliştirdik. Bazılarımız NetBeans kullandı, bazılarımız Eclipse. Bazılarımız ise Windows 7’de Eclipse’i bir türlü çalıştıramayıp Windows XP sanal makinesi kurdu. (Ben)
EK1: Eclipse’i Windows 7′de çalıştıramama nedenim şuymuş: Ben Windows 7′yi 64 bit kurmuştum. Ancak Eclipse 32 bit bir uygulama olduğundan JDK 64-bit’in yanına, 32-bit JDK da yüklemek gerekiyormuş. Yükledim, kurtuldum.
Projede nesneler arası iletişim, kalıtım ve çok şekilliliğe örnek bulabilirsiniz. Program ayrıca 1.5 sürpriz yumurta içeriyor, belki onları da bulabilirsiniz.
Programda üç tip kullanıcı için üç senaryo var: Yönetici, restoran ve kullanıcı ekleyip çıkartabiliyor. Restoran operatörü kullanıcının verdiği siparişleri onaylayıp kurye ile gönderiyor, yemek ve menü ekliyor. Müşteri ise sipariş veriyor.
Projenin kolay kontrolü için roller arası geçişi tek butona indirgedik. Ama normalde herkes kullanıcı adı ve şifresiyle girebilir. (User sınıfına User ve Pass eklenmesi yeterli olacaktır.)
Projenin kaynak kodlarını ve raporunu takım arkadaşlarım Gül Deliorman ve Özlem Gürses’in de onaylarını alarak burada paylaşıyorum. Devamını oku »
Bugün PHP’nin ikinci hafta dersindeydik.
Bugüne temel algoritmik bilgiler ile başladık. Bir bilgisayara bir şeyi anlatmak için ne kadar kesin ölçütler kullanmamız gerektiğinden bahsettik. Bunun için iki slayt yer kaplayan bilgisayarın okula gitme hikayesini örnekledik. Devamını oku »