tac0S
Template Affectional Command Operating System
|
CAddrSpace | |
Caouthdr | |
CBitMap | The following class defines a "bitmap" – an array of bits, each of which can be independently set, cleared, and tested |
CCondition | |
CConsole | The 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 | |
CDirectoryEntry | The 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 |
CDisk | The 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 | |
CFileHeader | The 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 | |
CInstruction | The 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 | |
CListElement | The 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 | |
CMachine | The 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 | |
CMailHeader | The 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 | |
CPacketHeader | The 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 | |
CPendingInterrupt | The 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 | |
CScheduler | The 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 | |
CSemaphore | The following class defines a "semaphore" whose value is a non-negative integer. The semaphore has only two operations P() and V(): |
CStatistics | The 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 | |
CSynchDisk | The 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) |
CSynchList | The following class defines a "synchronized list" – a list for which: these constraints hold: |
CThread | The following class defines a "thread control block" – which represents a single thread of execution |
Cthread_init | |
CTimer | The following class defines a hardware timer |
CTranslationEntry | The 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) |
Ctuple | Tuple Structure that allow multi-seek on one Openfile |
CUserThread | |
CUserThreadData |