Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations
|
|
|
- Alberta Patterson
- 9 years ago
- Views:
Transcription
1 Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations Frank Golatowski, Jens Hildebrandt, Jan Blumenthal, Dirk Timmermann Institute of Applied Microelectronics and Computer Science University of Rostock Richard-Wagner-Str. 31, Rostock, GERMANY {Frank.Golatowski, Jens.Hildebrandt, Jan.Blumenthal, Abstract This paper describes our work towards a rapid prototyping system for hard real-time systems focusing on scheduling algorithms and scheduler implementations. The framework aims at speeding up the decision making process during selection of a suitable scheduling algorithm for a real-time application. The framework supports various kinds of realtime scheduling algorithms, which can be simulated for evaluation purposes. Furthermore, implementations of these algorithms can be tested in a real-time operating system (RTOS) with real or synthetic workloads. The algorithms are implemented as software routines, which are part of the operating system (OS), or realized within a coprocessor to free the operating system kernel from time consuming scheduling operations. Both kinds of implementations have to provide an application programmers interface that hides the algorithm from implementation issues. The target operating system of our framework is mainly RT- Linux, eventhough development for those systems is possible under Linux as well as Windows-NT. The framework proposed in this paper is new in that it supports the selection of the right algorithm and the right implementation for the target platform based on real-time scheduling analysis. 1 Introduction When designing an application that requires real time capabilities of the underlying computer system a real time operating system is quite often used to relieve the developer from the burden of managing parallel execution of several tasks. Furthermore, usage of the operating systems API makes a software product portable to different hardware environments and even to different operating systems using the same API. The downside is that very often the developer has to achieve his goal not only due to the possibilities but also despite the limitations implicated by the OS. Especially in real time applications where execution time is a strict constraint, these limitations can not always be overcome by any possible workaround leading to the desired computational result. One of these limitations is the scheduling algorithm implemented in a particular RTOS. Most commercial systems use static priority systems and only few of them offer alternative algorithms. The availability of open source RTOS like RTEMS or RT-Linux gives an opportunity to employ scheduling methods more suitable for a given set of tasks than the ones offered by off-the-shelf real-time operating systems. In recent years, some frameworks and tools have been developed based on schedulability analysis. Such frameworks are Perts [5], Real-time Graphic Analyzer RTGA [7], Stress [8] and Timewiz [9]. Furthermore, a reconfigurable scheduling framework for the RED-Linux Real-Time Kernel has been offered [6]. EVASCAN [1] [2] is a general framework that uses YASA [4] as a tool for schedulability analysis. Operating system support is included in form of timing information [3]. The new redesigned framework called YASA adds a more generic framework in that it runs under both Windows and Linux with a real operating system as a target. The extended framework YASA presented in this paper aims at evaluating a task set with given properties in terms of schedulability and compliance with given execution time constraints when using different scheduling algorithms and scheduler implementations. Special attention was given to dynamic scheduling methods and hardware supported scheduling as these technologies can provide very good performance but need thorough scheduling analysis to guarantee timeliness of the scheduled task set. In Section 2 this paper gives an overview over the main scheduling algorithms used and the technology of scheduling coprocessors
2 supported by the framework. Section 3 explains the structure and working principle of the framework and section 4 deals with special implementation issues and their consequences for the usage of YASA. Finally, section 5 gives an outlook onto further development of the framework. 2 Basic technologies This section deals with the dynamic scheduling algorithms used inside the YASA framework and the supported scheduling coprocessors. 2.1 Scheduling algorithms EDF [10] and LLF [11] have been proven to be optimal dynamic scheduling algorithms. A main advantage of these dynamic scheduling algorithms is a theoretically possible 100% processor utilization without deadline misses. From the implementation point of view, it is easier to realize the EDF than the LLF algorithm (see section 2.2.1). But both algorithms have also some drawbacks. In an overload situation all tasks of the given task sets miss their deadline in the EDF algorithms (known as the domino effect). Another drawback is that with the EDF algorithm it is possible to detect the violation of a deadline only after it has happened. With LLF it is possible for the scheduler to detect an impending deadline miss during the execution of tasks. On the other hand, if two or more tasks have the smallest laxity the algorithm suffers from thrashing, i.e. an excessive number of context switches. Another drawback of the LLF algorithm is its relatively high computational effort. To overcome this drawback we have developed the Enhanced Least Laxity First algorithm (ELLF). This algorithm combines benefits from both algorithms. These benefits are optimality, possible processor utilizations of up to 100% and early detection of future missed deadlines. To minimize the long runtimes for the determination of laxity values we use a coprocessor as a hardware based accelerator. This coprocessor will also be supported by an application programmers interface in RT-Linux and in the framework YASA presented here. 2.2 Task model for dynamic schedulers A set of independent tasks W (W i W m ) is to be executed on a real-time system. Each task W i W is characterized by the following parameters: S(W) start time of task set W, booting time A(W i ) arrival time of task W I P(W i ) period of task W I Based on this parameters, scheduling decisions have to be made Least Laxity First For the Least Laxity First algorithm the following computations and times are important for the selection of the next task to run. L(W i ) laxity of task W i L(W i,t) laxity of task W i at time t t time since bootup, 0 < t < infinity d (W i,t) deadline in current period since bootup D(W i,t) deadline of task W i at time t d i (W i,t) t (1) cd(w i,t) computed time C(W i,t) remaining computation time in period C(W i ) cd(w I,t) To determine the laxity: L(W i ) = D(W i )-C(W i ) (2) The laxity at time t: L(W i,t) = D(W i,t)-c(w i,t) (3) Now we substitute D and C: L(W i,t) = d(w i,t) t ( C(W i ) cd(w i,t) ) (4) Based on equation (4) the scheduling decision in the LLF algorithm is made. The task with the smallest laxity will be selected for execution Earliest Deadline First The EDF algorithm makes its scheduling decision based on equation (1). The task with the nearest deadline will be selected for execution. The computation and comparison of deadlines is very simple and hence the EDF algorithm is the dynamic scheduling method that currently is implemented most often. The drawback is, that according to this algorithm even tasks are executed which in no way will finish until their deadline. This consumes computation time that may otherwise be needed to execute other tasks in time and can eventually lead to a whole set of tasks missing all their deadlines. C(W i ) computation time of task W I D(W i ) deadline of task W I
3 2.2.3 Enhanced Least Laxity First The ELLF-algorithm [2] is an improvement of the LLF algorithm. ELLF is more complex and makes its scheduling decisions in two steps. Since the detailed description of this algorithm is beyond the scope of this paper, only a short description of the working principle is given here. In the first step, analogue to the LLF algorithm, the tasks that have the smallest laxity are determined. In the second step, out of these tasks the one with the earliest deadline is chosen and brought to execution while the other tasks enter a newly introduced task state. This state (called excluded state) prevents them from preempting the currently running task. This decreases the amount of unnecessary context switches which are typical for the LLF algorithm and make that algorithm practically non-usable. 2.3 Scheduling Coprocessors One method to speed up scheduling is to move the scheduler function as a whole or in parts to a dedicated hardware device. Of course, such a coprocessor is effective only if the gain in execution speed of the implemented functions is not consumed by the time needed to transfer input data and computation results between the hardware device and the operating system routines. Beside that, only functions that do not require access to CPU internal resources (i.e. registers) can be transferred to the coprocessor. Hence, for schedulers, the parts that are most efficiently implement in hardware are online computation of priorities, priority comparison and based on that operation - selection of one task to be executed next. Although the latter two operations do not profit from hardware realization in such a high degree as does priority computation that can rely on hardware parallelism, the combination of all three parts of the scheduling operation in one hardware device avoids the necessity to transfer computed task priorities back to the operating system. Provided task states and task parameters used for priority computation are stored inside the coprocessor, communication overhead at scheduling time merely consists of an optional start signal for the coprocessor and an identifier for the next task to run that is transmitted back to the operating system as the scheduling result. Obviously, such hardware effort is justified only if the performance gain is significant. Hence, the discussed here type of scheduling coprocessor is used primarily for dynamic priority algorithms like EDF, LLF or ELLF. The coprocessors used in the rapid prototyping framework described in the following sections have a structure as given in Figure 2.1. Each task is represented by a functional block the so called task module that determines priority values and for that purpose holds task parameters and task states. These values are accessible via registers that have to be initialised during system setup and when new tasks are added to the system. Task states have to be updated during run time as they determine whether a task is active, i.e. takes part in scheduling, or not. The number and meaning of other parameters stored inside a task module depend upon the implemented scheduling algorithm. For example, EDF algorithm uses task deadlines as scheduling criterion. Hence task modules for EDF scheduling store the deadline in relative form, i.e. the number of remaining time units until deadline is reached. This value is counted down automatically while the task is active. A missed deadline is equivalent with the deadline value being zero while the task is still active. More complex algorithms like LLF or ELLF apart from the deadline use the remaining run time of a task, a value that is updated automatically as long as a task is executed. Task laxity, the difference of remaining time until deadline and remaining run time, is used to determine the order of task execution. These computations are done simultaneously for all tasks at scheduling time and thus make up the largest part in execution speed gain compared to a software solution. address decoder Figure 2.1 task module 0 task module 1 task module n-1 address data comparator/ selector /cs /ld /rd output format converter control logic tck err_int sched_int Scheduling coprocessor, internal structure Priority values computed inside the task modules are compared in the comparator module to determine the next task to run. The strategy used therein depends on the employed scheduling algorithm. The scheduling methods mentioned above all search for the task with the smallest priority value. But there may be other algorithms that determine the biggest value or combine the comparison with some other conditions. In any case, the coprocessor returns an identifier that names the task belonging to that value determined by the comparator.
4 Although the described here coprocessors implement different algorithms, their interface to the host computer system and thus to the operating system is the same. That allows an easy integration of different hardware supported scheduling algorithms into the operating system. For the prototyping framework described in this paper that means that different coprocessors can be compared with low overhead regarding their suitability for a given task set since the surrounding operating system routines do not have to be altered significantly. 3 The YASA Framework The YASA framework allows selection of the right scheduler during the design phase of a project while relieving the programmer from the necessity to know details of the scheduler implementation in different environments. Therefore, the different schedulers are hidden behind an application programmers interface (API). Usage of YASA in different operating systems is another reason to do so. We call this layer the executive. Derived from our goal to use different schedulers and executives there must be defined a small and unambiguous but expandable API. The whole project is designed to run on different hardware platforms and is only restricted due to executives depending on special operating system functions. Figure 3.1 is shows the internal structure of the framework. There are two main components, the graphical user interface (GUI) using the QT library and the command line based simulation environment (dotted rectangle). The whole developer project can be configured from within the GUI. It is possible to define new tasks with properties like computation time, deadline, period or behaviour in case of a deadline miss. For each task a start function can be declared. Furthermore it is necessary to make some adjustments like selecting the desired executive and scheduler on each CPU. Taskset Schedulers Priority RMS ELLF Configuration Project manager Logfile Executives RT-Linux Simulator Coprocessor Executive OS-Patch Executive Startup Figure 3.1 Framework, internal structure Run Compilation Task sources Schedulers After entering all needed information the project can be compiled. The compilation process includes all selected components like executives, schedulers, project functions, task information and startup codes. These parts are linked in different forms depending on characteristics of the executive. That can be a monolithic executable or a system of several shared libraries. In some cases, the kernel of the operating system has to be recompiled. After making the executive the project can be started. An internal log file mechanism is registering all internal information like calling times of the scheduler, deadlines, task switches or locking of resources. After finishing the execution the log file is evaluated by the graphical front end and is illustrated in clearly structured diagrams. By this it is possible to log every action in the RTOS. In our framework the different restrictions of the particular operating system result in tight limits. It will not be possible to run or compile certain task sets on every executive, if these tasks use specific support functions of the OS. For instance the function malloc() to allocate memory is a blocking function. For this reason it is not available in kernel mode within most desktop operating systems in contrast to embedded systems. Task sets using this function can not compile successfully on executives running in kernel mode. The employment of kmalloc() restricts the task sets to the maximum page size and to executives running under Linux and its derivates. Another restriction is given due to the implementation of the scheduling system. If the desired operating system supports only priority based scheduling selection of a scheduler will be restricted. 4 Implementation Issues 4.1 Software Scheduler Modules The software scheduler modules are defined in small ANSI- C modules. These modules, compiled as shared libraries or statically linked, are loaded and initialised at runtime during the starting phase of the executive. Usually, the modules can contain several member functions like init(), schedule() or cleanup(). In the initialisation phase a pre-defined attribute structure is used to configure the scheduler. Due to compatibility issues, the schedulers are using only functions of the executive to communicate with the environment. Information about the operating system and used hardware are hidden from the scheduler modules. During the runtime of the executive the member function schedule() of the current scheduler module will be called every time the system scheduler is called to determine the next task to be executed. One result of the encapsulation
5 process is that the actual scheduler function becomes very small. For instance, a priority based scheduler consists of just 25 lines of source code and is able to run on different executives. 4.2 Hardware scheduler modules Another feature of the framework, although still in the development phase, is support of hardware scheduler modules which can be combined with several executives. These scheduling coprocessors are realized in programmable hardware (FPGAs) that can be loaded with different configuration bit streams to implement different scheduling algorithms. All these different hardware schedulers have an identical user interface so that integration into the executive becomes independent from the implemented scheduling algorithm. The projects of the framework are independent from the scheduler type. So every task set can be scheduled with either software schedulers or hardware schedulers to compare the performance and trade performance gains against the effort of additional hardware. 4.3 The Executives The executive describes the environment in which the task sets and the desired schedulers are used. It provides an API and hides the operating system from the task set. Access to different operating system structures and functions like threads and scheduling parameters is possible only via that interface. Furthermore, additional internal functions like making log files or synchronisation of task sets at start time are included in the API. In real operating systems the executive is integrated mostly by patching the original kernel. The final state of executives depends mostly on features of the operating system as well as implementation details. There are currently two completely different executives, the Simulator and the RT-Linux executive Algorithm simulation The algorithm simulator is a virtual multi processor machine. This executive can be combined with all available schedulers defined in the framework. It supports different methods to handle deadline misses and is able to use different protocols to assign resources such as semaphores and mutexes. The simulator is independent from the operating system. After the definition of the task set the GUI will generate source code containing a task array with attribute information about these tasks. Then, the compilation process will be started with translating the core of the executive as shared library or Windows DLL. Next, the schedulers and the task array will be compiled to several objects and linked to one executable. The advantages in this is that the executive has to be recompiled only if developer is changing its settings. After compilation the project will be started using information from the task array created earlier by the GUI. All actions within the simulator will be logged and parsed later in the GUI. One of the important restrictions of the simulator is that it is not capable of simulating real programs. This executive is ignoring the start functions of tasks mentioned above. The reason is that different executives are running in different system environments. To run real programs within the simulator, it would be necessary to emulate the real world, in particular the API of the operating system used in each task set. Furthermore the interaction with the environment and the dynamically behaviour would have to be emulated. This is nearly impossible with reasonable simulation effort. To alleviate these effects the framework provides methods to define start times of asynchronous tasks and allocation times of resources. These times are used to simulate blockings and standby times. It is necessary to have know-how about progress of the tasks to get results close to reality. That is why the simulator is only useful to get information about general schedulability RT-Linux (Integration in RT-Linux / API) Real time Linux (RT-Linux) is a hard real time extension to conventional Linux. The current version 3.0 is available on different hardware platforms like x86, PowerPC and Alpha and supports Symmetric Multiprocessing (SMP). We chose RT-Linux due to the POSIX style API, the possibility to change the original scheduler with small effort and because of the availability of the operating system source code. Usually, RT-Linux is started by loading several kernel modules like rtl_sched.o or rtl_fifo.o. The developer can change or improve these modules if necessary. RT-Linux uses a static priority based scheduler by default. That means that only non-suspended tasks with the highest priority will be chosen. This scheduler is very fast and simple but static. In its spare time, that means if no real time task is running it will execute Linux as lowest priority thread. RT-Linux does not know anything about computation time, computed time and deadlines so there were some enhancements necessary. We simply added some variable declarations to the specific schedulers, threads and scheduling structures to store the required information. This is done in the Executive OS-Patch of the RT-Linux executive (Fig-
6 ure 3.1). We did not change the current API of RT-Linux due to compatibility issues to conventional projects but we patched some function bodies in the original scheduler module to guarantee the functionality of projects using default values. There are added some API calls like yasa_setscheduler() usage of which is optional. Furthermore, based on rtl_sched.o we implemented an additional modular scheduler technology so that the scheduler can be changed during runtime for every CPU. In this way the developer can create his own task set on different CPUs in conjunction with different schedulers. All schedulers use the same data structure describing tasks. These structures contain more data members than the current scheduler may actually use. This is necessary since these structures have to bridge the difference between the task models of all schedulers and that of the operating system. When the developer creates a new project YASA will generate the source code of the task set, basically an array of thread attributes. Next, YASA starts the compilation process of the whole RT-Linux kernel and some new modules named yp_project.o, ys_scheduler.o and logfilereader.o. The first two modules are used to start the project and set the schedulers. The startup code of the RT- Linux executive initialises the threads using the parameters contained in the task arrays. All threads will be started in suspended mode. After successful creation of the task set a synchronized start of the project will follow and will reschedule all real time threads having start time 0. To integrate or to consider non real-time tasks within RT- Linux systems two possibilities exist. It is simple to integrate those tasks as Linux threads or processes. But in this way it is hard to communicate between RT-Linux threads and the non-real-time Linux threads. The other possibility is the integration as RT-Linux threads. Therefore it is necessary to initialise the task structures with default parameters guaranteeing that these tasks are executed only when there is no real time task pending. During run time the Linux thread will be in the idle time of the real time kernel. Hence, in fully utilized environments that will seem like a hanging system. After reaching the defined end time, the project will be stopped and the third module logfilereader.o will be started to transfer the scheduling information into user space. Most of the schedulers used in YASA need detailed information about tasks like computation time. The developer should be aware that it can be a lengthy and intricate task to determine this necessary values and this must be done before entering the periodic state of the threads during runtime. The computation time is depending on everything in the computer: CPU speed, memory performance, I/O activities, caches and of course the system environment. If the computation time given to the scheduler is smaller than actual execution time many of the dynamic schedulers will not work correctly RT- Linux Executive with HW-Scheduler The RT-Linux executive with hardware scheduler is an improvement of the RT-Linux executive. It is similar to the executive mentioned in section but it is using a hardware scheduler to speed up the scheduling process. Task sets running successfully with the RT-Linux executive run with this executive, too At start time of the executive the coprocessor device is loaded with a configuration according to the selected scheduling algorithm and initialised with the parameters from the task structure. Changes of the parameters in the task structure have to be announced to the coprocessor. Every time the system scheduler is called this executive will start the coprocessor to determine the next task to be executed. 5 Conclusions The framework presented in this paper gives the developer the possibility to evaluate the schedulability of his application from an early simulation with synthetic load to execution of real code using hardware or software schedulers. Development is possible under and for different operating systems. The GUI of the framework allows an easy comparison of scheduling methods and technologies by giving an overview over scheduling events, resource requirements or execution times. This makes YASA a good tool for education purposes as well. Future developments of YASA see the extension of the range of supported scheduling algorithms and executives. Furthermore, a deeper integration of scheduling coprocessors is planned. References [1] Golatowski, F.; Hildebrandt, J.; Timmermann, D.: Rapid Prototyping with Reconfigurable Hardware for Embedded Hard Real-Time Systems. 19 th IEEE Real-Time Systems Symposium 98, WIP -Session, Madrid, Spain, 1998 [2] Golatowski, F.; Hildebrandt, J.; Timmermann, D.: Scheduling Coprocessor for Enhanced Least-Laxity-First Scheduling in Hard Real-Time Systems, 11 th Euromicro Conference on Real-Time Systems, York, England, 1999 [3] Golatowski, F.; Timmermann, D.: Using Hartstone Uniprocessor Benchmark in a Real-Time Systems Course. Third
7 IEEE Real-Time Systems Education Workshop, Poznan, Poland, 11/98 [4] Yasa- Yet Another Schedulability Anayzer, University of Rostock, 1998, [5] Liu, J. W. S.; Liu, C. L.; Deng, Z.; Tia, T. S.; Sun, J.; Storch, M.; Hull, D.; Redondo, J. L.; Bettati, R.; Silberman, A.: PERTS: A prototyping environment for real-time systems. International Journal of Software Engineering and Knowledge Engineering, 6(2): , [6] Wang, Y-C.; Lin, K-J.: Implementing a General Real-Time Scheduling Framework in the RED-Linux Real-Time Kernel. 20 th IEEE Real-Time Systems Symposium, 1999, Phoenix, Arizona [7] Ripoll, I.: RTGA Real-time Graphic Analyzer, 2002, [8] Audsley, N.C.; Burns, A.; Richardson, M.F.; Wellings, A.J.: Stress: A Simulator for Hard Real-Time Systems. Software- Practice and Experience, Vol. 24(6), p. 543, 564 (June 1994). [9] Timewiz- An Architectural modelling, analysis, and simulation environment for real-time systems. White paper, [10] Dertouzos, M.: Control Robotics: the procedural control of physical processors. IFIP Congress, pp , 1974 [11] Mok, A.K.: Fundamental Design Problems of Distributed Systems for the Hard Real-Time Environment, Ph.D. Dissertation, MIT, 1983
Performance Comparison of RTOS
Performance Comparison of RTOS Shahmil Merchant, Kalpen Dedhia Dept Of Computer Science. Columbia University Abstract: Embedded systems are becoming an integral part of commercial products today. Mobile
Lecture 3 Theoretical Foundations of RTOS
CENG 383 Real-Time Systems Lecture 3 Theoretical Foundations of RTOS Asst. Prof. Tolga Ayav, Ph.D. Department of Computer Engineering Task States Executing Ready Suspended (or blocked) Dormant (or sleeping)
Comparison between scheduling algorithms in RTLinux and VxWorks
Comparison between scheduling algorithms in RTLinux and VxWorks Linköpings Universitet Linköping 2006-11-19 Daniel Forsberg ([email protected]) Magnus Nilsson ([email protected]) Abstract The
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
RTAI. Antonio Barbalace [email protected]. (modified by M.Moro 2011) RTAI
Antonio Barbalace [email protected] (modified by M.Moro 2011) Real Time Application Interface by Dipartimento di Ingegneria Aereospaziale dell Università di Milano (DIAPM) It is not a complete
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:
Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.
Embedded Systems. 6. Real-Time Operating Systems
Embedded Systems 6. Real-Time Operating Systems Lothar Thiele 6-1 Contents of Course 1. Embedded Systems Introduction 2. Software Introduction 7. System Components 10. Models 3. Real-Time Models 4. Periodic/Aperiodic
How To Compare Real Time Scheduling To A Scheduled Scheduler On Linux On A Computer System With A Visualization System
MS project proposal: A comparison of real-time scheduling algorithms using visualization of tasks and evaluation of real-time extensions to Linux Kevin Churnetski Computer Science-RIT 8/21/2003 Abstract:
CHAPTER 15: Operating Systems: An Overview
CHAPTER 15: Operating Systems: An Overview The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint
Real-Time Scheduling 1 / 39
Real-Time Scheduling 1 / 39 Multiple Real-Time Processes A runs every 30 msec; each time it needs 10 msec of CPU time B runs 25 times/sec for 15 msec C runs 20 times/sec for 5 msec For our equation, A
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
SAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB
Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer Dr. Johan Kraft, Percepio AB Debugging embedded software can be a challenging, time-consuming and unpredictable factor in development
159.735. Final Report. Cluster Scheduling. Submitted by: Priti Lohani 04244354
159.735 Final Report Cluster Scheduling Submitted by: Priti Lohani 04244354 1 Table of contents: 159.735... 1 Final Report... 1 Cluster Scheduling... 1 Table of contents:... 2 1. Introduction:... 3 1.1
Chapter 1: Introduction. What is an Operating System?
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real -Time Systems Handheld Systems Computing Environments
Stream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself
How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,
Control 2004, University of Bath, UK, September 2004
Control, University of Bath, UK, September ID- IMPACT OF DEPENDENCY AND LOAD BALANCING IN MULTITHREADING REAL-TIME CONTROL ALGORITHMS M A Hossain and M O Tokhi Department of Computing, The University of
Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023
Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging In some markets and scenarios where competitive advantage is all about speed, speed is measured in micro- and even nano-seconds.
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1
Module 8 Industrial Embedded and Communication Systems Version 2 EE IIT, Kharagpur 1 Lesson 37 Real-Time Operating Systems: Introduction and Process Management Version 2 EE IIT, Kharagpur 2 Instructional
CS222: Systems Programming
CS222: Systems Programming The Basics January 24, 2008 A Designated Center of Academic Excellence in Information Assurance Education by the National Security Agency Agenda Operating System Essentials Windows
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Tasks Schedule Analysis in RTAI/Linux-GPL
Tasks Schedule Analysis in RTAI/Linux-GPL Claudio Aciti and Nelson Acosta INTIA - Depto de Computación y Sistemas - Facultad de Ciencias Exactas Universidad Nacional del Centro de la Provincia de Buenos
OPERATING SYSTEM SERVICES
OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered
Chapter 1: Operating System Models 1 2 Operating System Models 2.1 Introduction Over the past several years, a number of trends affecting operating system design are witnessed and foremost among them is
Modular Real-Time Linux
Modular Real-Time Linux Shinpei Kato Department of Information and Computer Science, Keio University 3-14-1 Hiyoshi, Kohoku, Yokohama, Japan [email protected] Nobuyuki Yamasaki Department of Information
Introduction to Embedded Systems. Software Update Problem
Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis logistics minor Today s topics: more software development issues 1 CS 5780 Software Update Problem Lab machines work let us know if they don t
Predictable response times in event-driven real-time systems
Predictable response times in event-driven real-time systems Automotive 2006 - Security and Reliability in Automotive Systems Stuttgart, October 2006. Presented by: Michael González Harbour [email protected]
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Asymmetric Scheduling and Load Balancing for Real-Time on Linux SMP
Asymmetric Scheduling and Load Balancing for Real-Time on Linux SMP Éric Piel, Philippe Marquet, Julien Soula, and Jean-Luc Dekeyser {Eric.Piel,Philippe.Marquet,Julien.Soula,Jean-Luc.Dekeyser}@lifl.fr
Real-time Operating Systems. VO Embedded Systems Engineering Armin Wasicek 11.12.2012
Real-time Operating Systems VO Embedded Systems Engineering Armin Wasicek 11.12.2012 Overview Introduction OS and RTOS RTOS taxonomy and architecture Application areas Mixed-criticality systems Examples:
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association
Making Multicore Work and Measuring its Benefits Markus Levy, president EEMBC and Multicore Association Agenda Why Multicore? Standards and issues in the multicore community What is Multicore Association?
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Multilevel Load Balancing in NUMA Computers
FACULDADE DE INFORMÁTICA PUCRS - Brazil http://www.pucrs.br/inf/pos/ Multilevel Load Balancing in NUMA Computers M. Corrêa, R. Chanin, A. Sales, R. Scheer, A. Zorzo Technical Report Series Number 049 July,
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
Operating System Organization. Purpose of an OS
Slide 3-1 Operating System Organization Purpose of an OS Slide 3-2 es Coordinate Use of the Abstractions he Abstractions Create the Abstractions 1 OS Requirements Slide 3-3 Provide resource abstractions
Scaling Networking Applications to Multiple Cores
Scaling Networking Applications to Multiple Cores Greg Seibert Sr. Technical Marketing Engineer Cavium Networks Challenges with multi-core application performance Amdahl s Law Evaluates application performance
The Design and Implementation of Real-Time Schedulers in RED-Linux
The Design and Implementation of Real-Time Schedulers in RED-Linux KWEI-JAY LIN, SENIOR MEMBER, IEEE AND YU-CHUNG WANG Invited Paper Researchers in the real-time system community have designed and studied
How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X
(Advanced Topics in) Operating Systems Winter Term 2009 / 2010 Jun.-Prof. Dr.-Ing. André Brinkmann [email protected] Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3
Java Virtual Machine: the key for accurated memory prefetching
Java Virtual Machine: the key for accurated memory prefetching Yolanda Becerra Jordi Garcia Toni Cortes Nacho Navarro Computer Architecture Department Universitat Politècnica de Catalunya Barcelona, Spain
Enhancing the Monitoring of Real-Time Performance in Linux
Master of Science Thesis Enhancing the Monitoring of Real-Time Performance in Linux Author: Nima Asadi [email protected] Supervisor: Mehrdad Saadatmand [email protected] Examiner: Mikael
Improvement of Scheduling Granularity for Deadline Scheduler
Improvement of Scheduling Granularity for Deadline Scheduler Yoshitake Kobayashi Advanced Software Technology Group Corporate Software Engineering Center TOSHIBA CORPORATION Copyright 2012, Toshiba Corporation.
White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
Full and Para Virtualization
Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels
Do AUTOSAR and functional safety rule each other out?
Software development Do AUTOSAR and functional safety rule each other out? While simplicity is a factor in safety-critical applications, AUTOSAR has over 6,000 configuration parameters and well over 100,000
Weighted Total Mark. Weighted Exam Mark
CMP2204 Operating System Technologies Period per Week Contact Hour per Semester Total Mark Exam Mark Continuous Assessment Mark Credit Units LH PH TH CH WTM WEM WCM CU 45 30 00 60 100 40 100 4 Rationale
Types Of Operating Systems
Types Of Operating Systems Date 10/01/2004 1/24/2004 Operating Systems 1 Brief history of OS design In the beginning OSes were runtime libraries The OS was just code you linked with your program and loaded
Real-time processing the basis for PC Control
Beckhoff real-time kernels for DOS, Windows, Embedded OS and multi-core CPUs Real-time processing the basis for PC Control Beckhoff employs Microsoft operating systems for its PCbased control technology.
HARD REAL-TIME SCHEDULING: THE DEADLINE-MONOTONIC APPROACH 1. Department of Computer Science, University of York, York, YO1 5DD, England.
HARD REAL-TIME SCHEDULING: THE DEADLINE-MONOTONIC APPROACH 1 N C Audsley A Burns M F Richardson A J Wellings Department of Computer Science, University of York, York, YO1 5DD, England ABSTRACT The scheduling
Development of Performance Testing Tool for Railway Signaling System Software
Vol. 10, No. 2, pp. 16-20, December 2011 Development of Performance Testing Tool for Railway Signaling System Software Jong-Gyu Hwang* and Hyun-Jeong Jo Korea Railroad Research Institute, Uiwang-si 437-757,
Parallels Virtuozzo Containers
Parallels Virtuozzo Containers White Paper Virtual Desktop Infrastructure www.parallels.com Version 1.0 Table of Contents Table of Contents... 2 Enterprise Desktop Computing Challenges... 3 What is Virtual
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Application of Android OS as Real-time Control Platform**
AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 2 http://dx.doi.org/10.7494/automat.2013.17.2.197 Krzysztof Ko³ek* Application of Android OS as Real-time Control Platform** 1. Introduction An android operating
What is an RTOS? Introduction to Real-Time Operating Systems. So what is an RTOS?(contd)
Introduction to Real-Time Operating Systems Mahesh Balasubramaniam What is an RTOS? An RTOS is a class of operating systems that are intended for real time-applications What is a real time application?
Efficient Load Balancing using VM Migration by QEMU-KVM
International Journal of Computer Science and Telecommunications [Volume 5, Issue 8, August 2014] 49 ISSN 2047-3338 Efficient Load Balancing using VM Migration by QEMU-KVM Sharang Telkikar 1, Shreyas Talele
9/26/2011. What is Virtualization? What are the different types of virtualization.
CSE 501 Monday, September 26, 2011 Kevin Cleary [email protected] What is Virtualization? What are the different types of virtualization. Practical Uses Popular virtualization products Demo Question,
theguard! ApplicationManager System Windows Data Collector
theguard! ApplicationManager System Windows Data Collector Status: 10/9/2008 Introduction... 3 The Performance Features of the ApplicationManager Data Collector for Microsoft Windows Server... 3 Overview
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications
ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani
Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.
Agenda Enterprise Performance Factors Overall Enterprise Performance Factors Best Practice for generic Enterprise Best Practice for 3-tiers Enterprise Hardware Load Balancer Basic Unix Tuning Performance
CS 147: Computer Systems Performance Analysis
CS 147: Computer Systems Performance Analysis CS 147: Computer Systems Performance Analysis 1 / 39 Overview Overview Overview What is a Workload? Instruction Workloads Synthetic Workloads Exercisers and
Introduction to Virtual Machines
Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
Operating System Structures
Operating System Structures Meelis ROOS [email protected] Institute of Computer Science Tartu University fall 2009 Literature A. S. Tanenbaum. Modern Operating Systems. 2nd ed. Prentice Hall. 2001. G. Nutt.
In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal
Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto [email protected] Luís Teixeira INESC Porto, Universidade Católica Portuguesa [email protected] Luís Corte-Real
Real Time Operating System for Embedded DSP Applications
Real Time Operating System for Embedded DSP Applications By P.S.Dey Lecturer Computer Science & Engg. Dept. I.I.T. Kharagpur Organization of the Talk 1. Real Time Systems an Overview. 2. Key Features of
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE. Guillène Ribière, CEO, System Architect
OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE Guillène Ribière, CEO, System Architect Problem Statement Low Performances on Hardware Accelerated Encryption: Max Measured 10MBps Expectations: 90 MBps
A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis
A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis Mark Stanovich Florida State University, USA Contents 1 Introduction 2 2 Scheduling Theory 3 2.1 Workload
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM Albert M. K. Cheng, Shaohong Fang Department of Computer Science University of Houston Houston, TX, 77204, USA http://www.cs.uh.edu
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
Attaining EDF Task Scheduling with O(1) Time Complexity
Attaining EDF Task Scheduling with O(1) Time Complexity Verber Domen University of Maribor, Faculty of Electrical Engineering and Computer Sciences, Maribor, Slovenia (e-mail: [email protected]) Abstract:
Windows Server Performance Monitoring
Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly
Thread-based analysis of embedded applications with real-time and non real-time processing on a single-processor platform
Thread-based analysis of embedded applications with real-time and non real-time processing on a single-processor platform Dietmar Prisching AVL List GmbH Graz AUSTRIA [email protected] Bernhard
Embedded & Real-time Operating Systems
Universität Dortmund 12 Embedded & Real-time Operating Systems Peter Marwedel, Informatik 12 Germany Application Knowledge Structure of this course New clustering 3: Embedded System HW 2: Specifications
Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
2. is the number of processes that are completed per time unit. A) CPU utilization B) Response time C) Turnaround time D) Throughput
Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 5 Multiple Choice 1. Which of the following is true of cooperative scheduling?
Relocating Windows Server 2003 Workloads
Relocating Windows Server 2003 Workloads An Opportunity to Optimize From Complex Change to an Opportunity to Optimize There is much you need to know before you upgrade to a new server platform, and time
Wireless ATA: A New Data Transport Protocol for Wireless Storage
Wireless ATA: A New Data Transport Protocol for Wireless Storage Serdar Ozler and Ibrahim Korpeoglu Department of Computer Engineering, Bilkent University, 06800 Bilkent, Ankara, Turkey {ozler, korpe}@cs.bilkent.edu.tr
EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS
EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR CERN-ATS-2011-200 A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS F. Ehm, A. Dworak, CERN, Geneva, Switzerland Abstract
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6 Winter Term 2008 / 2009 Jun.-Prof. Dr. André Brinkmann [email protected] Universität Paderborn PC² Agenda Multiprocessor and
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Origins of Operating Systems OS/360. Martin Grund HPI
Origins of Operating Systems OS/360 HPI Table of Contents IBM System 360 Functional Structure of OS/360 Virtual Machine Time Sharing 2 Welcome to Big Blue 3 IBM System 360 In 1964 IBM announced the IBM-360
OPC COMMUNICATION IN REAL TIME
OPC COMMUNICATION IN REAL TIME M. Mrosko, L. Mrafko Slovak University of Technology, Faculty of Electrical Engineering and Information Technology Ilkovičova 3, 812 19 Bratislava, Slovak Republic Abstract
International Workshop on Field Programmable Logic and Applications, FPL '99
International Workshop on Field Programmable Logic and Applications, FPL '99 DRIVE: An Interpretive Simulation and Visualization Environment for Dynamically Reconægurable Systems? Kiran Bondalapati and
Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1
Performance Study Performance Characteristics of and RDM VMware ESX Server 3.0.1 VMware ESX Server offers three choices for managing disk access in a virtual machine VMware Virtual Machine File System
