SORU
18 ŞUBAT 2010, PERŞEMBE


Nasıl 86, kol üzerinde çalışan Linux üzerinde atomik işlemleri gerçekleştirmek için GCC ve ıcc?

Her Modern işletim sistemi bugün bazı atomik işlemler sağlar:

  • Windows Interlocked* API vardır
  • FreeBSD <machine/atomic.h> vardır
  • Solaris <atomic.h> vardır
  • Mac OS X <libkern/OSAtomic.h> var

Linux için böyle bir şey var mı?

  • Çoğu Linux desteklenen platformlar da dahil olmak üzere üzerinde çalışmak gerek: 86, x86_64 vekol.
  • En azından GCC ve Intel Derleyici üzerinde çalışmam gerekiyor.
  • Çok konuşmak ya da qt gibi 3 par kütüphane kullanmak istemiyorum.
  • C (C Gerekli değil) çalışmak istiyorum

Sorunlar:

  • GCC atom yerleşiklere __sync_* tüm platformlar (ARM) desteklenmez ve Intel derleyici tarafından desteklenmiyor.
  • AFAIK <asm/atomic.h> kullanım alanı olarak kullanılmamalıdır ve başarılı bir şekilde hiç kullanmadım. Ayrıca, eğer Intel derleyici ile çalışmak istiyorsunuz emin değilim.

Herhangi bir öneriniz var mı?

Benim için geçerli değil bazıları __sync* işaret ama bu konuyla ilgili pek çok soru olduğunu biliyorum (ARM) ve bazı asm/atomic.h işaret.

Belki GCC derleme destekler ICC () bu satır içi derleme bir kütüphane var mı?

Düzenleme:

Ekleme işlemleri sadece (atom sayacı uygulama ama CAS gerektiren serbest yapıları kilit sağlar) için çok kısmi bir çözüm var:

Eğer libstc (Intel Derleyici libstdc kullanır) sonra kullanırsanız <ext/atomicity.h> <bits/atomicity.h> tanımlanan __gnu_cxx::__exchange_and_add kullanabilirsiniz. Derleyici sürümüne bağlıdır.

Ancak hala CAS destekleyen bir şey görmek istiyorum.

CEVAP
13 Ocak 2011, PERŞEMBE


Projeler bu kullanarak

http://packages.debian.org/source/sid/libatomic-ops

Eğer CAS gibi basit işlemleri istiyorsan, sen sadece arch-belirli bir çekirdek ve kemer kontrolü uygulamalarında kullanım alanı ile autotools/cmake kullanabilir mi? Bildiğim kadarıyla lisans gider, ancak kernel GPL, bence bu tartışılabilir bu satır içi montaj için bu işlemleri tarafından sağlanan Intel/AMD, çekirdek bir lisans onları. Onlar sadece çekirdek kaynağı olarak kolay erişilebilir bir biçimde olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HER0R

    HER0R

    16 Aralık 2007
  • Incredible Tutorials

    Incredible T

    27 EKİM 2006
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006