“Yumuşak” gerçek zamanlı işletim sistemlerinin sağladığı garantiler aslında


17

Sanırım "zor" gerçek zamanlı bir işletim sisteminin ne olduğunu biliyorum. Uygulama programcısı ile sözleşme sağlayan bir programlayıcıya sahip bir işletim sistemidir. Bir uygulama, her kaynak ayırma isteği için bir son tarih sağlar. Eğer son başvuru isteklerdir uygulanabilir , zamanlayıcı her kaynak tarihinden önce istekte bulunan uygulamaya tahsis edileceğini garanti eder. Garanti, bir uygulama programcısının belirli taleplerin maksimum gecikmeleri ve minimum verimleri hakkında akıl yürütmesi için yeterlidir.

"Yumuşak" gerçek zamanlı sistemleri bulduğum tüm tanımlar bana boş geliyor. Wikipedia diyor

bir sonucun yararlılığı, son başvuru tarihinden sonra düşer ve böylece sistemin hizmet kalitesini düşürür.

Uhhhh. Tamam. Bu ölçütlere göre, Windows 95 yumuşak bir gerçek zamanlı sistemdi ve 3BSD ve Linux da öyle. Wikipedia harika bir kaynak değil, ancak sonraki Google hit sayısı daha iyi değil. Örneğin, http://users.ece.cmu.edu/~koopman/des_s99/real_time/ diyor

Yumuşak, gerçek zamanlı bir sistemde, nadiren meydana gelen bir tepe yükünde bozulmuş bir işlem tolere edilebilir.

Bu bir sözleşme değil, hiçbir şey söylemenin süslü bir yolu.

Gerçek işletim sistemleri tarafından sunulan gerçek yumuşak gerçek zamanlı garanti / sözleşme örnekleri nelerdir?

Formun cevaplarını arıyorum:

(OS-adı) 'nda programcı yaparsa (programcı-yapılması gerekenler) işletim sistemi garanti eder (sistem-sistemi-garanti eder).

Yanıtlar:


22

Doğru anladınız ve Wikipedia olabildiğince bilgilendirici - yumuşak gerçek zamanlı resmi bir karakterizasyon değil, bir değer yargısı. “Yumuşak gerçek zamanlı” demenin başka bir yolu da “keşke gerçek zamanlı olsaydı” ya da belki daha doğru bir şekilde “gerçek zamanlı olmalı ama bu çok zor”.

Gerçekten bir garanti şeklinde söz etmek istiyorsanız, belirli bir performans garantisi yerine en iyi çabanın garantisidir.

Veya Erlang SSS'yi alıntılamak için (Erlang orijinal olarak telefonda kullanılmak üzere tasarlanmış bir programlama dilidir):

Yumuşak gerçek zamanlı ne demektir?

Cynics "temelde hiçbir şey" der.

(…) Birçok telekom sistemi, [gerçek zamanlıdan] daha az katı gereksinimlere sahiptir, örneğin, "bir veritabanı araması, vakaların% 97'sinde 20 ms'den daha az sürer" satırları boyunca istatistiksel bir garanti gerektirebilir. Erlang gibi yumuşak gerçek zamanlı sistemler bu tür bir garanti vermenizi sağlar.

Ve bu yararlı bir tanım sağlar. Yumuşak gerçek zamanlı , tüm görevleri yerine getirmek için harcanan toplam süreyi optimize etmek yerine, her bir göreve belirli bir zamandan daha fazla zaman almayan optimize edilmiş bir tasarımı belirtir . Örneğin, yumuşak gerçek zamanlı bir sistem, 10ms'de isteklerin% 99,9'unu tamamlamayı ve saniyede 100 isteği işlemeyi hedefler; burada gerçek zamanlı olmayan bir şey saniyede 200 istek gerçekleştirmeyi hedefleyebilir, ancak ara sıra isteğin engellenmesine izin verebilir 50ms veya daha fazla. Zor bir gerçek zamanlı, ne olursa olsun her 15 ms'de bir isteği garanti eder.

Yumuşak gerçek zamanlı, son teslim tarihinin hizmetin bozulması anlamına geldiği, ancak performans açısından kritik olmadığı uygulamalar için kullanılır. Multimedya ve telefon bazı tipik kullanım durumlarıdır. Her ses veya video karesi zamana dönüştürülmeli, aksi takdirde atlanmalıdır; ancak bir çerçeveyi atlamak dünyanın sonu değildir. Erlang tasarımcılarının diğer konularda güvenilirlik konusunda benzer hedefleri vardı: bir telefon santralinin ara sıra bir aramayı bırakmasının daha iyi olduğunu gözlemlediler, ancak bir bütün olarak değişimin çalışmaya devam edeceğinden kesinlikle emin olmak için bağlantıları her ne pahasına olursa olsun sürdürmeye çalışırken felaket başarısızlığı riskiyle karşı karşıya kalırsınız.

Buna karşılık, bir motoru kontrol etmek gibi bir şey, yazılımın asla bir son tarihi kaçırmamasını gerektirir. Bunun maliyetleri vardır: genel performans tipik olarak daha yavaştır ve sadece nispeten basit davranışlar elde edilebilir. Spektrumun diğer tarafında, bir sayı gevrek uygulama tipik olarak sadece genel performansla ilgilenir - önemli olan, her bir sütunun ne kadar hızlı hesaplandığı değil, 1000x1000 matrislerin ne kadar hızlı çarpıldığıdır.


@ E.DouglasJensen İfadeniz iğrenç bir abartı. Cevabınız Wikipedia makalesine temelde katılmıyor.
Gilles 'SO- kötü olmayı bırak'

Evet katılıyorum. Yorumum, gerçek zamanlı ilgili birkaç Wikipedia sayfasını kapsayacak şekilde tasarlandı ve bu içeriğin büyük bir kısmı en iyi ihtimalle kötü düşünülüyor.
E. Douglas Jensen

Benim en büyük şikayetim, insanların otomotiv fren sistemleri için zor gerçek zamanlı (tüm son teslim tarihlerini karşılayan) yazılımların resmi olarak doğrulanması gerektiğini düşünmemesi - yumuşak gerçek zamanlı yazılımın da (örn. , görevlerin en az% 89'u gecikmeli% 20'den fazla olmamalıdır) gerekçelendirilmeli ve resmi olarak doğrulanmalıdır. Tüm askeri savaş sistemleri gerçek zamanlı yumuşaktır. Bunun yerine insanlar geçici düşüncesiz düşünürler ve "Que Sera Sera" derler.
E. Douglas Jensen

"İlk devrim, şeylere nasıl baktığınıza dair fikrinizi değiştirdiğinizde ve ona gösterilmemenin başka bir yolu olabileceğini gördüğünüz zamandır." - Gil Scott-Heron, "Devrim Televizyonda Olmayacak"
E. Douglas Jensen

4

-Rt (gerçek zamanlı) yama kümesine sahip Linux, boş olmayan görünen ilginç bir garanti sağlayan bir zamanlayıcı sağlar. (Her ne kadar garantinin gerçek kullanıma nasıl getirilebileceği konusunda net değilim.)

Linux-rt SCHED_FIFOzamanlama politikası şu şekilde çalışır: Kullanıcı her işleme bir öncelik atar. ("Gerçek zamanlı" işlemler için öncelik sayıları 0-99'dur ve geleneksel Unix nicedeğerleri -20 ila 19, 100 ile 139 arasındaki önceliklerle eşleştirilir. (Yani "0", "en yüksek" önceliktir ve "139", "en düşük" "önceliği.)

Garanti, zamanlayıcının herhangi bir zamanda Nbir Nişlemci makinesinde en yüksek öncelikli çalıştırılabilir işleri zamanlayacağıdır . Çekirdek içindeki öncelikli ters çevirme problemlerini önlemek için büyük acılar çekildi. Süreç zaman Açalıştırılabilir hale gelir ve diğer bazı koşu süreci daha yüksek önceliğe sahiptir B, Aderhal önceden ayırır B.

Bununla birlikte, kesin bir zaman garantisi verilmediğini unutmayın. Önleme yapmak için harcanan zaman teorik olarak keyfi olarak uzun olabilir. Ayrıca, düşük öncelikli bir işin bir sürü uzun gecikme i / o başlatabileceği bazı yollar var gibi görünmektedir. G / Ç düşük öncelikli iş için kesme işleyicilerini tamamladığında, daha yüksek öncelikli bir işi kesintiye uğratabilir, bu da öncelikli tersine çevirme biçimidir.

Dolayısıyla, sağlanan sınırlı garanti: en yüksek önceliğe sahip tek bir işlem varsa, çalıştırılabilir olduğunda işletim sisteminin gerçekçi olarak verebileceği tüm işlemci kaynaklarını alacaktır. En yüksek öncelikli işlem tarafından tüketilen işlemci kaynaklarının miktarında iyi bir üst sınırınız varsa, ikinci en yüksek öncelikli işlem için kullanılabilecek kaynakların makul olarak doğru bir tahminini vb. Hesaplayabilirsiniz.

Linux gerçek zamanlı zamanlayıcısını açıklayan ayrıntılı bir makale http://www.linuxjournal.com/magazine/real-time-linux-kernel-scheduler .


1
RTLinux SSS'nin burada bir karakterizasyon sağladığını düşünüyorum ( sert veya yumuşak sıfatları kullanmıyorlar ): “CPU'yu isteyen en öncelikli görev, görevi uyandırdıktan sonra CPU'yu her zaman sabit bir süre içinde alır . ”
Gilles 'SO- kötü olmayı bırak'

4

"Yumuşak gerçek zamanlı" tanımlamak için "zor gerçek zamanlı" ile karşılaştırmak en kolay yoldur.

Raslantıdan bahsetmişken, çoğu insan dolaylı olarak bilgiyi veya olayı "gerçek zamanlı" olarak gören gayri resmi bir zihinsel modele sahiptir.

• algılanan para birimi ile ilişkilendirilebilecek bir gecikme (gecikme) ile kendini gösterirse veya bu ölçüde

• yani, bilgi veya olayın kendileri için kabul edilebilir derecede tatmin edici olduğu bir zaman dilimi içinde.

"Zor gerçek zamanlı" nın çok sayıda farklı ad hoc tanımı vardır, ancak bu zihinsel modelde zor gerçek zamanlı "if" terimi ile temsil edilir. Özellikle, gerçek zamanlı eylemlerin (görevler gibi) tamamlanma tarihlerine sahip olduğu varsayılarak, tüm görevlerin tamamlandığı olayın kabul edilebilir tatmin edici değeri, tüm görevlerin son tarihlerini karşıladığı özel durumla sınırlıdır.

Zor gerçek zamanlı sistemler, uygulama ve sistem ve çevre ile ilgili her şeyin durağan olduğunu ve 'önsel' olarak bilinen çok güçlü varsayımlar yaparlar; örneğin, hangi görevlerin periyodik olduklarını, varış zamanlarını, dönemlerini, son teslim tarihlerini, kaynak çatışmaları ve genel olarak sistemin zaman evrimi yoktur. Bir uçak uçuş kontrol sisteminde veya otomotiv fren sisteminde ve diğer birçok durumda, bu varsayımlar genellikle tüm sürelerin karşılanması için karşılanabilir.

Bu zihinsel model, hem sert hem de yumuşak gerçek zamanlı kuşatmayı kapsayacak kadar kasıtlı ve çok kullanışlı bir şekilde geneldir. Örneğin, görev tamamlama olayının yetersiz ancak kabul edilebilir bir değere sahip olduğunu varsayalım

  • görevlerin% 10'undan fazlası son teslim tarihlerini kaçırmaz
  • veya hiçbir görev% 20'den fazla gecikme değildir
  • veya tüm görevlerin ortalama gecikmesi% 15'ten fazla değildir
  • veya tüm görevler arasındaki maksimum gecikme% 10'dan az

Bunların hepsi, birçok uygulamada yumuşak gerçek zamanlı vakaların yaygın örnekleridir.

Çocuğunuzu okuldan sonra almanın tek görevli uygulamasını düşünün. Muhtemelen gerçek bir son tarihi yoktur, bunun yerine bu olayın ne zaman gerçekleştiğine bağlı olarak sizin ve çocuğunuz için bir değer vardır. Çok erken atık kaynakları (zamanınız gibi) ve çok geç, bazı olumsuz değerlere sahiptir, çünkü çocuğunuz yalnız ve potansiyel olarak zarar görebilir (veya en azından rahatsız edici olabilir).

Statik zor gerçek zamanlı özel durumun aksine, yumuşak gerçek zamanlı görevler ve sistem hakkında yalnızca gerekli minimum uygulamaya özel varsayımlar yapar ve belirsizlikler beklenir. Çocuğunuzu almak için okula gitmeniz ve bunun için gereken zamanın hava durumuna, trafik koşullarına vb. Bağlı olarak dinamik olması gerekir. Sisteminizi aşırı sağlamaya (örneğin, en kötü durum sürüş süresi), ama yine bu, kaynakları boşa harcıyor (zamanınızı ve aile aracını işgal etmek, muhtemelen diğer aile üyelerinin kullanımını reddediyor).

Bu örnek, boşa giden kaynaklar açısından pahalı görünmeyebilir, ancak diğer örnekleri de göz önünde bulundurun. Tüm askeri savaş sistemleri gerçek zamanlı yumuşaktır. Örneğin, hedef manevralar olarak güncellemelere yönlendirilmiş bir füze kullanarak düşmanca bir kara aracına uçak saldırısı yapmayı düşünün. Kurs güncelleme görevlerini tamamlamak için maksimum memnuniyet, hedefe doğrudan yıkıcı bir grev ile sağlanır. Ancak, bu sonuçtan emin olmak için kaynakları aşırı sağlama girişimi genellikle çok pahalıdır ve hatta imkansız olabilir. Bu durumda, füze hedefi devre dışı bırakacak kadar yakınsa, daha az ama yeterince tatmin olabilirsiniz.

Açıkçası savaş senaryoları, kaynak yönetimi tarafından uyulması gereken birçok olası dinamik belirsizliğe sahiptir. Yumuşak gerçek zamanlı sistemler, endüstriyel otomasyon gibi birçok sivil sistemde de çok yaygındır, ancak askeri sistemler, kabul edilebilir derecede tatmin edici değer elde etmek için en tehlikeli ve acil olanlardır.

Gerçek zamanlı sistemlerin temel taşı "öngörülebilirlik" tir. Zor gerçek zamanlı durum, yalnızca bir özel öngörülebilirlik durumu ile ilgilenmektedir - yani, görevlerin hepsinin son teslim tarihlerini karşılayacağı ve mümkün olan maksimum değer bu etkinlikle sağlanacaktır. Bu özel duruma "deterministik" adı verilir.

Öngörülebilirlik spektrumu vardır; çoğu gerçek zamanlı sistem (örneğin yumuşak sistemler), örneğin görevlerin tamamlanma süreleri ve dolayısıyla bu olaylardan kazanılan değerlerin belirleyici olmayan öngörülebilirliğine sahiptir. Genel olarak, öngörülebilirlik ve dolayısıyla değer, deterministik son noktaya gerektiği kadar yakın, ancak fiziksel olarak imkansız veya aşırı pahalı olabilecek bir fiyata (savaşta veya belki de çocuğunuzu okuldan alırken) yapılabilir.

Yumuşak gerçek zamanlı, olay gecikmeleri ve sonuç değerleri hakkında muhakeme için bir olasılık modeli (ortak frekans modeli değil) uygulamaya özgü bir seçim ve dolayısıyla tahmin edilebilirlik modeli gerektirir.

Kabul edilebilir değer sağlayan yukarıdaki olay listesine geri dönersek, şimdi belirleyici olmayan durumlar ekleyebiliriz, örneğin

  • hiçbir görevin son teslim tarihini% 5'ten fazla kaçırmama olasılığı 0,87'den fazladır.

Bir füze savunma uygulamasında, savaşta suçun her zaman savunma üzerinde avantajı olduğu gerçeği göz önüne alındığında, bu iki gerçek zamanlı bilgi işlem senaryosundan hangisini tercih edersiniz:

  • çünkü tüm düşmanca füzelerin mükemmel imhası çok olası veya imkansız olduğu için, en tehditkar olanların çoğunun (örn. hedeflerine göre) düşman füzelerinin başarılı bir şekilde ele geçirilme olasılığını en üst düzeye çıkarmak için savunma kaynaklarınızı atayın ( düşman füzesini rota dışı hareket ettirebilir);

  • bunun gerçek zamanlı bir bilgi işlem sorunu olmadığından şikayet ediyor çünkü statik yerine dinamik ve geleneksel gerçek zamanlı kavramlar ve teknikler geçerli değil, bu nedenle yumuşak gerçek zamanlı Ar-Ge yapmakla ilgilenmiyorsunuz.

Gerçek zamanlı bilgi işlem topluluğunda (ancak diğer bilgi işlem dışı alanlarda değil) yumuşak gerçek zamanlı hakkındaki çeşitli yanlış anlamalara rağmen, yumuşak gerçek zamanlı, zor gerçek zamanlı ile karşılaştırıldığında çok genel ve güçlü ve potansiyel olarak çok karmaşıktır.

OP sorusunu doğrudan cevaplamak için:

  • Zor bir gerçek zamanlı sistem belirleyici garantiler sağlayabilir - en yaygın olarak tüm görevlerin son teslim tarihlerini karşılayacağı, kesinti veya sistem çağrısı yanıt süresinin daima x'den az olacağı vb. - VE SADECE çok güçlü varsayımlar yapılırsa ve doğruysa önemli olan her şey statiktir ve 'priori' olarak bilinir (genel olarak, zor gerçek zamanlı sistemler için bu tür garantiler oldukça basit durumlar dışında açık bir araştırma problemidir)

  • yumuşak gerçek zamanlı bir sistem deterministik garanti vermez, uygulamaya özgü kriterlere göre, mevcut dinamik koşullar altında mümkün olan analitik olarak belirlenmiş olasılıklı zamanındalık ve zamanında öngörülebilirliği sağlamayı amaçlamaktadır. Açıkçası zor gerçek zamanlı, yumuşak gerçek zamanlı basit bir özel durumdur. Açıkçası yumuşak gerçek zamanlı analitik deterministik olmayan güvenceleri sağlamak çok karmaşık olabilir, ancak çoğu vaka statik değil dinamik olduğu için en yaygın gerçek zamanlı durumlarda (savaş gibi en tehlikeli güvenlik açısından kritik olanlar dahil) zorunludur.

Real-time.org web sitemde gerçek zamanlı, zor gerçek zamanlı, yumuşak gerçek zamanlı, öngörülebilirlik, determinizm ve ilgili konular hakkında çok daha ayrıntılı bir tartışma var .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.