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