1 / 35

Windows 2000

Windows 2000. Michael Blinn Ben Hejl Jane McHugh Matthew VanMater. Overview. Environment Designed to provide a true 32-bit, preemptive, reentrant, virtual memory OS Run on multiple hardware architectures and platforms Run and scale well on SMP systems Network client and server

uzuri
Download Presentation

Windows 2000

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows 2000 Michael BlinnBen HejlJane McHughMatthew VanMater

  2. Overview • Environment • Designed to provide a true 32-bit, preemptive, reentrant, virtual memory OS • Run on multiple hardware architectures and platforms • Run and scale well on SMP systems • Network client and server • Run most existing 16-bit MD-DOS and Microsoft Windows 3.1 applications • Supports Unicode • Portable through the use of Hardware Abstraction Layer (HAL)

  3. Overview Continued • Uses some state-of-the-art concepts. • Object Oriented design • Hybrid Microkernel • As of February 2001, over one million licenses for the Server have been sold.

  4. Overview Continued • Strengths • Hybrid Microkernel • APIs • Allow compatibility • Weaknesses • Weak remote administration facilities

  5. Scheduling • Priorities • Levels • 32 priority levels, ranging from 0 to 31. • Each process has one priority level, threads have two • Queues and Data Structures • Series of queues- one for each scheduling priority • Queues contain threads that are in the ready state • Ready summary bitmask • Idle summary bitmask

  6. Scheduling Continued • Queues and Data Structures Continued • Wait queues handled differently • Current priority threads can be boosted • Upon completion of an I/O operation • After waiting on executive events or semaphores • After threads in the foreground process complete a wait operation • When GUI threads wake up • When a thread that is ready to run has been waiting for some time

  7. Scheduling Continued • I/O requests to devices that warrant better responsiveness have higher boost values. • After the boost is applied, the thread is ran for one quantum at the elevated priority level, after which it decays one priority level, and so on. • CPU Starvation • Win2K maintains a system thread called the balance set manager.

  8. Scheduling Continued • Real Time • 15 priority levels in Windows 2000 • Levels normally reserved for kernel-mode system threads. • Win2K does not provide real-time operating system facilities.

  9. Scheduling Continued • Priority Scheduling Differences in a Multi-Processor Environment • Steps after a thread is selected for execution • Schedule the thread on an idle processor in order of ideal, last, and current CPU. • Schedule the thread on any idle processor. • Preempt a thread currently running on a processor in order of ideal, last, and current CPU.

  10. Scheduling Continued • Thread States • Ready- thread waiting to execute • Standby- thread selected to run next • Running- executing thread • Waiting- thread waiting on an event to occur • Transition- thread ready but paged out of memory • Terminated- thread that finishes execution • Initialized- used when a thread is being created

  11. Scheduling Continued • Thread Transitions • Voluntary Switch • Preemption • Quantum end • Termination

  12. Scheduling Continued • The Zero Page Thread • Enables and disables interrupts • Checks for any DPCs pending on any processor and delivers them if necessary • Checks whether a thread has been selected to run next on the CPU and, if so, dispatches it • Performs checks for power management functions

  13. Scheduling Continued • In Win2K, a thread’s context and the procedure for context switching vary depending on the processor’s architecture. • Saving and reloading of this data is made possible by using a kernel-mode stack.

  14. Scheduling Continued • Typically, a context switch involves saving and reloading the following data: • Program counter • Processor status register • Other register contents • User and kernel stack pointers • Pointer to the thread’s address space in which it runs

  15. Memory Management • Memory manager provides a variety of services to the OS including: • Virtual memory management • Shared memory and mapped files • Locking memory • Protecting memory

  16. Memory Management Continued • Virtual Memory Management • Each user process has a separate 32-bit address space, allowing 4 gigabytes of memory per process. • Yet, 2 gigabytes of this address space is reserved for the OS so the available virtual address space is actually 2 gigabytes.

  17. Memory Management Continued • Virtual Memory Management Continued • Pages in a process address are free, reserved, or committed. • Free- not currently being used • Reserved- thread reserves a range of virtual addresses that may be needed in the future • Committed- eventually become valid pages in physical memory, once accessed

  18. Memory Management Continued • Shared Memory and Mapped Files • Each process maintains its private memory area, yet the program instructions and unmodified data can be shared without harm. • Implementing shared memory involves the use of shared objects. • Shared objects- represent a block of memory that 2 or more processes can share and can be mapped to the paging file or to another file on disk

  19. Memory Management Continued • Locking Memory • Two ways that pages can be locked in memory: • Once pages are locked, they remain in memory until unlocked • Can be locked through the function, VirtualLock • VirtualLock can be called by an application to lock pages in their process working set.

  20. Memory Management Continued • Protecting Memory • Prevents user processes from accessing the address space of another process or the OS itself. • Any structures, etc. used by kernel-mode system components are accessible only in kernel mode (not user mode). • Each process has a private address space

  21. Memory Management Continued • All processes are supported by some form of hardware-controlled memory protection. • Shared memory section objects have standard access-control lists (ACLs) that are checked when processes attempt to open them. This limits shared memory access to only processes with proper rights.

  22. Memory Management Continued • Page Directories • Each process has a single page directory that the memory manager creates to map the location of all page tables for that process. • The physical address of the process page directory is stored in the kernel process block and is also mapped virtually. • Executable code running in kernel mode uses references to virtual, not physical, addresses.

  23. Memory Management Continued • Page Directories Continued • The OS constructs a page table, containing the mapping information needed to find the desired page. • In Windows 2000, each process has its own set of process page tables to map that private address space. This is because Win2K provides a private address space for each process.

  24. File Management • Main objectives a file management system: • Meets the data management needs and requirements of the user. • Guarantees valid data in the files. • Optimizes performance from the viewpoint of the system and the user. • Provides I/O support for many storage device types. • Helps to eliminates losing or destroying data. • Provides a uniform set of I/O interface routines. • Provides necessary I/O support in times of multiple-user systems.

  25. File Management Continued • The only way that a user or application is able to access a file is through the file management system. • Win2K includes support for these file system formats: • CDFS, UDF, FAT12, FAT16, FAT32, NTFS

  26. File Management Continued • NTFS • Meets high-end requirements for workstations and servers. • Client/server applications, resource intensive engineering, network applications • Uses 64-bit cluster indexes, yet Win2K limits the size of an NTFS volume to 32-bit clusters.

  27. File Management Continued • Notable features of NTFS: • Recoverability, file and directory security, disk quotas, file compression, directory-based symbolic links, and encryption • Many of these support the main objectives for a file management system. • Organizes information into 4 regions on a disk volume: • Partition boot sector, Master file table, System files, File area

  28. Threads • Supports user-level and kernel-level threads • Kernel-level threads • User mode kernel-level threads • Created and runs in user mode • Can be preempted by the scheduler • System worker threads • Created by threads and only exist to do work for other threads • Specific types are: delayed worker threads, critical worker threads, and hypercritical worker threads

  29. Threads • Kernel-level threads continued • Kernel mode system threads • Have all the attributes of a user mode thread, but can only be run in kernel mode. • Objects running in kernel mode can only create this type of thread. • Has no process address space and must allocate all its storage needs dynamically from the heap- this is different than a user mode system thread.

  30. Threads • User-level threads • Created as a normal thread, and then converted to a fiber. • The scheduler does not preemptively schedule different fibers (threads). Instead, a fiber must be switched to from another fiber. • The system can preempt the thread controlling the fiber suspending the execution of the fiber.

  31. Mutual Exclusion and Synchronization • Works differently inside and outside of the kernel of Windows 2000. • Within the kernel, much of the mutual exclusion is done using spinlocks. • Outside the kernel, the objects providing mutual exclusion and synchronization rely on services provided by the kernel.

  32. Kernel Synchronization • Synchronization in the kernel of Windows 2000 guarantees that only one processor can be executing in a critical section. • Enforced by disabling certain interrupts. • Spinlocks used to protect the core data structures of the kernel.

  33. Kernel Synchronization Continued • Mutual exclusion and synchronization within the kernel • Dealt with by modifying how interrupts are handled. • Uses spinlocks • Spinlock- Provides a global data structure in the kernel. Before entering a critical section, the kernel must acquire the spinlock associated with the critical section

  34. Kernel Synchronization Continued • Mutual exclusion and synchronization outside the kernel • Executive objects use dispatcher objects (ex- mutexes, semaphores, events, waitable timers) • A thread will issue a wait on one of these objects if it wants to use it. • While waiting, the thread is placed into a suspended state until the dispatcher object enters a signaled state.

  35. Summary • Preemptive, multitasking, multiprocessing, multiuser • Scheduling / data management slightly different • Object-driven architecture • Hybrid kernel • Multiple-architecture realized through HAL

More Related