Bir işlem için “gerçek zamanlı” önceliğin kullanımı nedir?


12

Deneyimlerime göre, herhangi bir işlemi gerçek zamanlı olarak ayarlamak bilgisayarınızın salyangoz hızına yavaşlamasını sağlayacaktır. Bilgisayarınızı kullanılamaz hale getirirse bu ayarın kullanımı nedir?


2
Çok çekirdekli işlemciniz veya çok işlemcili bir sisteminiz varsa, yalnızca bir çekirdek için benzeşim ayarlayabilirsiniz. Bu şekilde, sistemin geri kalanı duyarlı kalacaktır ve gerçek zamanlı bir sürecin diğer avantajlarından yararlanabilirsiniz. Bu elbette sadece çalışmak için sadece bir çekirdeğe ihtiyaç duyan süreçler için iyi çalışır.
AndrejaKo

Yanıtlar:


7

Tam olarak açıkladığınız şey, bilgisayarınızın geri kalanını bir taramaya yavaşlatmak pahasına, işlemi gerçek zamanlı olarak çalıştırır ve her şeyden daha yüksek bir öncelik verir. Bu sadece zaman açısından kritik uygulamalar için gereklidir, çoğu insan bunları günlük yaşamlarında görmez ...


Ses sunucuları (iki Linux örneği olarak PulseAudio ve JACK) gibi bazı çok yaygın programlar gerçek zamanlı öncelikli iş parçacıkları kullanır.
user1686

@grawity: JACK bir sunucu değil, sadece bir geliştirme kitidir. Her ikisi de çapraz platform. Sesli şeyler gerçek zamanlı öncelik gerektirse de iyi bir noktaya değindim, ancak belirttiğiniz bu işlemlerin gerçek zamanlı önceliğe sahip olmadığı bir Windows 7 açısından konuşuyordum. Windows, bu tür işlemler için Multimedya Sınıf Zamanlayıcısı olarak adlandırılan bir şey var ...
Tamara Wijsman

Peki jackdses sunucusu değilse ne demektir? (Şimdiye kadar anladığım kadarıyla, hem PA hem de JACK, hem ses sunucusu hem de ona erişmek için bir kütüphane / kit sağladıkları şekilde aynı şekilde çalışıyorlar ...)
user1686

Bu, kiti aniden bir sunucu haline getirmez. Biz burada süreçlerden bahsediyoruz, konuları değil ...
Tamara Wijsman

1
Gerçek zamanlı uygulamaların diğer örnekleri tıbbi uygulamalar ve doğrudan kontrol edilen robotiktir. 10µs'ın doğru çalışma ve başarısızlık arasındaki fark olduğu şeyler (başarısızlık, bir robotun bir uçurumdan sürüş yapmasını veya çok fazla radyasyona maruz kalan bir hastayı içerebilir).
ligos

2

Bu gereksiz görünebilir, ancak bir işlem başlatıldığında, işlemi çeşitli öncelik düzeylerinde çalışacak şekilde ayarlayan parametreler geçirilebilir. Görev Yöneticisi bunu isteğe bağlı bir ayar olarak gösterir, çünkü yürütmesini başlatan yazılım tarafından işlem için ayarlanabilen bir seçenektir. Çoğu yazılım "Normal" düzeyde çalışır, ancak bazen varsayılan olarak daha düşük bir düzeyde çalışan birkaç tane görebilirsiniz. Daha önce normal bir durumda başlayan bir yazılım görmedim.

Bir sürecin en yüksek öncelik ayarında çalışabileceği ve sistem performansınızı büyük ölçüde etkilemediği bir durum olduğunu da belirtmek gerekir. Örneğin, bir işlem başlatılırsa ve örneğin 8 CPU çekirdeğinden yalnızca 1'inde çalışmak üzere atanırsa, işlem önceliğini "gerçek zamanlı" olarak ayarlamak, bir işlemciyi tüketeceği ve 7 tarafından İşletim sistemi ve diğer yazılımlar. Bu durumda, gerçek zamanlı yürütmenin sistem üzerinde neredeyse hiçbir etkisi olmayabilir, ancak yüksek öncelikli sürece makul bir performans artışı verebilir.

Neredeyse asla Sistem Yöneticisi içinden "gerçek zamanlı" çalıştırmak için bir işlem ayarlamak tavsiye ederim. Bunun nedeni, belirli bir yürütme durumunda çalışmak üzere tasarlanmış bir işlemin yürütme ayarlarını değiştirmiş olmanızdır. Yürütme önceliğini değiştirmek, bazı durumlarda uygulamayı çökertebilir ve veri yazma işlemi ise verilerinizi bozabilir!

Bununla birlikte, bir işlem için maksimum yürütme önceliği ayarının kullanılmasının doğru şey olabileceği bazı durumlar vardır, ancak o zaman bile, bu tür öncelik ayarlarının bir sistem yönetimi iletişim kutusu aracılığıyla son kullanıcı tarafından değil, kontrol uygulaması tarafından ayarlanması gerekir.

Ben şahsen, çökme ve görev TAMAMEN kritik olmayan olup olmadığını gerçekten umursamıyorsanız ASLA bir görev önceliğini değiştirmenizi tavsiye etmem. Yazılım belgeleri, çok büyük bir işlemci çalışmasını hızlandırmak için işlemi daha hızlı çalıştıracak şekilde yükseltebileceğinizi açıkça belirtiyorsa, bu da kabul edilebilir olacaktır, ancak bir mekanizma uygulama dahilinde sağlanmamıştır.

Kişisel bir fıkra olarak, zaman zaman manuel olarak değiştirdiğim tek bir işlem var - yazılım sıkıştırma uygulamaları. Uzun zamandır büyük bir dosyayı açmak zorunda kalmadım, ama acele edersem ( ahem sabırsızım) süreç önceliğini yükseltebilir ve performansta ılımlı bir yumru elde edebilirim. Bu uygulamalar bir iş görevi başlattığından ve bittikten sonra kapatıldığından, uygulama ayarlarımı ayarlama konusunda endişelenmem gerekmez, çünkü uygulama verileri çıkarmayı bitirdiğinde, kendi kendine duracaktır. Bu, sistem yönetimi aracılığıyla işlemci hızını kontrol etmeyi kişisel olarak yararlı bulduğum tek zamandır.


1
Bir programcı olarak, bir programa daha fazla kaynak vermenin onu
çökerteceği

Bir programcı olarak, evet, ancak belirli bir düzeyde çalışacak bir işlemin ayarlanması, özellikle yazılım diğer işlemlerle eşzamanlı olarak çalışacak şekilde yazıldığında (muhtemelen kötü bile olsa) soruna neden olabilir. Önerilerim hem deneyimlerden hem de tüm kullanıcıların geliştirici olmadığı anlayışıyla geliyor. Çalışan, geliştirmediğiniz işlemlerin önceliklerini belirlemek kesinlikle beklenmedik davranışlar ortaya çıkarabilir. Ben ancak, ben de süreç ayarlarla uğraşmak zorunda diğer kullanıcıları teşvik etmek istemiyoruz, herhangi birini korkutmak istemiyorum eğer kendi değişiklikler zarar edilmesi ihtimali vardır.
RLH

0

Oyun dışı dizüstü bilgisayarımdaki oyunları hızlandırmak için Gerçek Zamanlı önceliği kullanıyorum. Oyunda olduğumda arka plan sürecini önemsemiyorum ve işlem gücümü bu şekilde tahsis etmekten çok daha keyifli bir deneyim elde ediyorum.

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.