c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Map-Verhalten...

Absender: Timo Sandmann
Datum: Di, 08.01.2008 13:44:51
In-reply-to: <4783393B.6080509@xxxxxxxx>
References: <812F86EC9E1A96489D5E83C2AB7D688601840BB4@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4783393B.6080509@xxxxxxxx>


Hallo,

Am 08.01.2008 um 09:50 schrieb Benjamin Benz:
...
Der Atmega32, den die meisten in ihrem Bot haben besitzt 2048 Byte
Speicher. Ich denke nicht, dass man mehr als die Hälfte davon für die
Karte einsetzen kann, da ja auch noch andere Routinen Speicher brauchen.

da sind eigentlich nur noch 512 Byte frei, nämlich genau die, welche zum Einlagern der MMC-Sektoren benutzt werden. Für eine Map ohne MMC kann man natürlich diesen Puffer mit demselben Code wie mit MMC verwenden, nur gibt es dann eben kein Paging. Und die Auflösung muss halt runter. Bei 2m x 2m (altes Beispiel) ergibt das dann Felder, die so groß sind wie der Bot selbst. Kann man damit noch etwas Sinnvolles anfangen? Wenn ja, spricht IMHO nichts dagegen, es mit einzubauen.

Was das Verwenden der Map in Verhalten angeht, noch ein Hinweis: Da wir zukünftig die Map-Einträge cachen werden, ist die Map nicht sofort up-to-date (ist sie nach dem alten Prinzip zeitlich gesehen auch nicht, aber aus Sicht der Verhalten, weil die komplett unterbrochen wurden, bis die Map fertig ist). Außerdem wird kein gleichzeitiger Lese- und Schreibzugriff auf die Map funktionieren. Man sollte die Map daher nur auswerten, wenn der Bot steht.

@Ben: Vielleicht sollten wir noch ein Lock / Mutex einbauen, um die Karte für Lesezugriffe zu sperren, solange der Cache nicht leer ist? Für Auswertungsverhalten sollte das Caching ja transparent sein, wobei sie natürlich trotzdem so konzipiert sein müssen, dass sie keinen "Online-Zugriff" benötigen.

Viele Grüße,
Timo