SORU
17 Aralık 2011, CUMARTESİ


Olur engellenmeyen I/O multi-dişli engelleme daha çok daha hızlı I/O? Nasıl?

Aradım internette bazı teknik detaylar hakkında engelleme G/Ç ve sigara engelleme G/Ç ve buldum birkaç kişi belirten engellenmeyen I/O-cekti var olmak daha hızlı engelleme G/Ç İçin örnek this document.

Eğer varsa, G/Ç engelleme yapıyorum, o zaman tabii ki şu anda engellenen iş parçacığı bloke Çünkü başka bir şey yapamazlar.. Ama bir iş parçacığı engellenmiş başlar başlamaz, işletim sistemi bloke tehdit için bir şey kalmayıncaya kadar başka bir konuya geçiş ve geri geçiş değil. Yani sürece en az bir diğer konu da sistem ihtiyaçları CPU ve değil engellendi, olmamalı. daha fazla CPU boşta kalma süresi göre olay tabanlı engellenmeyen bir yaklaşım var mı?

CPU bir bilgisayarın belirli bir süre içinde gerçekleştirebileceği görev sayısını artırmak için bir seçenek daha Kare görüyorum boşta süresini ayrıca: yükü geçiş parçacıkları tarafından sunulan Azaltmak. Ama bu nasıl yapılabilir? Ve havai ölçülebilir etkileri göstermek için yeterince büyük? Burada çalışıyor hayal edebiliyorum nasıl bir fikir:

  1. Bir dosyanın içeriğini uygulama delegeler bir etkinliğe göre bu görev o çerçeve/bir, bir geri arama işlevini geçen yüklemek için bir dosya adı ile birlikte
  2. Olay sabit diskin DMA denetleyicisi doğrudan bellek dosyayı yazmak için programlar hangi işletim sistemi, delegeler çerçeve
  3. Etkinlik çerçevesinde daha fazla kod çalıştırmasına izin verir.
  4. Bellek kopyalama disk tamamlandığında, DMA denetleyici bir kesintiye neden olur.
  5. İşletim sistemi kesme işleyicisi dosya tamamen belleğe yüklenmesini hakkında o çerçeve/olay bildirir. Nasıl oluyor bu? Kullanarak sinyal??
  6. Şu anda ben/olay içinde çalıştırılan kod çerçeve bitirir o.
  7. O çerçeve/etkinlik sırası denetler ve adım 5 işletim sistemi mesajı görür ve adım 1'de var geri yürütür.

Bu işler böyle mi yürüyor? Eğer öyle değilse, nasıl çalışır? Bu demek oluyor ki olay sistem olmadan çalışabilir şimdiye kadar olan ihtiyacı açıkça dokunmatik yığın (gibi gerçek bir zamanlayıcı bunun için ne yapmalıyım yedekleme ve kopya yığın yığın başka bir konu içerisine etiketi geçiş konuları)? Ne kadar zaman bu gerçekten kurtarabilir mi? Daha fazlası var mı?

CEVAP
17 Aralık 2011, CUMARTESİ


Asenkron IO en büyük avantajı iplik paralel olarak iş devam edebilir. Tabii ki bu da ek bir iş parçacığı kullanarak elde edebilirsiniz. Sanırım en iyi genel (sistem) performans için belirtildiği gibi asenkron IO kullanmak daha iyi değil, birden çok olurdu parçacıkları (yani azaltılması konuları anahtarlama). Ama kesinlikle asenkron IO arasında herhangi bir fark görmeyeceğim iş parçacığı sayısına bağlı olarak ve sadece birkaç kullanarak iş parçacığı yazma.

Windows asenkron dosyasını kullanarak IO yazar sayfa boyutunun katı olan bir boyuta sahip olması gerektiği anlamına gelir. Bu da senkron arttıracak yazma performansı!?

Adım 1 7 nasıl çalıştığını iyi bir fikir vereyim tarif. Windows işletim sistemi uyumsuz bir IO (ÇAKIŞAN yapı ile WriteFile) bir olay veya bir geri arama kullanma hakkında tamamlandığını bildirir. Geri arama işlevleri sadece kodunuzu bAlertable true ile WaitForMultipleObjectsEx çağırdığında örneğin adı verilecek.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • atKristaBradford

    atKristaBrad

    4 Aralık 2010
  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006