Linux does kill things off if you start running out of virtual memory, HPUX doesn't, it just tends to just get really slow and potentially become unusable. It is a different strategy, not worse, just different.
First thing I would suggest for your "cron" monitoring job is not to run it from cron :)
Secondly, I don't like the idea of monitoring cron using the "ps" there are already too many "ps" jobs running around.
In your case, it would be a good idea if your script kept a log of each time it restarted cron. That way, you might determine what it is that is killing cron and therefore not need to monitor it at all.
I would actually get cron to sort of monitor itself. Create a cron job to "touch" a file like "/tmp/cronalive" every five minutes(you could even "touch" your own shell script file).
Then have your shell script a) exit if it is already running and b) check the modification time of the file and then sleep for 5 minutes. If the file is over five minutes old then cron has probably died you can check at this point with "ps".
The reason to get the script to exit if it is already running is so that you can get cron to attempt to restart it every five minutes too. That way you get the script restarting cron if it dies and cron restarting the script if it dies.
Never preceed any demonstration with anything more predictive than "watch this"