Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Bu yazının bütün hakları saklıdır ve izinsiz kopyalanması veya alıntı yapılması kanunen koruma altındadır. Bu yazıya dilediğiniz şekilde atıfta bulunabilir (reference) ve bağlantı (link) verebilirsiniz. Bilgisayar bilimlerinde sıklıkla kullanılan ve herhangi bir hafıza işleminin nispeten daha küçük ve daha hızlı dolayısıyla da daha pahalı ilave bir hafızada yapılmasını ifade eden [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle işletim sistemi (operating systems) konusunda kullanılan önemli terimlerden birisidir. Bir işletim sisteminde ya da yazılan bir programda birden fazla işin aynı anda yapılması için kullanılırlar. Bilindiği üzere işlemci (CPU) anlık olarak tek iş çalıştırabilir, ancak işletim sistemi tasarımında kullanılan bazı yöntemlerle birden fazla iş aynı anda yapılıyor [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı, işletim sistemleri teorisinde sık kullanılan zamanlama kavramlarını açıklamaktır. Bu yazıda anlatılması hedeflenen kavramlar: Bekleme zamanı (waiting time) Dönüş süresi (turnaround time) İş üretimi (throughput) Cevap süresi (response time) Yukarıdaki bu kavramların kısa tanımlarını yaptıktan sonra bir örnek üzerinden açıklamaya çalışalım. CPU zamanlama algoritmalarında (CPU scheduling algorithms) kullanılan [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan bir veri yapısı (data structure) çeşididir. Çalışma yapısı olarak sıraya (queue) benzetilebilir. Çok seviyeli sıralarda, sıralara (queue) benzer şekilde ilk giren ilk çıkar (first in first out , FIFO) mantığı geçerlidir. Ancak sıranın birden çok girişi vardır ve bu anlamda, değişik hızlarda ilerleyen birden çok sıranın birleşimi [...]
Yazan : Şadi Evren ŞEKER Bu yazıda anlatılan içerik değiştirme (context switching) konusunu anlamadan önce bilgisayarlarda bulunan işlemcinin (CPU) anlık olarak tek bir iş ile uğraşabileceğini söylememiz gerekiyor. İşletim sistemi tasarımında (operating system design) bulunan bir özellik sayesinde, anlık olarak işlemcide tek iş çalıştırılması ve yinede birden fazla işin bilgisayarda aynı anda çalışıyormuş gibi hissettirilmesi [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, işletim sistemi konusunda kullanılan bir terimdir. İşletim sisteminin temel fonksiyonlarından birisi de bilgisayarın sabit diskini (hard disk) ve bu disk üzerindeki dosyalama yapısını kontrol etmektir. Bu anlamda çeşitli işletim sistemi üreticileri çeşitli tasarımlar yapmış ve farklı dosyalama sistemleri geliştirilmiştir. Bunlardan en çok bilinenleri FAT, NTFS ve ext şeklinde [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde programlama dillerinin en alt seviyesini oluşturan ve insan tarafından neredeyse tamamen anlaşılmaz buna karşılık makine için en anlaşılır dildir. Aslında makine dilini anlamak için dillerin seviyelerini anlamakta yarar vardır. Yukarıdaki şekilde de tasvir edildiği üzere dilleri seviyelere bölecek olursak en altta donanıma en yakın ve donanım tarafından en [...]
Yazan : Şadi Evren ŞEKER JAVA, C++ veya C# gibi nesne yönelimli programlama dillerinde kullanılan bir terimdir. Basitçe, aynı anda çalışan birden fazla lifin (thread) veya işlemin (process) sıralı olmasını ve birbiri ile iletişim halinde çalışmasını sağlar. Nesne yönelimli programlama ortamında iki farklı kavram birbirine sıkça karışmaktadır. Aslında anlam olarak birbirine yakın olan synchronized methods [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin özellikle veri yapıları (data structures) konusunda sıkça kullanılan bir veri yapısının ismidir. Basitçe klasik bir sıranın (queue) üzerine öncelik değerinin eklenmesi ile elde edilir. Bilindiği üzere normalde sıralar (queue) ilk giren ilk çıkar (FIFO , first in first out) mantığı ile çalışırlar. Yani bir bilet sırasında olduğu gibi [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, daha fazla işlem gücü elde etmek amacıyla birden fazla bilgisayarın tek bir bilgisayar gibi çalışmasına verilen isimdir. Genelde birden fazla bilgisayar birbirine oldukça hızlı bir ağ bağlantısı ile bağlanır ve bilgisayarların üzerinde çalıştırılan özel yazılımlar ile istenen işin paylaştırılması hedeflenir. Literatürde kümeleme veya ingilizce olarak clustering terimleri de [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin önemli bir kısmını oluşturan otomatlar (Automata) ve Algoritma Analizi (Algorithm analysis) çalıştırmalarının altındaki dil bilimin en temel taşlarından birisidir.1936 yılında Alan Turing tarafından ortaya atılan makine tasarımı günümüzde pekçok teori ve standardın belirlenmesinde önemli rol oynar. Turing Makinesinin Tanımı Basitçe bir kafadan (head) ve bir de teyp bandından [...]
Yazan: Şadi Evren ŞEKER Sanal bellek olarak da isimlendirilen hafıza türü, bilgisayarın birincil hafızası (primary memory) olarak bilinen RAM‘in yetersiz kaldığı durumlarda ikincil hafıza (secondary memory) olarak bilinen diskin bir kısmının kullanılmasıdır. Unix/Linux terminolojisine göre takas alanı (Swap space) olarak isimlendirilen bu hafızada RAM ve disk arasında bulundurlan bilgiler sürekli olarak takaslanmaktadır (swapping). Kısacası işlemlerin [...]
Yazan : Şadi Evren ŞEKER İçerik Hafıza Yönetim Problemleri Sayfalama (Paging) Sayfa Tablosu (Page Table) Bilgisayar bilimlerinin önemli konularından birisi olan işletim sistemlerinin bir görevi de hafızayı verimli yönetmektir (memory management). Kısaca sınırlı miktarda hafıza (RAM, Bellek, Memory) bulunmakta ve çalışan her program bir miktar hafızaya ihtiyaç duymaktadır. İşletim sistemi (operating system) bu hafızayı ne [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle işletim sistemi konusunda kullanılan ve hafızanın daha verimli çalışması için geliştirilmiş algoritmaların ismidir. İçerik Arkaplan ve ön bilgiler FIFO LRU Optimal Replacement Algoritmanın arka planı ve gerekli ön bilgiler Bilindiği üzere bilgisayarda hafızanın yönetimini (Memory management) işletim sistemi yapmaktadır. Dolayısıyla başarılı bir hafıza yönetiminde, hafızada (RAM) bulunan [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde en önemli kaynaklardan birisi de merkezi işlem birimidir (MİB, central processing unit CPU). Özellikle işletim sistemi çalışmaları sırasında bir işletim sisteminin bu en kıymetli kaynağı daha verimli kullanması amaçlanır. MİB Meşguliyeti (Utilization) ise işlemcide çalışmak için bekleyen işlemler (process) için sistemin meşguliyet oranını (utilization) bulmaya yarayan bir hesaplamadır. [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sıra (queue) teorisinde, sıradaki bir varlığın ne kadar meşgul edildiğini ölçmeye ve bu ölçüme göre kararlar vermeye verilen isimdir. İstatistiksel olarak ρ sembolü ile gösterilir ve şayet ρ değeri 1′den büyükse sıranın uzadığı, 1′e eşitse sıranın ne kısalıp ne de uzadığı ve şayet 1′den küçükse sıranın kısaldığı veya [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle de işletim sistemi ve müşterek programlamada (concurrent programming, eş zamanlı programlamada) sıkça kullanılan bir eşleme (synchronization) yöntemidir. Yani birden fazla işin (process) aynı anda çalışması halinde birbirleri için risk arzettikleri kritik zamanlarda (critical sections) birbirlerini beklemesini sağlayan bir mekanizmadır. Basitçe bir değişken veya bir mücerret veri yapısı [...]
Yazan: Şadi Evren ŞEKER Latince bölünemez anlamına gelen atom kökünden üretilen bu kelime, bilgisayar bilimlerinde çeşitli alanlarda bir bilginin veya bir varlığın bölünemediğini ifade eder. Örneğin programlama dillerinde bir dilin atomic (bölünemez) en küçük üyesi bu anlama gelmektedir. Mesela C dilinde her satır (statement) atomic (bölünemez) bir varlıktır. Benzer şekilde bir verinin bölünemezliğini ifade etmek [...]
Yazan : Şadi Evren ŞEKER İşletim sistemlerinde kullanılan dosya tiplerinden birisidir. Basitçe sistemde kullanılan kritik dosyaların kullanıcı müdahalesinden korumak için geliştirilmiştir. Örneğin Windows™ işletim sisteminde kullanılan gizli dosyaların ağırlıklı amacı sistem dosyalarını ve önemli ayarlamaları içeren klasörleri korumaktır. Linux / Unix gibi işletim sistemlerinde de gizli dosyaların isimleri “.” işareti ile başlamaktadır. İşletim sistemi otomatik [...]
Yazan : Şadi Evren ŞEKER C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t oluşumu (struct) zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir. Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir: struct timeval tv; time_t curtime; [...]
Yazan : Şadi Evren ŞEKER Yazılan her program ilk başta tek bir işlem olarak çalışmaya başlar. Temel olarak derlendikten(compile) hemen sonra bağlanarak (link) hafızaya yüklenir (load). Yüklenen programı, işletim sistemi (operating system) bir işlem (process) olarak çalıştırır. Ancak bazı işlemler yüklendikten ve çalışmaya başladıktan sonra yeni işlemler üretebilirler. Aslında bu işlem üretme çalışan işlem üzerinde [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kabuk kelimesi daha çok çevreleyici, kaplayıcı anlamında kullanılmaktadır. Örneğin işletim sistemlerinde çekirdeğin (kernel) dış dünya ve kullanıcılar ile iletişim kurmasını sağlayan işletim sisteminin parçasına kabuk (shell) adı verilmektedir. İşletim Sistemlerinde Kabuk Kabuğun en temel görevini bir komtu satırı (command line interface) olarak tanımlayabiliriz. Örneğin DOS, LINUX veya UNIX [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin farklı alanlarında kullanılmasına karşılık, çekirdek kavramı genelde birşeyin merkezi veya kalbi şeklinde tabir edilebilecek anlamlara gelmektedir. İşletim sistemlerinde çekirdek: İşletim sisteminin temel fonksiyonlarının icra edildiği kısmıdır. Kullanıcılar ile iletişim kuran kabuk (shell) sadece dış işleri yapmaktan sorumlu olup, işletim sisteminin bütün temel fonksiyonları çekirden üzerinde çözülür. Bir çekirdeğin [...]
Yazan : Şadi Evren ŞEKER Birden fazla işlemin bir işletim sistemi üzerinde çalıştırılması sırasında hafızdaki işlemlerini belirli bir düzene göre yerleştirilmesi gerekir. Bu yerleştirme sırasında çıkan problemlerden birisi de parçalar (fragments) ‘dir. Buna göre işletim sisteminin önünde iki ihtimal bulunmaktadır. Ya hafızayı sabit slotlara bölüp işlemlere bu slotlardan ihtiyaç duyduğu kadar verecektir (örneğin slotların boyu [...]
Yazan : Şadi Evren ŞEKER İşletim sistemlerinin temel görevlerinden birisi olan hafıza yönetimi (memory management) için kullandıkları çözüm yöntemlerinden birisidir. Bilindiği üzere bir işletim sistemi birden fazla işlem (multi process) çalıştırıyorsa bu durumda işletim sisteminin hafızayı bu işlemler arasında ihtiyaçlarına uygun bir şekilde dağıtması gerekir. Bu dağıtımda bir işleme tam olarak ihtiyacı olduğu kadar yer [...]