I don't believe they ever had fewer than 3 GPCs running. If only 2 systems are in the redundant set and they disagree, the computer which arrived first was deemed correct. Any computers outside the majority would be dropped and all future values from that one would be ignored. Periodically, each computer would get to a checkpoint and compare with the other computers in the "redundant set".
#THE SPACE SHUTTLE FLIGHT CONTROL SYSTEM CALLED PASS SOFTWARE#
The PASS software ran in a redundant set with break points along the code paths (managed outside our application code). Since these were real-time systems, a late answer is just a bad as a wrong answer. Some complex guidance code would overrun the allotted time and had to be highly optimized. It was important to leave time so that lower priority tasks would have sufficient time to run. Mid-instruction, a higher priority could interrupt a lower one. HFE, MFE, LFE - Hi, Mid, Low Frequency Executives.
Basically, it supported 254 threads, but we only used 3. This is a compiled language similar to PL/1, but with matrix calculation extensions and a multi-priority scheduling system. The vast majority of programming for the GPCs was written in HAL/S. Perhaps someone from Rockwell can answer? Heard rumors that eventually that contract was canceled because the PASS was of such high quality there wasn't any need for the BFS. I know nothing about the BFS except it was never used. The BFS was written and maintained by a different contractor, Rockwell.
During ascent and landing, 4 ran the PASS - Primary Avionics System Software and 1 ran the BFS (backup flight software). There were 5 GPCs - general processing computers. Because the computing hardware is modified IBM 360-based systems, that is the machine language used by all the main systems. When I worked there, we didn't have access to the computers directly.
I've only seen photos and recently saw one inside a glass case at a museum. I honestly don't know how that worked, since we never touched any of the flight computers. It is purpose built, designed to be loaded with 1 program, instruction pointer set to 0 and then started running. I have some time this morning, so I'll spew some thoughts. It has been a long time since I did any work like that, so don't hold what I write below as gospel. Initially, it was Ford Aerospace, then Loral, then Lockheed-Martin. I was a NASA contractor working on the same contract, but with 3 different companies, writing GN&C code for the space shuttles from 1989 until 1995.