Chapter Questions
What type of operating system is Windows? Describe two of its major features.
List the design goals of Windows. Describe two in detail.
Describe the booting process for a Windows system.
Describe the three main architectural layers of the Windows kernel.
What is the job of the object manager?
What types of services does the process manager provide?
What is a local procedure call?
What are the responsibilities of the I/O manager?
What types of networking does Windows support? How does Windows implement transport protocols? Describe two networking protocols.
How is the NTFS namespace organized?
How does NTFS handle data structures? How does NTFS recover from a system crash? What is guaranteed after a recovery takes place?
How does Windows allocate user memory?
Describe some of the ways in which an application can use memory via the Win32 API.
Under what circumstances would one use the deferred procedure calls facility in Windows?
What is a handle, and how does a process obtain a handle?
Describe the management scheme of the virtual-memory manager. How does the VM manager improve performance?
Describe a useful application of the no-access page facility provided in Windows.
Describe the three techniques used for communicating data in a local procedure call. What settings are most conducive to the application of the different message-passing techniques?
What manages caching in Windows? How is the cache managed?
How does the NTFS directory structure differ from the directory structure used in UNIX operating systems?
What is a process, and how is it managed in Windows?
What is the fiber abstraction provided by Windows? How does it differ from the thread abstraction?
How does user-mode scheduling (UMS) in Windows 7 differ from fibers? What are some trade-offs between fibers and UMS?
UMS considers a thread to have two parts, a UT and a KT. How might it be useful to allow UTs to continue executing in parallel with their KTs?
What is the performance trade-off of allowing KTs and UTs to execute on different processors?
Why does the self-map occupy large amounts of virtual address space but no additional virtual memory?
How does the self-map make it easy for the VM manager to move the page table pages to and from disk? Where are the page-table pages kept on disk?
When a Windows system hibernates, the system is powered off. Suppose you changed the CPU or the amount of RAM on a hibernating system. Do you think that would work? Why or why not?
Give an example showing how the use of a suspend count is helpful in suspending and resuming threads in Windows.