@xrdef{Introduction-title}{Introduction} @xrdef{Introduction-snt}{Chapter@tie 1} @xrdef{Getting Started-title}{Getting Started} @xrdef{Getting Started-snt}{Section@tie 1.1} @xrdef{Source Tree Overview-title}{Source Tree Overview} @xrdef{Source Tree Overview-snt}{Section@tie 1.1.1} @xrdef{Introduction-pg}{1} @xrdef{Getting Started-pg}{1} @xrdef{Source Tree Overview-pg}{1} @xrdef{Building Pintos-title}{Building Pintos} @xrdef{Building Pintos-snt}{Section@tie 1.1.2} @xrdef{Running Pintos-title}{Running Pintos} @xrdef{Running Pintos-snt}{Section@tie 1.1.3} @xrdef{Building Pintos-pg}{3} @xrdef{Running Pintos-pg}{3} @xrdef{Debugging versus Testing-title}{Debugging versus Testing} @xrdef{Debugging versus Testing-snt}{Section@tie 1.1.4} @xrdef{Debugging versus Testing-pg}{4} @xrdef{Grading-title}{Grading} @xrdef{Grading-snt}{Section@tie 1.2} @xrdef{Testing-title}{Testing} @xrdef{Testing-snt}{Section@tie 1.2.1} @xrdef{Grading-pg}{5} @xrdef{Testing-pg}{5} @xrdef{Design-title}{Design} @xrdef{Design-snt}{Section@tie 1.2.2} @xrdef{Design Document-title}{Design Document} @xrdef{Design Document-snt}{Section@tie 1.2.2.1} @xrdef{Design-pg}{6} @xrdef{Design Document-pg}{6} @xrdef{Source Code-title}{Source Code} @xrdef{Source Code-snt}{Section@tie 1.2.2.2} @xrdef{Source Code-pg}{7} @xrdef{Legal and Ethical Issues-title}{Legal and Ethical Issues} @xrdef{Legal and Ethical Issues-snt}{Section@tie 1.3} @xrdef{Acknowledgements-title}{Acknowledgements} @xrdef{Acknowledgements-snt}{Section@tie 1.4} @xrdef{Trivia-title}{Trivia} @xrdef{Trivia-snt}{Section@tie 1.5} @xrdef{Legal and Ethical Issues-pg}{8} @xrdef{Acknowledgements-pg}{8} @xrdef{Trivia-pg}{8} @xrdef{Project 1--Threads-title}{Project 1: Threads} @xrdef{Project 1--Threads-snt}{Chapter@tie 2} @xrdef{Project 1 Background-title}{Background} @xrdef{Project 1 Background-snt}{Section@tie 2.1} @xrdef{Understanding Threads-title}{Understanding Threads} @xrdef{Understanding Threads-snt}{Section@tie 2.1.1} @xrdef{Project 1--Threads-pg}{9} @xrdef{Project 1 Background-pg}{9} @xrdef{Understanding Threads-pg}{9} @xrdef{Project 1 Source Files-title}{Source Files} @xrdef{Project 1 Source Files-snt}{Section@tie 2.1.2} @xrdef{Project 1 Source Files-pg}{10} @xrdef{devices code-title}{@file {devices} code} @xrdef{devices code-snt}{Section@tie 2.1.2.1} @xrdef{devices code-pg}{11} @xrdef{lib files-title}{@file {lib} files} @xrdef{lib files-snt}{Section@tie 2.1.2.2} @xrdef{lib files-pg}{12} @xrdef{Project 1 Synchronization-title}{Synchronization} @xrdef{Project 1 Synchronization-snt}{Section@tie 2.1.3} @xrdef{Project 1 Synchronization-pg}{13} @xrdef{Development Suggestions-title}{Development Suggestions} @xrdef{Development Suggestions-snt}{Section@tie 2.1.4} @xrdef{Project 1 Requirements-title}{Requirements} @xrdef{Project 1 Requirements-snt}{Section@tie 2.2} @xrdef{Project 1 Design Document-title}{Design Document} @xrdef{Project 1 Design Document-snt}{Section@tie 2.2.1} @xrdef{Alarm Clock-title}{Alarm Clock} @xrdef{Alarm Clock-snt}{Section@tie 2.2.2} @xrdef{Development Suggestions-pg}{14} @xrdef{Project 1 Requirements-pg}{14} @xrdef{Project 1 Design Document-pg}{14} @xrdef{Alarm Clock-pg}{14} @xrdef{Priority Scheduling-title}{Priority Scheduling} @xrdef{Priority Scheduling-snt}{Section@tie 2.2.3} @xrdef{Priority Scheduling-pg}{15} @xrdef{Advanced Scheduler-title}{Advanced Scheduler} @xrdef{Advanced Scheduler-snt}{Section@tie 2.2.4} @xrdef{Project 1 FAQ-title}{FAQ} @xrdef{Project 1 FAQ-snt}{Section@tie 2.3} @xrdef{Advanced Scheduler-pg}{16} @xrdef{Project 1 FAQ-pg}{16} @xrdef{Adding Source Files-title}{FAQ} @xrdef{Adding Source Files-snt}{} @xrdef{The pass function fails-title}{FAQ} @xrdef{The pass function fails-snt}{} @xrdef{Adding Source Files-pg}{17} @xrdef{The pass function fails-pg}{17} @xrdef{Alarm Clock FAQ-title}{Alarm Clock FAQ} @xrdef{Alarm Clock FAQ-snt}{Section@tie 2.3.1} @xrdef{Priority Scheduling FAQ-title}{Priority Scheduling FAQ} @xrdef{Priority Scheduling FAQ-snt}{Section@tie 2.3.2} @xrdef{Alarm Clock FAQ-pg}{18} @xrdef{Priority Scheduling FAQ-pg}{18} @xrdef{Advanced Scheduler FAQ-title}{Advanced Scheduler FAQ} @xrdef{Advanced Scheduler FAQ-snt}{Section@tie 2.3.3} @xrdef{Advanced Scheduler FAQ-pg}{19} @xrdef{Project 2--User Programs-title}{Project 2: User Programs} @xrdef{Project 2--User Programs-snt}{Chapter@tie 3} @xrdef{Project 2 Background-title}{Background} @xrdef{Project 2 Background-snt}{Section@tie 3.1} @xrdef{Project 2 Source Files-title}{Source Files} @xrdef{Project 2 Source Files-snt}{Section@tie 3.1.1} @xrdef{Project 2--User Programs-pg}{21} @xrdef{Project 2 Background-pg}{21} @xrdef{Project 2 Source Files-pg}{21} @xrdef{Using the File System-title}{Using the File System} @xrdef{Using the File System-snt}{Section@tie 3.1.2} @xrdef{Using the File System-pg}{22} @xrdef{How User Programs Work-title}{How User Programs Work} @xrdef{How User Programs Work-snt}{Section@tie 3.1.3} @xrdef{Virtual Memory Layout-title}{Virtual Memory Layout} @xrdef{Virtual Memory Layout-snt}{Section@tie 3.1.4} @xrdef{How User Programs Work-pg}{24} @xrdef{Virtual Memory Layout-pg}{24} @xrdef{Typical Memory Layout-title}{Typical Memory Layout} @xrdef{Typical Memory Layout-snt}{Section@tie 3.1.4.1} @xrdef{Accessing User Memory-title}{Accessing User Memory} @xrdef{Accessing User Memory-snt}{Section@tie 3.1.5} @xrdef{Typical Memory Layout-pg}{25} @xrdef{Accessing User Memory-pg}{26} @xrdef{Project 2 Suggested Order of Implementation-title}{Suggested Order of Implementation} @xrdef{Project 2 Suggested Order of Implementation-snt}{Section@tie 3.2} @xrdef{Project 2 Requirements-title}{Requirements} @xrdef{Project 2 Requirements-snt}{Section@tie 3.3} @xrdef{Project 2 Design Document-title}{Design Document} @xrdef{Project 2 Design Document-snt}{Section@tie 3.3.1} @xrdef{Process Termination Messages-title}{Process Termination Messages} @xrdef{Process Termination Messages-snt}{Section@tie 3.3.2} @xrdef{Project 2 Suggested Order of Implementation-pg}{27} @xrdef{Project 2 Requirements-pg}{27} @xrdef{Project 2 Design Document-pg}{27} @xrdef{Argument Passing-title}{Argument Passing} @xrdef{Argument Passing-snt}{Section@tie 3.3.3} @xrdef{System Calls-title}{System Calls} @xrdef{System Calls-snt}{Section@tie 3.3.4} @xrdef{Process Termination Messages-pg}{28} @xrdef{Argument Passing-pg}{28} @xrdef{System Calls-pg}{28} @xrdef{Denying Writes to Executables-title}{Denying Writes to Executables} @xrdef{Denying Writes to Executables-snt}{Section@tie 3.3.5} @xrdef{Project 2 FAQ-title}{FAQ} @xrdef{Project 2 FAQ-snt}{Section@tie 3.4} @xrdef{Denying Writes to Executables-pg}{31} @xrdef{Project 2 FAQ-pg}{31} @xrdef{Argument Passing FAQ-title}{Argument Passing FAQ} @xrdef{Argument Passing FAQ-snt}{Section@tie 3.4.1} @xrdef{System Calls FAQ-title}{System Calls FAQ} @xrdef{System Calls FAQ-snt}{Section@tie 3.4.2} @xrdef{Argument Passing FAQ-pg}{33} @xrdef{System Calls FAQ-pg}{33} @xrdef{Removing an Open File-title}{System Calls FAQ} @xrdef{Removing an Open File-snt}{} @xrdef{80x86 Calling Convention-title}{80@var {x}86 Calling Convention} @xrdef{80x86 Calling Convention-snt}{Section@tie 3.5} @xrdef{Removing an Open File-pg}{34} @xrdef{80x86 Calling Convention-pg}{34} @xrdef{Program Startup Details-title}{Program Startup Details} @xrdef{Program Startup Details-snt}{Section@tie 3.5.1} @xrdef{Program Startup Details-pg}{35} @xrdef{System Call Details-title}{System Call Details} @xrdef{System Call Details-snt}{Section@tie 3.5.2} @xrdef{System Call Details-pg}{36} @xrdef{Project 3--Virtual Memory-title}{Project 3: Virtual Memory} @xrdef{Project 3--Virtual Memory-snt}{Chapter@tie 4} @xrdef{Project 3 Background-title}{Background} @xrdef{Project 3 Background-snt}{Section@tie 4.1} @xrdef{Project 3 Source Files-title}{Source Files} @xrdef{Project 3 Source Files-snt}{Section@tie 4.1.1} @xrdef{Memory Terminology-title}{Memory Terminology} @xrdef{Memory Terminology-snt}{Section@tie 4.1.2} @xrdef{Pages-title}{Pages} @xrdef{Pages-snt}{Section@tie 4.1.2.1} @xrdef{Project 3--Virtual Memory-pg}{38} @xrdef{Project 3 Background-pg}{38} @xrdef{Project 3 Source Files-pg}{38} @xrdef{Memory Terminology-pg}{38} @xrdef{Pages-pg}{38} @xrdef{Frames-title}{Frames} @xrdef{Frames-snt}{Section@tie 4.1.2.2} @xrdef{Page Tables-title}{Page Tables} @xrdef{Page Tables-snt}{Section@tie 4.1.2.3} @xrdef{Swap Slots-title}{Swap Slots} @xrdef{Swap Slots-snt}{Section@tie 4.1.2.4} @xrdef{Frames-pg}{39} @xrdef{Page Tables-pg}{39} @xrdef{Swap Slots-pg}{39} @xrdef{Resource Management Overview-title}{Resource Management Overview} @xrdef{Resource Management Overview-snt}{Section@tie 4.1.3} @xrdef{Managing the Supplemental Page Table-title}{Managing the Supplemental Page Table} @xrdef{Managing the Supplemental Page Table-snt}{Section@tie 4.1.4} @xrdef{Resource Management Overview-pg}{40} @xrdef{Managing the Frame Table-title}{Managing the Frame Table} @xrdef{Managing the Frame Table-snt}{Section@tie 4.1.5} @xrdef{Managing the Supplemental Page Table-pg}{41} @xrdef{Managing the Frame Table-pg}{41} @xrdef{Accessed and Dirty Bits-title}{Accessed and Dirty Bits} @xrdef{Accessed and Dirty Bits-snt}{Section@tie 4.1.5.1} @xrdef{Managing the Swap Table-title}{Managing the Swap Table} @xrdef{Managing the Swap Table-snt}{Section@tie 4.1.6} @xrdef{Accessed and Dirty Bits-pg}{42} @xrdef{Managing the Swap Table-pg}{42} @xrdef{Managing Memory Mapped Files Back-title}{Managing Memory Mapped Files} @xrdef{Managing Memory Mapped Files Back-snt}{Section@tie 4.1.7} @xrdef{Project 3 Suggested Order of Implementation-title}{Suggested Order of Implementation} @xrdef{Project 3 Suggested Order of Implementation-snt}{Section@tie 4.2} @xrdef{Managing Memory Mapped Files Back-pg}{43} @xrdef{Project 3 Suggested Order of Implementation-pg}{43} @xrdef{Project 3 Requirements-title}{Requirements} @xrdef{Project 3 Requirements-snt}{Section@tie 4.3} @xrdef{Project 3 Design Document-title}{Design Document} @xrdef{Project 3 Design Document-snt}{Section@tie 4.3.1} @xrdef{Paging-title}{Paging} @xrdef{Paging-snt}{Section@tie 4.3.2} @xrdef{Project 3 Requirements-pg}{44} @xrdef{Project 3 Design Document-pg}{44} @xrdef{Paging-pg}{44} @xrdef{Stack Growth-title}{Stack Growth} @xrdef{Stack Growth-snt}{Section@tie 4.3.3} @xrdef{Memory Mapped Files-title}{Memory Mapped Files} @xrdef{Memory Mapped Files-snt}{Section@tie 4.3.4} @xrdef{Stack Growth-pg}{45} @xrdef{Project 3 FAQ-title}{FAQ} @xrdef{Project 3 FAQ-snt}{Section@tie 4.4} @xrdef{Memory Mapped Files-pg}{46} @xrdef{Project 3 FAQ-pg}{46} @xrdef{VM Extra Credit-title}{FAQ} @xrdef{VM Extra Credit-snt}{} @xrdef{Why PAL_USER?-title}{FAQ} @xrdef{Why PAL_USER?-snt}{} @xrdef{VM Extra Credit-pg}{47} @xrdef{Why PAL_USER?-pg}{47} @xrdef{Project 4--File Systems-title}{Project 4: File Systems} @xrdef{Project 4--File Systems-snt}{Chapter@tie 5} @xrdef{Project 4 Background-title}{Background} @xrdef{Project 4 Background-snt}{Section@tie 5.1} @xrdef{File System New Code-title}{New Code} @xrdef{File System New Code-snt}{Section@tie 5.1.1} @xrdef{Testing File System Persistence-title}{Testing File System Persistence} @xrdef{Testing File System Persistence-snt}{Section@tie 5.1.2} @xrdef{Project 4--File Systems-pg}{49} @xrdef{Project 4 Background-pg}{49} @xrdef{File System New Code-pg}{49} @xrdef{Project 4 Suggested Order of Implementation-title}{Suggested Order of Implementation} @xrdef{Project 4 Suggested Order of Implementation-snt}{Section@tie 5.2} @xrdef{Project 4 Requirements-title}{Requirements} @xrdef{Project 4 Requirements-snt}{Section@tie 5.3} @xrdef{Project 4 Design Document-title}{Design Document} @xrdef{Project 4 Design Document-snt}{Section@tie 5.3.1} @xrdef{Indexed and Extensible Files-title}{Indexed and Extensible Files} @xrdef{Indexed and Extensible Files-snt}{Section@tie 5.3.2} @xrdef{Testing File System Persistence-pg}{50} @xrdef{Project 4 Suggested Order of Implementation-pg}{50} @xrdef{Project 4 Requirements-pg}{50} @xrdef{Project 4 Design Document-pg}{50} @xrdef{Subdirectories-title}{Subdirectories} @xrdef{Subdirectories-snt}{Section@tie 5.3.3} @xrdef{Indexed and Extensible Files-pg}{51} @xrdef{Subdirectories-pg}{51} @xrdef{Buffer Cache-title}{Buffer Cache} @xrdef{Buffer Cache-snt}{Section@tie 5.3.4} @xrdef{File System Synchronization-title}{Synchronization} @xrdef{File System Synchronization-snt}{Section@tie 5.3.5} @xrdef{Buffer Cache-pg}{53} @xrdef{File System Synchronization-pg}{53} @xrdef{Project 4 FAQ-title}{FAQ} @xrdef{Project 4 FAQ-snt}{Section@tie 5.4} @xrdef{Project 4 FAQ-pg}{54} @xrdef{Indexed Files FAQ-title}{Indexed Files FAQ} @xrdef{Indexed Files FAQ-snt}{Section@tie 5.4.1} @xrdef{Subdirectories FAQ-title}{Subdirectories FAQ} @xrdef{Subdirectories FAQ-snt}{Section@tie 5.4.2} @xrdef{Buffer Cache FAQ-title}{Buffer Cache FAQ} @xrdef{Buffer Cache FAQ-snt}{Section@tie 5.4.3} @xrdef{Indexed Files FAQ-pg}{55} @xrdef{Subdirectories FAQ-pg}{55} @xrdef{Buffer Cache FAQ-pg}{55} @xrdef{Reference Guide-title}{Reference Guide} @xrdef{Reference Guide-snt}{Appendix@tie @char65{}} @xrdef{Pintos Loading-title}{Loading} @xrdef{Pintos Loading-snt}{Section@tie @char65.1} @xrdef{Pintos Loader-title}{The Loader} @xrdef{Pintos Loader-snt}{Section@tie @char65.1.1} @xrdef{Reference Guide-pg}{57} @xrdef{Pintos Loading-pg}{57} @xrdef{Pintos Loader-pg}{57} @xrdef{Kernel Initialization-title}{Kernel Initialization} @xrdef{Kernel Initialization-snt}{Section@tie @char65.1.2} @xrdef{Kernel Initialization-pg}{58} @xrdef{Threads-title}{Threads} @xrdef{Threads-snt}{Section@tie @char65.2} @xrdef{struct thread-title}{@code {struct thread}} @xrdef{struct thread-snt}{Section@tie @char65.2.1} @xrdef{Threads-pg}{59} @xrdef{struct thread-pg}{59} @xrdef{Thread States-title}{@code {struct thread}} @xrdef{Thread States-snt}{} @xrdef{Thread States-pg}{60} @xrdef{Thread Functions-title}{Thread Functions} @xrdef{Thread Functions-snt}{Section@tie @char65.2.2} @xrdef{Thread Functions-pg}{62} @xrdef{Thread Switching-title}{Thread Switching} @xrdef{Thread Switching-snt}{Section@tie @char65.2.3} @xrdef{Thread Switching-pg}{63} @xrdef{Synchronization-title}{Synchronization} @xrdef{Synchronization-snt}{Section@tie @char65.3} @xrdef{Disabling Interrupts-title}{Disabling Interrupts} @xrdef{Disabling Interrupts-snt}{Section@tie @char65.3.1} @xrdef{Synchronization-pg}{64} @xrdef{Disabling Interrupts-pg}{64} @xrdef{Semaphores-title}{Semaphores} @xrdef{Semaphores-snt}{Section@tie @char65.3.2} @xrdef{Semaphores-pg}{65} @xrdef{Locks-title}{Locks} @xrdef{Locks-snt}{Section@tie @char65.3.3} @xrdef{Locks-pg}{66} @xrdef{Monitors-title}{Monitors} @xrdef{Monitors-snt}{Section@tie @char65.3.4} @xrdef{Monitors-pg}{67} @xrdef{Optimization Barriers-title}{Optimization Barriers} @xrdef{Optimization Barriers-snt}{Section@tie @char65.3.5} @xrdef{Optimization Barriers-pg}{68} @xrdef{Interrupt Handling-title}{Interrupt Handling} @xrdef{Interrupt Handling-snt}{Section@tie @char65.4} @xrdef{Interrupt Infrastructure-title}{Interrupt Infrastructure} @xrdef{Interrupt Infrastructure-snt}{Section@tie @char65.4.1} @xrdef{Interrupt Handling-pg}{70} @xrdef{Interrupt Infrastructure-pg}{71} @xrdef{Internal Interrupt Handling-title}{Internal Interrupt Handling} @xrdef{Internal Interrupt Handling-snt}{Section@tie @char65.4.2} @xrdef{External Interrupt Handling-title}{External Interrupt Handling} @xrdef{External Interrupt Handling-snt}{Section@tie @char65.4.3} @xrdef{Internal Interrupt Handling-pg}{72} @xrdef{Memory Allocation-title}{Memory Allocation} @xrdef{Memory Allocation-snt}{Section@tie @char65.5} @xrdef{External Interrupt Handling-pg}{73} @xrdef{Page Allocator-title}{Page Allocator} @xrdef{Page Allocator-snt}{Section@tie @char65.5.1} @xrdef{Memory Allocation-pg}{74} @xrdef{Page Allocator-pg}{74} @xrdef{Block Allocator-title}{Block Allocator} @xrdef{Block Allocator-snt}{Section@tie @char65.5.2} @xrdef{Block Allocator-pg}{75} @xrdef{Virtual Addresses-title}{Virtual Addresses} @xrdef{Virtual Addresses-snt}{Section@tie @char65.6} @xrdef{Virtual Addresses-pg}{76} @xrdef{Page Table-title}{Page Table} @xrdef{Page Table-snt}{Section@tie @char65.7} @xrdef{Page Table Creation Destruction Activation-title}{Creation, Destruction, and Activation} @xrdef{Page Table Creation Destruction Activation-snt}{Section@tie @char65.7.1} @xrdef{Page Table-pg}{77} @xrdef{Page Table Creation Destruction Activation-pg}{77} @xrdef{Page Tables Inspection and Updates-title}{Inspection and Updates} @xrdef{Page Tables Inspection and Updates-snt}{Section@tie @char65.7.2} @xrdef{Page Table Accessed and Dirty Bits-title}{Accessed and Dirty Bits} @xrdef{Page Table Accessed and Dirty Bits-snt}{Section@tie @char65.7.3} @xrdef{Page Tables Inspection and Updates-pg}{78} @xrdef{Page Table Accessed and Dirty Bits-pg}{78} @xrdef{Page Table Details-title}{Page Table Details} @xrdef{Page Table Details-snt}{Section@tie @char65.7.4} @xrdef{Page Table Structure-title}{Structure} @xrdef{Page Table Structure-snt}{Section@tie @char65.7.4.1} @xrdef{Page Table Details-pg}{79} @xrdef{Page Table Structure-pg}{79} @xrdef{Page Table Entry Format-title}{Page Table Entry Format} @xrdef{Page Table Entry Format-snt}{Section@tie @char65.7.4.2} @xrdef{Page Table Entry Format-pg}{81} @xrdef{Page Directory Entry Format-title}{Page Directory Entry Format} @xrdef{Page Directory Entry Format-snt}{Section@tie @char65.7.4.3} @xrdef{Hash Table-title}{Hash Table} @xrdef{Hash Table-snt}{Section@tie @char65.8} @xrdef{Hash Data Types-title}{Data Types} @xrdef{Hash Data Types-snt}{Section@tie @char65.8.1} @xrdef{Page Directory Entry Format-pg}{82} @xrdef{Hash Table-pg}{82} @xrdef{Hash Data Types-pg}{83} @xrdef{Basic Hash Functions-title}{Basic Functions} @xrdef{Basic Hash Functions-snt}{Section@tie @char65.8.2} @xrdef{Basic Hash Functions-pg}{84} @xrdef{Hash Search Functions-title}{Search Functions} @xrdef{Hash Search Functions-snt}{Section@tie @char65.8.3} @xrdef{Hash Search Functions-pg}{85} @xrdef{Hash Iteration Functions-title}{Iteration Functions} @xrdef{Hash Iteration Functions-snt}{Section@tie @char65.8.4} @xrdef{Hash Table Example-title}{Hash Table Example} @xrdef{Hash Table Example-snt}{Section@tie @char65.8.5} @xrdef{Hash Iteration Functions-pg}{86} @xrdef{Hash Table Example-pg}{87} @xrdef{Hash Auxiliary Data-title}{Auxiliary Data} @xrdef{Hash Auxiliary Data-snt}{Section@tie @char65.8.6} @xrdef{Hash Synchronization-title}{Synchronization} @xrdef{Hash Synchronization-snt}{Section@tie @char65.8.7} @xrdef{Hash Auxiliary Data-pg}{88} @xrdef{Hash Synchronization-pg}{88} @xrdef{4.4BSD Scheduler-title}{4.4@acronym {BSD} Scheduler} @xrdef{4.4BSD Scheduler-snt}{Appendix@tie @char66{}} @xrdef{Thread Niceness-title}{Niceness} @xrdef{Thread Niceness-snt}{Section@tie @char66.1} @xrdef{Calculating Priority-title}{Calculating Priority} @xrdef{Calculating Priority-snt}{Section@tie @char66.2} @xrdef{4.4BSD Scheduler-pg}{89} @xrdef{Thread Niceness-pg}{89} @xrdef{Calculating Priority-pg}{89} @xrdef{Calculating recent_cpu-title}{Calculating @var {recent_cpu}} @xrdef{Calculating recent_cpu-snt}{Section@tie @char66.3} @xrdef{Calculating recent_cpu-pg}{90} @xrdef{Calculating load_avg-title}{Calculating @var {load_avg}} @xrdef{Calculating load_avg-snt}{Section@tie @char66.4} @xrdef{4.4BSD Scheduler Summary-title}{Summary} @xrdef{4.4BSD Scheduler Summary-snt}{Section@tie @char66.5} @xrdef{Calculating load_avg-pg}{91} @xrdef{4.4BSD Scheduler Summary-pg}{91} @xrdef{Fixed-Point Real Arithmetic-title}{Fixed-Point Real Arithmetic} @xrdef{Fixed-Point Real Arithmetic-snt}{Section@tie @char66.6} @xrdef{Fixed-Point Real Arithmetic-pg}{92} @xrdef{Coding Standards-title}{Coding Standards} @xrdef{Coding Standards-snt}{Appendix@tie @char67{}} @xrdef{Coding Style-title}{Style} @xrdef{Coding Style-snt}{Section@tie @char67.1} @xrdef{C99-title}{C99} @xrdef{C99-snt}{Section@tie @char67.2} @xrdef{Coding Standards-pg}{94} @xrdef{Coding Style-pg}{94} @xrdef{C99-pg}{94} @xrdef{Unsafe String Functions-title}{Unsafe String Functions} @xrdef{Unsafe String Functions-snt}{Section@tie @char67.3} @xrdef{Unsafe String Functions-pg}{95} @xrdef{Project Documentation-title}{Project Documentation} @xrdef{Project Documentation-snt}{Appendix@tie @char68{}} @xrdef{Sample Assignment-title}{Sample Assignment} @xrdef{Sample Assignment-snt}{Section@tie @char68.1} @xrdef{Sample Design Document-title}{Sample Design Document} @xrdef{Sample Design Document-snt}{Section@tie @char68.2} @xrdef{Project Documentation-pg}{97} @xrdef{Sample Assignment-pg}{97} @xrdef{Sample Design Document-pg}{97} @xrdef{Debugging Tools-title}{Debugging Tools} @xrdef{Debugging Tools-snt}{Appendix@tie @char69{}} @xrdef{printf-title}{@code {printf()}} @xrdef{printf-snt}{Section@tie @char69.1} @xrdef{ASSERT-title}{@code {ASSERT}} @xrdef{ASSERT-snt}{Section@tie @char69.2} @xrdef{Function and Parameter Attributes-title}{Function and Parameter Attributes} @xrdef{Function and Parameter Attributes-snt}{Section@tie @char69.3} @xrdef{Debugging Tools-pg}{100} @xrdef{printf-pg}{100} @xrdef{ASSERT-pg}{100} @xrdef{Function and Parameter Attributes-pg}{100} @xrdef{Backtraces-title}{Backtraces} @xrdef{Backtraces-snt}{Section@tie @char69.4} @xrdef{Backtrace Example-title}{Example} @xrdef{Backtrace Example-snt}{Section@tie @char69.4.1} @xrdef{Backtraces-pg}{101} @xrdef{Backtrace Example-pg}{101} @xrdef{GDB-title}{GDB} @xrdef{GDB-snt}{Section@tie @char69.5} @xrdef{Using GDB-title}{Using GDB} @xrdef{Using GDB-snt}{Section@tie @char69.5.1} @xrdef{GDB-pg}{103} @xrdef{Using GDB-pg}{103} @xrdef{Example GDB Session-title}{Example GDB Session} @xrdef{Example GDB Session-snt}{Section@tie @char69.5.2} @xrdef{Example GDB Session-pg}{106} @xrdef{Debugging User Programs-title}{Debugging User Programs} @xrdef{Debugging User Programs-snt}{Section@tie @char69.5.3} @xrdef{GDB FAQ-title}{FAQ} @xrdef{GDB FAQ-snt}{Section@tie @char69.5.4} @xrdef{Triple Faults-title}{Triple Faults} @xrdef{Triple Faults-snt}{Section@tie @char69.6} @xrdef{Debugging User Programs-pg}{108} @xrdef{GDB FAQ-pg}{108} @xrdef{Modifying Bochs-title}{Modifying Bochs} @xrdef{Modifying Bochs-snt}{Section@tie @char69.7} @xrdef{Triple Faults-pg}{109} @xrdef{Modifying Bochs-pg}{109} @xrdef{Debugging Tips-title}{Tips} @xrdef{Debugging Tips-snt}{Section@tie @char69.8} @xrdef{Debugging Tips-pg}{110} @xrdef{Development Tools-title}{Development Tools} @xrdef{Development Tools-snt}{Appendix@tie @char70{}} @xrdef{Tags-title}{Tags} @xrdef{Tags-snt}{Section@tie @char70.1} @xrdef{cscope-title}{cscope} @xrdef{cscope-snt}{Section@tie @char70.2} @xrdef{CVS-title}{CVS} @xrdef{CVS-snt}{Section@tie @char70.3} @xrdef{Setting Up CVS-title}{Setting Up CVS} @xrdef{Setting Up CVS-snt}{Section@tie @char70.3.1} @xrdef{Development Tools-pg}{111} @xrdef{Tags-pg}{111} @xrdef{cscope-pg}{111} @xrdef{CVS-pg}{111} @xrdef{Setting Up CVS-pg}{111} @xrdef{Using CVS-title}{Using CVS} @xrdef{Using CVS-snt}{Section@tie @char70.3.2} @xrdef{Using CVS-pg}{112} @xrdef{CVS Locking-title}{CVS Locking} @xrdef{CVS Locking-snt}{Section@tie @char70.3.3} @xrdef{CVS Locking-pg}{113} @xrdef{SourceForge-title}{SourceForge} @xrdef{SourceForge-snt}{Section@tie @char70.4} @xrdef{VNC-title}{VNC} @xrdef{VNC-snt}{Section@tie @char70.5} @xrdef{SourceForge-pg}{114} @xrdef{VNC-pg}{114} @xrdef{Installing Pintos-title}{Installing Pintos} @xrdef{Installing Pintos-snt}{Appendix@tie @char71{}} @xrdef{Installing Pintos-pg}{115} @xrdef{Building Bochs for Pintos-title}{Building Bochs for Pintos} @xrdef{Building Bochs for Pintos-snt}{Section@tie @char71.1} @xrdef{Building Bochs for Pintos-pg}{116} @xrdef{Bibliography-title}{Bibliography} @xrdef{Bibliography-snt}{} @xrdef{Hardware References-title}{Hardware References} @xrdef{Hardware References-snt}{} @xrdef{IA32-v1-title}{Hardware References} @xrdef{IA32-v1-snt}{} @xrdef{IA32-v2a-title}{Hardware References} @xrdef{IA32-v2a-snt}{} @xrdef{IA32-v2b-title}{Hardware References} @xrdef{IA32-v2b-snt}{} @xrdef{IA32-v3a-title}{Hardware References} @xrdef{IA32-v3a-snt}{} @xrdef{FreeVGA-title}{Hardware References} @xrdef{FreeVGA-snt}{} @xrdef{kbd-title}{Hardware References} @xrdef{kbd-snt}{} @xrdef{ATA-3-title}{Hardware References} @xrdef{ATA-3-snt}{} @xrdef{PC16550D-title}{Hardware References} @xrdef{PC16550D-snt}{} @xrdef{8254-title}{Hardware References} @xrdef{8254-snt}{} @xrdef{8259A-title}{Hardware References} @xrdef{8259A-snt}{} @xrdef{Software References-title}{Software References} @xrdef{Software References-snt}{} @xrdef{ELF1-title}{Software References} @xrdef{ELF1-snt}{} @xrdef{ELF2-title}{Software References} @xrdef{ELF2-snt}{} @xrdef{ELF3-title}{Software References} @xrdef{ELF3-snt}{} @xrdef{SysV-ABI-title}{Software References} @xrdef{SysV-ABI-snt}{} @xrdef{SysV-i386-title}{Software References} @xrdef{SysV-i386-snt}{} @xrdef{SysV-ABI-update-title}{Software References} @xrdef{SysV-ABI-update-snt}{} @xrdef{Operating System Design References-title}{Operating System Design References} @xrdef{Operating System Design References-snt}{} @xrdef{Christopher-title}{Operating System Design References} @xrdef{Christopher-snt}{} @xrdef{Bibliography-pg}{118} @xrdef{Hardware References-pg}{118} @xrdef{IA32-v1-pg}{118} @xrdef{IA32-v2a-pg}{118} @xrdef{IA32-v2b-pg}{118} @xrdef{IA32-v3a-pg}{118} @xrdef{FreeVGA-pg}{118} @xrdef{kbd-pg}{118} @xrdef{ATA-3-pg}{118} @xrdef{PC16550D-pg}{118} @xrdef{8254-pg}{118} @xrdef{8259A-pg}{118} @xrdef{Software References-pg}{118} @xrdef{ELF1-pg}{118} @xrdef{ELF2-pg}{118} @xrdef{ELF3-pg}{118} @xrdef{SysV-ABI-pg}{118} @xrdef{SysV-i386-pg}{118} @xrdef{SysV-ABI-update-pg}{118} @xrdef{Dijkstra-title}{Operating System Design References} @xrdef{Dijkstra-snt}{} @xrdef{Hoare-title}{Operating System Design References} @xrdef{Hoare-snt}{} @xrdef{Lampson-title}{Operating System Design References} @xrdef{Lampson-snt}{} @xrdef{McKusick-title}{Operating System Design References} @xrdef{McKusick-snt}{} @xrdef{Wilson-title}{Operating System Design References} @xrdef{Wilson-snt}{} @xrdef{Operating System Design References-pg}{119} @xrdef{Christopher-pg}{119} @xrdef{Dijkstra-pg}{119} @xrdef{Hoare-pg}{119} @xrdef{Lampson-pg}{119} @xrdef{McKusick-pg}{119} @xrdef{Wilson-pg}{119} @xrdef{License-title}{License} @xrdef{License-snt}{} @xrdef{License-pg}{120}