Düşük Seviye Ses / Video Mühendisliğinde İşletim Sistemi Tasarımının Eleştirel Rolü

Modern mühendislikte, gerçek zamanlı ses ve video işleme, geniş bir uygulama spektrumu boyunca temel bir gerekliliktir. Canlı yayın, ses ve video akışlarının alt saniyeli kayma toleranslarla mükemmel bir şekilde senkronize edilmesi gerektiğini talep eder. Sanal gerçeklik (VR) ve artırılmış gerçeklik (AR) sistemler, hareketsiz-tofotosaniyelerin altında hareketsiz, simülasyon-maliyetçi-malzemelerin düşük maliyetli bir şekilde işlenmesini gerektirir.

Düşük gecikme süresi, bir etkinliğe cevap vermek için bir sistem için gereken süre ile tanımlanır - bir ses örneği, bir video çerçevesi veya bir donanım kesintisi - ve ilgili çıktıyı üretir. 10 milisaniye altındaki çalışma sistemleri genellikle gerçek zamanlı olarak kabul edilir; video, son derece gecikmeler için, iki yönlü iletişim için 100 milisaniye altında, etkileşimli VR için 20 milisaniyenin altındaki gecikmeler tipik olarak yapılır.Bu kısıtlamalar, tasarımlarını veya tasarımlarını gerçekleştirir.

Düşük Latency için İşletim Sistemlerine Yönelik Zorluklar

Bir işletim sisteminin her katmanı - hafıza yönetimine kesintiye uğramaktan - öngörülemeyen gecikmeleri tanıtabilir ve bu gecikme kaynaklarının azaltılması gerçek zamanlı yetenekli bir platforma doğru ilk adımdır.

Ayrılma ve Yolsuzluk Latency

Donanım kesintileri, AG'nin dış olaylarına bildirdiği birincil mekanizmadır, örneğin yeni bir tampon veya video yakalama kartı sinyalini tamamlamak için bir ekran görüntüsü oluşturabilir.Çalışanlama hizmeti rutinin ilk talimatlarının uygulanmasına ilişkin kesinti süresi (ISR) ek olarak, yarı yarıya kadar kesintiye neden olabilir. Yüksek kesintiye uğramak için özel olarak, temizleme sistemleri, kesme işlemine yol açma veya video çerçevesini kesmek için kesintiye uğratmalıdır.

Görev Planlama ve Öncekilik

Standart programcılar (örneğin, Linux'un Tamamen Fair Scheduler) uzun vadeli bir görev için gerekli olan bir kaynak için tasarlanmıştır. Gerçek zamanlı görevler - düşük öncelikli görevde geçilebilen bir görev tarafından geciktirilmelidir.

Anahtarlama ve Spin Locks

Standart bir çekirdekte, uzun süreli sistem aramaları veya cihaz sürücüsü işlemleri uzun süreli çekirdek için ön boşluğu devre dışı bırakabilir. Düşük çözünürlükli ses ve video için, çekirdek tamamen ön boşluk olmalıdır. ancak, PREEEMPT RT çekirdeği).

Memory Management ve Page Faults

Talep etmek, sanal hafıza ve şeffaf büyük sayfalar genel amaçlı sistemler için mükemmel, ancak gerçek zamanlı uygulamalar için felaket. tek bir büyük sayfa hatası, birkaç milisaniyenin geç bir artışına neden olabilir - sesli tampon işleme için kabul edilebilir pencerenin ötesinde. Gerçek zamanlı ses ve video uygulamaları, tüm çalışma setlerini fiziksel RAM kullanımı sistemi aramalarını mümkün kılar.0)Klockall().

Jitter ve Buffer Tuning

Latency sadece mutlak yanıt süresiyle ilgili değildir; tutarlılık - veya jitter – zaman zaman zaman zaman 5 ms geç bir çerçeve sunabilen bir sistem, ortalama geç saat 2 ms. Jitter öngörülemeyen zamanlama gecikmelerinden, değişken erişim zamanlarından, termal throttling'tan doğar ve kömürleri kesmek için araçlar sağlamalıdır. İşletim sistemleri CPU'nun (isolcpus) gibi, cgrup gerçek zamanlı planlama limitleri ve CPU frekansı valileri performans modunda ayarlama yeteneği.

Low-Latency İşletim Sistemleri için Tasarım Stratejileri

Bu zorlukların bir kombinasyonu OS- seviye konfigürasyonu, çekirdek modifikasyonları ve bazen gerçek zamanlı işletim sistemine (RTOS) tam bir geçiş gerektirir. Seçilen strateji, uygulamanın karmaşıklığı ve donanım platformuna bağlıdır.

Gerçek Zamanlı İşletim Sistemleri (RTOS)

En sıkı gereklilikleri için - 1 mikrosaniyenin altında kalabiliteler - asilikon gibi geleneksel RTOS:0)FreeRTOS[DÜT:1), [[Üye Olmayan Önlemler[Döneticiler[DÜye Olmayanlar İçindekiler[Döneticiler) veya [[Döneticileri, kamera bazlı kalite kontrol sistemleri, kameraları otomatik olarak en iyi seçim yapar.

Linux ile PREEMPT RT

Birçok mühendislik uygulaması için, Linux ile ESRAT:0)PREEMPT RT) için, zorlayıcı bir orta zemin sağlar. Modern multicore işlemciler üzerinde düşük latımlara izin verirken tam bir özellikli işletim sistemi sunar.

  • Enable theFL:0)CONFIG PREEMPT RT).
  • Gerçek zamanlı zamanlama politikası ([[[Dön:0)SCHED FIFO) yüksek önceliklerde ses / video parçalarına (örneğin, 100 $) kaydolun.
  • CPU izolasyonunu sadece gerçek zamanlı görevlere ayırmak için kullanın, kesintilerden ve programcı temizlikten müdahaleyi azaltır.
  • SetFLT:0)isolcpus[[Dönetici:2) ve [[Döncü nocbs) çekirdek önyükleme parametreleri.
  • Engelli CPU frekansı ölçeklendirme, hiper-threading (bu önbellek toklar tanıtabilir), ve C-states veya P-states gibi herhangi bir güç tasarrufu sağlar.

Öncekilik Tabanlı Scheduling ve Thread Management

Gerçek zamanlı bir çekirdekle bile, zamanlama dikkatlice mühendisi olmalıdır. Audio processing pipelines tipik olarak birden fazla threadden oluşur: bir yakalama parçası, bir işleme parçası ve bir oyun geri yükleme thread. Bunlar en yüksek gerçek öncelikli düzeylerde koşmak gerekir.En düşük öncelikli görevleri ile paylaşılan, kullanımdan dolayı 0pthread mutexattr setprotocolPTHREAD PRIO INHERIT) daha düşük öncelikli görevlerle paylaşılan.

İtlamı ve Kirliliği

Bazı tasarımlarda, kendilerini bir sorumluluk haline getirir. Her bir kısıtlama bir bağlam değişikliği ve önbellekli kızar. yüksek hacimli ses / video akışları için - örneğin, 96 kHz 32 kanal sesi -buffer için kesintiye uğramak için iki mitigation stratejileri vardır:

  • [FONT:0) Kömürleri Taht Etme: Grup birden çok donanım olayı tek bir kesintiye düşürüyor. Bu CPU'yu azaltır ama biraz gecikmiş oluyor.
  • [FONT:0)Polling:[Dönetici:[Dönetici:0) Uygulamanın iş yerinde yoğun bir şekilde beklenenler, yeni bir bellekte yeni veriler tespit etmek için kayıt, tamamen kesmeden kaçınır.Bu, en düşük gecikme ve jitter sağlar, ancak% 100 kullanımda özel bir CPU tüketir.

Low-Latency Audio /Video için Donanımı

İşletim sistemi temel donanım şişelerinin üstesinden gelemez. Doğru platformu seçmek gecikmeli hedefleri karşılamak için gereklidir.

CPU Mimarisi ve Core Isolation

Multicore işlemciler gerçek zamanlı görevler için özel temellere izin verir. Ancak, tüm temeller eşit değildir: modern Intel ve AMD sistemleri, çekirdekler L3 önbellek ve hafıza kontrolörleri paylaşıyor.Uniform Memory Access) ayrıca önemli - gerçek zamanlı iplikleri L2 önbelleklileri paylaşan bir çekirdek çifte atayabilir ve geç kesmeden kaçınır.[Döntme:0NUMA)(NonUniform Memory Access) ayrıca önemli - gerçek zamanlı iplikler için gerçek zamanlı olarak tahsis edilen bir anahtarlama işlemine izin verilir.

I/O Subsystem: DMA ve Bus Architecture

Doğrudan Memory Access (DMA) ses/video verilerini doğrudan CPU müdahalesi olmadan periferik ve sistem hafıza arasında transfer altına alma imkanı sağlar. OS etkin bir DMA API'si sağlamalıdır ve DMA tamponları fiziksel hafızada toplanmaktadır (veya aynı PCIe Gen4/5 cihazları ile aynı yüksek bantlı sayfalara transfer edilmesini sağlar.

Memory Band geniş ve Latency

Yüksek çözünürlükte video (4K, 8K veya birden fazla akış) hafıza genişliği üzerinde büyük baskılar yer almaktadır. 4K 60 fps video akışı çiğ form 12 Gbps. İşletim sistemleri hafıza genişliğinden kaçınmak için yapılandırılmalıdır: TLB basıncı azaltmak için büyük sayfalar kullanın, yerel NUMA düğümü açın ve hafıza kontrol cihazının diğer süreçler tarafından fazla talep etmediğinden emin olun.

Özelleştirilmiş Donanım Hızlandırıcıları

FPGAs, GPUs ve adanmış DSP'ler CPU'dan işlemden geçebilir, ancak Intel'in en az şarj edici ve senkronizasyon zorluklarına geçiş yapabilirler.0Data Modules) veya AMD'nin gerçek zamanlı renk grading veya konvolution reverb), OS, Intel'in düşük çözünürlükteki tüm yüklemelere ve düşük çözünürlüklere devre dışı bırakabilirler.

Ses / Video Boru hatları için yazılım optimizasyonu Teknikleri

OS seviyesi yapılandırmasının ötesinde, uygulama düzeyinde teknikler mümkün olan en düşük gecikme elde etmek için gereklidir.

Memory Locking ve Pre-faulting

Bahsettiği gibi, tüm sayfaları RAM'a taşırken, bu sayfanın girişlerini garanti etmez. # 7|Dış FUTURE)[Döneticileri ve gelecekteki hafıza sayfalarını RAM’a kadar kilitler. Ancak, bu sadece onları değiştirmeden ve kullanmadan önce engeller.|Döneticileri # 7|Düzüğün|Döntmeler veya/barışları)[Twege D)

Gerçek Zamanlı Konu Attributes

Takım elbise özellikleri dikkatle:

  • [FONT=0]) ^ (İngilizce).
  • Üst değere (örneğin, 80-99), ancak konu gerçekten en kritik sistem çapındaki görevi kullanmadığı sürece en öncelikli önceliği kullanarak öncelik ayarlayın.
  • En kısa sürede, thread oluşturulur, callENFLT:0)pthread setschedparam) tekrar, [[Döneticileri gibi çekirdek parçalarının yukarıdan aşağıya yükseltmesi için tekrar [FONTT:2)
  • threadin CPU'su, özel bir çekirdeke, [[0)0.pthread setaffinity np).

Lock Free Queues ve Ring Buffers

Geleneksel mumtexler bir çekirdek çağrısı (sys futex) ve potansiyel zamanlama jitter. For media pipelines, use Lock-free single-producer, single-consumer (SPSC) ring buffers gibi. Bu, JACK ve PipeWire'un bu yaklaşımı, müşteriler arasında geçen sıfır-copy store explicit) ile birlikte kullanmak için bir araya gelir.

Determinism için Coding Practices for Determinism

  • Sıcak yolda dinamik hafıza tahsisinden kaçının. Preallocate all buffers.
  • I / O. asynchronous veya blok olmayan API'leri kullanın (örneğin, [[0)io uring[[Dönekli mod ile).
  • Sistem aramaları. Batch komutları mümkün olan yerde.
  • Yavaş bir yol için tuzak olabilecek tam dönüşümlere veya diğer operasyonlara yüzer noktadan kaçının.
  • SIMD operasyonları için derleyicileri kullanın (SSE/AVX) etkili bir şekilde işlemek için.

Vaka Çalışmaları: Uygulamada Düşük Seviyeli Sistemler

Profesyonel Ses İş İstasyonları (DAWs)

Dijital Ses İşlemeleri: 0,0)Pro Tools) ve )Logic Pro), Mac veya Windows üzerinde çalışır, ancak nihai düşük ücretli takip için, mühendisler genellikle Linux'a özel olarak tasarlanmış Linux'a dönüşürler.[FONT RT) için özelleştirilmiş yedekler ve CPU yedekleri ile donatılmış 8,5 msörtücükler için otomatik olarak ayarlanırlar.

Canlı Yayınlama ve Akış

Yayıncılar, 20 ms altında latencies ile kodlama ve video iletme gibi kodlayıcılar kullanıyor.Elemental Technologies) Belirli gerçek zamanlı işletim sistemleri (örneğin QNX veya VxWorks) 20 ms altında şifreleme ve video iletmeleri için özel olarak kullanılıyor. OS, aynı anda birden fazla video akışını yönetmek zorundadır.

Sanal Gerçeklik Başları

VR, gömülü PC'nin düşük çözünürlükte Windows veya Linux yapılandırması ile ilgili olarak küçük bir RTOS kullanıyor.The headset itself often uses a small RTOS for sensör füzyon (IMUT:1).

Low-Latency OS Design

Edge Computing ve Fog Nodes

Ağ kenarındaki ses ve video, bulut sunucularına yuvarlak zaman azaltır. Edge cihazları gerçek zamanlı uzantılarla hafif Linux dağıtımlarını çalıştırabilir (örneğin, IEEE 802.1Qbv Time-Yousitive Networking) ve sadece 5G ağlarının buluta sıkıştırılması için akışlar gönderir.

AIOptimized Scheduling

Makine öğrenme modelleri, bu alanda daha fazla bilgi / video görevleri ve dinamik olarak ayarlama politikaları tahmin edebilir. Örneğin, bir sinir ağı, CPU sıcaklığı yükselirken daha uzun süre boyunca işlemeyi öğrenebilir ve daha sonra önceliklerini proaktif olarak artırabilir veya bu alanda daha iyi bir temel araştırma devam eder.

Hybrid Systems and Unikernels

Derin gömülü uygulamalar için, trend OS ayak izini minimiğe doğru gidiyor. Unikernels - özellikle de tek kullanımlık, tek kişilik bir hipervizör veya donanım üzerinde çalışan mekanik görüntüler - tüm üst düzeye çıkarıcı mod geçişleri ve alt-mikrosan kesinti yanıtını sağlar. Benzer şekilde, küçük bir RTOS (I/O ve zamanlama için) bir genel amaçlı makineli resimler endüstriyel kameralar ve ses arabirimleri için yol kat eder.

Zamanlı Hesaplama (TCC)

Intel'in Zamanlı Ortak Hesaplama (TCC) teknolojisi, zaman slotlarında kaynakları ifade ederek iş yüklerinin deterministik infazını sağlar. OS (en az gerçek zamanlı yönetici) CPU'yu sabit, tekrarlamada bir dizi görevi yerine getirmek için yapılandırır.Bu yaklaşım, dijital kokpitler ve yüksek uç konser ses sistemleri ile otomatik olarak kullanılır. TCC, donanım ve bilgisayarlar arasında yakın işbirliği gerektirir ve OS, yapılandırma arayüzlerini uygulamaya maruz bırakmalı.

Sonuç: Düşük Latency için bir Sistem Yaklaşımı

Düşük çözünürlükli ses ve video işleme için bir işletim sistemi tasarlamak tek bir yapılandırma değişikliği değildir; bu, tümleşik bir sistem mühendisliği çabasıdır. Uygun gerçek zamanlı çekirdek değişkenlerini donanım parametrelerini seçmek için, kilitlemesiz veri yapıları ile ilgili talep edilen CPU çekirdeği ile ilgili olarak yapılır. - her karar, gecikme etkisi hakkında net bir anlayışla yapılmalıdır.

Donanım daha temellerle gelişmeye devam ettikçe, daha hızlı I/O otobüsleri ve özel hızlandırıcılar ve yazılım teknikleri geliştiriliyor - iyi hazırlanmış bir orkestranın hassaslığını - genel amaçlı sistemler ve gerçek zamanlı ihtiyaçlar arasındaki boşluk daraltacak.