📄 os.xml
字号:
<summary>
For statistical purposes only.
Total up how many times this Process has been involved in a Page Fault
</summary>
<param name="p">The Process to total</param>
<returns>number of Page Faults</returns>
</member>
<member name="P:Hanselman.CST352.MemoryManager.Item(System.UInt32,System.UInt32)">
<summary>
Public accessor method to make Virtual Memory look like an array
</summary>
<example>
theOS.memoryMgr[processId, 5]; //accesses memory at address 5
</example>
</member>
<member name="T:Hanselman.CST352.MemoryManager.MemoryPage">
<summary>
Represents an entry in the Page Table. MemoryPages (or "Page Table Entries")
are created once and never destroyed, their values are just reassigned
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.SharedMemoryRegion">
<summary>
The number of the shared memory region this MemoryPage is mapped to
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.pidSharedOwnerList">
<summary>
One of two parallel arrays, one of shared owners of this page, one of shared process indexes of this page
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.pidSharedProcessIndex">
<summary>
One of two parallel arrayz, one of shared owners of this page, one of shared process indexes of this page
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.pageNumber">
<summary>
The number this page is in addressable Memory. Set once and immutable
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.addrVirtual">
<summary>
The address in addressable space this page is responsbile for
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.addrProcessIndex">
<summary>
The address in Process space this page is responsible for
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.heapAllocationAddr">
<summary>
The process address that originally allocated this page. Kept so we can free that page(s) later.
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.pidOwner">
<summary>
The process that is currently using this apge
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.addrPhysical">
<summary>
This is only valid when
pidOwner != 0 and isValid == true
meaning the page is actually mapped and present
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.isValid">
<summary>
Is the page in memory now?
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.isDirty">
<summary>
Has the page been changes since it was last swapped in from Disk?
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.pageFaults">
<summary>
For statistics: How many times has this page been involved in a pageFault?
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.accessCount">
<summary>
For aging and swapping: How many times has this page's address range been accessed?
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPage.lastAccessed">
<summary>
For aging and swapping: When was this page last accessed?
</summary>
</member>
<member name="M:Hanselman.CST352.MemoryManager.MemoryPage.#ctor(System.UInt32,System.Boolean)">
<summary>
Only public constructor for a Memory Page and is only called once
in the <see cref="T:Hanselman.CST352.MemoryManager"/> constructor
</summary>
<param name="initAddrVirtual">The address in addressable memory this page is responsible for</param>
<param name="isValidFlag">Is this page in memory right now?</param>
</member>
<member name="T:Hanselman.CST352.MemoryManager.MemoryPageValue">
<summary>
Represents the actual values in memory that a MemoryPage points to.
MemoryPageValue is serialized to disk, currently as XML, in <see cref="M:Hanselman.CST352.MemoryManager.SwapOut(Hanselman.CST352.MemoryManager.MemoryPage)"/>.
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPageValue.memory">
<summary>
The array of bytes holding the value of memory for this page
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPageValue.accessCount">
<summary>
For aging and swapping: How many times has this page's address range been accessed?
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryManager.MemoryPageValue.lastAccessed">
<summary>
For aging and swapping: When was this page last accessed?
</summary>
</member>
<member name="T:Hanselman.CST352.MemoryException">
<summary>
Memory Protection: MemoryExceptions are constructed and thrown
when a <see cref="T:Hanselman.CST352.Process"/> accessed memory that doesn't belong to it.
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryException.pid">
<summary>
Process ID
</summary>
</member>
<member name="F:Hanselman.CST352.MemoryException.processAddress">
<summary>
Process address in question
</summary>
</member>
<member name="M:Hanselman.CST352.MemoryException.#ctor(System.UInt32,System.UInt32)">
<summary>
Public Constructor for a Memory Exception
</summary>
<param name="pidIn">Process ID</param>
<param name="addrIn">Process address</param>
</member>
<member name="M:Hanselman.CST352.MemoryException.ToString">
<summary>
Pretty printing for MemoryExceptions
</summary>
<returns>Formatted string about the MemoryException</returns>
</member>
<member name="T:Hanselman.CST352.StackException">
<summary>
Memory Protection: MemoryExceptions are constructed and thrown
when a <see cref="T:Hanselman.CST352.Process"/> accessed memory that doesn't belong to it.
</summary>
</member>
<member name="F:Hanselman.CST352.StackException.pid">
<summary>
Process ID
</summary>
</member>
<member name="F:Hanselman.CST352.StackException.tooManyBytes">
<summary>
Num of Bytes more than the stack could handle
</summary>
</member>
<member name="M:Hanselman.CST352.StackException.#ctor(System.UInt32,System.UInt32)">
<summary>
Public Constructor for a Memory Exception
</summary>
<param name="pidIn">Process ID</param>
<param name="tooManyBytesIn">Process address</param>
</member>
<member name="M:Hanselman.CST352.StackException.ToString">
<summary>
Pretty printing for MemoryExceptions
</summary>
<returns>Formatted string about the MemoryException</returns>
</member>
<member name="T:Hanselman.CST352.HeapException">
<summary>
Memory Protection: MemoryExceptions are constructed and thrown
when a <see cref="T:Hanselman.CST352.Process"/> accessed memory that doesn't belong to it.
</summary>
</member>
<member name="F:Hanselman.CST352.HeapException.pid">
<summary>
Process ID
</summary>
</member>
<member name="F:Hanselman.CST352.HeapException.tooManyBytes">
<summary>
Num of Bytes more than the stack could handle
</summary>
</member>
<member name="M:Hanselman.CST352.HeapException.#ctor(System.UInt32,System.UInt32)">
<summary>
Public Constructor for a Memory Exception
</summary>
<param name="pidIn">Process ID</param>
<param name="tooManyBytesIn">Process address</param>
</member>
<member name="M:Hanselman.CST352.HeapException.ToString">
<summary>
Pretty printing for MemoryExceptions
</summary>
<returns>Formatted string about the MemoryException</returns>
</member>
<member name="T:Hanselman.CST352.SystemCall">
<summary>
The delegate (object-oriented function pointer) definition for an OS System Call.
ALl opCodes will be mapped to a function that matches this signature
</summary>
</member>
<member name="T:Hanselman.CST352.OS">
<summary>
The definition of an Operarting System, including a <see cref="T:Hanselman.CST352.MemoryManager"/> and a <see cref="T:Hanselman.CST352.ProcessCollection"/>
</summary>
</member>
<member name="F:Hanselman.CST352.OS.runningProcesses">
<summary>
Contains the <see cref="T:Hanselman.CST352.Process"/> and the <see cref="T:Hanselman.CST352.Process.ProcessControlBlock"/> for all runningProcesses
</summary>
</member>
<member name="F:Hanselman.CST352.OS.currentProcess">
<summary>
Holds a reference to the current running <see cref="T:Hanselman.CST352.Process"/>
</summary>
</member>
<member name="F:Hanselman.CST352.OS.memoryMgr">
<summary>
A reference to the <see cref="T:Hanselman.CST352.MemoryManager"/> Class. A <see cref="T:Hanselman.CST352.Process"/> memory accesses go
through this class.
</summary>
<example>
theOS.memoryMgr[processId, 5]; //accesses memory at address 5
</example>
</member>
<member name="F:Hanselman.CST352.OS.locks">
<summary>
There are 10 locks, numbered 1 to 10. Lock 0 is not used.
We will store 0 when the lock is free, or the ProcessID when the lock is acquired
</summary>
</member>
<member name="F:Hanselman.CST352.OS.events">
<summary>
There are 10 events, numbered 1 to 10. Event 0 is not used
</summary>
</member>
<member name="F:Hanselman.CST352.OS.processIdPool">
<summary>
This counter is incremented as new processes are created.
It provides a unique id for a process. Process Id 0 is assumed to be the OS.
</summary>
</member>
<member name="F:Hanselman.CST352.OS.bDumpInstructions">
<summary>
Do we output debug for Instructions?
</summary>
</member>
<member name="M:Hanselman.CST352.OS.#ctor(System.UInt32)">
<summary>
Public constructor for the OS
</summary>
<param name="virtualMemoryBytes">The number of "addressable" bytes of memory for the whole OS.</param>
</member>
<member name="M:Hanselman.CST352.OS.currentProcessIsEligible">
<summary>
Checks if the <see cref="F:Hanselman.CST352.OS.currentProcess"/> is eligible to run
</summary>
<returns>true if the <see cref="F:Hanselman.CST352.OS.currentProcess"/> is eligible to run</returns>
</member>
<member name="M:Hanselman.CST352.OS.DumpProcessStatistics(System.Int32)">
<summary>
Dumps collected statistics of a process when it's been removed from the <see cref="F:Hanselman.CST352.OS.runningProcesses"/> table
</summary>
<param name="processIndex">The Index (not the ProcessID!) in the <see cref="F:Hanselman.CST352.OS.runningProcesses"/> table of a Process</param>
</member>
<member name="M:Hanselman.CST352.OS.execute">
<summary>
The primary control loop for the whole OS.
Spins through eligible processes and executes their opCodes
Provides scheduling and removes old processes.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -