Download Windows Architecture - Advanced Operating Systems - Lecture Slides and more Slides Advanced Operating Systems in PDF only on Docsity!
CS 620 Advanced Operating
Systems
Lecture 6 – Windows Architecture
Windows Architecture
- The current version of Windows (Windows 7),
as well as Vista, XP and 2000 are based on the
Windows NT kernel
- This lecture describes the Windows NT architecture
- Previous versions of Windows (ME, 98, 95, 3.1) are based on a different (less advanced) kernel which was an extension of MS-DOS
Windows NT Design Goals
- Security : Windows NT has a uniform security
architecture designed to provide a safe environment to run mission-critical applications. It has met the requirements for C2 level security.
- Distributed Processing : NT is designed with
networking built into the base OS. NT supports a number of transport protocols and named pipes, remote procedure calls (RPCs), and Windows Sockets.
Windows NT Design Goals
- Reliability and Robustness : this means that the architecture must protect the OS and applications from damage. Applications cannot read or write outside of their own address space. The OS is isolated from applications.
- Localization : NT is offered in many countries around the world, in local languages, and supports Unicode.
- Extensibility : the modular design of NT allows modules to be added to all levels of the OS.
Windows NT Architectural
Modules
- User mode is a less privileged processor mode with no direct access to hardware. Code running in user mode acts directly only in its own address space. It uses well- defined operating system application program interfaces (APIs) to request system services. The environment and integral subsystems run in user mode.
- In Windows NT 4.0, the Windows Manager, the Graphics Device Interface (GDI), and graphics device drivers have been moved from the Win32 subsystem to the Windows NT Executive. This was done to improve performance, but it reduces the reliability of the system.
Windows NT Architectural
Modules
- Windows NT 4.0 moves further away from a pure microkernel architecture.
- Pure microkernel architectures are modular, and they keep the number of components running in kernel mode to a minimum.
- These architectures are inherently more reliable, but they may suffer from performance problems due to constant context switches.
- Windows NT is a modified microkernel architecture.
Windows NT 4.0 Architecture
Unix Architecture
Application
X-Windows (^) User Mode
Kernel Mode
Device Drivers Process Mgmt., Memory Mgmt, etc.
Hardware Dependent Code
System Services
Namespace and Object
Management
- Kernel subsystems define Object Manager objects to represent the subsystem’s resource types, and rely on the Object Manager’s support routines for naming and security.
- Processes are represented as process objects, files as file objects, etc.
- The Object Manager notifies subsystems that own an object when applications close, open, or query the object. This is done via method functions registered when the object type is defined.
- In response, subsystems can perform actions particular to the object type.
Namespace and Object
Management
- UNIX’s object-tracking mechanism is not as formal
as NT’s. It is based on i-nodes.
- Remember that files represent devices and
sockets as well as “normal” files.
- The kernel notifies file system drivers of actions
that applications perform on i-nodes.
- This is done by calling functions registered in a
table that the file system associates with i-nodes.
- Both namespaces are hierarchical.
Process Management
- The NT scheduler divides time between threads (not between applications). Applications can create additional threads, and all of an application’s threads share resources and memory space.
- The scheduler attempts to give CPU time to the highest-priority thread available.
- There are two classes of threads: dynamic (with a priority value of between 1 and 15) and real-time (with values between 16 and 31).
Process Management
- Real-time priority values are fixed; the scheduler
does not adjust those priority values.
- Typically, only a few OS-owned threads execute in the real-time range.
- Same priority threads are scheduled in a
preemptive, round-robin manner.
- The NT scheduler can also preempt the kernel.
Further, multiple threads can execute kernel code on separate CPUs.
- These two features allow for SMP.
Process Management
- Process management in modern UNIX systems is similar to NT process management.
- UNIX schedulers usually implement three priority classes - realtime, system, and dynamic - that span priority numbers from 0 to 100.
- The kernels of most UNIX implementations are fully preemptible and reentrant. - Several varieties of UNIX (HP-UX, AIX, Solaris) run on large SMPs with 32 or more CPUs, some run on asymmetric multiprocessors. NT 4.0 was limited to 8 CPU SMPs.
Memory Management
- An OSs memory manager is responsible for defining virtual address spaces for application code and data, and for sharing the physical memory resource of the computer among applications.
- NT’s Memory Manager defines a 32-bit virtual address map for 4GB of virtual memory. Usually, NT assigns the low 2GB to the user mode and the upper 2GB to the kernel mode. - Applications do not have direct access to the kernel- mode portion of the address space.