1. A multiprocessing system, comprising: a hardware multithreading microprocessor, comprising: a plurality of thread contexts (TCs) configured as an array, each of said plurality of TCs having a program counter, a general purpose register set, and a first register; and a multiprocessor operating system (OS), said OS comprising a data structure having an entry for each of said plurality of TCs, each said entry configured to store a first item of information describing capabilities of at least one hardware resource shared by said plurality of TCs and a second item of information associated with a corresponding one of said plurality of TCs such that said first item is common to all entries while said second item is unique for each said entry, said OS configured to maintain said data structure and to support a thread configured to execute on each of said plurality of TCs, to read an index from said first register of one of said plurality of TCs, and to use said index to read said first item of information for said one of said plurality of TCs from said entry of said data structure.