31 Ocak 2023 Salı

Spooling(Biriktirme)





Hesaplamada biriktirme , verileri farklı cihazlar arasında kopyalamak amacıyla özel bir çoklu programlama biçimidir . Çağdaş sistemlerde,  genellikle bir bilgisayar uygulaması ile yazıcı gibi yavaş bir çevre birimi arasında arabuluculuk yapmak için kullanılır .

30 Ocak 2023 Pazartesi

B-Ağacının tanımı

 Bir B-Ağacı (B-Tree) aşağıdaki özelliklere sahip olmalıdır:

  • Her düğümün (node) en fazla m çocuğu bulunmalıdır. (Bu sayının üzerinde eleman bulunursa düğümün çoğaltılması gerekir)
  • Kök (root) ve yaprak (leaf) düğümleri haricindeki her düğümün en az m/2 adet elemanı bulunmalıdır. (Bu sayının altında eleman bulunursa düğüm kaldırılır)
  • Bütün yapraklar aynı seviyede olmak zorundadır. Bir yaprağın seviyesinin düşmesi durumunda (daha yukarı çıkması veya daha sığ olması durumunda) ağaçta yapısal değişiklik gerekir.
  • Herhangi bir düğümde k çocuk bulunuyorsa k-1 elemanı gösteren anahtar (key) bulunmalıdır.

Ağaç Türleri

 





Polymorphism-Overloading




Aşırı yükleme (overloading) ,  Nesne Yönelimli (Object Oriented) Programlama’nın en önemli özelliklerindendir. 

 Aşırı yükleme (overloading) sayesinde benzer işleri yapan birçok metot yerine bir metot kullanılır ve tek bir ara yüz kullanılmış olur. 

Farklı parametre tipleri alabilen metotlar yazmak gerektiğinde ya da eski yazılan metotlara yeni özellikler eklemek gerektiğinde aşırı yükleme kullanılır.

Hem sınıf içinde tanımlanan hemde ata sınıftan kalıtılan metotlar birbirini aşırı yükleyebilirler.


Polymorphism (çok biçimlilik) NYP'de programlama dilinin farklı tip verileri ve sınıfları farklı şekilde işleme yeteneğini belirten özelliğidir. Daha belirgin olmak gerekirse, metotları ve türetilmiş sınıfları yeniden tanımlama yeteneğidir. Örnek olarak şekil diye bir sınıf olsun; polymorphism sayesinde programcı farklı şekillerin alanlarını farklı metotlar ile belirleyebilir. Şeklin ne olduğu fark etmeksizin program kullanıcıya doğru alanı verecektir. 

Ekte, polymorphism’in daha iyi anlaşılmasını sağlayacak bir ekran görüntüsü mevcuttur. “NesneCiz” adlı üst sınıfa “Kare” ve “Ucgen” alt sınıfları oluşturulmuştur. “Ciz” metotu kullanılarak farklı iki geometrik şekli doğru şekilde çizilmesi sağlanır.  


29 Ocak 2023 Pazar

FDDI

 FDDI, (İngilizceFiber Distributed Data Interface), yüksek hızlı bir bilgisayar ağıdır

Özellikle fiberoptik kablo hatlarında kullanılır. 1980'li yılların ortalarında yüksek hızlı bilgisayarların geliştirilmesiyle ortaya çıkmıştır.

CDDI (Copper Distributed Data Interface) adıyla bilinen, UTP veya STP kabloları ile kurulan, 200 metreye kadar, yaklaşık 200 Mbit/s, çift yönlü veri transferi yapabilen LAN teknolojisinin yerini almıştır.

Bu standart günümüzde ethernet kadar yaygın değildir.

Bilgisayar Ağı Nedir, Çeşitleri Nelerdir ?

 1. PAN-Personal Area Network(Kişisel Alan Ağı):

PAN kullanıcının erişim imkanı olan çeşitli cihazlar arasında kurulmuş küçük alan ağıdır. PAN ağları 10 m. alan içerisinde PC, yazıcı, mobil cihazlar arasıda kablolu ya da kablosuz iletişim kurmak için kullanılır.


2. HAN-Home Area Network(Ev Alan Ağı):

Ev ortamında kullanılan küçük çaplı bir LAN ağıdır. PAN dan farkı PAN kurulumunda kullanılan bağlantılar USB, Bluetooth, Infrared, Ethernet olabilirken. HAN bağlantılarında temel iletim protokolü ethernettir. HAN ağında DSL üzerinden ISP tarafından sağlanan İnternet bağlantısı paylaşılır.

3. LAN-Local Area Network(Yerel Alan Ağı):

LAN kısıtlı bir alan içerisinde okulda, iş yerinde ya da ev ortamında kurulan en yaygın ağ çeşididir. Kablolu ya da kablosuz iletim ortamının kullanıldığı LAN ağlarında ağda kullanılan tüm servislerin kurulabilme imkanı vardır. LAN ağları İnternete erişimini WAN aracılığı ile yaparlar. Tipik bir LAN ağı 2 km. mesafeden daha uzak konumları kapsamaz. İletişim layer-3 switch’ler aracılığıyla yapılır.

Cihazlar arasında 10/100 Mbps Ethernet kullanılırken düğüm noktası switch’te 1/10 Gbps Ethernet bağlatısı kullanılır. LAN, WAN ağlarına bağlanmak için bir router a ihtiyaç duyar. Bu yüzden Router ların her bir bacağının ardını birer LAN olarak değerlendirebiliriz.

4. SAN-Storage Area Network (Depolama Alan Ağı):

Kümelenmiş SAN cihazlarına, kaset ünitelerine, yedekleme cihazlarına mevcut LAN üzerinde bağlıymışcasına erişmek için kurula ağ çeşididir. 2000’li yıllardan sonra SAN fiyatlarının azalması ile uzaktan veri yönetim merkezlerine erişmek için kurulan SAN ağına yerel bilgisayarlardan ziyade sunucular aracılığı ile erişilerek kullanıcılara dosya sunucu hizmeti verilir. SAN ağları veri merkezlerinde yaygın olarak kullanılmaktadır.

5. CAN-Campus Area Network (Kampüs Alan Ağı):

Bilimsel eğitim kurumlarında switch ve router lar aracılığı ile iletim ortamı olarak CAT-5/6 tipi ksblo kullanarak kurulan ağ çeşididir. (Ör:Hunet)

6. MAN-Metropolitan Area Network (Metropolitan Alan Ağı):

MAN geniş alana yayılmış LAN olarak tanımlanabilir. Kurduğumuz LAN ağı bir şehir boyunca yayılıyorsa ya da bir kampus ağı çok geniş alanlarda ise MAN olarak değerlendirilebilir. Ancak iletişim genede yerel alan ağı kuralları içerisinde yapılmaktadır.

7. WAN-Wide Area Network (Geniş Alan Ağı):

Temelde PAN, HAN, MAN birer LAN olarak değerlendirilebilir. LAN ağlarının birbiri ile iletişimi WAN ağları aracılığı ile yapılır. WAN ağı geniş bir alana yayılmıştır ve birden fazla bağlantı çeşidini kullanarak iletim ortamını sunar. WAN teknolojileri LAN dan farklı olarak layer-3, 2′yi kullanarak iletimi gerçekleştirir. Bu nedenle kurulması ve hata gidermesi LAN ağlarına göre daha zordur.

8. VPN-Virtual Private Network (Sanal Özel Ağ):

VPN son noktalar arasındaki bağlantının fiziksel iletim ortamları yerine ortak kullanılan iletim ortamlarının (Internet) kullanılması ile oluşturulan ağ çeşididir. Noktadan-noktaya yapılan iletimlere göre daha karmaşık bir bağlantı şeması vardır. VPN hizmeti veren kurum ile kullanıcılar arasında kurulan SLA (servis anlaşması) kapsmında şifreli ve güvenli iletişim sağlanır.

9. GAN-Global Area Network (Küresel Alan Ağı):

GAN mobil bağlantı imkanı sağlamak için uydu, kablosuz bağlantı ve LAN ları kullanarak çok geniş kapsamlı bir ağ oluşturulması ile kurulur. ISP seviyesinde kullanılan bir ağ çeşididir.

27 Ocak 2023 Cuma

ATM (Asynchronous Transfer Mode-Eşzamansız Aktarım Modu)




Eşzamansız Aktarım Modu (ATM), ses, resim, video gibi değişik türden verilerin sabit büyüklükte veri paketlerine bölünerek iletimini sağlayan bir ağ teknolojisidir. 

Veri iletimi sırasında paket anahtarlamanın bir türü olan hücre aktarımı tekniğini kullanır. 

Eşzamansız Aktarım Modu sabit büyüklükte küçük boyutlu paketler halinde aktarım yaptığından  ağ donanımlarına daha etkili anatharlama yapma imkanı sağlar ve çok yüksek veri iletim hızlarına çıkabilir. 

En çok kullanılan standart hızlar, 155 Mbps ve 622 Mbps'dir ve 10 Gbps hızlara kadar da çıkılabilmiştir. Ayrıca eşzamansız aktarım, bant genişliğinin daha etkili kullanılmasını sağlayarak çeşitli önceliklere sahip verilere boşluk verme imkanı sağlar. Eşzamansız Aktarım Modu, B-ISDN protokolünün temel öğelerinden biridir.

ATM sabit uzunlukta paketler üzerine kurulu bir iletişim protokolüdür. 

Her hücre 48 Byte’lık bir veri alanı  ve 5 Byte’lık bir başlık  kısmı olmak üzere toplam 53 Byte büyüklüğündedir.

Kilo LOC

 

Burada kullanılan en yaygın metrik: kaynak kod satır sayısı (source lines of code – SLOC)

Çoğu yerde LOC yani kod satır sayısı olarak de geçmektedir. 

Ek olarak KLOC da “kilo lines of code” yani 1000 satırlık kod anlamına gelmektedir.

Bu kısımla ilgili yaygın olarak bilinen yazılım kestirim yöntemleri şunlardır:

  • Wideband Delphi süreci
  • COCOMO modeli
  • User story points – Planning Poker

Kara Kutu ve Beyaz KutuTestleri

 



Kara Kutu Testleri Nedir?

Yazılım test tasarım tekniklerinden Kara Kutu Testi; sistemin, yazılımın iç yapısı hakkında bilgi sahibi olunmadan yani koda bakılmadan sistemin işlevselliğini ölçmeye yarayan test tekniğidir. 

İlgili sistemi bir kara kutu gibi görüp aslında içerisindeki mimari yapı veya kaynak kod hakkında bilgi sahibi olmadan uygulanabilir. 

Kara kutu testlerindeki amaç, gereksinimleri karşılayan çıktıların alınıp alınmadığını ölçümlemektir. Sistemden almayı beklediğimiz çıktılar kadar beklemediğimiz çıktılar da test edilmelidir.

Beyaz Kutu Testi Nedir?

Yazılım test tasarım tekniklerinden Beyaz Kutu Testi, şeffaf kutu testi de denebilir. Tıpkı ismi gibi beyaz bir kutu içerisinden bakılarak yazılımın kodunun iç yapısının bilinerek, ölçümlenerek test senaryolarının tasarlandığı tekniktir. 

Bu yöntemdeki ana amaç kod parçacıklarının tek tek test edilerek aslında en küçük parçacık halinde bile sağlıklı bir şekilde çalıştırılabildiğinin görülmesidir. Gereksinimler sonucu belirlenen girdilerin kodun bir parçasındaki çıktıları karşılayıp karşılamadığı test edilir. Yazılımın işlevselliği test edilmez.

COCOMO (Constructive Costing Model)

 

COCOMO, algoritmik bir yazılım maliyet kestirim yöntemidir.

Bu yöntem, geçmiş proje verileri ve mevcut proje özelliklerinden türetilen parametreler ile beraber temel bir regresyon formülü kullanır.

Yapılacak hesapların kapsamları açısından basit, orta ve detaylı olmak üzere üç değişik modelden oluşur. Ayrıca bu modellerde kullanılacak problemler, “organik, yarı ayrık ve gömülü sınıflar” altında toplanmıştır.

CMMI (Yetenek Olgunluk Model Entegrasyonu; İngilizce: Capability Maturity Model Integration

 bir süreç modeli olup, örgütlerin yazılım süreçlerinin (Yazılım planlama, geliştirme, yapılandırma vb.) olgunluğunu değerlendirme modelidir.

Proses Durumları

 



Çalışma Durumu : Prosesin CPU'da işlem gördüğü durumdur.
Hazır Durumu     : Prosesin hazır olduğu ve çalışmak için (CPU'dan işlem görmek için) sırasının gelmesini beklediği durumdur.
Askıda Durumu   : Prosesin hazır duruma geçmek için bir olayın gerçekleşmesini beklediği durumdur.

25 Ocak 2023 Çarşamba

 



Cevap:D


bellman ford algoritması

 

Bu algoritmanın amacı, bir şekil (graph) üzerindeki, bir kaynaktan (source) bir hedefe(target veya sink) giden en kısa yolu bulmaktır. Algoritma ağırlıklı şekiller (weighted graph) üzerinde çalışır ve bir anlamda Dijkstra algoritmasının iyileştirilmişi olarak düşünülebilir.

24 Ocak 2023 Salı

Öncelik Sırası Nedir(Max priority queue)

 

Öncelik sırası , öğeleri öncelik değerlerine göre düzenleyen bir sıra türüdür Daha yüksek öncelik değerlerine sahip öğeler, genellikle daha düşük öncelik değerlerine sahip öğelerden önce alınır.

Bir öncelik kuyruğunda, her öğenin kendisiyle ilişkilendirilmiş bir öncelik değeri vardır. Kuyruğa bir öğe eklediğinizde, öncelik değerine göre bir konuma eklenir. 

Örneğin, bir öncelik kuyruğuna yüksek öncelik değerine sahip bir öğe eklerseniz, sıranın ön tarafına(en iyi durum), düşük öncelik değerine sahip bir öğe ise arkaya yakın(en kötü durum) bir yere yerleştirilebilir.

Sıralama algoritması Örnek Soru

 


Sıralama Algoritmaları

 



Hızlı sıralama

Hızlı sıralama algoritması, sıralanacak bir sayı dizisini daha küçük iki parçaya ayırıp oluşan bu küçük parçaların kendi içinde sıralanması mantığıyla çalışır.

Algoritmanın adımları aşağıdaki gibidir:

  1. Sayı dizisinden herhangi bir sayıyı pivot eleman olarak seç.
  2. Sayı dizisini pivottan küçük olan tüm sayılar pivotun önüne, pivottan büyük olan tüm sayılar pivotun arkasına gelecek biçimde düzenle (pivota eşit olan sayılar her iki yana da geçebilir). Bu bölümlendirme işleminden sonra eleman sıralanmış son dizide olması gerektiği yere gelir. Algoritmanın bu aşamasına bölümlendirme aşaması denir.
  3. Pivotun sol ve sağ yanında olmak üzere oluşan iki ayrı küçük sayı dizisi, hızlı sıralama algoritması bu küçük parçalar üzerinde yeniden özyineli olarak çağrılarak sıralanır.
Algoritma içinde sayı kalmayan (eleman sayısı sıfır olan) bir alt diziye ulaştığında bu dizinin sıralı olduğunu varsayar.

Eklemeli sıralama

Eklemeli sıralama , elinizdeki oyun kartlarını sıralama şeklinize benzer şekilde çalışan basit bir sıralama algoritmasıdır. Dizi sanal olarak sıralanmış ve sıralanmamış bir parçaya bölünmüştür. Sıralanmamış kısımdaki değerler alınır ve sıralanan kısımdaki doğru konuma yerleştirilir.

Ekleme Sıralamasının Özellikleri:

  • Bu algoritma, basit uygulama ile en basit algoritmalardan biridir.
  • Temel olarak, Ekleme sıralaması küçük veri değerleri için etkilidir
  • Eklemeli sıralama doğası gereği uyarlanabilir, yani zaten kısmen sıralanmış olan veri kümeleri için uygundur.
Birleştirme sıralaması , bir diziyi daha küçük alt dizilere bölerek, her bir alt diziyi sıralayarak ve ardından sıralanan alt dizileri son sıralanmış diziyi oluşturmak için tekrar bir araya getirerek çalışan bir sıralama algoritmasıdır.

İkili arama algoritması

 

Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. 

Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur.

Bu algoritma ile N elemanlı bir dizide en fazla  karşılaştırma yaparak aranan değerin yerini bulmak mümkündür.

ECC RAM Nedir?

 

Hata düzeltme kodlu (ECC) bellek, iş istasyonlarında ve sunucularda bulunan bir RAM bellek türüdür.

IEEE 1394 Portu





Bilgisayarlara klavye, fare gibi düşük hızlarda çalışan cihazlar genelde USB veri yolu üzerinden bağlanır. FireWire ise, yüksek veri aktarım hızından dolayı, gerçek zamanlı veri transferi yapabilen video cihazları, kameralar, synthesizer, harici disk gibi cihazlar için kullanılır.

23 Ocak 2023 Pazartesi

C library function - atexit()

 

atexit komutu program sona erdiğinde belirtilen işlevin çağrılmasına neden olur. Sonlandırma işlevinizi istediğiniz yere kaydedebilirsiniz, ancak programın sonlandırılması sırasında çağrılacaktır.

Yani atexit() ile belirtilen metot enson çalışıp program sonlandırılır.

C dili %X belirteci

 



10 tabanda verilen değeri 16'lık tabana çevirir. 16 sayısının 16'lık tabanda karşılığı 10'dur.İşlem aşağıdaki gibi yapılır. Eğer kalan 9 dan büyükse A-F arasındaki harfler yazılır.

10:A 11:B 12:C 13:D 14:E 15:F

        Bölen        Bölüm        Kalan

16    16               1                0

1       16              0                1

Daha sonra kalan aşağıdan yukarıya doğru yazılır.

Breadth First Arama (BFS) Algoritması







 

Sığ öncelikli arama[1] ya da enine arama,[2] bir çizgenin düğümlerini, başlangıç noktasına daha yakın   olanlara öncelik vererek arayan bir algoritmadır

Algoritma ziyaret ettiği düğümlerin bütün komşularını bir kuyruğa ekler ve ziyaret edeceği düğümleri kuyruktaki sıraya göre seçer. 

Eğer arama yapılan çizge bir ağaç ise kuyruk kullanmaya gerek olmaz.

Depth First Arama (DFS) Algoritması

 

Derin öncelikli aramaağaç ya da çizge veri yapılarında arama yapmak için kullanılan bir algoritmadır. Algoritma aramaya başladığı düğümden ulaşabileceği en derin düğüme kadar gider, gidecek daha derin bir düğüm kalmadığında geri sarar ve derin düğümlere öncelik vererek gezmeye devam eder.

Strand Sort (İplik Sıralaması)

 

İplik sıralaması (Strand sortbilgisayar bilimlerinde kullanılan bir sıralama algoritmasıdır. Sıralanacak olan dizinin, sıralanmış alt dizilerinin oluşturularak bu alt dizilerin birleştirilmesi yoluyla sonucun oluşturulması mantığına dayanır. Algoritmanın her bir aşamasında ana dizinin üzerinden geçilir ve bu diziden zaten sıralanmış olan bir dizi eleman çıkarılır. Çıkarılan bu eleman dizileri daha sonra birleştirilir.

Algoritmanın adı, sıralanacak dizinin içinden çıkan kendi içinde sıralanmış alt dizilerin ipliklere benzetilmesinden gelmektedir. İplik sıralaması algoritması, ana diziden ipleri çıkarırken ve oluşan sıralı ipleri birleştirirken karşılaştırma kullandığı için bir karşılaştırma sıralamasıdır.

İplik sıralaması algoritmasının karmaşıklığı ortalamada O(n log n)'dir. 

Sıralanacak dizinin zaten sıralı olduğu en iyi durumda algoritmanın karmaşıklığı O(n), sıralanacak dizinin tersten sıralı olduğu en kötü durumda ise algoritmanın karmaşıklığı O(n2)'dir.

Derleyici (Compiler) ve Yorumlayıcı (Interpreter)





Programa dili ile yazılan kaynak programları makine dili ile yazılan amaç programlara çevirmek için derleyiciler kullanılır. Derleyiciler kaynak programları üç adımda amaç programa dönüştürürler.


Bu adımlardan ilki sözel analizdir. Bu adımda kaynak kodu oluşturan kelimeler incelenerek, bunların makine dilinde karşılıkları olup olmadığı kontrol edilir. İkinci adım olan gramer analizinde kaynak kodun yazıldığı programlama dilinin kendi gramer kuralları içinde doğru yazılıp yazılmadığını kontrol eder. Son olarak kod üretimi adımında kaynak programdaki komutlara karşılık gelen makine dili komutları üretilir. Tüm bu adımlar sonunda kaynak program amaça programa çevrilmiş olur.


Fortran, C, C++, C#, Pascal, Delphi, Pic Basic Pro gibi diller derleyici kullanırlar.


PHP, Perl, Lisp gibi diller yorumlayıcı kullanırlar. Yorumlayıcılar program kodlarının başından sonuna kadar her bir satırda belirtilmiş komut ve işlemleri inceleyerek kaynak programın hatalarının düzeltilmesine ve çalıştırılmasına imkan verir. Eğer herhangi bir satırın çalıştırılmasında veya çevrilmesinde bir hata bulunursa çalışmayı durdurur ve hatalı satırı programcıya bildirir.


Akıl Şemaları


 

Compiler (Derleyici)

 Bir dilde yazılmış olan kodu (kaynak kodu / source code) başka bir dilde yazılmış koda, örneğin yüksek seviye bir dilden (high-level programming language) alt seviye bir dile (low-level programming language), dönüştüren araçlardır2. Genellikle bu kodlar çalıştırılabilir (executable) şekilde üretilirler. Bunun nedeni, çoğunlukla diller arasındaki bu işlemin pratik bir şekilde işletim sistemi ve donanım bağımlı kodlara dönüştürülebilmesidir. Örneğin, C dilinde yazılmış bir kodun PASCAL koduna dönüştürmesi gibi.


Derleyiciler, kodun derlenmesi sürecinde kodun iyileştirilmesi (optimization), hataların yönetimi (error handling) ve en etkin şekilde kodların yorumlanması gibi katkılar sunabilmektedirler. Scanning, Lexical Analysis, Syntactic Analysis ve Semantic Analysis adımlarını izlerler.


Derleyiciler tek geçişli (one pass) ve çok geçişli (multi pass) olarak nitelendirilebilirler. Tek geçişli (one pass) bir derleyici kaynak kodu baştan sona bir defa okur. Çok geçişli (multi pass) derleyiciler ise bu işlemi birkaç defa gerçekleştirirler. Tek geçişli derleyiciler kodun incelenme sürecini daha hızlı ele alırlarken bazı durumlarda, dilin tasarımı sebebiyle işlevsiz kalabilmektedirler. Diğer yandan, çok geçişli derleyiciler sondaki bir tanımı takip edebilmek, işlemleri bütün kod bağlamında değerlendirebilmek gibi özellikleri sebebiyle daha iyi yorumlama yapabilmektedirler. Derleyicileri ayrıca odaklandıkları süreçlere göre değerlendirebiliriz6:

Yorumlayıcı (Interpreter)

 Yorumlayıcılar (Interpreter), kodu satır ve/veya bloklar halinde çalıştırırlar ve bir sonraki satır / blokları sırası gelmeden değerlendirmezler. Bu nedenle, sonraki satırdaki hatalar ve kodun bütününü etkileyen iyileştirmeler yorumlayıcılar tarafından yakalanamazlar. Kodu parçalar halinde değerlendirmek amacıyla kullanılırlar.

Bazı programlama dilleri derleyici ve yorumlayıcılara sahip olabilir. Ancak, daha kapsamlı çözümler sunabilen harici derleyici ve yorumlayıcılar da çalıştırılabilmektedir.

RISC İşlemci Mimarisi Nedir?


RISC (Reduced Instruction Set Computer), basit komutlar kullanan ve komutları daha hızlı işleten bir işlemci mimarisidir. 

RISC mimarisinde karmaşık komutlar kullanılmadığından dolayı komutlar daha hızlı işletilir. 

Basit komutlar ve basit kod çözücüler nedeniyle karmaşık devre elemanlarına olan gereksinim daha da azalır. Böylelikle maliyetten de kazanç sağlanır.


RISC mimarisinde komutlar tekdüze olduğundan kod çevrimi daha basittir. 

Ek olarak, RISC mimarisinde CISC mimarisinin tek bir komutla yapabileceği işlemin daha fazla kodla yapılmasına ihtiyaç olacaktır.

 Bu da daha uzun programlama kodu meydana getirir.

CISC İşlemci Mimarisi Nedir?




CISC (Complex Instruction Set Computer), karmaşık assembly komutları ve dolayısıyla kompleks devrelerden oluşan bir mikroişlemci mimarisidir. 

CISC mimarisinde pek çok işlev için farklı assembly komutlar tanımlanmıştır.

 Bu yüzden kod çevrimi aşamaları daha yavaşken kodların derlenmesi daha kısadır.


Örneğin bir varsayım yapalım. Bir matematiksel küp alma fonksiyonu düşünelim. Küp alma fonksiyonu, bir sayının kendisiyle üç kere çarpılmasından meydana gelir. Küp alma fonksiyonunun yalnızca CISC’de tanımlı olduğunu düşünürsek, CISC mimarisinde tek seferde işlemimiz tamamlanırken 

RISC mimarisinde çarpma fonksiyonun art arda üç kere çağrılması gerekir. 

Bu da RISC’in kod çevriminin CISC’den daha uzun olduğu anlamına gelir.*


CISC mimarisiyle tasarlanmış mikroişlemci, çok sayıda komut içerdiğinden dolayı karmaşık devrelere, donanım yüküne ve tümdevre boyutuna daha çok ihtiyaç duyar. 

Bu da maliyeti büyük oranda arttırır. Diğer yandan CISC mimarisinde her eylem için bir komut tanımı yapıldığından kod çevrimi aşamaları uzun sürer.

Control Bus

 Kontrol veriyolu, tüm bilgisayarın faaliyetlerini koordine etmek için gereken kontrol ve zamanlama sinyallerini taşır.

Contol bus sinyalleri, data ve address bus’lar tarafından taşınan bilgilerin aksine, birbirleriyle ilişkili olmak zorunda değildir. 

Bazıları CPU’dan çıkış sinyalleri, diğerleri ise sistemin I / O elemanlarından CPU’ya giriş sinyalleridir. Her mikroişlemci tipi kendi kontrol sinyalleri grubunu üretir veya bunlara yanıt verir.

Günümüzde kullanılan en yaygın kontrol sinyalleri:

  • •System Clock (SYSCLK)
  • •Memory Read (MEMR)
  • •Memory Write (MEMW)
  • •Read/Write Line (R/W Line)
  • •I/O Read (IOR)
  • •I/O Write (IOW)

Data Bus

 Data bus, address bus’tan farklı olarak, veri akışı için iki yönlü bir yoldur, yani bilgi iki yönde akabilir. Veriler, yazma işlemi sırasında data bus boyunca CPU’dan belleğe akabilir ve okuma işlemi sırasında veriler bilgisayar belleğinden CPU’ya taşınabilir. 

Ancak, iki cihaz aynı anda veri yolunu kullanmaya çalışırsa, veri hataları oluşur.

 Veri yoluna bağlı herhangi bir aygıt, işlemciyle bir işlem yapmadığında output’unu geçici olarak beklemeye alma (floating state) özelliğine sahip olmalıdır. Bit olarak ölçülen data-bus boyutu, bilgisayarın kelime boyutunu(word-size) temsil eder. 

Genellikle, data bus boyutu büyüdükçe, bilgisayar sistemi o kadar hızlı olur. Genel data bus boyutları 8 bit veya 16 bit (eski sistemler) ve 32 bittir (daha yeni sistemler). Şu anda 64 bit data bus sistemleri kullanılmaktadır.

Address Bus

 Address bus tek yönlü bir yoldur, bu da bilginin sadece tek yönlü akabileceği anlamına gelir. 

İşlevi, CPU tarafından oluşturulan adresleri bilgisayarın belleğine ve I / O elemanlarına taşımaktır. Bu veri yolundaki iletken sayısı adres veri yolunun boyutunu belirler. Bu da mikroişlemcinin adresleyebileceği bellek konumlarının ve G / Ç öğelerinin sayısını belirler.

22 Ocak 2023 Pazar

Mantıksal Topoloji Nedir?

 Ağ üzerindeki cihazların haberleşme şekilleri ve kullandıkları iletişim protokolleri mantıksal topoloji ile açıklanır. Mantıksal ağ topolojileri yayın topolojisi ve jetonlu geçiş topolojisi olmak üzere 2 sınıfa ayrılır.

Broadcast – Yayın Topolojisi

Bu topolojide gönderici cihaz veriyi ağa bırakır, veri alıcıya ulaşıncaya kadar tüm ağı dolaşır. Ağa bağlı cihazların öncelik hakkı yoktur ve ağdaki tüm cihazlara veri iletimi gerçekleştirilir.

Token Passing – Jetonlu Geçiş Topolojisi

Halka topolojisinde olduğu gibi tüm ağı dolaşan bir jeton (token) veri iletimini gerçekleştirir. Jeton ağ üzerinde dolaşırken sırayla tüm cihazlarla iletişime geçer ve gönderilecek ya da alınacak veri olup olmadığını kontrol eder.

Ağaç Topolojisi (Tree)

 Ağaç topolojisi yıldız topolojisi ile ortak yol topolojisinin birlikte kullanıldığı topolojidir. 

Merkezdeki bir ortak yol (omurga) üzerine yerleştirilmiş hub ya da switch’ lere bağlı cihazlarla oluşturulur.

Bu topolojiye ağaç topolojisi denmesinin nedeni omurganın ağaç gövdesini, hub ya da switch üzerinden bağlanan bilgisayarların da ağacın dallarını modellemesidir. 

Ağaç topolojisi büyük ağların omurgalarını oluşturmak için kullanılır.




Ağaç topolojisinin avantajları;

  • Farklı üreticilerin donanımları ile uyumlu çalışır.
  • Ağın genişletilmesi kolaydır.
  • Sorunların tespiti ve giderilmesi kolaydır.
  • Ağın yönetimi ve bakımı kolaydır.
  • Dallardan birinde oluşacak sorun diğerlerini etkilemez.

Ağaç topolojisinin dezavantajları;

  • Kablolama işlemi zordur.
  • Dallanma arttıkça ağın bakımı ve yönetimi zorlaşır.
  • Omurgada yaşanacak bir sorun tüm ağı etkiler.

Örgü Topolojisi (Mesh)

 Örgü topolojisinde, ağa bağlı bir cihaz ağdaki diğer cihazlara doğrudan bağlantılıdır. 

Çoğunlukla geniş alan ağları (WAN) arasında kullanılır.

 Ağa bağlı cihaz sayısı ‘N‘ ise, ağ üzerindeki bağlantı sayısı ‘N*(N-1)/2‘ adettir.




Örgü topolojisinin avantajları;

  • Bir cihaza bağlı hatta sorun oluşması cihazın iletişimini kesmez.
  • Veri iletim hızı oldukça yüksektir.
  • Ağın genişletilmesi diğer bağlantıları etkilemeden yapılabilir.

Örgü topolojisinin dezavantajları;

  • Bağlantı sayısı çoktur.
  • Karmaşık bir yapısı vardır.
  • Çok fazla kablo kullanılır.
  • Maliyeti yüksektir.

Yıldız Topolojisi (Star)





Yıldız topolojisi en yaygın kullanıma sahip topolojidir. 

Merkezdeki bir hub ya da swith’ e bağlı cihazların iletişimi merkezde bulunan cihaz üzerinden gerçekleştirilir. 

Ağa bağlı bir göndericiden çıkan veri önce merkezdeki hub ya da switch’ e gelir, oradan da alıcı cihaza gönderilir. Hub ya da switch’ teki bir sorun tüm ağı etkiler.

Yıldız topolojisinde çift burgulu kablolar kullanılır. Cihazların hub ya da switch uzaklığı en fazla 100 metredir. 100 metreden sonra performans büyük oranda düşer.


Yıldız topolojisinin avantajları;

  • Ağın yönetimi ve sorun tespiti kolaydır.
  • Ağa yeni cihaz eklemek kolaydır.
  • Bağlı cihazda oluşacak sorun ağı etkilemez.

Yıldız topolojisinin dezavantajları;

  • Merkezdeki cihazda oluşacak sorun tüm ağı etkiler.
  • Çok fazla kablo bağlantısı gerektirir.

Halka Topolojisi (Ring)

 Halka topolojisinde, halka biçimindeki ağ üzerinden gönderilen veri alıcı cihaza ulaşıncaya kadar ağ üzerindeki tüm cihazlara teker teker uğrar. 

Ağ üzerindeki veri 3 byte’ lık jeton (token) denilen bir kılavuz ile gönderilir.

 Jeton ağ üzerinde sürekli dolaşır ve göndericiden aldığı veriyi alıcıya ulaştırır. Halka topolojisinde ağa bağlı cihazlardan birinin arızalanması ağın çökmesine sebep olur.


Halka topolojisinin yapısı merkezde bulunan bir Multistation Access Unit (MAU) ve ağa bağlı cihazlardan oluşur. Ağ bağlantısı çift burgulu kablolar ile gerçekleştirilir. Halka topolojisi, ağ topolojileri içerisinde en az kullanıma sahip topolojidir.


Halka topolojisinin avantajları;

  • Bağlı tüm cihazlar aynı yetkiye sahiptir.
  • Sunucuya ihtiyaç yoktur.
  • Ağın büyütülmesi performansı az etkiler.

Halka topolojisinin dezavantajları;

  • Bağlı cihazlardan birindeki arıza ağın çökmesine neden olur.
  • Ağ arayüz kartları ve MAU, ethernet ve switch’ e göre pahalıdır.

Ortak Yol Topolojisi (Bus)

 Ortak yol topolojisinde iletişim omurga (backbone) denilen tek bir hat üzerinden gerçekleştirilir. Ağda gönderilen veri hedefe ulaşıncaya kadar veya sonlandırıcıya gelinceye kadar hat üzerinde bulunan tüm cihazlara uğrar. Bu sebeple ağ performansı oldukça düşük bir topolojidir.

Bus topolojisinde genellikle koaksiyel kablo kullanılır. İnce koaksiyel kablo kullanıldığında hattın uzunluğu 185 metre, kalın koaksiyel kablo kullanıldığında en fazla 500 metredir. 

Ağa maksimum 30 cihaz bağlanabilir.

Ağ üzerindeki bir cihaz veri göndermeden önce hattın başka bir cihaz tarafından kullanılıp kullanılmadığını kontrol eder. Ağ kullanımdaysa hattın boşalmasını bekler.


Ortak yol topolojisinin avantajları;

  • Ağın kurumu kolaydır.
  • Ağa yeni cihaz eklenmesi kolaydır.
  • Ekonomiktir.
  • Daha az kablo kullanılır.
  • Switch/hub gerektirmez.

Ortak yol topolojisinin dezavantajları;

  • Ağa bağlanabilecek cihaz sayısı sınırlıdır.
  • Ağın hat uzunluğu sınırlıdır.
  • Omurga üzerindeki bir sorun tüm ağı etkiler.
  • Yaşanabilecek sorunların tespiti ve giderilmesi zordur.
  • Ağın bant genişliği düşüktür.

SOA Nedir?

 SOA Service Oriented Architecture (Servis Yönelimli Mimari) kısaltmasıdır.

SOA temel olarak her hizmetin farklı birimler tarafından birbirinden bağımsız olarak çalışmasını ifade eder.

SOA yapısı kurumsal bir firmadaki farklı birimler olarak ele alınabilir.

Kurumsal bir firmada İnsan Kaynakları, Muhasebe vb. diğer birimlerden bağımsız olarak çalışır ve diğer birimlere hizmet eder.

SOA geniş kapsamı olan bir mimari yaklaşım olup çeşitli prensiplere sahiptir.

Loose Coupling

Servislerin birbirine gevşek olarak bağlı olduğunu belirtir. Böylece bir servis diğer servisten bağımsız bir şekilde çalışabilir.

Interoperability

Servislerin diğer servislerle birlikte çalışabilir olduğunu belirtir. Birlikte çalışabilirlik için ortak bir biçim kullanılır.

Reusability

Servislerin tekrar kullanılabilir olduğunu belirtir.

Abstraction

Servis iç yapısının servis kullanıcıları tarafından gizlenmesidir.

Facade

Servis ve servisi kullanan arasındaki bir bileşen/kabuk olduğunu belirtir.

Autonomy

Bir servisin diğer servislerden bağımsız olarak çalışabilir olduğunu belirtir.

Statelessness

Servislerin durumsuz olduğunu belirtir. Servislerin durum bilgisi servis isteğine göre şekil alacağını ve sürekli aynı olmadığını belirtir.

Discoverability

Servislerin keşfedilebilir olduğunu belirtir.

Stack ve Heap Arasındaki Farklar

 Heap ve Stack arasında ki en önemli farklardan birisi heapde veriler karışık bir şekilde saklanırken stackte artan ya da azalan adres mantığında (big and little endian) çalışır. 

Buna bağlı olarak heapde yer alan bir veriye erişmek stackte yer alan bir veriye erişmeye göre daha maliyetli bir işlemdir. 

Başka bir fark ise stackteki veri hemen silinirken heapdeki veri Garbage Collector algoritmasına bağlıdır.

Stack bellekten statik olarak yer tahsisi için kullanılırken, Heap dinamik olarak yer tahsisi etmeyi sağlar. Her ikisi de Ram bölgesinde bulunur. Stack’te yer alan veriler direk bellek içine yerleştirilir dolayısıyla erişimi çok hızlıdır. 

Heap ise runtime (çalışma zamanı) anında kullanılırlar ve dağınık bir bellek göz yapısı olduğu için erişimi stack kadar kolay olmaz dolayısıyla yavaş çalışır. 

Stack bellekteki veri hemen silinirken Heap bellekteki verinin silinmesi Garbage Collector’a (Çöp toplama mekanizmasına) bağlıdır. 

Stack alanı sınırlı olduğundan çok büyük sayıda ve büyük tiplerde veri atanması belleğin dolmasına sebep olabilir.

Stack veri yapısına üst üste dizili tabaklar örnek verilebilir. Alttaki bir tabağı almak istediğinizde nasıl ki üstündeki tabakları da indirmeniz gerekiyorsa, stack veri yapısında da aradaki bir veriyi alabilmek için öncelikle üsttekileri çekmek gerekiyor.

Kullanacağınız yerin boyutunu tam olarak biliyorsanız Stack, ihtiyacınız olan boyutu tam olarak bilmiyorsanız Heap kullanımı daha mantıklı bir tercih olacaktır.