Bilgisayar Sistemleri

İşletim Sistemleri

One Lane Bridge (Tek Şeritli Köprü) Problemi

Yazan : Şadi Evren ŞEKER Bu problemde, tek şeritli bir köprünün iki ucundan gelen araçların karşıya geçmesini senkronize etmemiz isteniyor. Köprü tek şeritli olduğu için anlık olarak bir yönde araç geçişi mümkün olabiliyor. Bir aracın karşıya geçmesi, ancak karşı taraftan…

İşletim Sistemleri

Sleeping Barber (Uyuyan Berber) Problemi

Yazan : Şadi Evren ŞEKER Problemin tanımı : Bir berber dükkanında, bir bekleme salonu, bu salonda n adet sandelye ve ayrıca m adet berber koltuğu bulunmaktadır. Sistemimizde m adet de berber olduğunu düşünelim. Şayet hiç bekleyen müşteri yoksa berber uyumaya…

Derleyiciler

LL(1) Parçalama Algoritması

Yazan : Şadi Evren ŞEKER Bu yazının amacı, derleyici tasarımı (compiler design) konusunda çok kullanılan parçalayıcılardan (parser) birisi olan LL1 parçalayıcısını (LL1 parser) açıklamaktır. LL(1) kelimesi, 3 konunun baş harflerinden oluşur. İlk L harfi, Left-to-Right scan, yani soldan sağa doğru…

İşletim Sistemleri

POSIX Thread pthread kütüphanesi

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde geçen lif (thread, iplik, sicim) kavramının C dili ile kodlanabilmesi için genellikle UNIX türevi işletim sistemelerinde geliştirilen programlama kütüphanesidir. Kütüphane UNIX ortamında (ve dolayısıyla LINUX ortamında da ) POSIX kütüphanesi olarak geçmektedir ve…

İşletim Sistemleri

exec fonksiyonları

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinde, özellikle de işletim sistemlerinde kullanılan exec() fonksiyon ailesini açıklamaktır. Bu fonksiyon grubu, kabaca bilgisayarımızın dosya sisteminde bulunan farklı bir programı, yazmış olduğumuz C programı içerisinden çağırmaya yarar. Çalışma durumunu örnek…

C / C++ İşletim Sistemleri

fork fonksiyonu ve işlem çatallanması

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinin bir çalışma alanı olan işletim sistemlerinde sıklıkla kullanılan ve yeni bir işlem (process) oluşturmaya yarayan fork() ve exec() fonksiyonlarını açıklamaktır. Bu fonksiyonlar C programlama dilleri tarafından desteklenmekte ve unistd.h dosyasının…

İşletim Sistemleri

Producer Consumer Problem (Üretici Tüketici Problemi)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, başta işletim sistemleri olmak üzere, bilgisayar bilimlerinin pek çok alanında geçen ve klasik bir koşutzamanlı (concurrent) problem örneği olan üretici / tüketici (producer / consumer ) örneğini açıklamaktır. Problemin çeşitli değiştirilmiş tanımları…

Algoritma Analizi (Teory of Algorithms) Derleyiciler

Maximal Munch (Azami Lokma) Yöntemi

Yazan: Şadi Evren ŞEKER Algoritma, bilgisayar programlama veya bilgisayar bilimlerinde genelde derleyici tasarımı (compiler design) gibi dizgi (string) işlemenin yoğun olduğu alanlarda büyük lokma (maximal munch) veya en uzun eşleşme (longest match) olarak geçmektedir. Buradaki amaç, anlık olarak en büyük…

İşletim Sistemleri

Filozofların Akşam Yemeği (Dining Philosophers)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, eş zamanlı işlemlerin (concurrent processes) yönetimini anlatmak için geliştirilmiş bir örnek olan yemek yiyen filozoflar konusunu açıklamaktır. Eş zamanlı işlemler, işletim sistemleri (operating systems), ağ programlama (network programming) gibi pek çok bilgisayar…

Donanım (Hardware) Mantık Devreleri (Logic Circuits)

Encoder (Kodlayıcı)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bir mantıksal devre elemanı olan kolayıcının (encoder) çalışma mantığını ve tasarımını açıklamaktır. Basit bir kodlayıcı, kod çözücünün (decoder) tersine üssel işlemi geri alır. Örneğin bir kod çözücüde, yapılan işlem 2n şeklinde gelen…