tac0S
Template Affectional Command Operating System
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CAddrSpace
 Caouthdr
 CBitMapThe following class defines a "bitmap" – an array of bits, each of which can be independently set, cleared, and tested
 CCondition
 CConsoleThe following class defines a hardware console device. Input and output to the device is simulated by reading and writing to UNIX files ("readFile" and "writeFile")
 Cdata
 CDirectory
 CDirectoryEntryThe following class defines a "directory entry", representing a file in the directory. Each entry gives the name of the file, and where the file's header is to be found on disk
 CDiskThe following class defines a physical disk I/O device. The disk has a single surface, split up into "tracks", and each track split up into "sectors" (the same number of sectors on each track, and each sector has the same number of bytes of storage)
 Cfile_table
 Cfilehdr
 CFileHeaderThe following class defines the Nachos "file header" (in UNIX terms, the "i-node"), describing where on disk to find all of the data in the file. The file header is organized as a simple table of pointers to data blocks
 CFileSystem
 Cglobal_file_table
 CInstructionThe following class defines an instruction, represented in both undecoded binary form decoded to identify operation to do registers to act on any immediate operand value
 CInterrupt
 CList
 CListElementThe following class defines a "list element" – which is used to keep track of one item on a list. It is equivalent to a LISP cell, with a "car" ("next") pointing to the next element on the list, and a "cdr" ("item") pointing to the item on the list
 CLock
 CMachineThe following class defines the simulated host workstation hardware, as seen by user programs – the CPU registers, main memory, etc. User programs shouldn't be able to tell that they are running on our simulator or on the real hardware, except we don't support floating point instructions the system call interface to Nachos is not the same as UNIX (10 system calls in Nachos vs. 200 in UNIX!) If we were to implement more of the UNIX system calls, we ought to be able to run Nachos on top of Nachos!
 CMail
 CMailBox
 CMailHeaderThe following class defines part of the message header. This is prepended to the message by the PostOffice, before the message is sent to the Network
 CManagerUserThreadID
 CNetwork
 CnoffHeader
 COpenFile
 COpInfo
 COpString
 CPacketHeaderThe following class defines the network packet header. The packet header is prepended to the data payload by the Network driver, before the packet is sent over the wire. The format on the wire is: packet header (PacketHeader) data (containing MailHeader from the PostOffice!)
 Cpath_parse
 CPendingInterruptThe following class defines an interrupt that is scheduled to occur in the future. The internal data structures are left public to make it simpler to manipulate
 CPostOffice
 CSchedulerThe following class defines the scheduler/dispatcher abstraction – the data structures and operations needed to keep track of which thread is running, and which threads are ready but not running
 Cscnhdr
 Csegment
 CSemaphoreThe following class defines a "semaphore" whose value is a non-negative integer. The semaphore has only two operations P() and V():
 CStatisticsThe following class defines the statistics that are to be kept about Nachos behavior – how much time (ticks) elapsed, how many user instructions executed, etc
 CSynchConsole
 CSynchDiskThe following class defines a "synchronous" disk abstraction. As with other I/O devices, the raw physical disk is an asynchronous device – requests to read or write portions of the disk return immediately, and an interrupt occurs later to signal that the operation completed. (Also, the physical characteristics of the disk device assume that only one operation can be requested at a time)
 CSynchListThe following class defines a "synchronized list" – a list for which: these constraints hold:
 CThreadThe following class defines a "thread control block" – which represents a single thread of execution
 Cthread_init
 CTimerThe following class defines a hardware timer
 CTranslationEntryThe following class defines an entry in a translation table – either in a page table or a TLB. Each entry defines a mapping from one virtual page to one physical page. In addition, there are some extra bits for access control (valid and read-only) and some bits for usage information (use and dirty)
 CtupleTuple Structure that allow multi-seek on one Openfile
 CUserThread
 CUserThreadData