Simple explanation: Back in the days of limited memory and slow machines,
Microsoft programmers decided on a particular optimization technique. They decided
that nobody would need more than 32,000 individual pieces of graphics at one time.
Therefore, they set aside a chunk of memory to keep track of 32,000 pieces of
graphics, and this number cannot be changed. If you use all 32,000 available
"slots" then Windows behaves very poorly.
Well, as machines got faster and more memory, and programs became more complex, this limit
actually started to get in the way. That's because each window on the screen is
actually made up of many pieces of graphics. The icon in the upper-left, the three
buttons in the upper right, each button on the toolbars at the top of the screen, the
scrollbar, the arrows at the top and bottom of the scrollbar, the status line at the
bottom of the window, etc, etc. Plus, a bunch of off-screen stuff that helps the
programs respond faster. With the extra memory, more programs could be run, each
with hundreds of pieces of graphics.
And therefore, over time, as slots get used up and not released (some programs are bad
about cleaning up after themselves,) Windows becomes more and more unstable. Until
the user has to reboot.
There are programs that keep track of these Windows Resources (there are actually three
sets of 32,000 slots, used by three different pieces of Windows) and display the current
available free slots to the user.