Co-operative and pre-emptive scheduling We have discussed in very general terms the use of a scheduler to execute functions at particular times. Before we begin to consider the creation and use of a scheduler in detail in the next chapter, we need to appreciate that there are two broad classes of scheduler: ● The co-operative […]
Continue reading…
Posts by Farahat
An introduction to schedulers:A closer look at pre-emptive schedulers
A closer look at pre-emptive schedulers The discussion in this section is more technical than the previous sections in this chapter and may be omitted on a first reading of the book. Various research studies have demonstrated that, compared to pre-emptive schedulers, co-operative schedulers have a number of desirable features. For example, Nissanke (1997, p. […]
Continue reading…
Co-operative schedulers
Introduction In this chapter, we discuss techniques for creating co-operative schedulers suitable for use in single-processor environments. These provide a very flexible and predictable software platform for a wide range of embedded applications, from the simplest con- sumer gadget up to and including aircraft control systems. The following pattern is presented in this chapter: ● […]
Continue reading…
An introduction to schedulers:What is a scheduler?
What is a scheduler? There are two ways of viewing a scheduler: ● At one level, a scheduler can be viewed as a simple operating system that allows tasks to be called periodically or (less commonly) on a one-shot basis. ● At a lower level, a scheduler can be viewed as a single timer interrupt […]
Continue reading…
An introduction to schedulers:Executing multiple tasks at different time intervals
Executing multiple tasks at different time intervals While the great majority of embedded systems are required to run only one pro- gram, they do need to run multiple tasks (implemented as ‘C’ functions in this book): these tasks must, as mentioned earlier, run on a periodic or one-shot basis. These tasks will typically have different […]
Continue reading…
Example: Flashing an LED
Example: Flashing an LED The example just given is rather abstract. Here we present another example of a timer-driven interrupt service routine. In this case, we use the timer to flash an LED on and off at regular time intervals (Listing 13.4). Note that in this application we are using Timer 1 overflows to invoke […]
Continue reading…
An introduction to schedulers:A better solution
A better solution A better solution to the problems outlined is to use timer-based interrupts as a means of invoking functions at particular times. Timer-based interrupts and interrupt service routines As we saw in Chapter 1, an interrupt is a hardware mechanism used to notify a proces- sor that an ‘event’ has taken place: such […]
Continue reading…
An introduction to schedulers:Assessing the Super Loop architecture
Assessing the Super Loop architecture Many of the features of the modern desktop OS, such as graphics capability, printing and disk access, are of little value in embedded applications, where sophisticated graphics screens, printers and disks are unavailable. As a result, as we saw in Chapter 9, the software architecture used in many simple embedded […]
Continue reading…
An introduction to schedulers:The desktop OS
The desktop OS As stated in the preface, it is assumed in this book that readers will have had previous experience of software development for desktop computer systems. As we discussed in Chapter 1, the desktop / workstation environment plays host to many information sys- tems, as well as general-purpose desktop applications, such as word […]
Continue reading…
QUESTIONS AND PROBLEMS ON THE PENTIUM II, PENTIUM III, PENTIUM 4, AND CORE2 MICROPROCESSORS.
QUESTIONS AND PROBLEMS 1. What is the size of the level 1 cache in the Pentium II microprocessor? 2. What sizes are available for the level 2 cache in the Pentium II microprocessor? (List all versions.) 3. What is the difference between the level 2 cache on the Pentium-based system and the Pentium II-based system? […]
Continue reading…