İçeriğe atla

Sonsuz döngü (Bilgisayar)

Sonsuz döngü, çeşitli sebeplerle sonsuza kadar döngüye giren ve sonlanamayan bilgisayar programı komutu parçalarına verilen ad. Bu sebepler döngünün; bir sonlandırıcı koşulun bulunmaması, bulunsa da hiçbir zaman sağlanamayacak olması ya da bu koşulun döngünün her seferinde yeniden başlamasına neden olması olabilir. Zaman paylaşımlı eski işletim sistemlerinde sonsuz döngüler tüm sistemin kilitlenmesine sebep oluyordu. Günümüzdeki yaygın olan ve öncelikli çoklugörev modelini kullanan sistemlerde ise bu döngüler tüm işlemci zamanını harcasa da kullanıcı tarafından sonlandırılabilir. Meşgul bekleme döngüleri de zaman zaman "sonsuz döngü" olarak adlandırılabilir. Bir bilgisayarın "donma"sının muhtemel sebepleri bir sonsuz döngü, deadlock ya da izinsiz bellek erişimi olabilir.

Bilinçli ve bilinçsiz sonsuz döngüler

Bir döngü, belirli bir koşul sağlanana kadar tekrar eden komutlardan oluşur. Sonsuz döngü ise bir sebepten bu koşulun hiçbir zaman sağlanamaması sonucunda ortaya çıkar.

Bilinçli sonsuz döngü

Bilinçli olarak sonsuz döngü yaratılan birkaç durum vardır. Örneğin, kaset ya da kartuşla çalışan eski oyun konsollarında programın çıkış yapacağı bir işletim sistemi olmadığından konsol kapatılana kadar program sonsuz döngüde kalırdı.

Modern bilgisayarlarda da bilgisayar devamlı olarak bir kullanıcı girdisi beklediği için bilgisayar kapatılana ya da yeniden başlatılana kadar devam eden "sistem boşta işlemi" bulunur.

Bilinçsiz sonsuz döngü

Çoğunlukla sonsuz döngü kavramı bilinçli olarak ortaya çıkmaz ve bir bug sonucu oluşur. Çoğu sonsuz döngü debug yöntemleriyle ortaya çıkarılabilir; fakat bunun için genel bir yöntem mevcut değildir. Bir programın sonlanıp sonlanmayacağı sorusu sonlandırma sorununun kararsızlığıdır.

C dilinde yazılmış basit bir örnek:

#include <stdio.h>
main()
{
  while(1) {
    printf("Sonsuz döngü\n");
  }
}

Bu döngü sonlanmadan devamlı ekrana "Sonsuz döngü" yazar.

Ayrıca bakınız

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Unix</span>

UNIX türevi işletim sistemleri çok işlemcili çok pahalı makinelerden tek işlemcili, basit ve çok ucuz ev bilgisayarlarına kadar pek çok cihaz üzerinde çalışabilen esnek ve sağlamlığı çok değişik koşullarda test edilmiş sistemlerdir. Fakat özellikle kararlı yapısı ve çok kullanıcılı-çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir ve özellikle akademik dünyada iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. UNIX, Interdata 7/32, VAX ve Motorola 68000 arasında hızla yayıldı.

<span class="mw-page-title-main">DOS</span> bilgisayarlar için ufak ve basit işletim sistemi

DOS, bilgisayarlar için ufak ve basit bir işletim sistemi türü olup, ana görevi disket ve sabit disk gibi saklama ortamlarının yönetimidir.

Bilgisayar virüsü, kullanıcının izni ya da bilgisi dahilinde olmadan bilgisayarın çalışma şeklini değiştiren ve kendini diğer dosyaların içerisinde gizlemeye çalışan aslında bir tür bilgisayar programıdır.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">MS-DOS</span> 1980li yıllarda kişisel bilgisayar işletim sistemi

MS-DOS, Microsoft firmasının geliştirdiği bir DOS sistemidir. 1980'li yıllarda PC uyumlu platformlar üzerinde kullanılan en yaygın işletim sistemiydi. 1990'lı yılların ortalarından 2000 yılına kadarki en popüler işletim sistemleri olan Windows 9x ailesinin temeli olarak kullanıldı. Masaüstü bilgisayarlardaki popülerliğini, zamanla Windows NT mimarisi kullanan yeni nesil Windows işletim sistemlerine bıraktı.

Telnet, Internet ağı üzerindeki çok kullanıcılı bir makineye uzaktaki başka bir makineden bağlanmak için geliştirilen bir TCP/IP protokolü ve bu işi yapan programlara verilen genel isimdir. Telnet iki bileşenden oluşur: (1) iki tarafın nasıl iletişim kuracağını belirleyen protokolün kendisi ve (2) hizmeti sağlayan yazılım uygulaması.Kullanıcı verileri, İletim Kontrol Protokolü (TCP) üzerinden 8 bitlik bayt yönlendirmeli bir veri bağlantısında Telnet kontrol bilgisi ile bant içi serpiştirilir. Telnet, 1969'da RFC 15 ile başlayarak geliştirildi, RFC 855'te genişletildi ve ilk İnternet standartlarından biri olan İnternet Mühendisliği Görev Gücü (IETF) İnternet Standardı STD 8 olarak standartlaştırıldı. encryption sağlayan bazı Telnet eklentileri geliştirilmiştir. Bağlanılan makineye girebilmek (login) için orada bir kullanıcı isminizin (İng:username) ve bağlantının gerçekleşebilmesi için bir telnet erişim programınızın olması gereklidir. Fakat bazı kütüphane ve herkese açık telnet bazlı web servisleri, bağlantı sırasında kullanıcı ismi (numarası) istemeyebilirler; ya da, kullanıcı isim ve parola olarak ne yazmanız gerektiği bağlandığınızda otomatik olarak karşınıza çıkar. Telnet, BBS sistemlere İnternet üzerinden erişimde günümüzde yaygın olarak kullanılmaktadır. Telnet erişim programları, günümüzdeki işletim sistemlerinin çoğunda işletim sistemi ile birlikte gelmektedir. Çok kullanıcılı işletim sistemleri genellikle kullanıcılara metin tabanlı bir arayüz sunar ve bu sistemlerde tüm işlemler klavye vasıtası ile komut isteminden gerçekleştirilir.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

<span class="mw-page-title-main">Windows 1.0</span> 1985te piyasaya sürülen ve MS-DOS üzerinde yükselen ilk Windows sürümü

Windows 1.0, Microsoft'un MS-DOS adlı işletim sistemi üzerinde oluşturduğu grafik arayüz (GUI) içeren işletim sistemi ailesi Windows'un ilk sürümüdür.

<span class="mw-page-title-main">AmigaOS</span> Amiga kişisel bilgisayarının işletim sistemi

AmigaOS, Amiga kişisel bilgisayarının işletim sistemidir. Grafik arabirimi olan Workbench, CLI komut satırı arabirimi ile birlikte AmigaDOS ve çoğu Amiga modelinde ROM'da yer alan Kickstart'tan oluşur.

Boru hattı (pipeline), yazılım mühendisliğinde, her bir elemanın çıktısı bir sonraki elemanın girdisi olacak şekilde sıralanmış işlemler zinciridir. Genellikle, ardışık birimlerin aralarına bir miktar arabellek (buffer) konulmaktadır. Bu boruhatları arasındaki bilgi akışı çoğunlukla bayt katarları (stream) ve bit katarları şeklindedir.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

<span class="mw-page-title-main">Komut satırı</span> yazıyla komutlar girilen ve çıktının da yazıyla ifade edildiği bilgisayar arayüz sistemi

Komut satırı, bir bilgisayar kullanıcısının, belirli metinleri (komutları) girerek, bilgisayarla iletişime geçmesini sağlar. Komut satırı arayüzleri; konsol, kabuk, terminal veya uçbirim diye de adlandırılır.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

<span class="mw-page-title-main">İşlem (bilgisayar)</span>

Bilgisayar bilimlerinde işlem (process) terimi, belleğe yüklenmiş ve işlemcide (CPU) yürütülmekte olan bir program olarak tanımlanmaktadır. Uygulamalar diskte çalışmaz halde bulunurken ise program olarak tanımlanır. Bir program kendi başına pasif komut yığınıdır ve işlem ise bu komutların aktif olarak yürütülmesidir.

<span class="mw-page-title-main">İşlem yönetimi</span>

İşlem yönetimi günümüz işletim sistemlerinin önemli bir parçasıdır. İşletim sisteminin işlemlere yer alması, aralarında haberleşmeyi sağlaması onun önemli görevlerindendir. İşletim sistemi kaynakları işlemlere göre ayırmalı, işlemleri veri aktarımı ve paylaşımına uygun hale getirmeli, her işlemin kaynağını diğer işlemlerden korumalı ve işlemler arası senkronizyonu sağlamalıdır. Bunları yapabilmek için işletim sistemi her işlem için o işlemin mevkisini ve sahipibi tanımlayan ve işletim sistemini her veriği üzerinde kontrol uyguladığı bir veri yapısı sağlamalıdır.

Deadlock ya da kilitlenme, iki ya da daha fazla eylemin devam etmek için birbirlerinin bitmesini beklemesi ve sonuçta ikisinin de devam edememesi durumu. Genellikle "yumurta mı tavuk mu önce gelir?" gibi paradokslarda görülür.

Çevre değişkenleri, çevresel değişkenler ya da ortam değişkenleri, işletim sistemi seviyesinde konfigüre edilebilen ve bilgisayar işlemleri tarafından erişilebilen değişkenlerdir. Çoğu kez belli programların ve dosyaların konumlarını ve birden fazla işlem tarafından kullanılabilen bilgi ve ayarları tutmak için kullanılırlar. Çoğunlukla bir karakter dizisi olurlar.

<span class="mw-page-title-main">Canlı USB</span>

Canlı USB, önyüklenebilen tam bir işletim sistemi içeren taşınabilir bir USB'ye bağlı harici veri depolama aygıtıdır. Terim, USB flash sürücüleri anımsatır, ancak sırasıyla "canlı HDD" ve "canlı SSD" olarak adlandırılsalar da, harici bir sabit disk sürücüsünü veya yarıiletken sürücüyü kapsayabilir. Canlı CD'lerden sonraki evrimsel adımdır, ancak yazılabilir depolamanın ek avantajıyla, önyüklenen işletim sisteminde özelleştirmelere izin verir. Canlı USB'ler, sistem yönetimi, veri kurtarma veya test sürüşü için gömülü sistemlerde kullanılabilir ve USB cihazına ayarları kalıcı olarak kaydedebilir ve yazılım paketlerini yükleyebilir.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.