How can a GPS device give exact timing even when the number of available satellites are zero?
I'm monitoring GPS data using VisualGPS.
If a GPS receiver doesn't see satellites, then what you see in the software is not the GPS time. Probably, your GPS unit has some backup timekeeping (quartz crystal).
Some GPS units have a low power crystal with a backup battery. It provides an approximate time, which allows the receiver to reduce the search space, which reduces the time to first fix.
GPS has two (maybe more - newer ones) startup modes. Cold start is when GPS doesn't know any satellites and tries to acquire the satellites. Once the number of required satellites are acquired, GPS gets current coordinates and time information from them. After it receives that information, it updates its local caches and RTC.
The other mode is warm start where GPS maintains in its RAM or NVRAM the recently acquired satellites and recent time. The recent time is maintained in GPS's local RTC. When the time and satellite information gets updated after a warm start, GPS updates it's local satellite and time information.
The reason why you get a correct time on a GPS start is that GPS may already have information from previous satellite sync. The GPS's local RTC provides you the time information.