SORU
15 Mayıs 2009, Cuma


Kilidi serbest dairesel tampon

Bir veya daha fazla veri akışına bağlayan bir sistem akışları tasarlama sürecinde yaşıyorum ve olaylar sonucu esas tetikleyici daha veri aktarımı. Tipik bir çoklu iş parçacıklı üretici/tüketici Kur, ben birden fazla yapımcı iş parçacıkları koyarak veri içine bir sıra, tüketici ve birden çok iş parçacığı okuma verileri ve tüketici tek dertleri en son veri noktası n artı puan. Yapımcı konuları yavaş tüketici uydurabilecek, bloke etmek zorunda kalacak ve tabii ki tüketici konuları işlenmemiş, güncelleştirmeleri hiçbir zaman engeller. Okuyucu kilit ile tipik eşzamanlı bir sıra kullanarak işe yarayacak ama veri geliyor oranı üretici yükü özellikle kilitleme yazar benim kilitler azaltmak istedim o kadar büyük olabilir. Kilidi serbest dairesel bir tampon ihtiyacım olan şey olduğunu düşünüyorum.

Şimdi iki sorum var:

  1. Kilidi serbest dairesel cevabı destekliyor mu?

  2. Bende roll önce yani, eğer, benim ihtiyacım uyacak herhangi bir ortak uygulama biliyor musunuz?

Kilidi serbest dairesel bir tampon uygulanmasında herhangi bir öneriye her zaman açığız.

BTW, Linux üzerinde C bunu yapıyor.

Bazı ek bilgiler:

Tepki süresi benim sistem için çok önemlidir. İdeal tüketici konuları herhangi bir güncelleme 1 milisaniye ekstra bir gecikme sistemi değersiz, ya da çok az değerli olabilir, çünkü en kısa sürede gelip görmek isteyecektir.

Tasarım fikri ben doğru eğilmesi yarı-kilit-ücretsiz dairesel tampon nereden yapımcı iplik koymak veri arabelleği kadar hızlı olabilir arayalım başın tampon, engelleme olmadan sürece tampon dolu, ne zaman Bir karşılar sonunda tampon Z. Tüketici konuları her iki işaretçiler tutmak için dairesel buffer, P ve PnP parçacığının yerel arabellek baş ve SnN. Her tüketici iplik P ve P ilerleyecektir P. sonra öğedirngeçerli P işleme bitirmek ve arabellek işaretçi Z sonuna yavaş P ile gelişmiş bir keren. P süreci daha yeni güncelleme yok demek ki, yetişmek, tüketici dönüyor ve ilerlemek için Bir bekle tekrar meşgul. Eğer tüketici iplik spin için çok uzun, koymak için uyku ve bekleme durumu değişken, ama iyiyim tüketici alarak CPU döngüsü bekliyorum güncelleme çünkü bu artmaz benim gecikme (alırım daha fazla CPU çekirdeği daha iş parçacığı). Düşünün bir dairesel parça ve yapımcısı çalışan önünde bir grup tüketiciler, önemli bir ayar sistemi böylece yapımcı genellikle runing sadece bir kaç adım önde tüketiciler, ve en çok da bu işlem yapılabilir kullanarak kilidi serbest teknikleri. Diğerlerinden' benim de bir kaç hata yapmadan önce. öğrenmek istiyorum, bu yüzden Uygulama Detayları doğru almak kolay değil...Tamam, çok zor anlıyorum,

CEVAP
16 Mayıs 2009, CUMARTESİ


Sanat terimi istediğin içinkilidi serbest sıra. Ross Bencina tarafından excellent set of notes with links to code and papers bir şey var. En Maurice Herlihy güvendiğim kişi (Amerikalılar için, ilk ismi gibi diye telaffuz ediyor "Morris").

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • Kap Slap

    Kap Slap

    8 Mart 2010