How does Parallels handle hard drive usage? I'm used to VirtualBox, which gives the option of either, a) fixed portion of hard drive (i.e. choose 40gb, and 40gb gets taken up in OS X); or b) dynamic usage (i.e. I choose 40gb max cap, and it fills this up as data is written by my VM).

I have a few problems with these options: 


for (a), I don't want to lock into 40gb unless I need to (I'm on a SSD, so space is limited).  
for (b), VirtualBox never frees up space as things get deleted on my VM.  For instance, I may have 20gb taken, then delete 10gb.  The image is still at 20gb.  VirtualBox has ways to resize these, but it is a bit of a pain.


My question: Does parallels do something different that might address my gripes?
Parallels allows to compress the virtual hard drive to give unused space back to the host OS. This only works as long as you don't create any snapshots of the virtual OS and don't use the Recovery functionality (which is most probably not an issue).