On what event does the cron begin its execution?
So, my question is why did the cron not run for these days? What is
  the exact event which triggers cron to start running?


Poormans cron is D7 default cronjob handler, which invokes cron hooks. But it depends on traffic, when a user visits a page it will check last time at which cron was run, and schedule it to run if needed according to interval set. 

Summary : This is not reliable if cron has to be run daily. To do so open up crontab from terminal (crontab -l will list the jobs, crontab -e will let you edit jobs) Ex:

0 0 * * * wget -O - -q -t 1 http://&lt;yoursite&gt;/cron.php?cron_key=&lt;yourkey&gt;


Will schedule cron job @midnight daily.