SORU
25 NİSAN 2010, Pazar


Teknik olarak, neden Ayrık işlemler işletim sistemi iş parçacığı daha verimlidir?

Eğer x Özellikleri

Erlang Programming gelen(2009):

Eğer x eşzamanlılık hızlı ve ölçülebilir. Süreçlerini Ayrık sanal makine oluşturulan her işlem için bir işletim sistemi iş parçacığı oluşturmaz hafif. Oluşturulan, planlanmış ve VM, temel işletim sistemi bağımsız olarak işlenmiş. Sonuç olarak, süreç oluşturma zamanı mikrosaniye sipariş ve aynı anda mevcut işlem sayısı bağımsızdır. Her işlem için temel bir işletim sistemi iş parçacığı oluşturulduğu Java ve C ile karşılaştırın#, çok rekabetçi bazı karşılaştırmalar, eğer x büyük ölçüde her iki dilde daha iyi performans elde edersiniz.

Concurrency oriented programming in Erlang (pdf) (slides) (2003)gelen:

Zaman Ayrık bir süreç oluşturmak için alınan sabit 1µs 2,500 işlemler için bunu görüyoruz; bundan sonra 30.000 işlemler için ilgili 3µs artar. Java performansını ve C# figürün üst kısmında gösterilir. İşler az sayıda için bir süreç oluşturmak için 300µs alır. İki binden fazla işler yaratmak imkansızdır.

30.000 işlemler için iki Ayrık işlemler arasında ileti göndermek için zaman 0.8 açıklamalardan da görüyoruz. Mesajın başına 50µs, işlemler yaklaşık 1800 süreçleri olan) sayısı kadar sürer için C#. Java daha da kötüydü, mesaj başına yaklaşık 50µs sonra aldı 100 işlem için yaklaşık 1000 Java süreçleri varken hızla mesaj başına 10ms yükseldi.

Düşüncelerim

Tamamen teknik olarak neden Ayrık süreçleri yeni yumurtlama süreçleri çok daha verimli anlamak ve işlem başına çok daha küçük bellek ayak izi yok. OS ve Ayrık VM hem zamanlama, içerik geçişi yapmak zorunda, ve değerleri parça kaydeder ve böylece devam et...

Sadece neden işletim sistemi iş parçacığı Ayrık işlemler aynı şekilde uygulanır değil mi? Bir şey daha destek var mı? Ve neden daha büyük bir bellek alanına ihtiyaç duyarlar? Ve neden yavaş yumurtlama ve iletişim var mı?

Teknik olarak, neden yumurtlama ve iletişim konusunda Ayrık işlemler işletim sistemi iş parçacığı daha verimlidir? Ve neden işletim sistemi iş parçacığı ve aynı verimli bir şekilde hayata yönetilebilir mi? Ve neden işletim sistemi iş parçacığı daha büyük bir bellek ayak izi, artı yavaş yumurtlama ve iletişim var mı?

Daha fazla okuma

CEVAP
25 NİSAN 2010, Pazar


Çeşitli katkıda bulunan faktörler vardır:

  1. Ayrık süreçleri OS işler değildir. Eğer x VM hafif kooperatif bir iş parçacığı modeli (işbirliği içinde planlanmış bir çalışma zamanı kontrolü altında Ayrık düzeyinde, ama önleyici) kullanılarak uygulanır. Bu demektir ki, çok daha ucuz geçiş bağlam, çünkü onlar sadece geçiş de bilinen, kontrol noktaları ve bu nedenle yok kurtarmak için tüm CPU durumu (normal, SSE DEĞERLERİ kaydeder, adres alanı eşleme, vb.).
  2. Ayrık süreçleri çok küçük başlar ve gerektiği şekilde büyüyen dinamik olarak ayrılan yığınlar, kullanın. Bu RAM mevcut tüm yalakalık yapmadan Ayrık süreçleri binlerce yumurtlama — hatta milyonlarca — ruhsatları.
  3. Eğer x tek dişli, işlemler arasında iş parçacığı güvenliğini sağlamak için şart oldu hayır yani eskiden. Şimdi SMU destekler, ama aynı zamanlayıcı üzerinde Ayrık süreçleri arasındaki etkileşim/çekirdek hala çok hafif (çekirdek başına ayrı bir çalışma kuyruklar var).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • makemebad35

    makemebad35

    17 NİSAN 2006
  • schmittastic

    schmittastic

    9 EYLÜL 2009
  • ThePhestor

    ThePhestor

    22 Mart 2011