Comparing the Real-time Performance of Windows NT to an NT Real-time Extension

Size: px
Start display at page:

Download "Comparing the Real-time Performance of Windows NT to an NT Real-time Extension"

Transcription

1 Comparing the Real-time Performance of Windows NT to an NT Real-time Extension Kevin M. Obenland, Tiffany Frazier, Jin S. Kim, John Kowalik The MITRE Corporation, 1820 Dolley Madison Blvd. McLean, VA Contact: Abstract Because of the dominance of Microsoft Windows in the PC market there is a strong interest in using Windows NT as a platform for real-time process and control systems. This type of solution is very cost effective because applications and development tools are widely available. However, Windows NT was designed as a general purpose operating system and optimizes average not worst case performance. In this paper we investigate two methods for bring real-time process and control systems to NT based platforms. We first evaluate NT as-is, using a series of realtime benchmarks, and show that NT use in real-time systems is limited to soft real-time systems where there is low system load. The second approach for developing NT based real-time systems is to add a real-time extension to NT. We evaluate one such product, INtime from RadiSys and conclude that, even under a heavy system load, hard real-time determinism is possible. 1 Introduction The Windows suite of operating systems, Windows 95 /98 and Windows NT, dominate the personal computer operating system market[1]. Because of this large market there is a vast amount of affordable Commercial off the Shelf (COTS) software products available for these operating systems. The popularity of Windows also makes it desirable to use it in other types of systems like real-time process and control systems. Windows NT is the most robust of all the Windows operating systems and it is therefore the most likely candidate for use in real-time systems. Using Windows NT allows these systems to utilize low cost COTS software and increases the user friendliness of the system because they look and feel more like the personal computer environment. Because of these market forces, the use of Windows has also been mandated by various agencies within the Department of Defense[2][3][4]. Unfortunately NT was designed as a general purpose operating system not a real-time one[5]. It was designed to optimize average performance and not worst case performance as is required of any real-time operating system. Despite its shortcomings there are several efforts underway to use NT as-is for real-time systems[6][7][8]. These efforts are motivated by the low cost of using NT based systems as well as the stability of the Windows Application Programming Interface (API)[9]. In this paper we quantify factors that determine under what conditions it makes sense to use NT for real-time processing. Another alternative, that still allows the use of NT COTS, is to add a real-time extension to NT[10]. This extension is essentially a separate real-time operating system. In this Dual-OS architecture all real-time processing is performed under the real-time OS, and NT handles the non time critical processing. In this system all NT COTS still run out-of-the-box. Therefore development time and cost are still kept to a minimum. In the last several years a number of vendors have produced products that follow this approach. These include the products: INtime from Radi- Sys[11], RTXTM from VenturCom[12][13], and HyperkernelTM from Imagination Systems[14]. In this paper we evaluate one of these products, INtime, and show that it is significantly more deterministic than NT alone. There have been several previous studies which evaluated the real-time performance of NT and/or NT extension products[6][7][8][15][16][10][17]. However, in this paper we provide a direct and unbiased comparison between the two approaches. Many of the previous performance evaluations were performed by the manufacturers themselves. Another key factor, that we examine in detail, is the issue of system load. We find that the determinism of NT is significantly worse when considering a load. However, the determinism of processes running under the INtime realtime extension are relatively unaffected by a system load. 2 Evaluating real-time OS behavior The correctness of a calculation performed by a realtime system is determined by its ability to satisfy time constraints as well as its ability to operate error free[18]. In this paper we consider only real-time systems that are based on COTS operating systems which means that it is impossible to analyze all possible paths in an application. The use of

2 COTS also means that our analysis must be stochastic, based on data gathered empirically, rather than mathematical. We note, however, for complex hard real-time systems (such as those deployed by the Department of Defense) stochastic analysis is the technique generally used to verify critical timing requirements. 2.1 Real-time operating systems In order to construct a real-time computer system the underlining operating system must abide by several requirements[5]. These requirements are outlined below: Support for multiple preemptable threads - Individual threads are typically used to process different hardware devices. It is important that the threads are preemptable so that a scheduler can be used to control the allocation of system resources. Thread priority - A priority scheme is essential to ensure that time critical processing takes precedence over less critical processing. Synchronization between threads - Threads that share data require a means of synchronization so that data is read and written in the proper order. Deterministic timing of the operating system - This usually requires that the operating system be preemptable. A non-preemptable operating system could impose unbounded delays. Support to prevent priority inversion - Priority inversion occurs when a high priority task is waiting on a resource that is held by a lower priority task. The high priority task could be blocked indefinitely if a task with intermediate priority preempts the low priority task. The typical solution for priority inversion is to increase the priority of the low priority task until it relinquishes the resource. Using these five requirements one can evaluate the ability of an operating system to support real-time processing. For example, NT provides multiple preemptable threads but allows only 32 levels of priority. NT also does not provide a mechanism to prevent priority inversion for the highest priority threads. The design choices used in NT and how this relates to real-time systems are discussed in more detail in Section Testing a real-time operating system We used the six different types of benchmarks shown in Table 1 to evaluate the real-time capabilities of NT and the Dual-OS system. The Jitter benchmark measures the determinism of timers of different duration and resolution. The benchmark uses a sleep function to sleep for the specified amount of time and then calculates the actual sleep time using the Pentium performance counter. The jitter is the difference between the actual and desired sleep durations. The response benchmark tests the ability of a system to perform a fixed amount of processing in a deterministic amount of time. The test repeats simple operations such as floating point additions, block memory copies, or disk write operations for a base case duration of approximately 10 milliseconds. The Bintime benchmark tests to what degree the clock granularity is available to a real-time application. It records the latency between successive calls to a time of day clock function[19]. To support deterministic response to external events an OS must process interrupts in a timely fashion. The ISR latency benchmark measures the responsiveness of the OS to the assertion of the interrupt and the ISR release latency benchmark measures the delay seen when transferring control from the ISR to the interrupt thread that completes the processing of the interrupt. The final type of benchmark tests inter-thread/process communication by measuring the time it takes one thread to signal another. Benchmark Jitter Bintime ISR Latency ISR Release Latency Communication 2.3 Hardware setup TABLE 1. Real-time benchmarks Description Measures the difference between the observed and desired delay times of various OS timer functions Measures the amount of time required to perform a fixed amount of processing Tests the responsiveness of an operating system by measuring the time between calls to a time of day clock function Measures the amount of time from the assertion of an interrupt to the beginning of its ISR Measures the time it takes to switch from an ISR to an interrupt thread Tests various inter-thread/process communication mechanisms Table 2 describes the hardware and software configuration of the prototype systems used in our evaluation studies. Everything used is commercially available as standard COTS. All timings in our studies were gathered by the benchmarks themselves, we did not use any special purpose hardware to stimulate the system or gather statistics. We did not install INtime when evaluating the NT only system because INtime modifies the Hardware Abstraction

3 Layer (HAL) of NT. The HAL is the portion of NT that isolates the low level hardware details from the kernel and the device drivers. TABLE 2. Prototype hardware and software setup used in benchmark tests Component PC CPU Graphics Memory Description Dell Dimension XPS D megahertz Pentium II Matrox Millennium II with PCI bus retries disabled 64 Megabytes OS Windows NT Workstation 4.0 with Service pack 3 Real-time Extension INtime version 1.2 (only installed when performing Dual-OS testing) The behavior of device drivers may affect the real-time performance of the Dual-OS system. In particular we found that the Matrox graphics driver locked the PCI bus for extended periods of time. This problem can be eliminated by disabling the PCI retry feature of the Matrox device driver. See Section for a discussion of how device drivers can impact real-time performance.system Loading The main utility of using NT in a real-time system, with or with out a real-time extension, is the ability to run nonreal-time applications as-is. Therefore we expect real-time and non-real-time processes to be running simultaneously, making it important to include a system load while evaluating the prototype systems. Table 3 describes the different types of system load introduced in the benchmark testing. We also ran without a load, signified by the load None, to measure the affect an idle NT has on the real-time performance. To generate the Moderate load we used an application that moves an image around in the graphics frame buffer. This application stresses the CPU and graphics sub-systems. The Heavy load adds a full text search across all files in the hard disk and a playback of an MPEG video to the Moderate load. The WinBench suite is a set of benchmarks that are traditionally used to test the performance of different hardware platforms[20]. The benchmark suite is made up of several different benchmarks, each targeting a specific hardware sub-system. Each benchmark runs a set of popular Windows application programs and produces a performance metric. We use the WinBench suite, not to test system performance, but to determine the impact of different types of loading on real-time performance. Table 4 shows the different WinBench98 benchmarks used in our testing. The CPU test consists of two different tests, one targeting the CPU itself and one targeting the FPU. Both the Disk and Graphics benchmarks give results for a set of Business applications and a set of High-end applications. The business applications consists of programs such as: Microsoft (Access, Excel, Powerpoint, and Word) as well as Lotus The High-end applications include programs such as: Microsoft Frontpage and Visual C++ and Adobe Photoshop. Load None Moderate Heavy WinBench98 Sub-system CPU CDROM Disk Graphics 2.4 Testing methodology TABLE 3. Application loads Description No load other than the OS and the benchmark test A CPU intensive application Three applications: a CPU intensive application, a string search across all files on the hard disk, and playback of a MPEG video from the CDROM Benchmarks that target specific hardware sub-systems (cpu,disk,cdrom,graphics) TABLE 4. WinBench benchmarks Benchmark CPUmark32 FPUwinmark CD-ROM Winmark Business Disk Winmark High-end Disk Winmark Business Graphics Winmark High-end Graphics Winmark The number of tests that must be run, so that a representative maximum is seen, is a major consideration when testing these operating systems. The benchmark results consist of the results from a number of trials, where each trial consists of a series of 4,000 samples. We ran at least 40 trials (i.e. 160,000 samples) of each benchmark. To determine if more trials were needed we calculated a confidence interval over the means of the maximums from each trial. This formulation assumes that the maximums are normally distributed. For the NT only tests, additional trials were run until the confidence interval of the maximums

4 was less than 20% of the mean with a certainty of 95%. For the INtime tests we were able to achieve a confidence interval of less than 5% of the mean with the same level of certainty. Close to 1,000 trials were run for several of the tests to achieve this bound. Extra trials were needed for the benchmarks where the variance was the greatest. 3 Using Windows NT as a real-time OS Using NT stand alone as a real-time OS is attractive for several reasons. First it is relatively inexpensive. All that is needed is a standard PC, NT itself and program development tools like Visual C++. Portability and longevity is the second advantage of using Windows NT. The WIN32 API is a defacto standard and programs written using it should be compatible with future upgrades of NT[9]. However Windows NT was designed as a general purpose operating system and several design decisions limit its use as a real-time operating system. In this section we discuss these design issues and use our benchmark tests to determine under what conditions NT might be suitable for use as a real-time OS. 3.1 Scheduling and priority in NT NT uses a priority based scheduling scheme with 32 levels of priority. These 32 levels are divided into four different priority classes: IDLE, NORMAL, HIGH and REALTIME, where IDLE is the lowest priority and REAL- TIME the highest. The NORMAL and HIGH priorities can be modified dynamically by NT to achieve fairness and maximize average performance. The priorities of individual threads within classes can also be prioritized by using a priority modifier. NT uses this modifier to determine how to raise and lower priority levels while doing dynamic priority adjustment. REALTIME threads do not use priority modifiers and are not affected by NT s dynamic priority adjustment scheme[1]. 3.2 Interrupt processing In NT, interrupt processing is handled using two types of routines: an Interrupt Service Routine (ISR) and a Deferred Procedure Call (DPC). When an interrupt is detected, NT interrupts normal processing and passes control to the interrupt s corresponding ISR. Because an ISR disables all processing, other than higher priority interrupts, it is recommended that only minimal processing occur within an ISR. The bulk of the processing should be performed in a DPC. DPCs are invoked via a signal from their corresponding ISR. If there are more than one DPC in the system, they are handled one at a time in FIFO order. 3.3 Design issues that limit NT s use as an RTOS The scheduling and interrupt processing design choices described above limit NT s use as a real-time operating system. The limitations imposed by these design choices are listed below: No priority inheritance for REALTIME threads - Threads at this level are the highest priority, however there is no mechanism to prevent priority inversion. Limited number of priorities - There are only seven levels of priority for real-time threads. This severely limits the amount of control the system designer has over thread priorities. When more than one thread shares a priority level they are processed in FIFO order. DPCs are processed in FIFO order - Much of the work of a device driver occurs in a DPC. Because these DPCs are processed in FIFO order, a DPC that needs to perform time critical processing may be delayed indefinitely by less critical processing. Time-critical DPCs can also be delayed by the processing of low priority ISRs. Masking interrupts - Any code, running at kernel level, can effectively gain exclusive access to the CPU by disabling interrupts or raising the interrupt request level (IRQL) to the highest level. This problem is exasperated by the previous one because if a device driver needs deterministic response its only choice is to disabled interrupts. This winner-takes-all philosophy can lead to unpredictable and ill behaved device drivers. Page Swapping - Because NT uses virtual memory, page swapping can occur at any point during the execution of a thread. This can add a significant amount of indeterminism. There is a mechanism to lock pages in memory, however NT does not guarantee that the pages will remain locked if the process is swapped out [21]. IRQL mapping - The mapping of interrupts to IRQLs is performed dynamically by the HAL at system startup as it detects the devices attached to the system. Any assumptions made about the relative order of interruptassociated IRQLs within a system will not be portable because other systems may have different hardware architectures. Interrupts and DPCs are higher priority than real-time threads - Any and all interrupts and DPCs, including non-real-time NT device drivers, can preempt any realtime thread. This means that non-real-time activities, like the movement of the mouse, will preempt time critical processing.

5 3.4 Benchmark results for NT In this section we use the benchmark tests described in Section 2.2 to evaluate NT as an RTOS. Real-time performance of NT under load. Table 5 shows the maximum and average values for the benchmarks of Table 1 under the different loads described in Table 3. For the benchmark the results are given in milliseconds, for all other benchmarks the results are given in microseconds. For all benchmarks, except the benchmarks, a good result is one that is close to zero. For the benchmarks a desirable results should be close to the base case, as defined in Section 2.2, of approximately 10 msec. TABLE 5. Benchmark results for NT under different loads Benchmark Max Avg Max Avg Jitter, T=10, R= R= R= Bintime (Add)(msec) (Copy)(msec) (Disk)(msec) ISR Latency DPC Timing As the results show the average real-time performance for NT is reasonable. The average under Heavy Load is higher than under the, but still within an acceptable region. These results are not surprising because NT is designed to optimize average performance. However, in a real-time OS, determinism is important and therefore the maximum value of the benchmarks is a more important statistic. In this case the benchmark results show that NT performs rather poorly. For example, there is a maximum jitter of close to 7 msec for a timer with a period of 10 msec without a load. The jitter is even worse (25 msec) when there is a heavy load, i.e. two and a half times the period. Percentage wise the maximum jitter is better for the 100 msec timers than the 10 msec timer because the jitter in the longer timers represents a smaller percentage of the total period. The maximum jitter, at around 25 msec, represents a jitter of about 25% of the period of the timer. For process control systems, a general rule of thumb is that scan time variations should not exceed 5% of the cycle time [7]. Many of the studies performed by process control manufacturers indicate that NT can meet the 5% scan time variation requirement. However, our tests show that under a system load this is not always the case.the general conclusion of the jitter results is that NT can support at best a timer with a period of 100 msec. The bintime results also give a similar conclusion. Under a the maximum time between calls to the time of day clock is 218 msec. Therefore the timer resolution available to a realtime application is on the order of hundreds of msec. Frequency Frequency Moderate Load Jitter (µ sec) FIGURE 1. Histogram of NT jitter for period T=10 ms and resolution R=1 ms Moderate Load Jitter (µ sec) FIGURE 2. Histogram of NT jitter for period T=100 ms and resolution R=10 ms The jitter results near the maximum value represent a very small percentage of the total number of samples. Figure 1 and Figure 2 show histograms of jitter results for

6 two different timers: (T=10,R=1) and (T=100,R=10). The results are plotted on a log/log scale and each point represents a discrete bin; the lines connecting the points are included only to improve the readability of the histogram. As Figure 1 shows, for the 10 millisecond timer, there are more than three million samples less than 100 msecs but only around 100 that are greater than 1 msecs for a Moderate Load. The samples that are greater than 1 msec only represent 0.003% of the total samples. The results for the 10 msec timer under are slightly better but very similar to the results under a Moderate Load. For a Heavy Load the maximum jitter occurs more frequently. However a jitter over 1 msec occurs in only 12% of the cases. Figure 2 shows a histogram of the results for a timer with a period of 100 msecs and a resolution of 10 msecs. Out of the more than one million samples gathered for the case with a Moderate Load, only one is on the order of 1 msec. There are also less than 0.3% that are greater than 100 µsecs. The results are worse when a is used. In this case about 12.5% are greater than 1 msec and 1.4% greater than 10 msecs. The response results shown in Table 5 show that even without a load the time to perform a fixed amount of processing can take anywhere from 59% to 210% more time than the desired base case. The average response is close to the desired time in all cases, i.e. about 10 msec. The results are the worst under a. The worst case for the Add test is more than six times that of the base case and for the Disk test the maximum time takes close to four seconds. The Disk test is especially bad because the DPCs used in its I/O processing have to contend with DPCs used by the application programs used to create the loads. The two benchmarks that test the interrupt performance of NT show that NT s interrupt response time is fairly good, but the time it takes to start processing a DPC can be more than 11 msecs. Interrupt response time is good because interrupts are higher priority than anything else in the system. Table 5 shows that the maximum interrupt latency is 54.8 µsecs. The maximum DPC service time is so great because DPCs are processed in FIFO order. When the system is loaded the DPCs in the benchmark are delayed by the DPCs generated by the application load. Testing NT using WinBench 98. Using WinBench98 to generate a load allows us to pinpoint more accurately the type of processing that causes the greatest effect on realtime performance. Table 6 shows the maximum values for the different WinBench loads. As Table 6 shows the timer jitter is most affected by a load that contains a lot of I/O processing. The CD-ROM WinBench load produces the worst case jitter followed by the Disk and Graphics tests. The worst case jitter for the CD-ROM test is close to 1.4 seconds for a timer with a period of 100 msec and resolution of 10 msec. The jitter under a CD-ROM load is worse than any of the jitter results shown in Table 5. The CPU WinBench load creates the least amount of worst case jitter, at less than 5 msec. Here again DPCs are the main cause of jitter. The I/O intensive loads create more DPCs which always run at a higher priority than the real-time thread that is waiting on the timer. This effect is substantiated by the results of the DPC timing test shown in Table 6 where a maximum delay of nearly 11 msec is seen while using the CD-ROM Win- Bench test as a load. TABLE 6. NT benchmark results under different WinBench 98 loads Maximum value CPU/ CD- Benchmark FPU ROM Disk Graphics Jitter, T=10, R= R= R= Bintime (Add)(msec) (Copy)(mses) , (Disk)(msec) ISR Latency DPC Timing The WinBench loads have an even greater effect on the real-time response than the loads of the previous section. For example the Add test has a maximum response time that is 17 times the base case under the CD- ROM WinBench load. Conversely the CPU WinBench load has the least effect on the Add test. The test and the WinBench load compete equally for the CPU. Likewise the Disk test is least affected by other disk activity. The Disk Winbench load has the least effect on the Disk benchmark. Table 6 shows that the maximum Bintime result is dramatically affected by the WinBench loads. Bintime tries to utilize 100% of the CPU and when it must compete with another CPU intensive application the delay between calls to the clock function can be as high as 870 msecs.

7 4 Dual-OS system As seen in the previous section, NT alone is not well suited for use as a real-time operating system. However, frequently real-time systems utilize a mixture of real-time and non-real-time processing. Because of the vast amounts of COTS available for NT there is an advantage, in terms of cost and usability, in using NT for the non-real-time processing. These requirements have led to the development of several products which add a real-time extension to NT, enabling a greater degree of real-time performance to be achieved while retaining the ability to run NT applications out-of-the-box. These extensions essentially create a Dual- OS system where all the real-time processing runs under the extension and the non-real-time processing runs on NT. A possible disadvantage of these products is the added software cost. The cost of these products is driven by the relatively small real-time computing market and not the mass consumer market. Therefore the extension products will have a price closer to that of an RTOS which is considerably more than the cost of Windows NT. However, these costs must be weighed with the savings of using NT COTS software for non-real-time tasks. Therefore the Dual-OS approach provides a solution that has better real-time performance than NT but is more cost effective than using a custom RTOS. To evaluate the usefulness of this Dual-OS approach we evaluated one of the products, INtime from RadiSys, using the same benchmarks used for NT in the previous section. The remainder of this section describes INtime and presents the results of the benchmark testing. 4.1 The INtime real-time extension to NT INtime encapsulates all of NT into one hardware task and creates another hardware task for the real-time extension. This encapsulation provides hardware isolation of the real-time memory space from the NT memory space. Everything that runs under NT then runs within a single task that runs at the lowest priority under INtime. INtime modifies the Hardware Abstraction Layer (HAL) of NT to prevent NT from modifying the real-time clock and disabling or remapping real-time interrupts Design of INtime Scheduling. The INtime scheduler is hooked into the NT timer interrupt, the highest priority interrupt other than the Non Maskable Interrupt (NMI). The INtime scheduler can therefore preempt any NT thread, DPC or interrupt processing. There are 256 priority levels within INtime compared to NT s 32 levels. Interrupt processing. Intime uses an interrupt mechanism similar to NT s. Interrupt processing under INtime is performed using two elements: an ISR and a corresponding interrupt thread. The ISR acknowledges the interrupt and should perform a minimal amount of processing because all interrupts are disabled while processing an ISR. The system calls that an ISR can use is also limited. The bulk of the processing should be performed in an interrupt thread. An interrupt thread is analogous to a DPC, however interrupt threads are prioritized. Communication and synchronization. INtime provides a number of means of communication and synchronization between real-time threads as well as between a real-time process and a NT process. Message passing between threads is accomplished using mailboxes. A mailbox can be used to pass up to 128 bytes of data between threads. When sending a message the sender queues the sent message and returns. The receiver of the message blocks on the receive operation until the message is delivered. Shared memory is used to share larger amounts of data between threads. All shared memory is locked into INtime s address space and cannot be paged out of memory. INtime provides two types of synchronization mechanisms: semaphores and regions. A semaphore is a autonomous shared binary counter. One thread signals the semaphore and another blocks waiting on the signal. Regions can be used to guard critical sections of code. Priority inheritance is implemented in regions thereby providing a solution to the priority inversion problem. Real-time API. To control the real-time mechanisms such as thread scheduling and communication INtime provides a real-time API which is patterned after Win32. However, since Win32 is not a real-time API, the real-time API is specific to INtime. This is one of the drawbacks of using an extension product, i.e. the code is dependent on one particular vendor. The alternative of modifying Win32 function calls to support real-time processing is not an attractive solution either. An API which is syntactically the same as Win32 but semantically different introduces inconsistencies and invites application errors. Also different vendor s modifications to Win32 will undoubtedly be inconsistent INtime s support for real-time processing Because of its design INtime does not exhibit the same limiting factors with respect to real-time performance. The differences in INtime versus the choices made by NT, as described in Section 3.3, are as follows: 256 thread priorities: INtime provides 128 user thread priorities and 128 interrupt thread priorities.

8 Support for priority inheritance: Regions support priority inheritance in INtime which provides a solution to the priority inversion problem. Interrupt thread priorities: Unlike their counterparts in NT (DPCs) interrupt threads in INtime are prioritized. This eliminates indeterminate delays within time critical interrupt processing. This allows the systems designer to prioritize interrupts and therefore a time critical device driver does not have to disable interrupts. All memory used within INtime is locked into memory: This eliminates the nondeterministic delay caused by page swapping. Because of the basic design and use of NT based systems there is a fundamental limit to the amount of non determinism that INtime or any other real-time extension can eliminated from the system. One example is the fact that code running in NT kernel mode can disable interrupts using the CLI instruction. Because the real-time scheduler is connected to the highest priority interrupt, disabling interrupts therefore also disables the real-time scheduler. Within NT itself this is rarely done, but all device drivers run in kernel mode and there is no guarantee that they will not disable interrupts for prolonged periods of time. Another source of indeterminism, that cannot be prevented, is I/O bus locking. For example if a device driver locks the PCI bus it will block any other process that needs to access it. This occurs, by default, in the PCI based Matrox video card that was used in our testing. In this particular case the problem can be eliminated by disabling the automatic PCI retry feature of the device driver. 4.2 Benchmark results for the Dual-OS system In this section we use the benchmark tests described in Section 2.2 to evaluate the effectiveness of INtime. Real-time performance of INtime with a load. Table 7 shows the maximum and average values of the real-time benchmarks described in Table 1. With a few exceptions, the benchmarks correspond closely to those run under NT. INtime allows a higher timer resolution, so we ran additional jitter tests with periods of 1 msec and 200 µsec. The Disk test could not be run because INtime does not support NT disk operations within real-time threads. The Bintime benchmark tries to use 100% of the CPU therefore it is not possible to run it along side a load. Also included are the Semaphore test, which tests signaling delay of a semaphore, and the NT/RT Round-trip test which tests the communication delay between NT and a real-time thread. TABLE 7. Benchmark results for INtime under different loads Benchmark Max Avg Max Avg Jitter, T=0.2, R= Jitter, T=1, R= Jitter, T=10, R= R= R= Bintime N/A N/A (Add) (msec) (Copy) (msec) ISR Latency Thread Timing Semaphore NT/RT Roundtrip As Table 7 shows real-time processing under INtime is much more deterministic than NT. The worst case timer jitter is less than 50 µsec even under a. For all cases the jitter is lower than the timer resolution. The average jitter is also low. Ranging in value from 0.57 µsec up to a maximum of 8.9 µsec. The response for Bintime is at Frequency Moderate Load Jitter (µ sec) FIGURE 3. Histogram of INtime Jitter for period T=10 ms and resolution R=1 ms

9 most 18.2 µsec compared to a maximum of 6.9 msec for NT. The 18.2 µsec Bintime response seen for INtime, is better than response times of 16 msec for Lynx OS and 65 msec for Solaris seen in another study[22]. Figure 3 and Figure 4 show histograms of the jitter for two timers (T=10, R=1 msec and T=100, R=10 msec). For the 10 msec timer 99.4% of the samples are less than 10 µsec without a load. With a 81% of the samples are less than 10 µsec. Frequency Moderate Load Benchmark Jitter, T=0.2, R=0.2 Jitter, T=1, R=1 Jitter, T=10, R=1 R=1 R=10 (Add) (msec) TABLE 8. INtime benchmark results under different WinBench loads CPU/ FPU Maximum value When trying to decide whether to use NT for a real-time system or whether to also include a real-time extension, one must weigh the real-time requirements of the system versus the issues of cost and portability. NT as a technology is mature and widely used so software developed under it will have better longevity than software developed using a vendor specific API. The real-time extension products are not as mature but they offer the opportunity for significantly better real-time performance. One must also consider, that when following either approach, there are always going to be limitations imposed by using an NT based system and COTS software[23]. The benchmark results in this paper show that the realtime performance of the INtime extension product is significantly better than that of NT. We show that INtime can support periodic processing on the order of microseconds, under any loading condition, whereas NT can only support millisecond timers under light or no load. INtime can per- CD- ROM Disk Graphics Jitter (µ sec) FIGURE 4. Histogram of INtime Jitter for period T=100 ms and resolution R=10 ms (Copy)(msec) ISR Latency Thread Timing Testing INtime using WinBench 98. Table 8 shows that, even though the real-time processing under INtime is still more deterministic than NT, the WinBench loads have a more significant effect on real-time performance than the application loads shown in the previous section. The worst case jitter is slightly greater, but is still less than 100 µsec. The Copy test shows the most significant difference in determinism. For all the WinBench loads the maximum is about 22% higher than the base case. This is most likely attributed to cache effects which occur because the data written in the test is flushed from the cache by the WinBench load. This worse case happens relatively infrequently. For example, for the CD-ROM load only 0.006% of the samples are greater than 20 msec. The other benchmarks also show a significant advantage for using INtime versus NT. The Add and Copy response results are also very close to the base case. The interrupt latency is slightly better for INtime and the thread timing results are significantly better than the DPC timing results of NT. The interrupt threads are higher priority than any NT processing. Communication between threads in INtime is very deterministic, as shown by the results of the Semaphore test. However, the NT/RT Round-trip benchmark shows that, communication between NT and a real-time thread can take as much as 8.75 msec. Semaphore NT/RT Round-trip , Conclusion - Comparing the real-time extensions to NT

10 form a fixed amount of processing with at most a 22% increase in processing time. NT on the other hand exhibits a worse case increase close to 10,000%. Even though our benchmark results are based on only one of the available products we expect that other products, that use the same basic underlying technology, would exhibit similar results. The difference between NT and INtime is the largest when non-real-time application loads are run alongside real-time ones. It is important to consider this non-realtime processing because the biggest advantage of using NT is the ability to leverage the vast amount of COTS software available for it. Also, our benchmark tests only consider a single thread of real-time processing; running multiple threads will also increase the overall system load. The Dual-OS approach addresses these two problems by first: isolating the non-real-time processing of NT into a low priority task and second: using a priority scheme for all objects in the system so that all real-time processing can be prioritized. Because the development of NT applications has a lower software cost, for systems with fairly soft real-time requirements using NT by itself may be more practical than the Dual-OS approach. NT is a lower cost solution because the general purpose operating system market is much larger than the real-time OS market. There are possibly other software development costs associated with using a real-time extension. Each different extension product uses its own API. This requires a time investment on the part of the developer to learn this API, and if in the future the product is no longer supported, porting the system to a new environment requires learning a different API still. Also because of limited resources the extension manufactures generally provide real-time device drivers for only a subset of the different types of peripheral devices. Using any hardware not supported requires writing a custom device driver. There are other PC based operating systems, other than NT, which may allow the implementation of real-time systems using PC hardware. Windows CE has potential as a real-time OS[24][25]. CE requires a relatively small footprint and was developed with the hand-held market in mind. It is also modular which allows a system developer to customize the OS for each system. However CE is not identical to NT and therefore has the disadvantage that it cannot run NT applications out-of-the-box. Linux is another operating system that, in the future, may allow real-time processing on PC platforms. Linux is a UNIX variant and there are current research efforts underway for the development of a real-time Linux[26][27]. References [1] H. Custer. Inside Windows NT. Microsoft Press [2] Defense Information Systems Agency (DISA). Defense Information Common Operating Environment (DII COE) [3] Defense Information Infrastructure (DII COE) Integration and Runtime Specification (I&RTS), Version 3.1, [4] Dept. of the Navy (DON CIO ITSGIPT). Information Technology Standards Guidance Version [5] M. Timmerman and J. Monfret. Windows NT as Real-time OS? Real-Time Magazine 2Q [6] K. Ramamritham, et al. Using Windows NT for Real-time Applications: Experimental Observations and Recommendations Proceedings of RTAS [7] R. Malina. Using the Windows NT OS for Soft RT Control Rockwell Automation [8] Real-Time Systems and Microsoft Windows NT Microsoft msdn/library/backgrnd/html/realtime.htm. [9] R. Simon. Windows NT WIN32 API Superbible. Waite Group Press [10] M. Timmerman et al. Windows NT Real-Time Extensions: Better or Worse Real-Time Magazine 3Q [11] INtime: [12] B. Carpenter, et al. The RTX Real-Time Subsystem for Windows NT Proceedings of the Usenix Association Windows NT System Engineering Workshop [13] VenturCom homepage: [14] Imagination Systems, Windows NT for Real-Time Control? [15] N. Frampton, J. Tsao, J. Yen. Hard Real-time Extensions of Windows NT Evaluation Report GM Powertrain [16] M. Jones and J. Regehr. Issues in Using Commodity Operating Systems for Time-Dependent Tasks: Experiences from a Study of Windows NT Proc. of NOSSDAV [17] K. Obenland, et al. Dual Real-time/Non-real-time Common Operating Environment MTR 98W [18] E. Douglas Jensen. Real-time for the Real World. [19] L. Monk, et al. Real-Time Communications Scheduling: Final Report The MITRE Corp., MTR 97B [20] Ziff-Davis Inc. WinBench98 Benchmark suite. [21] J. Richter. Advanced Windows. Microsoft Press [22] R. Freedman et al. Real-time Benchmarking of the Solaris and Lynx Operating Systems MTR [23] Radisys Corp. Determinism and the PC Architecture. [24] RT Systems and Microsoft Windows CE Microsoft [25] M. Timmerman, et al. Is Windows CE a real threat to the RTOS World Real-Time Magazine 3Q [26] Michael Barabanov. A Linux-based Real-time OS. Master s Thesis New Mexico Institute of Technology [27] B. Srinivasan, et al. A Firm Real-Time System Implementation Using COTS HW and Free SW. RTAS

RT extensions/applications of general-purpose OSs

RT extensions/applications of general-purpose OSs EECS 571 Principles of Real-Time Embedded Systems Lecture Note #15: RT extensions/applications of general-purpose OSs General-Purpose OSs for Real-Time Why? (as discussed before) App timing requirements

More information

POSIX in Real-Time. By Kevin M. Obenland 03/15/2001. Daniel Correia nºmec Carlos Guisado nºmec 49099

POSIX in Real-Time. By Kevin M. Obenland 03/15/2001. Daniel Correia nºmec Carlos Guisado nºmec 49099 POSIX in Real-Time By Kevin M. Obenland 03/15/2001 Daniel Correia nºmec 18713 Carlos Guisado nºmec 49099 Posix. What is and why? The original Portable Operating System Interface for Computing Environments

More information

A Minimal API For Support of Real-Time Operations. Abstract. Introduction. Necessary Qualities of a Real- Time Operating System

A Minimal API For Support of Real-Time Operations. Abstract. Introduction. Necessary Qualities of a Real- Time Operating System A Minimal API For Support of Real-Time Operations. University of Columbia Computer Science Department Dirk Bridwell dnbridwell@earthlink.net Jan Miller janalanmiller@uswest.net Abstract To address the

More information

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory Commercial Real-time Operating Systems An Introduction Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory swamis@iastate.edu Outline Introduction RTOS Issues and functionalities LynxOS

More information

Real-time Operating System Timing Jitter and its Impact on Motor Control

Real-time Operating System Timing Jitter and its Impact on Motor Control Real-time Operating System Timing Jitter and its Impact on Motor Control Frederick M. Proctor and William P. Shackleford National Institute of Standards and Technology Building 220, Room B124 Gaithersburg,

More information

Real-time for Windows NT

Real-time for Windows NT Real-time for Windows NT Myron Zimmerman, Ph.D. Chief Technology Officer, Inc. Cambridge, Massachusetts (617) 661-1230 www.vci.com Slide 1 Agenda Background on, Inc. Intelligent Connected Equipment Trends

More information

Linux - Not real-time!

Linux - Not real-time! Linux - Not real-time! Date: 16.01.2015 Author(s): Michal Koziel www.bitvis.no 1 Abstract A system is said to be real-time if it can respond to external triggers and perform periodic tasks with deterministic

More information

Real Time Linux patches: history and usage

Real Time Linux patches: history and usage Real Time Linux patches: history and usage Presentation first given at: FOSDEM 2006 Embedded Development Room See www.fosdem.org Klaas van Gend Field Application Engineer for Europe Why Linux in Real-Time

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

Extending Windows XP. into real time

Extending Windows XP. into real time Extending Windows XP into real time By Paul Fischer The use of Windows in the embedded marketplace continues to grow, acknowledged directly by Microsoft s aggressive promotion of two Windows platforms

More information

Multimedia Systems 2011/2012

Multimedia Systems 2011/2012 Multimedia Systems 2011/2012 System Architecture Prof. Dr. Paul Müller University of Kaiserslautern Department of Computer Science Integrated Communication Systems ICSY http://www.icsy.de Sitemap 2 Hardware

More information

Frequently Asked Questions about Real-Time

Frequently Asked Questions about Real-Time FAQ: RTX64 2014 Frequently Asked Questions about Real-Time What is Real-Time? Real-time describes an application which requires a response to an event within some small upper bounded time frame. Typically,

More information

Frequently Asked Questions about Real-Time

Frequently Asked Questions about Real-Time FAQ: RTX64 2013 Frequently Asked Questions about Real-Time What is Real-Time? Real-time describes an application which requires a response to an event within some small upper bounded time frame. Typically,

More information

A TimeSys Perspective on the Linux Preemptible Kernel Version 1.0. White Paper

A TimeSys Perspective on the Linux Preemptible Kernel Version 1.0. White Paper A TimeSys Perspective on the Linux Preemptible Kernel Version 1.0 White Paper A TimeSys Perspective on the Linux Preemptible Kernel A White Paper from TimeSys Corporation Introduction One of the most basic

More information

Tasks. Task Implementation and management

Tasks. Task Implementation and management Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration

More information

Zilog Real-Time Kernel

Zilog Real-Time Kernel An Company Configurable Compilation RZK allows you to specify system parameters at compile time. For example, the number of objects, such as threads and semaphores required, are specez80acclaim! Family

More information

ZiLOG Real-Time Kernel Version 1.2.0

ZiLOG Real-Time Kernel Version 1.2.0 ez80acclaim Family of Microcontrollers Version 1.2.0 PRELIMINARY Introduction The (RZK) is a realtime, preemptive, multitasking kernel designed for time-critical embedded applications. It is currently

More information

[08] IO SUBSYSTEM 1. 1

[08] IO SUBSYSTEM 1. 1 [08] IO SUBSYSTEM 1. 1 OUTLINE Input/Output (IO) Hardware Device Classes OS Interfaces Performing IO Polled Mode Interrupt Driven Blocking vs Non-blocking Handling IO Buffering & Strategies Other Issues

More information

Operating System: Chap13 I/O Systems. National Tsing-Hua University 2016, Fall Semester

Operating System: Chap13 I/O Systems. National Tsing-Hua University 2016, Fall Semester Operating System: Chap13 I/O Systems National Tsing-Hua University 2016, Fall Semester Outline Overview I/O Hardware I/O Methods Kernel I/O Subsystem Performance Application Interface Operating System

More information

I/O Systems. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic)

I/O Systems. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic) I/O Systems Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 1 / 57 Motivation Amir H. Payberah (Tehran

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Reference Model and Scheduling Policies for Real-Time Systems

Reference Model and Scheduling Policies for Real-Time Systems ESG Seminar p.1/42 Reference Model and Scheduling Policies for Real-Time Systems Mayank Agarwal and Ankit Mathur Dept. of Computer Science and Engineering, Indian Institute of Technology Delhi ESG Seminar

More information

Real-time Multiple Video Player Systems

Real-time Multiple Video Player Systems Real-time Multiple Video Player Systems Chris C.H. Ngan and Kam-Yiu Lam Department of Computer Science City University of Hong Kong 83 Tat Chee Avenue, Kowloon HONG KONG Abstract In previous years, various

More information

Roadmap for This Lecture

Roadmap for This Lecture Thread Scheduling 1 Roadmap for This Lecture Overview Priorities Scheduling States Scheduling Data Structures Quantum Scheduling Scenarios Priority Adjustments (boosts and decays) Multiprocessor Scheduling

More information

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems

Outline. Introduction. Survey of Device Driver Management in Real-Time Operating Systems Survey of Device Driver Management in Real-Time Operating Systems Sebastian Penner +46705-396120 sebastian.penner@home.se 1 Outline Introduction What is a device driver? Commercial systems General Description

More information

Windows NT Real-Time Extensions better or worse?

Windows NT Real-Time Extensions better or worse? By Martin Timmerman, Chief-Editor of Real-Time Magazine, Bart Van Beneden Project Manager, Laurent Uhres, Software Engineer, Real-Time Consult. RTOS EVALUATION Windows NT Real-Time Extensions better or

More information

Virtual Memory - Overview. Programmers View. Virtual Physical. Virtual Physical. Program has its own virtual memory space.

Virtual Memory - Overview. Programmers View. Virtual Physical. Virtual Physical. Program has its own virtual memory space. Virtual Memory - Overview Programmers View Process runs in virtual (logical) space may be larger than physical. Paging can implement virtual. Which pages to have in? How much to allow each process? Program

More information

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria A Predictable RTOS Mantis Cheng Department of Computer Science University of Victoria Outline I. Analysis of Timeliness Requirements II. Analysis of IO Requirements III. Time in Scheduling IV. IO in Scheduling

More information

The control of I/O devices is a major concern for OS designers

The control of I/O devices is a major concern for OS designers Lecture Overview I/O devices I/O hardware Interrupts Direct memory access Device dimensions Device drivers Kernel I/O subsystem Operating Systems - June 26, 2001 I/O Device Issues The control of I/O devices

More information

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1 Windows 7 Overview Windows 7 Overview By Al Lake History Design Principles System Components Environmental Subsystems File system Networking Programmer Interface Lake 2 Objectives To explore the principles

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance Objectives Explore the structure of an operating

More information

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware CSE 120 July 27, 2006 Day 8 Input/Output Instructor: Neil Rhodes How hardware works Operating Systems Layer What the kernel does API What the programmer does Overview 2 Kinds Block devices: read/write

More information

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition Chapter 13: I/O Systems Silberschatz, Galvin and Gagne 2013 Chapter 13: I/O Systems Overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations

More information

Multiprocessor Systems. Chapter 8, 8.1

Multiprocessor Systems. Chapter 8, 8.1 Multiprocessor Systems Chapter 8, 8.1 1 Learning Outcomes An understanding of the structure and limits of multiprocessor hardware. An appreciation of approaches to operating system support for multiprocessor

More information

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor

Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Efficiency and memory footprint of Xilkernel for the Microblaze soft processor Dariusz Caban, Institute of Informatics, Gliwice, Poland - June 18, 2014 The use of a real-time multitasking kernel simplifies

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems DM510-14 Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations STREAMS Performance 13.2 Objectives

More information

CHAPTER 3 LabVIEW REAL TIME APPLICATION DEVELOPMENT REFERENCES: [1] NI, Real Time LabVIEW. [2] R. Bishop, LabVIEW 2009.

CHAPTER 3 LabVIEW REAL TIME APPLICATION DEVELOPMENT REFERENCES: [1] NI, Real Time LabVIEW. [2] R. Bishop, LabVIEW 2009. CHAPTER 3 By Radu Muresan University of Guelph Page 1 ENGG4420 CHAPTER 3 LECTURE 1 October 31 10 5:12 PM CHAPTER 3 LabVIEW REAL TIME APPLICATION DEVELOPMENT REFERENCES: [1] NI, Real Time LabVIEW. [2] R.

More information

Module 12: I/O Systems

Module 12: I/O Systems Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Performance 12.1 I/O Hardware Incredible variety of I/O devices Common

More information

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Slides based on the book Operating System Concepts, 9th Edition, Abraham Silberschatz, Peter B. Galvin and Greg Gagne,

More information

Real-Time Operating Systems Issues. Realtime Scheduling in SunOS 5.0

Real-Time Operating Systems Issues. Realtime Scheduling in SunOS 5.0 Real-Time Operating Systems Issues Example of a real-time capable OS: Solaris. S. Khanna, M. Sebree, J.Zolnowsky. Realtime Scheduling in SunOS 5.0. USENIX - Winter 92. Problems with the design of general-purpose

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID:

Final Examination. Thursday, December 3, :20PM 620 PM. NAME: Solutions to Selected Problems ID: CSE 237B EMBEDDED SOFTWARE, FALL 2009 PROF. RAJESH GUPTA Final Examination Thursday, December 3, 2009 5:20PM 620 PM NAME: Solutions to Selected Problems ID: Problem Max. Points Points 1 20 2 25 3 35 4

More information

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Operating Systems Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

Virtual Memory. Reading: Silberschatz chapter 10 Reading: Stallings. chapter 8 EEL 358

Virtual Memory. Reading: Silberschatz chapter 10 Reading: Stallings. chapter 8 EEL 358 Virtual Memory Reading: Silberschatz chapter 10 Reading: Stallings chapter 8 1 Outline Introduction Advantages Thrashing Principal of Locality VM based on Paging/Segmentation Combined Paging and Segmentation

More information

Operating System Performance and Large Servers 1

Operating System Performance and Large Servers 1 Operating System Performance and Large Servers 1 Hyuck Yoo and Keng-Tai Ko Sun Microsystems, Inc. Mountain View, CA 94043 Abstract Servers are an essential part of today's computing environments. High

More information

Chapter 12: I/O Systems

Chapter 12: I/O Systems Chapter 12: I/O Systems Chapter 12: I/O Systems I/O Hardware! Application I/O Interface! Kernel I/O Subsystem! Transforming I/O Requests to Hardware Operations! STREAMS! Performance! Silberschatz, Galvin

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations STREAMS Performance Silberschatz, Galvin and

More information

Chapter 12: I/O Systems. Operating System Concepts Essentials 8 th Edition

Chapter 12: I/O Systems. Operating System Concepts Essentials 8 th Edition Chapter 12: I/O Systems Silberschatz, Galvin and Gagne 2011 Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations STREAMS

More information

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems Simin Nadjm-Tehrani Real-time Systems Laboratory Department of Computer and Information Science Linköping Univerity 28 pages

More information

Chapter 8: Virtual Memory. Operating System Concepts

Chapter 8: Virtual Memory. Operating System Concepts Chapter 8: Virtual Memory Silberschatz, Galvin and Gagne 2009 Chapter 8: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating

More information

Device-Functionality Progression

Device-Functionality Progression Chapter 12: I/O Systems I/O Hardware I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Incredible variety of I/O devices Common concepts Port

More information

Chapter 12: I/O Systems. I/O Hardware

Chapter 12: I/O Systems. I/O Hardware Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations I/O Hardware Incredible variety of I/O devices Common concepts Port

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

Computer Systems Assignment 4: Scheduling and I/O

Computer Systems Assignment 4: Scheduling and I/O Autumn Term 018 Distributed Computing Computer Systems Assignment : Scheduling and I/O Assigned on: October 19, 018 1 Scheduling The following table describes tasks to be scheduled. The table contains

More information

Real-time Support in Operating Systems

Real-time Support in Operating Systems Real-time Support in Operating Systems Colin Perkins teaching/2003-2004/rtes4/lecture11.pdf Lecture Outline Overview of the rest of the module Real-time support in operating systems Overview of concepts

More information

Course Syllabus. Operating Systems

Course Syllabus. Operating Systems Course Syllabus. Introduction - History; Views; Concepts; Structure 2. Process Management - Processes; State + Resources; Threads; Unix implementation of Processes 3. Scheduling Paradigms; Unix; Modeling

More information

Two Real-Time Operating Systems and Their Scheduling Algorithms: QNX vs. RTLinux

Two Real-Time Operating Systems and Their Scheduling Algorithms: QNX vs. RTLinux Two Real-Time Operating Systems and Their Scheduling Algorithms: QNX vs. RTLinux Daniel Svärd dansv077@student.liu.se Freddie Åström freas157@student.liu.se November 19, 2006 Abstract This report tries

More information

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008.

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008. CSC 4103 - Operating Systems Spring 2008 Lecture - XII Midterm Review Tevfik Ko!ar Louisiana State University March 4 th, 2008 1 I/O Structure After I/O starts, control returns to user program only upon

More information

10 th AUTOSAR Open Conference

10 th AUTOSAR Open Conference 10 th AUTOSAR Open Conference Yuchen Zhou, Thomas E Fuhrman, Prathap Venugopal General Motors Scheduling Techniques for Automated Driving Systems using the AUTOSAR Adaptive Platform AUTOSAR Nov-2017 Agenda

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial)

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Objectives. I/O Hardware. A Typical PC Bus Structure. Device I/O Port Locations on PCs (partial) Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3.

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3. OVERVIEW Last Week: Scheduling Algorithms Real-time systems Today: But if frequency of high priority task increases temporarily, system may encounter overload: Yet another real-time scheduling algorithm

More information

CSE 4/521 Introduction to Operating Systems. Lecture 24 I/O Systems (Overview, Application I/O Interface, Kernel I/O Subsystem) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 24 I/O Systems (Overview, Application I/O Interface, Kernel I/O Subsystem) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 24 I/O Systems (Overview, Application I/O Interface, Kernel I/O Subsystem) Summer 2018 Overview Objective: Explore the structure of an operating system

More information

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests

More information

Systems Integration. Gautam H. Thaker Patrick J. Lardieri Donald Krecker Keith O Hara Chuck Winters

Systems Integration. Gautam H. Thaker Patrick J. Lardieri Donald Krecker Keith O Hara Chuck Winters Systems Integration Achieving Bounded End-to to-end Latencies with Real-time Linux and Realtime CORBA Gautam H. Thaker Patrick J. Lardieri Donald Krecker Keith O Hara Chuck Winters LM Advanced Technology

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

CS3733: Operating Systems

CS3733: Operating Systems CS3733: Operating Systems Topics: Process (CPU) Scheduling (SGG 5.1-5.3, 6.7 and web notes) Instructor: Dr. Dakai Zhu 1 Updates and Q&A Homework-02: late submission allowed until Friday!! Submit on Blackboard

More information

Real-Time Technology in Linux

Real-Time Technology in Linux Real-Time Technology in Linux Sven-Thorsten Dietrich Real-Time Architect Introductions MontaVista Software is a leading global supplier of systems software and development tools for intelligent connected

More information

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski Operating Systems Design Fall 2010 Exam 1 Review Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 To a programmer, a system call looks just like a function call. Explain the difference in the underlying

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance 13.2 Silberschatz, Galvin

More information

Abstract. Testing Parameters. Introduction. Hardware Platform. Native System

Abstract. Testing Parameters. Introduction. Hardware Platform. Native System Abstract In this paper, we address the latency issue in RT- XEN virtual machines that are available in Xen 4.5. Despite the advantages of applying virtualization to systems, the default credit scheduler

More information

Virtual Memory Outline

Virtual Memory Outline Virtual Memory Outline Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations Operating-System Examples

More information

Multiprocessor and Real-Time Scheduling. Chapter 10

Multiprocessor and Real-Time Scheduling. Chapter 10 Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems

More information

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW 2 SO FAR talked about in-kernel building blocks: threads memory IPC drivers

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

1. Background. 2. Demand Paging

1. Background. 2. Demand Paging COSC4740-01 Operating Systems Design, Fall 2001, Byunggu Yu Chapter 10 Virtual Memory 1. Background PROBLEM: The entire process must be loaded into the memory to execute limits the size of a process (it

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 Operating Systems Overview Chapter 2 Operating System A program that controls the execution of application programs An interface between the user and hardware Masks the details of the hardware Layers and

More information

Module 11: I/O Systems

Module 11: I/O Systems Module 11: I/O Systems Reading: Chapter 13 Objectives Explore the structure of the operating system s I/O subsystem. Discuss the principles of I/O hardware and its complexity. Provide details on the performance

More information

Real-Time Programming

Real-Time Programming Real-Time Programming Week 7: Real-Time Operating Systems Instructors Tony Montiel & Ken Arnold rtp@hte.com 4/1/2003 Co Montiel 1 Objectives o Introduction to RTOS o Event Driven Systems o Synchronization

More information

Chapter 8 Virtual Memory

Chapter 8 Virtual Memory Operating Systems: Internals and Design Principles Chapter 8 Virtual Memory Seventh Edition William Stallings Operating Systems: Internals and Design Principles You re gonna need a bigger boat. Steven

More information

Operating Systems Unit 3

Operating Systems Unit 3 Unit 3 CPU Scheduling Algorithms Structure 3.1 Introduction Objectives 3.2 Basic Concepts of Scheduling. CPU-I/O Burst Cycle. CPU Scheduler. Preemptive/non preemptive scheduling. Dispatcher Scheduling

More information

LECTURE 3:CPU SCHEDULING

LECTURE 3:CPU SCHEDULING LECTURE 3:CPU SCHEDULING 1 Outline Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time CPU Scheduling Operating Systems Examples Algorithm Evaluation 2 Objectives

More information

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date:

Subject Name: OPERATING SYSTEMS. Subject Code: 10EC65. Prepared By: Kala H S and Remya R. Department: ECE. Date: Subject Name: OPERATING SYSTEMS Subject Code: 10EC65 Prepared By: Kala H S and Remya R Department: ECE Date: Unit 7 SCHEDULING TOPICS TO BE COVERED Preliminaries Non-preemptive scheduling policies Preemptive

More information

Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads

Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads Real-Time Programming with GNAT: Specialised Kernels versus POSIX Threads Juan A. de la Puente 1, José F. Ruiz 1, and Jesús M. González-Barahona 2, 1 Universidad Politécnica de Madrid 2 Universidad Carlos

More information

Ref: Chap 12. Secondary Storage and I/O Systems. Applied Operating System Concepts 12.1

Ref: Chap 12. Secondary Storage and I/O Systems. Applied Operating System Concepts 12.1 Ref: Chap 12 Secondary Storage and I/O Systems Applied Operating System Concepts 12.1 Part 1 - Secondary Storage Secondary storage typically: is anything that is outside of primary memory does not permit

More information

Mobile Operating Systems Lesson 01 Operating System

Mobile Operating Systems Lesson 01 Operating System Mobile Operating Systems Lesson 01 Operating System Oxford University Press 2007. All rights reserved. 1 Operating system (OS) The master control program Manages all software and hardware resources Controls,

More information

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel Alexander Züpke, Marc Bommert, Daniel Lohmann alexander.zuepke@hs-rm.de, marc.bommert@hs-rm.de, lohmann@cs.fau.de Motivation Automotive and Avionic industry

More information

The RTX Real-Time Subsystem for Windows NT

The RTX Real-Time Subsystem for Windows NT The following paper was originally published in the Proceedings of the USENIX Windows NT Workshop Seattle, Washington, August 1997 The RTX Real-Time Subsystem for Windows NT Bill Carpenter, Mark Roman,

More information

VARIABILITY IN OPERATING SYSTEMS

VARIABILITY IN OPERATING SYSTEMS VARIABILITY IN OPERATING SYSTEMS Brian Kocoloski Assistant Professor in CSE Dept. October 8, 2018 1 CLOUD COMPUTING Current estimate is that 94% of all computation will be performed in the cloud by 2021

More information

Operating Systems. Operating Systems

Operating Systems. Operating Systems The operating system defines our computing experience. It is the first software we see when we turn on the computer, and the last software we see when the computer is turned off. It's the software that

More information

CS 153 Design of Operating Systems Winter 2016

CS 153 Design of Operating Systems Winter 2016 CS 153 Design of Operating Systems Winter 2016 Lecture 12: Scheduling & Deadlock Priority Scheduling Priority Scheduling Choose next job based on priority» Airline checkin for first class passengers Can

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems Chapter 13: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance I/O Hardware Incredible variety of I/O devices Common

More information

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) CPU Scheduling The scheduling problem: - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s) When do we make decision? 1 / 31 CPU Scheduling new admitted interrupt exit terminated

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week 05 Lecture 18 CPU Scheduling Hello. In this lecture, we

More information

Module 12: I/O Systems

Module 12: I/O Systems Module 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Performance Operating System Concepts 12.1 Silberschatz and Galvin c

More information

Introduction to Operating Systems. Chapter Chapter

Introduction to Operating Systems. Chapter Chapter Introduction to Operating Systems Chapter 1 1.3 Chapter 1.5 1.9 Learning Outcomes High-level understand what is an operating system and the role it plays A high-level understanding of the structure of

More information

COT 4600 Operating Systems Fall Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM

COT 4600 Operating Systems Fall Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM COT 4600 Operating Systems Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM Lecture 23 Attention: project phase 4 due Tuesday November 24 Final exam Thursday December 10 4-6:50

More information

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13 I/O Handling ECE 650 Systems Programming & Engineering Duke University, Spring 2018 Based on Operating Systems Concepts, Silberschatz Chapter 13 Input/Output (I/O) Typical application flow consists of

More information

Operating System Concepts

Operating System Concepts Chapter 9: Virtual-Memory Management 9.1 Silberschatz, Galvin and Gagne 2005 Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped

More information

Computer Science Window-Constrained Process Scheduling for Linux Systems

Computer Science Window-Constrained Process Scheduling for Linux Systems Window-Constrained Process Scheduling for Linux Systems Richard West Ivan Ganev Karsten Schwan Talk Outline Goals of this research DWCS background DWCS implementation details Design of the experiments

More information