windows nt and real time
play

Windows NT and Real-Time? Reading: Inside Microsoft Windows 2000, - PDF document

CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Windows NT and Real-Time? Reading: Inside Microsoft Windows 2000, (Solomon, Russinovich, Microsoft Programming Series) Real-Time Systems and Microsoft Windows NT


  1. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Windows NT and Real-Time? • Reading: “Inside Microsoft Windows 2000”, (Solomon, Russinovich, Microsoft Programming Series) • “Real-Time Systems and Microsoft Windows NT” (MSDN Library) • “Windows XP with RTX - The off-the-shelf platform for Integrated Communication Equipment” (www.venturcom.com) Priorities in Windows NT/2000 1

  2. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time IO System Components (Windows 2k) Win32 Applications services user-mode setup WMI PnP service components manager .inf files user mode .cat files registry kernel mode I/O system WDM WMI PnP Power I/O routines manager manager manager drivers ... HAL Device Driver Layering 2

  3. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Device Driver Layering (2) Primary Device Driver Routines • NT/2000 device drivers run entirely within the system process and have access to all hardware through the HAL. A typical device driver will have several components: • Initialization routine This routine dispatch initializes hardware and sets up dispatch data structures used by the driver routines dispatch start I/O routines at startup time. routines routine • Interrupt service routine (ISR) This routine handles an interrupt on the device that the device driver controls. • Deferred processing call (DPC) One add-device IO interrupt or more DPCs handle non–time- critical processing for the driver. routine system service routine • System thread Some, but not all, drivers will have a system thread for very low- priority work. initialization DPC routine routine 3

  4. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Control Flow for an IO Operation Application Call ReadFile() ReadFile Call NTReadFile() Kernel32.dll return to caller NtReadFile INT 2E Ntdll.dll return to caller User mode Kernel mode KiSystemService Call NTReadFile() Ntoskrnl.exe dismiss interrupt NtReadFile Whether to wait depends Invoke driver Ntoskrnl.exe dismiss interrupt on overlapped flag Initiate I/O operation Driver.sys dismiss interrupt Queueing and Completing a Synchronous Request 4

  5. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Servicing a Device Interrupt (only Phase I) Servicing a Device Interrupt (Phase II) 5

  6. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Completing an I/O Request (Phase I) Completing an I/O Request (Phase II) 6

  7. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Priority Levels vs. Interrupt Levels • The HAL maps hardware- interrupt numbers to IRQLs. 31: High • IRQLs are not the same as 30: Power Fail IRQs in x86. 29: Inter-Processor Interrupt • Scheduling priority is 28: Clock attribute of thread, while 27: Profile IRQL is attribute of an Hardware 26: Device n interrupt source. Interrupts • Lazy IRQL management for slow PICs. • Code running at DPC/dispatch level or above can’t wait on object if so would necessitate scheduler 3: Device 1 to invoke another thread. 2 DPC/dispatch Software 1: APC Thread Interrupts 0: Passive Priorities 0-31 Memory Management • Paging I/O occurs at a lower priority level than the real-time priority process levels. Paging within the real-time process is still free to occur, but this really ensures that background virtual memory management won't interfere with processing at real-time priorities. • Windows NT permits an application to lock itself into memory so that it is not affected by paging within its own process. This allows even very large processes (such as raster image processing, where some processes are over 100MB) to lock all their memory down into physical memory and avoid the overhead of paging, while allowing the rest of the system to function normally. • Windows NT memory management allows for memory mapping, which permits multiple processes—even device drivers and user applications—to share the same physical memory. This results in very fast data transfers between cooperating processes or between a driver and an application. Memory mapping can be used to dramatically enhance real-time performance. 7

  8. CPSC-663: Real-Time Systems Windows NT/2000 and Real-Time Windows 2000/NT and Real-Time Processing • Windows 2000/NT does not prioritize device IRQs in controllable way. • User-level applications execute only when a processor’s IRQL is at passive level. • System’s devices and device drivers – not the OS – ultimately determine the worst-case delay. • This is a problem with off-the-shelf hardware and drivers. • System designer must bound the length of device’s ISR and DPC in the worst case. • Embedded versions of Windows NT/2000 provide control over memory footprint etc, but are not real-time capable. • Extensions of real-time kernels can be provided through custom extensions of the HAL. VenturCom RTX Architecture 8

Recommend


More recommend