Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und...

40
Proseminar TUM Proseminar TUM Informatik Informatik PalmPilot und Handspring: PalmPilot und Handspring: Technik, Programmierung, Technik, Programmierung, Anwendung Anwendung Aufbau und Struktur von Palm OS, Aufbau und Struktur von Palm OS, Speichermanagement Speichermanagement 08.11.2001 08.11.2001 Stefan Kugele Stefan Kugele [email protected] [email protected]

Transcript of Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und...

Page 1: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

Proseminar TUM InformatikProseminar TUM Informatik

PalmPilot und Handspring:PalmPilot und Handspring:Technik, Programmierung, AnwendungTechnik, Programmierung, Anwendung

Aufbau und Struktur von Palm OS, Aufbau und Struktur von Palm OS, SpeichermanagementSpeichermanagement

08.11.200108.11.2001

Stefan KugeleStefan Kugele

[email protected]@in.tum.de

Page 2: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

2 / 40

AgendaAgenda Palm OS – PhilosophiePalm OS – Philosophie

Struktur von Palm OSStruktur von Palm OS

Veränderungen zu VorgängerversionenVeränderungen zu Vorgängerversionen

SpeicherverwaltungSpeicherverwaltung— CardCard— ArchitekturArchitektur— RAM, chunks, heap, handles, pointerRAM, chunks, heap, handles, pointer— Memory ManagerMemory Manager— BeispielBeispiel

DatenbankDatenbank

Page 3: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

3 / 40

Philosophie von Palm OSPhilosophie von Palm OS

EinfachheitEinfachheit

Passt in die WestentaschePasst in die Westentasche

MobilitätMobilität

ErweiterbarkeitErweiterbarkeit

Page 4: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

4 / 40

Wo sind wir?Wo sind wir? Palm OS – PhilosophiePalm OS – Philosophie

Struktur von Palm OSStruktur von Palm OS

Veränderungen zu VorgängerversionenVeränderungen zu Vorgängerversionen

SpeicherverwaltungSpeicherverwaltung— CardCard— ArchitekturArchitektur— RAM, chunks, heap, handles, pointerRAM, chunks, heap, handles, pointer— Memory ManagerMemory Manager— BeispielBeispiel

DatenbankDatenbank

Page 5: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

5 / 40

Aufbau von Palm OSAufbau von Palm OS

Page 6: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

6 / 40

Wo sind wir?Wo sind wir? Palm OS – PhilosophiePalm OS – Philosophie

Struktur von Palm OSStruktur von Palm OS

Veränderungen zu VorgängerversionenVeränderungen zu Vorgängerversionen

SpeicherverwaltungSpeicherverwaltung— CardCard— ArchitekturArchitektur— RAM, chunks, heap, handles, pointerRAM, chunks, heap, handles, pointer— Memory ManagerMemory Manager— BeispielBeispiel

DatenbankDatenbank

Page 7: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

7 / 40

Änderungen in Version 2.0Änderungen in Version 2.0

Neue FunktionenNeue Funktionen— TCP/IP supportTCP/IP support— IEEE FließkommaberechnungIEEE Fließkommaberechnung— Neue String-Manipulations-FunktionenNeue String-Manipulations-Funktionen

ÄnderungenÄnderungen— Verschiedene Dialoge, wie z.B. der Verschiedene Dialoge, wie z.B. der

System Keyboard DialogSystem Keyboard Dialog

Page 8: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

8 / 40

Änderungen in Version 3.0Änderungen in Version 3.0

Neue FunktionenNeue Funktionen— IR SupportIR Support— Einmalige Geräte ID (nur bei Flash ROM)Einmalige Geräte ID (nur bei Flash ROM)— MIDI, asynchrone Sound-WiedergabeMIDI, asynchrone Sound-Wiedergabe

ÄnderungenÄnderungen— Dynamic heap wurde auf 96 KB vergrößertDynamic heap wurde auf 96 KB vergrößert— Storage RAM wird nun als ein großer heap Storage RAM wird nun als ein großer heap

implementiertimplementiert

Page 9: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

9 / 40

Änderungen in Version 3.5Änderungen in Version 3.5

Neue FunktionenNeue Funktionen— FarbdisplayFarbdisplay— Grafische ControlsGrafische Controls— Sicherheits-RoutinenSicherheits-Routinen— Command bar enthält Buttons für häufig Command bar enthält Buttons für häufig

verwendete Menüeinträgeverwendete Menüeinträge— Größe des Größe des dynamic heapdynamic heap richtet sich richtet sich

nach dem verfügbaren Speichernach dem verfügbaren Speicher

Page 10: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

10 / 40

Änderungen in Version 4.0Änderungen in Version 4.0

Neue Funktionen:Neue Funktionen:— Verbesserte Sicherheit: Verschlüsselung Verbesserte Sicherheit: Verschlüsselung

von Daten, Passwortschutzvon Daten, Passwortschutz— Silent AlarmsSilent Alarms: Vibration oder LED-: Vibration oder LED-

BlinkenBlinken— Unterstützung für 65.000 FarbenUnterstützung für 65.000 Farben— Schnurloser Internet- und eMail-Zugang Schnurloser Internet- und eMail-Zugang

per Handyper Handy

Page 11: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

11 / 40

Zukunft von Palm OSZukunft von Palm OS

Wireless connectionsWireless connections— Built-in Modems, „always-on“ E-Mail-Built-in Modems, „always-on“ E-Mail-

VerbindungVerbindung— BluetoothBluetooth

SicherheitSicherheit— Elektronischer GeldbeutelElektronischer Geldbeutel

Grafik & MultimediaGrafik & Multimedia— Höhere Auflösung, bessere Sound- und Höhere Auflösung, bessere Sound- und

Video-WiedergabeVideo-Wiedergabe

Stärkere Batterien, schnellere ARM Stärkere Batterien, schnellere ARM Mikroprozessoren werden unterstütztMikroprozessoren werden unterstützt

Page 12: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

12 / 40

Zusammenfassung IZusammenfassung I

Die Ziele sind in der Geschichte der Die Ziele sind in der Geschichte der Versionen deutlich zu erkennen:Versionen deutlich zu erkennen:— Unterstützung von TCP/IP, IrDA, WebUnterstützung von TCP/IP, IrDA, Web— Erhöhung der SicherheitErhöhung der Sicherheit— Verbessern des ‚Spaßfaktors‘ durch Verbessern des ‚Spaßfaktors‘ durch

leichtere Bedienung, Farbdisplayleichtere Bedienung, Farbdisplay— Effizienteres SpeichermanagementEffizienteres Speichermanagement— Mehr verfügbarer SpeicherMehr verfügbarer Speicher

Page 13: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

13 / 40

Wo sind wir?Wo sind wir? Palm OS – PhilosophiePalm OS – Philosophie

Struktur von Palm OSStruktur von Palm OS

Veränderungen zu VorgängerversionenVeränderungen zu Vorgängerversionen

SpeicherverwaltungSpeicherverwaltung— CardCard— ArchitekturArchitektur— RAM, chunks, heap, handles, pointerRAM, chunks, heap, handles, pointer— Memory ManagerMemory Manager— BeispielBeispiel

Page 14: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

14 / 40

Hardware - Hardware - cardcard

Ein Speichermodul besteht aus ROM, Ein Speichermodul besteht aus ROM, RAM oder beidem (RAM oder beidem (cardcard).).

Eine card ist eine logische Eine card ist eine logische Konstruktion, die vom OS verwendet Konstruktion, die vom OS verwendet wird.wird.

Ein Gerät kann mehrere Ein Gerät kann mehrere cardscards enthalten (zur Zeit aber nur eine)enthalten (zur Zeit aber nur eine)

Für jede Für jede cardcard wird vom Palm OS 256 wird vom Palm OS 256 MB Adressraum reserviertMB Adressraum reserviert

Page 15: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

15 / 40

Speicher ArchitekturSpeicher Architektur

32-bit Architektur mit 8, 16 und 32 bit 32-bit Architektur mit 8, 16 und 32 bit langen Datentypenlangen Datentypen

Somit stehen 4 GB als Adressraum zur Somit stehen 4 GB als Adressraum zur Verfügung Verfügung großes Potential für die großes Potential für die ZukunftZukunft— Der erste Palm hat weniger als 0.025% Der erste Palm hat weniger als 0.025%

des Adressraumes verwendetdes Adressraumes verwendet

Page 16: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

16 / 40

RAMRAM

Der verfügbare RAM wird in zwei Der verfügbare RAM wird in zwei logische Bereiche zerteilt:logische Bereiche zerteilt:— Dynamic RAMDynamic RAM

Globale Variablen,Globale Variablen,system-dynamischesystem-dynamischeAllokationen (TCP/IP, IrDA)Allokationen (TCP/IP, IrDA)

Größe variiert je nach OS,Größe variiert je nach OS,physikalischer Speicher,physikalischer Speicher,vorinstallierter Softwarevorinstallierter Software

— Storage RAMStorage RAM Zum Speichern von persistenten DatenZum Speichern von persistenten Daten DatenbankenDatenbanken

Dynamic RAM

Storage RAM

Page 17: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

17 / 40

Chunks IChunks I

Alle Daten werden in Alle Daten werden in memory manager memory manager chunkschunks abgelegt. abgelegt.

ChunksChunks sind kontinuierliche sind kontinuierliche Speicherbereiche zwischen 1 Byte und Speicherbereiche zwischen 1 Byte und etwas weniger als 64 KB.etwas weniger als 64 KB.

Die API hat keine generelle Die API hat keine generelle Beschränkung auf 64 KB.Beschränkung auf 64 KB.

Page 18: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

18 / 40

Chunks IIChunks II

ChunksChunks können beweglich und können beweglich und unbeweglich sein:unbeweglich sein:— ROM-basierte ROM-basierte heapsheaps enthalten nur enthalten nur

unbewegliche unbewegliche chunkschunks..— RAM-basierte RAM-basierte heapsheaps können beide Arten können beide Arten

con con chunkschunks enthalten; sie sind also enthalten; sie sind also entweder entweder dynamic heapsdynamic heaps, oder , oder storage storage heapsheaps..

Page 19: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

19 / 40

Chunk Struktur IChunk Struktur I

8 bytes header8 bytes header— Flags:sizeAdjFlags:sizeAdj byte byte

Höherwertige Nibble beinhaltet Höherwertige Nibble beinhaltet flagsflags (1 bit wird (1 bit wird für freien für freien chunkchunk gesetzt) gesetzt)

Niederwertige Nibble beinhaltet Niederwertige Nibble beinhaltet size size adjustmentadjustment bits bits

— Size fieldSize field (3 bytes) (3 bytes)— Lock:ownerLock:owner byte byte

Höherwerige Nibble beinhalten den Höherwerige Nibble beinhalten den lock countlock count Niederwerige Nibble beinhalten die Niederwerige Nibble beinhalten die owner IDowner ID

— hOffset field hOffset field (3 bytes)(3 bytes)

Chunk Chunk DatenDaten

Page 20: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

20 / 40

Chunk Struktur II (Header)Chunk Struktur II (Header)

Size (3 bytes)

Flags [7-4] Size [3-0]

Lock count [7-4] Owner ID [3-0]

hOffset (3 bytes)

Page 21: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

21 / 40

Heap - ÜberblickHeap - Überblick

Ein Ein heapheap ist ein kontinuierlicher ist ein kontinuierlicher Speicherbereich, der Speicherbereich, der chunkschunks enthält. enthält.

Anwendungen können spezifizieren, Anwendungen können spezifizieren, ob sie neuen Speicher in dem ob sie neuen Speicher in dem dynamicdynamic oder im oder im storage heapstorage heap allozieren. allozieren.

HeapsHeaps werden über eine 16-bit, werden über eine 16-bit, eindeutige eindeutige heap IDheap ID referenziert. referenziert.

Page 22: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

22 / 40

Heap StrukturHeap Struktur

Heap headerHeap header— Heap ID, flags, Heap ID, flags,

sizesize

Master Pointer Master Pointer TableTable— PointersPointers zu zu

beweglichen beweglichen chunkschunks

ChunksChunks— Beweglich, frei, Beweglich, frei,

gesperrtgesperrt

Heap TerminatorHeap Terminator

Heap Header

Master Pointer Table

Heap Terminator

Chunk

Chunk

Chunk

Chunk

Chunk

.

.

.

Page 23: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

23 / 40

Handles vs. PointersHandles vs. Pointers

HandlesHandles referenzieren referenzieren master pointersmaster pointers

PointerPointer zeigen direkt zeigen direkt auf die Datenauf die Daten

Durch locken des Durch locken des handleshandles bekommt man bekommt man den den pointerpointer

Heap Header

Heap Terminator

Chunk

Chunk

Chunk

.

.

.Pointer

Chunk

Chunk

HandleMaster Pointer Table

Page 24: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

24 / 40

Dynamic Heap IDynamic Heap I

Der gesamte Der gesamte dynamic RAMdynamic RAM wird wird benutzt, um benutzt, um eineneinen einzigen einzigen dynamic dynamic heapheap zu erzeugen! zu erzeugen!

Als Teil der Bootsequenz wird der Als Teil der Bootsequenz wird der dynamic heapdynamic heap reinitialisiert. reinitialisiert.

Page 25: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

25 / 40

Dynamic Heap IIDynamic Heap II

Globale Daten für Palm OSGlobale Daten für Palm OS— Font-Tabellen, Kernelstrukturen, event Font-Tabellen, Kernelstrukturen, event

queue; meistens feste Größequeue; meistens feste Größe

TCP/IP stackTCP/IP stack

Anwendungs-UI-DatenstrukturenAnwendungs-UI-Datenstrukturen— Forms, windows, fields, tables, bitmaps, ..Forms, windows, fields, tables, bitmaps, ..

Dynamisch zugewiesener SpeicherDynamisch zugewiesener Speicher

Anwendungs-StackAnwendungs-Stack

Page 26: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

26 / 40

Dynamic Heap IIIDynamic Heap III

RAMVerwen-

dung

OS 3.5 4 MB

OS 3.5 2MB

TCP/IP & IrDA

OS 3.3-3.0> 1 MB

TCP/IR & IrDA

OS 2.01 MB

TCP/IP

OS 2.0/1.0512 KB

Dynami-scher

Bereich256 KB 128 KB 96 KB 64 KB 32 KB

System Globals

40 KB 40 KB 2,5 KB 2.5 KB 2,5 KB

TCP/IPstack

32 KB 32 KB 32 KB 32 KB 0 KB

Verbleiben-der

dynami-scher Platz

184 KB 56 KB 36 KB 12 KB 12 KB

Page 27: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

27 / 40

Storage HeapsStorage Heaps

Der restliche – nicht-dynamische Der restliche – nicht-dynamische Speicher – wird als ein oder mehr Speicher – wird als ein oder mehr storage heap(s)storage heap(s) konfiguriert (ab konfiguriert (ab Version 3.X nur Version 3.X nur ein großer ein großer heapheap).).

Er beinhaltet nicht-flüchtige Daten wie Er beinhaltet nicht-flüchtige Daten wie Aufgaben, Adresslisten, Memos, ...Aufgaben, Adresslisten, Memos, ...

Anwendungen greifen auf ihn zu, Anwendungen greifen auf ihn zu, indem sie den indem sie den datadata oder den oder den ressource manager ressource manager aufrufen.aufrufen.

Page 28: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

28 / 40

Storage Heaps V1.0 & V2.0Storage Heaps V1.0 & V2.0

64 KB

40 KB

50 KB

Page 29: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

29 / 40

Storage Heaps V2.04Storage Heaps V2.04

64 KB

40 KB

50 KB

Page 30: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

30 / 40

Storage Heaps V3.0Storage Heaps V3.0

256 KB

120 KB

50 KB

Page 31: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

31 / 40

Memory ManagerMemory Manager

Verwaltet alle HeapsVerwaltet alle Heaps— Dynamic heapDynamic heap— Storage heapStorage heap— ROM heapROM heap

Stellt API zur Verfügung um:Stellt API zur Verfügung um:— Allozieren von neuen Allozieren von neuen chunkschunks— Löschen von Löschen von chunkschunks— Locking, ResizingLocking, Resizing— Defragmentieren von Defragmentieren von heapsheaps

Page 32: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

32 / 40

Verwenden des MMVerwenden des MM

Allozieren:Allozieren:MemHandleNew, MemPtrNewMemHandleNew, MemPtrNew

Verwenden:Verwenden:MemHandleLock / MemHandleUnlockMemHandleLock / MemHandleUnlock

Größe ändern:Größe ändern:MemHandleResize / MemPtrResizeMemHandleResize / MemPtrResize

Deallokation:Deallokation:MemHandleFree, MemPtrFreeMemHandleFree, MemPtrFree

Page 33: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

33 / 40

Zusammenfassung IIZusammenfassung II

Der Der Memory ManagerMemory Manager verwaltet den verwaltet den gesamten Speicher.gesamten Speicher.

Dieser ist in Dieser ist in dynamicdynamic und und storage storage heapheap unterteilt und enthält unterteilt und enthält chunkschunks, , welche beweglich und unbeweglich welche beweglich und unbeweglich sein können. (1 byte - <64 KB)sein können. (1 byte - <64 KB)

Zugriff nur per API !!Zugriff nur per API !!

HandlesHandles werden bei beweglichen und werden bei beweglichen und PointerPointer bei unbeweglichen bei unbeweglichen chunkschunks verwendet.verwendet.

Page 34: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

34 / 40

Beispiel aus der API-DokuBeispiel aus der API-Doku

MemHandleNewPurpose: Allocate a new movable chunk in the dynamic heap

and returns a handle to it.

Prototype: MemHandle MemHandleNew (UInt32 size)

Parameters: -> size The desired size of the chunk

Result: Returns a handle to the new chunk, or 0 if unsuccessful.

Comments: Use this call to allocate dynamic memory. Before you can write data to the memory chunk that MemHandleNew allocates, you must call MemHandleLock to lock the chunk and get a pointer to it.

Page 35: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

35 / 40

CodebeispielCodebeispiel

UInt8 AllocMemory() {UInt8 AllocMemory() {

UInt8* s;UInt8* s;MemhandleSpielfeld = MemhandleSpielfeld = MemHandleNewMemHandleNew(100);(100);s=(UInt8*)s=(UInt8*)MemHandleLockMemHandleLock(memhandleSpielfeld);(memhandleSpielfeld);... ... // z.B. Lese-, Schreibzugriffe// z.B. Lese-, SchreibzugriffeMemHandleUnlockMemHandleUnlock(memhandleSpielfeld);(memhandleSpielfeld);

}}

UInt8 FreeMemory () {UInt8 FreeMemory () {

MemHandleFreeMemHandleFree(memhandleSpielfeld);(memhandleSpielfeld);return 0;return 0;

} }

© © by Andreas Scholzby Andreas Scholz

Page 36: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

36 / 40

Datenbanken IDatenbanken I

Es stehen zwei unterschiedliche Es stehen zwei unterschiedliche Manager zur Verfügung:Manager zur Verfügung:— Data ManagerData Manager

Speichern von Benutzerdaten, Adressen, Speichern von Benutzerdaten, Adressen, Memos, etc.Memos, etc.

— Ressource ManagerRessource ManagerUI-Elemente von Anwendungen, Bilder, UI-Elemente von Anwendungen, Bilder, Fonts, oder ähnlichesFonts, oder ähnliches

Beide sind sehr ähnlich, außer dass Beide sind sehr ähnlich, außer dass der der ressource managerressource manager zusätzliche zusätzliche Informationen mitspeichert (+2 Byte)Informationen mitspeichert (+2 Byte)

Page 37: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

37 / 40

Datenbanken IIDatenbanken II

Jeder Jeder recordrecord (Datensatz) ist ein (Datensatz) ist ein chunkchunk..

Jeder Jeder recordrecord besitzt eine besitzt eine local IDlocal ID, , die auch im die auch im headerheader der DB gesichert der DB gesichert wird.wird.Ein Aufrufer bekommt nach Ein Aufrufer bekommt nach Konvertierung der Konvertierung der local IDlocal ID einen einen handlehandle auf den auf den recordrecord zurück. zurück.

Page 38: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

38 / 40

Datenbanken IIIDatenbanken III

Warum kein gewöhnliches Warum kein gewöhnliches Dateisystem?Dateisystem?— Da Daten direkt in der DB geändert Da Daten direkt in der DB geändert

werden, müssen sie nicht zuerst in den werden, müssen sie nicht zuerst in den Speicher zum Ändern geladen werden.Speicher zum Ändern geladen werden. Effizientere Speichernutzung! Effizientere Speichernutzung!

— RecordsRecords passen sehr schön in das passen sehr schön in das Speicherkonzept von Palm OSSpeicherkonzept von Palm OS

Der Der DMDM verwendet den verwendet den MMMM zur zur Allozierung von Speicher Allozierung von Speicher (Schichtenmodell)(Schichtenmodell)

Page 39: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

39 / 40

LiteraturLiteratur

www.palm.comwww.palm.com

www.palmos.comwww.palmos.com

Palm OS Programmer‘s Companion, Palm OS Programmer‘s Companion, Volume1, Juli 2001Volume1, Juli 2001

Palm OS Programming BiblePalm OS Programming Bible

Vortrag wird unter www.nafyagets.deVortrag wird unter www.nafyagets.de

abgelegtabgelegt

Page 40: Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Aufbau und Struktur von Palm OS, Speichermanagement 08.11.2001 Stefan.

40 / 40

ProseminarProseminar

Vielen DankVielen Dank

für Euerefür Euere

AufmerksamkeitAufmerksamkeit