Chris De Herrera's Windows CE Website

About
Discuss.Pocket PC FAQ Forum

Add Pocket PC FAQ to your Favorites
RSS    RSS Feeds
Wiki    Lost?
Custom Search
Subscribe    Print
Miscellaneous
Table of Contents
Mobile Format
News

PDA Gold


 

Pocket PC Magazine Best Site

Website Awards
Website Updates

By Chris De Herrera 
Copyright 1998-2007
 All Rights Reserved
A member of the Talksites Family of Websites

Windows and Windows CE are trademarks of Microsoft
Corporation
and are used
under license from owner.
CEWindows.NET is not
associated with Microsoft 
Corporation.

All Trademarks are owned
by their respective companies.

Rebuttal - Writing on your Palm - Ford vs Chevy Article
By Chris De Herrera, Copyright 2004
Revised 3/21/2004

cheap iPhone cases

Jeff Kirvin's article entitled Ford vs Chevy just doesn't do justice to what Microsoft implemented in Windows CE (the core OS that the Pocket PC and Windows Mobile systems use).

What he described is how physical ram is allocated between execution and storage. The critical thing he left out is how the OS virtually allocates memory and how it decides what to do. Also, his discussion does NOT explain how the Windows CE OS multitasks.

Memory Allocation

Windows CE allocates 32 MB per process with up to 32 simultaneous processes can run at once so it's designed to use up to 1 GB of ram directly. As a process is loaded into ram physical memory is allocated based on what is actually needed and since our programs are generally in kilobytes we can run many of them with a small memory footprint. As the system needs more ram for storage, it asks the applications to release ram if possible. If they can't then you can run into a situation where applications are closed automatically until the application creating the file is left. If the application left uses all the storage and then you perform a soft reset you still may not be able to function if there's not enough ram to run File Explorer and delete some files. Just take any Pocket PC and setup Notes to record voice and let it run until there is no more ram left and you'll see why we have the ability to perform a hard reset.

Multitasking

With Windows CE multitasking is preemptive and it's been around since the beginning. It's actually based on the same architecture as Windows NT where processes have separate memory spaces and they are not allowed (for security reasons) to access each other's memory. Further it is preemptive multitasking. Preemptive means that the system can decide when to switch between applications so one app does not hog the system while other apps starve. By doing this since the beginning, Windows CE developers know that they need to pay attention to poor development practices that hog the system (except for Games because users actually try running more than one app at once and see what goes on. BTW ask Palm how long it takes to switch between tasks. Microsoft is claiming it's around 50 milliseconds or less in order to handle real time applications.

Back to the Future...

The situation with Palm reminds me of where Microsoft was with multitasking back with Windows 286. Applications were written without any intention of supporting multitasking and they did very bad things to tie up the system like loops asking for input continuously or writing to the screen continuously to simulate animation. As part of this Microsoft worked with Intel to come out with virtual 86 mode which was part of the 386 and all subsequent chips which handles separating memory between applications in hardware, multitasking, etc. to get around these problems. Today we still use this mode with Windows when we ask it to run applications in a different space. All of these things do one thing that we all forget about - they suck up some of the CPU cycles just to manage the OS. So one other thing to watch with Palm is how well/poor the optimized the OS to manage the multitasking scheduling. If they are too generous with the primary application, the rest will stall in the background.

Conclusion

Palm's decisions to require applications to be rewritten shows how poorly they initially planned to support multitasking. Further their decisions are going to limit what applications are available for their customers.

I recommend that users read the book Inside Windows CE so they can understand how this stuff works (it's based on Windows CE 2.0 but most of this has not changed). Also, check out the articles I've written at http://www.pocketpcfaq.com/faqs.htm including Windows CE Goes Real Time - What does it Mean?


Return to Chris De Herrera's Windows CE Website