From b5f0874cd96ee2a62aabc645b9626c2749cb6a01 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 26 Mar 2012 12:54:45 +0200 Subject: initial pintos checkin --- doc/pintos.html | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 doc/pintos.html (limited to 'doc/pintos.html') diff --git a/doc/pintos.html b/doc/pintos.html new file mode 100644 index 0000000..8060c46 --- /dev/null +++ b/doc/pintos.html @@ -0,0 +1,342 @@ + + + + + +Pintos Projects: Table of Contents + + + + + + + + + + + + + + + + + +
[Top][Contents][Index][ ? ]
+

Table of Contents

+
+1. Introduction +
+
+1.1 Getting Started +
+
+1.1.1 Source Tree Overview +
+1.1.2 Building Pintos +
+1.1.3 Running Pintos +
+1.1.4 Debugging versus Testing +
+
+1.2 Grading +
+
+1.2.1 Testing +
+1.2.2 Design +
+
+1.2.2.1 Design Document +
+1.2.2.2 Source Code +
+
+
+1.3 Legal and Ethical Issues +
+1.4 Acknowledgements +
+1.5 Trivia +
+
+2. Project 0: Introducing Pintos +
+
+2.1 Understanding Threads +
+
+2.1.1 Source Files +
+
+2.1.1.1 devices code +
+2.1.1.2 lib files +
+
+2.1.2 Synchronization +
+2.1.3 Development Suggestions +
+
+2.2 Understanding User Programs +
+
+2.2.1 Source Files +
+2.2.2 Using the File System +
+2.2.3 How User Programs Work +
+2.2.4 Virtual Memory Layout +
+
+2.2.4.1 Typical Memory Layout +
+
+2.2.5 Accessing User Memory +
+
+2.3 Requirements +
+
+2.3.1 Design Document +
+2.3.2 Alarm Clock +
+2.3.3 Argument Passing +
+
+2.4 FAQ +
+
+2.4.1 Threads FAQ +
+2.4.2 Alarm Clock FAQ +
+2.4.3 Userprog FAQ +
+2.4.4 Argument Passing FAQ +
+
+2.5 80x86 Calling Convention +
+
+2.5.1 Program Startup Details +
+2.5.2 System Call Details +
+
+
+3. Project 1: Threads +
+
+3.1 Background +
+3.2 Requirements +
+
+3.2.1 Design Document +
+3.2.2 Priority Scheduling +
+
+3.3 FAQ +
+
+4. Project 2: Virtual Memory +
+A. Reference Guide +
+
+A.1 Loading +
+
+A.1.1 The Loader +
+A.1.2 Low-Level Kernel Initialization +
+A.1.3 High-Level Kernel Initialization +
+A.1.4 Physical Memory Map +
+
+A.2 Threads +
+
+A.2.1 struct thread +
+A.2.2 Thread Functions +
+A.2.3 Thread Switching +
+
+A.3 Synchronization +
+
+A.3.1 Disabling Interrupts +
+A.3.2 Semaphores +
+A.3.3 Locks +
+A.3.4 Monitors +
+
+A.3.4.1 Monitor Example +
+
+A.3.5 Optimization Barriers +
+
+A.4 Interrupt Handling +
+
+A.4.1 Interrupt Infrastructure +
+A.4.2 Internal Interrupt Handling +
+A.4.3 External Interrupt Handling +
+
+A.5 Memory Allocation +
+
+A.5.1 Page Allocator +
+A.5.2 Block Allocator +
+
+A.6 Virtual Addresses +
+A.7 Page Table +
+
+A.7.1 Creation, Destruction, and Activation +
+A.7.2 Inspection and Updates +
+A.7.3 Accessed and Dirty Bits +
+A.7.4 Page Table Details +
+
+A.7.4.1 Structure +
+A.7.4.2 Page Table Entry Format +
+A.7.4.3 Page Directory Entry Format +
+
+
+A.8 Hash Table +
+
+A.8.1 Data Types +
+A.8.2 Basic Functions +
+A.8.3 Search Functions +
+A.8.4 Iteration Functions +
+A.8.5 Hash Table Example +
+A.8.6 Auxiliary Data +
+A.8.7 Synchronization +
+
+
+B. Coding Standards +
+
+B.1 Style +
+B.2 C99 +
+B.3 Unsafe String Functions +
+
+C. Project Documentation +
+
+C.1 Sample Assignment +
+C.2 Sample Design Document +
+
+D. Debugging Tools +
+
+D.1 printf() +
+D.2 ASSERT +
+D.3 Function and Parameter Attributes +
+D.4 Backtraces +
+
+D.4.1 Example +
+
+D.5 GDB +
+
+D.5.1 Using GDB +
+D.5.2 Example GDB Session +
+D.5.3 FAQ +
+
+D.6 Triple Faults +
+D.7 Modifying Bochs +
+D.8 Tips +
+
+E. Development Tools +
+
+E.1 Tags +
+E.2 cscope +
+E.3 git +
+
+Bibliography +
+
+E.4 Hardware References +
+E.5 Software References +
+E.6 Operating System Design References +
+
+License +
+
+
+
+ +This document was generated +by on March, 6 2012 +using texi2html + + + + -- cgit v1.2.3