i'm on a 2gb ram macbook and i want to know how much ram i should give parallels and how much ram i should give the xp vm so that both os x & xp vm will be optimized.
256MB should run fine. In my MacBook Pro C2D my XP Pro VM (from a boot camp partition) ran very fast with 512MB. My MacBook Pro has 4GB of ram, 3GB of which is usable. You can stop the VM, change the memory settings and start it back up. Try a few different VM memory sizes and pick the smallest for the VM that still runs well.
what's the difference between the memory in the preferences to the memory in the vm? and what is virtual memory preallocation?
The "Memory Limit" in preferences tells Parallels how much system memory it can reserve for ALL virtual machines, like when you are running more than 1 at a time. The amount you set there is then shared between all of the Virtual Machines you run. For me, I'm only runnong one (Vista) but some people may run XP, Linux or something else all at the same time. Preallocation is a setting that reserves hard drive space for Parallels so that you can increase your VM memory settings without having to close and restart Parallels. For example, if you set your allocation small but then want your VM memory setting big, you would end up needing to close and reopen Parallels. But if your VMP is set high, you can stop your VM, make a memory change, then click start again without having to ever exit Parallels. All of the settings are detailed in the online user guide for Parallels Desktop. http://www.parallels.com/files/upload/Parallels_Desktop_for_Mac_User_Guide.pdf