When Nachos/486 boots, it pauses in the third stage boot-strap routine start() to allow the console operator to control certain run-time options. There options are provided to support debugging the kernel on the hardware. Initially the display will look as follows:
NACHOS/486: initializing global data (bss). NACHOS/486 -- Boot options: Debug options: i - interrupts M - kernel memory management t - thread switching s - synchronization primitives l - lists P - pause after printing + - all of the above except 'P' debug flags:
Most of these flags correspond to the same ones available as command-line flags. The last option 'P' is the only exception. It enables ``stepping'' through the kernel during execution.
After typing the flags
The following
demonstration menu will be displayed:
NACHOS/486: constructing global objects. NACHOS/486 -- running.... Choose a thread test to run: 0 - the original simple thread test. 1 - bounded buffer, 1 producer, 1 consumer. 2 - bounded buffer, 1 producer, 5 consumers. 3 - bounded buffer, 5 producers, 1 consumer. 4 - bounded buffer, 5 producers, 5 consumers. -->
This menu provides an array of simple tests. The first demonstrates the functionality of the thread switching system. The others demonstrate the coordination of threads using the canonical problem of a bounded buffer with a number of producers and consumers accessing it.
After completion of the demonstration, the final clean up and closing statistics are displayed. The final message is as follows:
Cleaning up... NACHOS/486: halted..... reboot or power down system.
At this point Nachos/486 has halted itself by hanging in an infinite loop. Since it is in protected-mode with the interrupts dis-bled, the only way to restart the system is to choose one of the two options displayed in the message.