The white balls are called tonsiloliths, which means "tonsil stones." They're an accumulation of dead skin cells and mucus that drips from the nasal cavity. They can cause bad breath, and the only way to get rid of them, or prevent them, is to gargle often with mouthwash. You can dislodge them with a toothpick if you poke in the right place and manage not to gag yourself. I'm not sure if there's any reason for your tonsils having 'holes,' but it's pretty common.