Programlama (Hesaplama)

düzenle|Şubat 2007 birleştir|programlama Programlama, bilgisayar çoklu görevlendirmesinde ve çoklu işlemli işletim sistemlerinin tasarımında, ve gerçek - zamanlı işletim sistemi tasarımlarında anahtar bir konsepttir. O, bir öncelik sırasına göre, önceliklerle görevlendirilmiş işlemler yoludur. Bu görevlendirme bir proglamlayıcı olarak bilinen bir yazılımla yürütülür.

Genel amaçlı işletim sistemlerinde, proglamlayıcının amacı işlemci yükünü dengelemek ve işlemciyi tekeline alan veya işlemciyi kaynak yoksunluğu sebebiyle sonlandıran herhangi bir işlemden korumaktır. Solaris, AIX, ya da z / OS gibi, kritik uygulama amaçlı temelde dizayn edilen işletim sistemlerinde, programlayıcı “ koruyucu ” özellikleri de içerir. Eğer bir işlem (tasarım sonucu ya da kazara), bütün kullanılabilir işlemci kaynaklarını hızlı bir şekilde ele geçirmeye çalışırsa, sistem genellikle “ kilitlenme ” olarak adlandırılan noktaya kadar yavaşlar. Fakat, Windows için bu koruyucu önlemlerin eklendiği üçüncü - kısım uygulamalar vardır, örneğin; AppSense Performance Manager, Aurema ARMTech ve Citrix Presentation Server 4. 0 Enterprise. Sonraki kullanım ise Aurema ARMTech versiyon 2` nin daha aşağı biçimlendirilmiş halidir.

Gerçek zamanlı ortamlarda, sanayideki otomatik kontrol aygıtları gibi (örneğin robotics gibi), proglamlayıcı, işlemlerin son mühlette birleşebildiğini garanti etmelidir ki bu da sistemin dengede kalması için çok önemlidir.

İşletim sistemi programlayıcı tipleri

İşletim sistemleri üç farklı tip programlayıcı ile göze çarpabilir; uzun - vadeli bir programlayıcı (bu ayrıca giriş programlayıcısı olarak da bilinir), orta - vadeli bir programlayıcı, kısa - vadeli bir programlayıcı (bu ayrıca bitirici olarak da bilinir).

Uzun - vadeli ya da giriş programlayıcısı, hızlı sıraya girmesine izin verilecek olan uygulama ya da işi hangisi olacağına karar verir, bir programı yürütmeye yönelik bir girişim yapıldığı zaman, onun şimdiki yürütülecek işlemlere ayarlanması uzun - vadeli programlayıcılar tarafından kabul edilir ya da ertelenir. Böylece, bu programlayıcı, hangi işlemlerin bir sistemde yürütüleceğini, herhangi birinin zamanına uygunluk derecesini dikte eder - örneğin; az ya da çok miktarda işlem aynı zamanında işletilecekmi, IO yoğunluğu ve CPU yoğunluğu işlemlerinin paylaşımı nasıl ele alınacak. Genellike, bir masa üstü bilgisayarı için, bu şekilde hiçbir uzun - vadeli programlayıcı yoktur, ve işlemlerin sisteme girişi otomatik olarak kabul edilir. Fakat bu tip programlama gerçek zamanlı sistemler için çok önemlidir, sistemin güvenli bir şekilde kontrol altında tutabileceğinden daha fazla işlemin girişine izin verilmesinden kaynaklanan çekişme ve yavaşlamalar vasıtası ile, işlem nihayetlerini buluşturma kabiliyeti uzlaştırılabilir. (Stallings, 399)

Orta - vadeli programlayıcı, asıl hafızaya sahip bütün sitemlerde mevcuttur, işlemleri ana hafızadan geçici olarak çıkarır ve ikinci bir hafızaya (bir disk sürücüsü gibi) ya da vice versa ya yerleştirir. Bu genlikle “ swapping out ” ya da “ swapping in ” olarak temsil edilir (ayrıca yanlışlıkla “ paging out ” ya da “ paging in ” olarak). Orta - vadeli programlayıcı, diğer işlemler için ana hafızada boş alan açabilmek amacı ile, bazen aktif durumda olmayabilen bir işlemi, ya da düşük bir önceliğe sahip bir işlemi, ya da sık sık sayfa hatası veren bir işlemi, ya da hafızada çok fazla yer işkal eden bir sistemi “ swap out ” edebilir (yükleme dışı bırakabilir), yükleme dışı bırakma hafıza uygun olduğu ya da işlem blokajı kaldırıldığı ya da kaynak için çok fazla beklendiği zaman geri çalışır. (Stalling, 390) (Stalling 370)

Günümüzde bir çok sistemde (dosyayı yükleme dışı bırakmak yerine, ikinci bir asıl adresi depolama yeri olarak gösteren bir yol göstericiye sahip), orta - vadeli programlayıcı aslında, yürütülmeleri sırasında çiftleri “ yükleme dışı bırakılmış işlemler ” olarak ele almak suretiyle, uzun - vadeli programlayıcının yaptığı işi yaparlar. Bu yolla, bir çift segmentlemeye ihtiyaç duyulduğu zaman, bu isteğe bağlı olarak yüklemeye alınabilir ya da “ ağır yükleme ” durumuna tabi tutulabilir.

Kısa - vadeli programlayıcılar, (ki ayrıca bitici olarak da bilinirler) hazır olanların içinden hangisi bir dahaki işletilecek (CPU ya tahsis edilen) işlem olduğuna karar verirler, bir zaman kesimi, IO kesimi, bir işletim sistemi bildirimi ya da başka bir sinyal tipini takiben bu durum gerçekleşir. Böylece, kısa - vadeli programlayıcılar, uzun - vadeli ve orta - vadeli programlayıcılara nazaran program seçimine daha sık karar verirler. Bir programlama kararı, her bir zaman diliminden sonra yapılması gereken minimum düzeyde olacaktır, ve bunalar çok kısa zamanlara tekabül eder. Bu programlayıcı etkisizleştirilebilir, ki bu da CPU dan başka bir işleme konumlandırmaya karar verildiği zaman işlemi CPU dan zorla çıkarma kabiliyetine vurgu yapar, ya da programlayıcının işlemi CPU dan çıkarma gücüne sahip olduğu durumda etkili duruma da getirilebilir.

Programlama disiplinleri

Ana başlık : Programlama Algoritması

Programlama disiplinleri kendisinden hemen ve eş zamanlı istenen kısımlara ayırma işleminde kullanılan algoritmalardır. Programla disiplinleri işletim sistemlerinde olduğu kadar “router” de (CPU zamanını adımlara ve işlemlere bölmek için) de kullanılır.

Programlama algoritmalarının asıl amaçları kaynak yokluğunu minimize etmektir ve kaynakları kuran kısımların hatasızlığını garanti etmektir.

Genel programlama disiplinleri



Aşağıda genel programlama pratiklerinin ve disiplinlerini bir listesi vardır :

- Anticipatory programlama - Borrowed - Virtual _ Time programlama - Critical Path Method of Scheduling - Deadline - monotonik programlama - Deficir round robin (DDR) - Earlliest deadline first programlama (EDf)ü - Elastic round robin - Fair - share programlama - First in, First out (FIFO), ayrıca First Come First Served (FCFS) olarak da bilinir - Gang programlama - Genetic Anticipatory - Highest response ratio next (HRRN) - Interval programlama - Last in, First out (LIFO) - Job Shop programlama (bakınız, Job Shop) - Least - connection programlama - Least slack time programlama (LST) - List programlama - Lottery programlama - Multilevel Feedback Qeue - Never queue programlama - Proportional Share Programlama - Rate - monotonik programlama (RMS) - Round - robin programlama (RR) - Shortest expected delay programlama - Shortest job next (SJN) - Shortest remainin time (SRT) - “ Take ” programlama - Two - level programlama - Weighted fair queuing (WFQ) - Weghted least - connection programlama - Weighted rounf robin (WRR)

Genel disk programlama disiplinleri



- Rondomm programlama (RSS) - First in, First out (FIFO), ayrıca First Come First Served (FCFS) olarak da bilinir - Last in, First out (LIFO) - Shortest seek first, Shortest Seek / Service Time First (SSTF) olarak da bilinir - Elevator algoritma, SCAN (C - SCAN, LOOK, varyasyonları ile birlikte) olarak da bilinir - N - step - SCAN SCAN of N Records at a time - FSCAN, N - Step - SCAN, N Scan devrinin başlangıcındaki önem boyutunda olmak kaydı ile - Highest Response Ratio Next, HRRN

İşletim Sistemi programlayıcı uygulamaları

Sürpriz olmayan bir şekilde, farklı işletim sistemleri farklı programlayıcı uygulamalarına sahiptir. Çok erken bir tarihte, MS - DOS ve Windows sistemleri çoklu görevli değillerdi ve bu yüzden bir programlayıcıları da yoktu. Windows 3. 1 - basis devre dışı olmayan, diğer işlemler için biraz CPU zamanı kazanmak amacı ile programlarını yürütebilmek için başka programlayıcılara ihtiyaç duyan programlayıcıları temel alır. Bu çoklu görevler için ilkel bir destek sağlar ve hiçbir gelimiş programlayıcıda, hiçbir suretle bulunmaz. Windows NT 4. 0 - round robin kullanan işletim sistemleri temel alır. Windows NT 4. 0 da öncelikler 1 den 31 e kadardır, 1 den 15 e kadar önceliği olanlar normal 15 den 31 e kadar önceliği olanlar ise gerçek zamanlılardır. Kullanıcı bu önceliklerden beşini alt - kontrol - delete kombinasyonu ile seçebilir. Windows NT 4. 0 a paylaşılmak üzere bir işlem seçildiği zaman, bir round robin de, verilen CPU zamanında gerçekleştirilecek en öncelikli işlem seçilir. (bu yüzden ilk üç işlem A, B, C olarak ve sonraki işlemler ise C ve D olarak adlandırırsa, CPU da önce A sonra B sonra C, D yer alırlar. Diğer kaynaklar bloke edilirse, başka sebeplerden dolayı CPU için beklenmez). CPU zamanın önceliği düşük işlemlerle harcanmasını önlemek için, Windows NT 4. 0, üç saniyenin üzerinde geçici önceliğe, “ boost ”, sahip olmayan bir programlayıcı sunacaktır. Eğer herhangi bir işlem daha üst bir önceliğe taşınmazsa, bu işlem CPU zaman aralığında daha sonra yer alır. Windows NT programlayıcı hakkında bilgilendirme Yakın tarihdeki Unix uygulamaları, her bir Feedback Queue`nun içinde round robin seçeneklerine sahip Multilevel Feedback Queues programlayıcısı kullanırlar. Bu sistemde, işlem yüksek bir önemle başlar, (yeni işlemlere hızlı cevap veren, tek bir Mouse haraketi ya da klavye hareketi gibi), ve sistemde çok fazla zaman işkal eder. Maalesef bu sistem altında daha eski işlemler CPU zamansızlığından yitirilebilirler. Bu sistemde Unix altında, işlem önem sırası 1 den başlayıp 40 a kadar gider, ama daha modern Unix sistemleri daha yüksek rakamlara ulaşırlar. (Solaris te 160 a kadar gider). Windows NT 4. 0 yerine, işlem öncelik sırası yoksunluğu çözümü olarak, günümüz Unix sistemleri, daha uygun sistemlerdir. Onun tarafından uygulanan işlem önceliği işlem uygulanana kadar yavaş yavaş artar.

Kaynaklar

Vikipedi

Bu konuda henüz görüş yok.
Görüş/mesaj gerekli.
Markdown kullanılabilir.

Paralel hesaplama
2 yıl önce

Paralel hesaplama, ya da Koşut hesaplama, aynı görevin (parçalara bölünmüş ve uyarlanmış), sonuçları daha hızlı elde etmek için çoklu işlemcilerde eş zamanlı...

Paralel hesaplama, ,
Yordamsal Programlama
2 yıl önce

Yordamsal programlama çoğu zaman sıralı programlamadan veya yapısal olmayan programlamadan pek çok durumda daha iyi seçimdir. Yordamsal programlama orta karar...

Yordamsal programlama, Fonksiyon, Yordam
Dağıtık hesaplama
6 yıl önce

programları yazma işlemine dağıtık programlama adı verilir. Dağıtık hesaplama aynı zamanda dağıtık sistemleri kullanarak hesaplama yöntemiyle problemleri çözmeye...

Programlama paradigması
2 yıl önce

Programlama paradigması, bilgisayar programlamanın temel bir tarzıdır. Buna nazaran metodoloji, yazılım mühendisliği problemlerinin çözümünde kullanılan...

Julia (programlama dili)
6 yıl önce

başarımlı üst düzey bir programlama dilidir. Nitelikli bir derleyici, dağıtık koşut yürütüm olanağı, sayısal hesaplamalarda yüksek doğruluk oranı ve...

Nesne Yönelimli Programlama
2 yıl önce

Nesne yönelimli programlama (NYP), (İngilizce: Object - Oriented Programming)(OOP), Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır...

Nesne Yönelimli Programlama, 1960, 1970, 1980, 1990, ADA, Bjarne Stroustrup, C, C++, CORBA, Dalmaçyalı
Programlama
2 yıl önce

olursak programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. Programlama, bir programlama dilinde...

Programlama, Assembly, Bağlayıcı (bilgisayar), Bilgisayar, Derleyici, Kaynak kodu, Makine dili, Program, Programlama (hesaplama), Programlama dilleri
Düşük seviye programlama dili
6 yıl önce

Biliminde düşük seviyeli programlama komut kümesinde hiç soyutlama imkânı vermeyen ya da az bir soyutlama sağlayan programlama dili anlamına gelir. Buradaki...