Download presentation
Presentation is loading. Please wait.
Published byMarybeth McCarthy Modified over 9 years ago
1
Palm OS Jeremy Etzkorn Paul Rutschky Adam Lee Amit Bhatia Tony Picarazzi
2
History & Facts Palm OS was originally developed by Jeff Hawkins The first Palm Pilot to launch commercially was in march of 1996 Currently used by 80% of all mobile devices Partners with Sony, Samsung, Garmin….
3
Features CPU Scheduling: Single task, Event driven Files & Resources: Stored in databases Memory Management: Auto-Defragmentation Battery Management: Power Modes Graphical Interface: Ease of Use Built in applications
4
Version History Version 1.0 : Very basic, B/W screen, 128k memory Versions 3x: Color, new processors, expansion ports Version 4.0: Virtual File System (VFS) API Version 5.0 (Garnet): P.A.C.E. Version 6.0 (Cobalt): 68k API Palm OS Protein API
5
Memory Management Palm OS is designed to run applications on low-cost, low-power handhelds. Therefore it must be efficient in both memory and processing resources.
6
Memory Structure designed around a 32-bit architecture. The system uses 32-bit addresses, and its basic data types are 8, 16, and 32 bits long. Palm OS divides the total available RAM into two logical areas: dynamic RAM and storage RAM.
7
Memory Structure The entire dynamic area of RAM is used to implement a single heap. (Dynamic Heap) The 1 st Heap in RAM is the Dynamic Heap, then the rest of memory is used for Storage Heaps (for non-volatile data).
8
Memory Structure In the Palm OS environment, all data are stored in Memory Manager chunks. Chunk < 64 kb Chunk = 8-byte header data Flags, size, lock, owner, offset
9
Walk Through MemHandleNew (size) – allocates a movable chunk. Returns a pointer to the Memory Pointer table. MemHandleLock – return a pointer to the chunk, and increments lock. MemHandleUnlock – unlocks chunk, allows Memory Manager to move the chunk. MemHandleFree – Releases the chunk When application terminates the memory manager checks the owner ids of the chunks and releases chunks that had been associated with that application.
10
File Management Palm OS File Management Differs from that of a traditional desktop because: –Limited amount of Dynamic RAM –Uses SRAM instead of actual Disk Space –Little DRAM means little room for OS Overhead –Uses database structure to store all files
11
File Management Database Header: Record List: Database Header Field:
12
File Management 3 ways Applications can store/retrieve data: –Data Manager –File Streaming API –Virtual File System
13
File Management Data Manager –manages user data in the storage heap. –It was specifically designed to make the most of the limited dynamic RAM and the nonvolatile RAM used instead of disk storage on most handhelds. –Use the Data Manager to store and retrieve Palm OS user data when storage on the handheld is all that is needed, or when efficient access to data is paramount
14
File Management File Streaming API –a layer on top of the Data Manager that provides file functionality with all data being read from or written to a database in the storage heap. –Most applications have no need for the File Streaming APIs This API is primarily used by applications that need to work with large blocks of data.
15
File Management Virtual File System (VFS) –Designed specifically to support many types of expansion memory as secondary storage. –VFS Manager APIs present a consistent interface to many different types of file systems on many types of external media. –Applications that use the VFS APIs can support the widest variety of file systems. Use the VFS Manager when your application needs to read and write data stored on external media.
16
Process Information The system enforces restrictions on access to memory and other resources between processes. It is not, by default, possible for a thread in one process to access the resources in another process, although such access may be granted if requested. Palm OS Cobalt provides for shared memory areas that are accessible to multiple processes. Application process vs. Background Process Source: http://www.palmos.com/dev/support/docs/protein_books/System_Management/Threading.html#1019884
17
Thread states StateDescription RUNNINGThe thread is running. That is, it is currently executing code. READYThe thread is ready to run, but because it is not the highest priority thread it is queued on the ready list. WAITINGThe thread is blocked, waiting for some condition to clear or resource to become available. A thread can wait on one or more other threads by calling SysThreadGroupWait(). SUSPENDEDThe thread is suspended. A suspended thread does not resume execution until it has been resumed. You suspend a thread by calling SysThreadSuspend() and resume a suspended thread by calling SysThreadResume(). WAIT-SUSPENDThe thread is both waiting and suspended. DORMANTThe thread has been created but not yet started. FAULTEDDuring execution of the thread's code, a fault occurred. FAULT-SUSPENDThe thread is both faulted and suspended. Source: http://www.palmos.com/dev/support/docs/protein_books/System_Management/Threading.html#1019884
18
Summary Palm OS is strictly tied to the hardware it runs on. Portable devices have low resources (cpu & memory), therefore Palm OS needs to be simple and efficient. As mobile devices get more powerful, so does the Palm OS. The new Cobalt version holds a lot of promises, and could quite possibly be the portable OS of the future for many years.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.