ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel
|
|
|
- Robert Gilbert
- 10 years ago
- Views:
Transcription
1 ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel Matthew Dellinger, Piyush Garyali, and Binoy Ravindran ECE Dept., Virgina Tech Blacksburg, VA 2461, USA {mdelling,piyushg,binoy}@vt.edu ABSTRACT We present ChronOS Linux, a best-effort real-time Linux kernel for chip multiprocessors (CMPs). ChronOS addresses the intersection of three problem spaces: a) OS-support for obtaining best-effort timing assurances, b) real-time Linux kernel augmented with the PREEMPT_RT patch, and c) OS support for CMP-aware real-time scheduling. While each of these spaces have been studied in the past, their intersection, which has strong problem motivations, was previously empty. Best-effort timeliness targets real-time applications with run-time uncertainties and resource overloads, and optimizes collective application timeliness as specified by the application. ChronOS directly supports the implementation of best-effort real-time schedulers on CMPs, in addition to others, in the global and partitioned scheduling disciplines. ChronOS extends the PREEMPT RT Linux patch, and thus provides full kernel preemptibility and retains stock Linux features. We validate our claims by reporting on the implementation of a suite of best-effort and non-best-effort CMP schedulers on a quad-core AMD Phenom platform. Categories and Subject Descriptors E.2.1 [Embedded Software and Tools]: Real-time operating systems and middleware General Terms Design Keywords Real-time, task scheduling, Linux 1. INTRODUCTION Chip manufacturers are increasingly using chip- and systemlevel parallelism to improve performance by manufacturing a new generation of processors with multiple cores on a chip, Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Copyright 2XX ACM X-XXXXX-XX-X/XX/XX...$1.. called chip multiprocessors (or CMPs). Consequently, the design of multiprocessor real-time scheduling algorithms has become important in order to allow real-time applications to take advantage of CMPs. This also motivates the need for operating systems, which must support CMP scheduling. The real-time problem space includes application contexts where key aspects of application behavior e.g., task arrivals, execution times, resource access patterns are deterministically bounded or known a-priori. CMP real-time schedulers that target this space provide schedulability utilization bounds, U, below which all tasks meet their deadlines. Examples include the Pfair and LLREF algorithms with U = m and the global EDF algorithms with U m/2 on an m-processor CMP [3]. Although this is an extremely important real-time application space, there also exist some real-time applications with behaviors outside this envelope e.g., those with uncertainties on task arrival, executiontime, and resource access behaviors, caused due to data- and context-dependent executions, resulting in overloads (i.e., U > m) [5]. During overloads, such applications typically desire best-effort timing assurance in the sense that processor cycles are assured to be allocated in a way that optimizes, and enables the reasoning of, collective application timeliness as specified by the application [9]. Best-effort real-time scheduling requires, among other things, a two-way interaction between the application and OS kernel, especially for asynchronously and safely aborting selected tasks. Our primary motivation in this paper is to create an OS platform that can support best-effort real-time schedulers on CMPs. When creating an RTOS platform, the open-source Linux kernel is often a compelling base platform choice. Linux is one of the most advanced operating systems with wide acceptance in industry, used across various form factors from enterprise level servers to embedded devices. In the past, efforts have been made to provide real-time extensions to the Linux kernel. Two popular extensions, RTAI and Xenomai, are built around the idea of Linux running as a task above the ADEOS nanokernel [1]. Both have the downside that real-time tasks are written to the APIs of the extension, rather than standard Linux APIs. More recently, the Linux kernel team s PREEMPT_RT real-time patch enables complete kernel preemption and improves interrupt latencies, thus allowing real-time tasks to execute within Linux itself. The Linux kernel augmented with the PRE- EMPT_RT patch is therefore a compelling RTOS platform. Thus, our goal is to create an OS platform with the following properties: P1: The platform must support the implementation of
2 best-effort real-time schedulers. P2: The platform must support CMP real-time scheduling. P3: The platform must be based on the Linux kernel. P4: The platform must use the PREEMPT_RT patch. We present ChronOS Linux, which provides these properties. ChronOS Linux (hereafter refered to as ChronOS) supports the notion of real-time scheduling segments that facilitate the expression and enforcement of time constraints, and asynchronous and safe task termination. ChronOS provides a scheduling framework for the implementation of a broad range of CMP real-time schedulers, best-effort, nonbest-effort, global, and partitioned, as scheduler plugins. We implemented a suite of schedulers in ChronOS including G- EDF, G-NP-EDF, P-EDF [3], P-DASA [6], and GUA [7] on a quad-core AMD Phenom platform. Our experiments reveal that the scheduler behaviors are consistent with their theoretical behaviors, and the effectiveness of ChronOS. Past efforts that overlap with a subset of ChronOS s problem space include the Alpha OS [9], RED-Linux [11], and LITMUS RT [3]. Alpha, which pioneered the best-effort realtime concept, is not Linux-based. RED-Linux supports fixed and dynamic priority scheduling, but does not support CMPs. LITMUS RT provides extensive support for CMP scheduling on Linux, but it does not support best-effort real-time scheduling. Neither RED-Linux nor LITMUS RT use the PREEMPT_RT patch. Thus, to the best of our knowledge, ChronOS is the only Linux/PREEMPT_RT kernel that supports CMP real-time scheduling including best-effort scheduling the paper s contribution. 2. PREEMPT_RT REAL-TIME PATCH The stock Linux kernel provides soft real-time capabilities, such as the POSIX primitives and the ability to set priorities. The kernel provides two real-time scheduling policies SCHED_FIFO and SCHED_RR and a nice based scheduling policy called SCHED_NORMAL. SCHED_FIFO executes processes in FIFO order within a priority and will only preempt a task to execute a newly arrived task at a higher priority. This is primarily a POSIX-specified feature. SCHED_RR, on the other hand, schedules processes of the same priority in a round robin fashion while favoring higher priority tasks. In order to bring in real-time semantics to the kernel, it is required to have a preemptible kernel. To achieve this we use the PREEMPT_RT patch which enables complete kernel preemption along with a generic clock event layer with high resolution support. The patch improves interrupt latencies and allows preemption of most parts of the Linux kernel except for a few regions which are inherently unpreemptible, such as the task scheduler. In-kernel locking primitives have been re-implemented using rtmutexes. As a result, critical sections that are protected with spinlock_t or rwlock_t are preemptible. Priority inheritance has been implemented for in-kernel spinlocks and semaphores. Interrupt handlers in the kernel have been converted into preemptible kernel threads. The Linux timer APIs have been converted into separate infrastructure for high resolution kernel timers. 3. CHRONOS REAL-TIME SCHEDULER 3.1 Priority Bit-map and Run-queues There are 14 priority levels in Linux, represented as a per-processor bit-map. [... 99] are referred to as real-time priorities while [ ] are called nice priorities. In the kernel-space, is the highest real-time priority while 99 is the least (which is opposite to that in the user-space). Each CPU has a run-queue of active tasks at a priority. The scheduler starts from the highest priority bit in the processor s bit-map, looks for tasks at that priority level and executes them before going to the next level. The use of the PREEMPT_RT patch significantly complicated scheduling, because interrupts now reside in the same priority space as real-time tasks. We therefore cannot take the same approach as Litmus and place our tasks in a priority band higher than all other tasks in the system, because this would block interrupts, which we may need. In order to facilitate working on the real-time tasks, for every priority level in the bit-map we create another queue called the ChronOS real-time run-queue (CRT-RQ) which holds references to the ChronOS real-time tasks in the Linux run-queue. The CRT- RQ is therefore always a subset of the Linux run-queue. Tasks can therefore be given a priority representing their dependence on various interrupts. 3.2 Scheduling Real-Time Tasks The ChronOS scheduler extends the Linux scheduler. Every ChronOS real-time task starts as a Linux real-time task scheduled under SCHED_FIFO. It becomes a ChronOS realtime task by entering a real-time segment. A real-time segment is defined as a portion of the thread which needs to be executed with real-time time constraints. This can be done using the following system calls in ChronOS: begin_rt_seg() is used to indicate the start of a real-time scheduling segment and also to provide the real-time timing constraints for a given task. end_rt_seg() indicates the end of a real-time scheduling segment. We add additional parameters to the struct task_struct to specify the realtime properties of a task, such as the task s worst case execution cost (WCET), deadline, period and time-utility function (TUF). These are set during the begin_rt_seg() system call. To schedule, we hook into the existing Linux SCHED_FIFO scheduler. After SCHED_FIFO has found the highest priority, we call the ChronOS scheduler. When a ChronOS scheduler is enabled and the CRT-RQ for that priority is not empty, the ChronOS scheduler selects a task from the CRT-RQ based on the scheduling algorithm selected, and returns the task to SCHED_FIFO for execution. Therefore, a ChronOS realtime task executes before a Linux real-time task of the same priority, but after a Linux real-time task of a greater priority. The real-time scheduler is invoked at various scheduling events. A scheduling event is defined as a trigger that forces the system into a scheduling cycle resulting in a call to the scheduler, which selects a new task. In ChronOS we define the following scheduling events. Task begins a segment When a task begins its segment, it is added to the CRT-RQ and the scheduler is invoked. At that time, the scheduling algorithm selects the best task from the CRT-RQ and returns it to SCHED_FIFO. Task ends a segment When a task finishes its scheduling segment, the task is removed from the CRT-RQ and the scheduler is invoked. Resource is requested When a task requests for a resource, ChronOS tags the task as RESOURCE_REQUESTED and invokes the scheduler. This is done to let the scheduling algorithm look at the dependency chain based on the resource
3 Figure 1: ChronOS scheduling approach on a singleprocessor system requested and pick the task that is best suited for execution. Resource is released When a task releases a resource, ChronOS invokes the scheduler in order to allow a new task to be picked which might be blocking on the resource that was just released. The decision to choose the new task is done by the scheduling algorithm. A scheduling algorithm is selected via the set_scheduler() system call. All scheduling algorithms are created as Linux modules in ChronOS which provides the flexibility to add or remove any scheduling algorithm from a running kernel without restarting the system. The scheduling algorithms are implemented in a modular fashion using a set of functions that we refer to as the scheduler plugin. Once a scheduler is selected for a set of processors, all the real-time tasks that are added to the system on those processors are scheduled using the the selected scheduling algorithm. 4. SINGLE PROCESSOR SCHEDULING Fig. 1 illustrates an example of scheduling on a single processor machine. As the scheduling algorithms are written as modules in ChronOS, they can be dynamically loaded into a running kernel. This adds the scheduling algorithms to the list of available schedulers. In Fig. 1, the call to set_scheduler() is made from the real-time application to select EDF as the real-time scheduler. ChronOS checks if the EDF kernel module is available. If the scheduler is found, ChronOS loads the plugin and makes it the default ChronOS local scheduler for running real-time tasks. All the real-time tasks are now added to the CRT-RQ at their deadline position. At every scheduling event, the ChronOS scheduler invokes sched_edf(). Since items are inserted in order, the head of the CRT-RQ now represents the earliest deadline task, which is returned to SCHED_FIFO for execution. For algorithms that use dynamic keys, such as TUF-based algorithms, the scheduler would have to sort the CRT-RQ. 5. MULTIPROCESSOR SCHEDULING Scheduling on multiprocessors can be mainly categorized into three forms partitioned, clustered, and global scheduling. ChronOS supports all these variants. Since clustering is simply a combination of the two, we only describe the details of partitioned and global architectures. 5.1 Partitioned Scheduling Partitioned scheduling can be described as uniprocessor scheduling done on multiprocessors. The key idea of partitioned scheduling is to divide the task-set using an off-line heuristic (such as first-fit or best-fit) to partitioning a set of tasks on M processors. This has been shown to be equivalent to the bin-packing problem [1] and hence NP-hard in Figure 2: ChronOS global scheduling approach on a multiprocessor system the strong sense. Baruah et al. present a polynomial-time algorithm to partition collection of sporadic tasks onto M processors in [2]. To use partitioned scheduling algorithms on ChronOS, we partition the task-set using off-line polynomial-time heuristics. For an M processor system, the heuristics divides the task-sets into M processor bins. Once all the tasks have been divided, the affinity of each of the tasks is set to the processor they have been assigned to. The tasks are added to the CRT-RQ of their respective assigned processors. As partitioned scheduling is an extension of uniprocessor scheduling, the partitioned scheduler is set as the local ChronOS scheduler on all processors using the set_scheduler() system call. Each processor runs its scheduling algorithm independently. At every scheduling event, the processor enters its local scheduler, looks at the local CRT-RQ, and picks the next task to be executed. 5.2 Global Scheduling Most of the multiprocessor scheduling algorithms, such as G-EDF, Pfair and GUA are based on global scheduling. The main idea behind global scheduling is that the tasks are assigned to a global queue instead of individual local queues. The scheduling algorithm on each processor looks at the global queue to make a scheduling decision. Clustering is a simple extension of global scheduling wherein multiple global scheduling domains are created, each of which spans some subset of the systems processors. Fig. 2 illustrates the global scheduling approach used in ChronOS. In order to implement global scheduling, we create another level of scheduling abstraction. At the top we have the global scheduler which looks at the global task queue. The global scheduler maps to a local scheduler on individual processors which extends from SCHED_FIFO. The global scheduler (invoked on a processor) either picks the top task or the top M tasks, depending on its type. In the latter case, these tasks are given to the task mapping algorithm which maps these tasks on M underlying processors. The tasks assigned by the task mapping algorithm are pushed into the globally assigned task block from where the task puller on each CPU picks up the task and moves it to the
4 (a) Figure 3: Global scheduling architecture models in ChronOS (a) Application concurrent model (b) Stopthe-World model head of its local queue. The default local scheduling algorithm for global scheduling algorithms on each processor is FIFO, which picks the head of the CRT-RQ queue and gives the task to SCHED_FIFO for execution. There are two ways in which global scheduling can be achieved. In the Application Concurrent scheduling model, the global scheduler (such as G-NP-EDF) picks a task for itself. In the Stop-the-World (STW) scheduling model, the global scheduler (such as Pfair or GUA) picks the tasks for all M available processors Application Concurrent Scheduling Model Fig. 3(a) illustrates the application concurrent scheduling model. For the sake of explanation of the model, we will assume that the scheduling algorithm picks the task at the head of the queue, and task execution is non-preemptible. At the beginning, task T 6 is running on processor P and task T 8 is running on processor P 1. As shown, T 8 finishes before T 6. However, T 6 is not preempted on P. After T 8 finishes, it generates a scheduling event. P 1 enters the global scheduler, picks the first eligible task T 3 from the global queue and assigns it to P 1. The local scheduler on P 1 pulls the task T 3 and starts executing it. While P 1 pulls its task, T 6 finishes on P and generates a scheduling event. It pulls T 1 from the global queue and starts executing it without preempting T 3 on P 1. The same procedure is repeated for other scheduling events. There might be a scenario when both processors finish their tasks concurrently. As shown in the Fig. 3(a), when T 2 finishes on P, T 4 finishes on P 1. As the global task queue is shared between processors, while P enters the global scheduler, P 1 blocks. When P finishes, P 1 unblocks and enters the scheduler. There may also be a case where P 1 is not executing a real-time task when P schedules. In such a case, an Inter-processor Interrupt (IPI) is sent to P 1 to force it to reschedule. G-NP-EDF and G-FIFO are some of the algorithms that use such an architecture model. The downside of the application concurrent model is that it is difficult to implement scheduling algorithms that consider resource dependencies. Additionally, since the schedule is only generated for a single processor, there is no way to implement optimal algorithms such as LLREF or PFair. (b) Stop-the-World Scheduling Model In order to allow optimal global scheduling algorithms and resource management, ChronOS implements the STW scheduling model. Fig. 3(b) provides an illustration of the model. The figure shows the dependency relation of the tasks in the global task queue with each other. Task T 4 needs a resource owned by task T 2 which in turn requires a resource held by task T 1. In a similar fashion, task T 6 needs a resource owned by task T 5. Task T 3 does not have any dependents. Let us assume that the scheduling algorithm considers the tasks that have the maximum dependents as the most eligible tasks for execution. Fig. 3(b) shows that tasks T 1 and T 5 are currently executing on processors P and P 1, respectively. Task T 5 finishes first and generates a scheduling event. In the STW model, once a scheduling event is generated, the schedule needs to be created for all the processors. This requires a processor to be able to force a scheduling event on all other processors. When task T 5 triggers the scheduling event, processor P 1 sends an (IPI) to all the processors which forces the processors to schedule. In the example shown in Fig. 3(b), processor P 1 sends an IPI to all processors. After sending the IPI, P 1 enters its global scheduler and looks at the available tasks in the run-queue to create the schedule. Meanwhile, processor P receives the IPI and is forced into the scheduler. However, as P 1 is already in the global scheduler, P blocks. The global scheduler on P 1 picks two eligible tasks (assuming a twoprocessor system in the example) and hands these tasks to the mapping algorithm. The task mapper pushes these tasks into the globally assigned task block of each processor. Each processor pulls its assigned task to the head of its local queue which is then executed by the Linux scheduler. 5.3 Mapping Tasks to Processors Fig. 4 illustrates the mapping algorithm used in ChronOS for global scheduling. The job of the algorithm is to take the M most eligible tasks that have been selected by the globlal scheduler and map them to the M available processors such that task migrations are reduced and cache coherence is preserved. The algorithm shown in Fig. 4 is selected as the default for global scheduling algorithms. However, the default task-mapper can be overridden in ChronOS.
5 The mapping is done using a three-pass algorithm. In Fig. 4 tasks RT 5, RT 8, RT 1 and RT 4 are four real-time tasks that have been selected by the global scheduling algorithm. Each run-queue shows the tasks that belong to the individual processors. We also highlight the current running task on each processor before the scheduling event was triggered. Task RT 2 is the current running task on processor P, task RT 5 on P 1, task RT 9 on P 2, and task RT 7 on P 3. In the first pass, the algorithm examines the final schedule and maps currently running tasks to the processors they are running on. As shown in Fig. 4, task RT 5, the current running task on P 1, is mapped to P 1. In the second pass, the algorithm examines the final schedule and maps tasks to the processor they are currently on. This prevents tasks from being unnecessarily migrated. As shown, since task RT 4 resides on processor P, it is mapped there. In the similar fashion, task RT 8 is mapped to P 2. In the last pass, the leftover tasks are mapped to the remaining processor(s). As shown, task RT 1 is assigned to processor P 3. Since task RT 1 resides on processor P, this step results in the migration of the mapped tasks. If the final schedule consists of M tasks that all belong to the same processor, the worst case migration cost is M 1 migrations. In such cases, cache-aware scheduling algorithms can be used to create a cache conscious schedule which limits migrations. Guan et al. [8] and Calandrino et al. [4] present cache-aware real-time scheduling algorithms. 6. EXPERIMENTAL EVALUATION To evaluate the performance of ChronOS, we conducted experiments on a quad-core AMD Phenom machine. We measured overheads associated with real-time scheduling and experimentally compared the scheduling algorithms previously listed with their theoretical results. 6.1 NG-GUA and G-GUA NG-GUA and G-GUA are multiprocessor polynomial-time heuristic scheduling algorithms that allow tasks to be subject to run-time uncertainties, overloads and dependencies, and yield optimal total utility in underload and best-effort timeliness behavior based on TUF scheduling otherwise. NG- GUA defaults to G-EDF during under-loads while G-GUA does not. G-EDF and NG-GUA should therefore meet all deadlines until m/2, while G-GUA may miss deadlines earlier. Once G-GUA and NG-GUA begin missing deadlines, both should be free from the domino effect commonly seen Figure 4: Task mapping for global scheduling algorithms in ChronOS Scheduling overhead (microseconds) DSR Deadline Satisfaction Ratio, 27T,4C,NL,RU G-GUA NG-GUA CPU Utilization Load G-EDF G-NP-EDF G-FIFO Figure 5: Deadline satisfaction ratio (DSR) G-NP-EDF/1% G-EDF/1% G-GUA/1% NG-GUA/1% G-NP-EDF/8% G-EDF/8% G-GUA/8% NG-GUA/8% Number of tasks Figure 6: ChronOS scheduling overheads in EDF-type algorithms. For brevity, the details of the algorithms have been omitted. They are given by Garyali in [7]. 6.2 Scheduling Results We create a real-time test application using ChronOS APIs which periodically fires real-time tasks with specified timeconstraints. For each task, we use a burn_cpu(wcet) function, which takes the wcet as an input and burns processor cycles for that amount of time. To simplify experimentation, we use periodic tasks with deadlines equal to periods. Fig. 5 shows deadline satisfaction ratio (DSR) results for several best-effort and non-best-effort scheduling algorithms. The results shown are for a 12-task taskset with periods distributed between 4ms and 2s, and randomly generated utilities and execution times. We observe that the results are consistent with the theoretical behavior of the algorithms; G-EDF and G-NP-EDF demonstrate the domino effect when overloaded, while the TUF based algorithms do not. G-EDF and NG-GUA also exhibit identical performance in underloads, as expected. More extensive scheduling results are presented by Garyali in [7]. 6.3 Overheads To measure the overhead incurred by our scheduling framework over SCHED_FIFO, we measured four sources of overhead: context switching overhead, scheduling overhead, inscheduler migration overhead, and the overhead of our realtime specific system calls. All times measured, both in the kernel and in the userspace, were taken by reading the x86 architecture s Time Stamp Counter (TSC) before and after the event measured. All results are from at least 1 runs. Context switching overhead describes the cost of the Linux kernel s context_switch() function, which performs the actual switching of the old and new tasks. The function is also
6 Number of migrations Overhead (ns) FIFO G-NP-EDF G-EDF G-GUA NG-GUA Number of tasks Figure 7: Number of migrations begin rt seg end rt seg gettid getcwd sched setscheduler Avg Min Max Figure 8: ChronOS system call overheads called by the Linux scheduler and is therefore not specific to ChronOS, but due to the fully preemptive nature of certain scheduling algorithms (such as NG-GUA, G-GUA), context switches are much more frequent under these algorithms than under SCHED_FIFO. Also, a context switch under such algorithms is more expensive, since the task that is being switched in often has been preempted from another processor, incurring cache misses. The average context switching overhead under SCHED_FIFO was 3.7µs with a standard deviation of 1.4µs. Under G-GUA, the average time was 12.7µs with a standard deviation of 2.µs. Scheduling overheads represent the time required to actually run the scheduling code for a specific algorithm. Scheduling overheads are shown for various algorithms, numbers of tasks, and utilizations in Fig. 6. Scheduling overheads are expectedly high at low load for the more complex GUA family of algorithms, due to their more complex task selection scheme. Likewise, at high loads non-abortive algorithms such as G-EDF display a higher overhead, since they backlog tasks, rather than aborting and removing them. In-scheduler migration reflects the time required by the kernel scheduler to pull a specific task from a remote runqueue to the local run-queue. This is largely dominated by the time required to lock the necessary spinlocks. We found that that average in-kernel task migration overhead in ChronOS is 8µs, with a standard deviation of 3µs. We also recorded the number of such migrations performed by each algorithm on various task-sets. These are displayed in Fig. 7. As expected, G-EDF and NG-GUA (which defaults to G-EDF) performs a significantly higher number of migrations than G-NP-EDF, which is similar to SCHED_FIFO. G-GUA performs by far the most migrations on a given taskset. Therefore, while on a per-migration basis the cost is constant, G-GUA suffers much higher migration overhead. We recorded the overheads for two system calls used by our real-time tasks to begin and end real-time scheduling segments. In Fig. 8 they are compared to the time required by three standard Linux system calls, gettid(), getcwd(), and sched_setscheduler(). Since gettid() simply returns a value from the task descriptor of the current task, it is a reasonable estimate of system call overhead. As shown, our system calls are comparatively long. The majority of this time is required to perform a call to the Linux scheduler. 7. CONCLUSIONS We have presented ChronOS, a Linux/PREEMPT_RT OS that supports CMP real-time scheduling including best-effort scheduling. At its core, ChronOS demonstrates that the best-effort timeliness notion, pioneered by the Alpha kernel, can be supported on Linux/PREEMPT_RT CMP platforms. Our future work will focus on understanding and increasing the scalability of global schedulers in ChronOS on high core-count systems. This paper is based on ChronOS Beta 2.4 and Linux kernel ChronOS is open-sourced under GPL and is publicly available through a website, withheld here to respect the conference anonymity rules. c ACM, 211. This is the author s version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version will appear in ACM Design Automation (DAC 211), June REFERENCES [1] A. Barbalace, A. Luchetta, G. Manduchi, M. Moro, A. Soppelsa, and C. Taliercio. Performance Comparison of VxWorks, Linux, RTAI, and Xenomai in a Hard Real-Time Application. Nuclear Science, IEEE Transactions on, 55(1): , feb. 28. [2] S. Baruah and N. Fisher. The partitioned multiprocessor scheduling of sporadic task systems. In RTSS 5: Proceedings of the 26th IEEE International Real-Time Systems Symposium, pages , 25. [3] B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leon-tyev, and J. Anderson. LITMUS RT : A Status Report. In RTLWS 7, 27. [4] J. M. Calandrino and J. H. Anderson. On the design and implementation of a cache-aware multicore real-time scheduler. In ECRTS 9, pages , 29. [5] R. Clark, E. D. Jensen, A. Kanevsky, J. Maurer, P. Wallace, T. Wheeler, Y. Zhang, D. Wells, T. Lawrence, and P. Hurley. An Adaptive, Distributed Airborne Tracking System ( Process the Right Tracks at the Right Time ). In In IEEE WPDRTS, volume 1586 of LNCS, pages Springer-Verlag, [6] R. K. Clark. Scheduling Dependent Real-Time Activities. PhD thesis, CMU, 199. CMU-CS [7] P. Garyali. On best-effort utility accrual real-time scheduling on multiprocessors. Master s thesis, Virginia Tech, /. [8] N. Guan, M. Stigge, W. Yi, and G. Yu. Cache-aware scheduling and analysis for multicores. In EMSOFT 9, pages , 29. [9] E. Jensen and J. Northcutt. Alpha: A Non-proprietary OS for Large, Complex, Distributed Real-Time Systems. In Experimental Distributed Systems, 199. Proceedings., IEEE Workshop on, pages 35 41,
7 [1] D. S. Johnson. Fast algorithms for bin packing. J. Comput. Syst. Sci., 8(3): , [11] Y.-C. Wang and K.-J. Lin. Implementing a general real-time scheduling framework in the red-linux real-time kernel. In RTSS 99, page 246, 1999.
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
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
Real-Time Multi-Core Virtual Machine Scheduling in Xen
Department of Computer Science & Engineering 23-9 Real-Time Multi-Core Virtual Machine Scheduling in Xen Authors: Sisu Xi, Meng Xu, Chenyang Lu, Linh T.X. Phan, Christopher Gill, Oleg Sokolsky, Insup Lee
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
W4118 Operating Systems. Instructor: Junfeng Yang
W4118 Operating Systems Instructor: Junfeng Yang Outline Advanced scheduling issues Multilevel queue scheduling Multiprocessor scheduling issues Real-time scheduling Scheduling in Linux Scheduling algorithm
Linux scheduler history. We will be talking about the O(1) scheduler
CPU Scheduling Linux scheduler history We will be talking about the O(1) scheduler SMP Support in 2.4 and 2.6 versions 2.4 Kernel 2.6 Kernel CPU1 CPU2 CPU3 CPU1 CPU2 CPU3 Linux Scheduling 3 scheduling
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
On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study
On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms A Case Study Björn B. Brandenburg, John M. Calandrino, and James H. Anderson Department of Computer Science, University of North
CPU Scheduling Outline
CPU Scheduling Outline What is scheduling in the OS? What are common scheduling criteria? How to evaluate scheduling algorithms? What are common scheduling algorithms? How is thread scheduling different
Real-Time Multi-Core Virtual Machine Scheduling in Xen
Real-Time Multi-Core Virtual Machine Scheduling in Xen Sisu Xi Meng Xu Chenyang Lu Linh T.X. Phan Christopher Gill Oleg Sokolsky Insup Lee Washington University in St. Louis University of Pennsylvania
Overview of the Linux Scheduler Framework
Overview of the Linux Scheduler Framework WORKSHOP ON REAL-TIME SCHEDULING IN THE LINUX KERNEL Pisa, June 27th, 2014 Marco Cesati University of Rome Tor Vergata Marco Cesati (Univ. of Rome Tor Vergata)
Hard Real-Time Linux
Hard Real-Time Linux (or: How to Get RT Performances Using Linux) Andrea Bastoni University of Rome Tor Vergata System Programming Research Group [email protected] Linux Kernel Hacking Free Course
Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings
Operatin g Systems: Internals and Design Principle s Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Bear in mind,
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)
Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run
SFWR ENG 3BB4 Software Design 3 Concurrent System Design 2 SFWR ENG 3BB4 Software Design 3 Concurrent System Design 11.8 10 CPU Scheduling Chapter 11 CPU Scheduling Policies Deciding which process to run
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
Real- Time Mul,- Core Virtual Machine Scheduling in Xen
Real- Time Mul,- Core Virtual Machine Scheduling in Xen Sisu Xi 1, Meng Xu 2, Chenyang Lu 1, Linh Phan 2, Chris Gill 1, Oleg Sokolsky 2, Insup Lee 2 1 Washington University in St. Louis 2 University of
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
Multi-core real-time scheduling
Multi-core real-time scheduling Credits: Anne-Marie Déplanche, Irccyn, Nantes (many slides come from her presentation at ETR, Brest, September 2011) 1 Multi-core real-time scheduling! Introduction: problem
Scheduling 0 : Levels. High level scheduling: Medium level scheduling: Low level scheduling
Scheduling 0 : Levels High level scheduling: Deciding whether another process can run is process table full? user process limit reached? load to swap space or memory? Medium level scheduling: Balancing
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.
KairosVM: Deterministic Introspection for Real-time Virtual Machine Hierarchical Scheduling
KairosVM: Deterministic Introspection for Real-time Virtual Machine Hierarchical Scheduling Kevin Burns, Antonio Barbalace, Vincent Legout, Binoy Ravindran Department of Electrical and Computer Engineering
Aperiodic Task Scheduling
Aperiodic Task Scheduling Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 12 Germany Springer, 2010 2014 年 11 月 19 日 These slides use Microsoft clip arts. Microsoft copyright
Linux O(1) CPU Scheduler. Amit Gud amit (dot) gud (at) veritas (dot) com http://amitgud.tk
Linux O(1) CPU Scheduler Amit Gud amit (dot) gud (at) veritas (dot) com http://amitgud.tk April 27, 2005 Agenda CPU scheduler basics CPU scheduler algorithms overview Linux CPU scheduler goals What is
Today. Intro to real-time scheduling Cyclic executives. Scheduling tables Frames Frame size constraints. Non-independent tasks Pros and cons
Today Intro to real-time scheduling Cyclic executives Scheduling tables Frames Frame size constraints Generating schedules Non-independent tasks Pros and cons Real-Time Systems The correctness of a real-time
ICS 143 - Principles of Operating Systems
ICS 143 - Principles of Operating Systems Lecture 5 - CPU Scheduling Prof. Nalini Venkatasubramanian [email protected] Note that some slides are adapted from course text slides 2008 Silberschatz. Some
CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS
CPU SCHEDULING CPU SCHEDULING (CONT D) Aims to assign processes to be executed by the CPU in a way that meets system objectives such as response time, throughput, and processor efficiency Broken down into
Analysis and Simulation of Scheduling Techniques for Real-Time Embedded Multi-core Architectures
Institute of Software Technology Department of Programming Languages and Compilers University of Stuttgart Universitätsstraße 38 D 70569 Stuttgart Master Thesis Nr. 3578 Analysis and Simulation of Scheduling
Long-term monitoring of apparent latency in PREEMPT RT Linux real-time systems
Long-term monitoring of apparent latency in PREEMPT RT Linux real-time systems Carsten Emde Open Source Automation Development Lab (OSADL) eg Aichhalder Str. 39, 78713 Schramberg, Germany [email protected]
10.04.2008. Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details
Thomas Fahrig Senior Developer Hypervisor Team Hypervisor Architecture Terminology Goals Basics Details Scheduling Interval External Interrupt Handling Reserves, Weights and Caps Context Switch Waiting
Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses
Overview of Real-Time Scheduling Embedded Real-Time Software Lecture 3 Lecture Outline Overview of real-time scheduling algorithms Clock-driven Weighted round-robin Priority-driven Dynamic vs. static Deadline
Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration
Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration 1 Harish H G, 2 Dr. R Girisha 1 PG Student, 2 Professor, Department of CSE, PESCE Mandya (An Autonomous Institution under
OPERATING SYSTEMS SCHEDULING
OPERATING SYSTEMS SCHEDULING Jerry Breecher 5: CPU- 1 CPU What Is In This Chapter? This chapter is about how to get a process attached to a processor. It centers around efficient algorithms that perform
Quality of Service su Linux: Passato Presente e Futuro
Quality of Service su Linux: Passato Presente e Futuro Luca Abeni [email protected] Università di Trento Quality of Service su Linux:Passato Presente e Futuro p. 1 Quality of Service Time Sensitive applications
Linux Process Scheduling. sched.c. schedule() scheduler_tick() hooks. try_to_wake_up() ... CFS CPU 0 CPU 1 CPU 2 CPU 3
Linux Process Scheduling sched.c schedule() scheduler_tick() try_to_wake_up() hooks RT CPU 0 CPU 1 CFS CPU 2 CPU 3 Linux Process Scheduling 1. Task Classification 2. Scheduler Skeleton 3. Completely Fair
Real-time KVM from the ground up
Real-time KVM from the ground up KVM Forum 2015 Rik van Riel Red Hat Real-time KVM What is real time? Hardware pitfalls Realtime preempt Linux kernel patch set KVM & qemu pitfalls KVM configuration Scheduling
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
Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.
Road Map Scheduling Dickinson College Computer Science 354 Spring 2010 Past: What an OS is, why we have them, what they do. Base hardware and support for operating systems Process Management Threads Present:
Operating System: Scheduling
Process Management Operating System: Scheduling OS maintains a data structure for each process called Process Control Block (PCB) Information associated with each PCB: Process state: e.g. ready, or waiting
Operating Systems. III. Scheduling. http://soc.eurecom.fr/os/
Operating Systems Institut Mines-Telecom III. Scheduling Ludovic Apvrille [email protected] Eurecom, office 470 http://soc.eurecom.fr/os/ Outline Basics of Scheduling Definitions Switching
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
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?
EECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun
EECS 750: Advanced Operating Systems 01/28 /2015 Heechul Yun 1 Recap: Completely Fair Scheduler(CFS) Each task maintains its virtual time V i = E i 1 w i, where E is executed time, w is a weight Pick the
Implementing and Using Execution Time Clocks in Ada Hard Real-Time Applications
Implementing and Using Execution Time Clocks in Ada Hard Real-Time Applications By: M. González Harbour, M. Aldea Rivas, J.J. Gutiérrez García, and J.C. Palencia Gutiérrez Departamento de Electrónica y
4. Fixed-Priority Scheduling
Simple workload model 4. Fixed-Priority Scheduling Credits to A. Burns and A. Wellings The application is assumed to consist of a fixed set of tasks All tasks are periodic with known periods This defines
A Comparison of Scheduling Latency in Linux, PREEMPT RT, and LITMUS RT
A Comparison of Scheduling Latency in Linux, PREEMPT RT, and LITMUS RT Felipe Cerqueira Björn B. Brandenburg Max Planck Institute for Software Systems (MPI-SWS) Abstract Scheduling latency under Linux
Operating Systems, 6 th ed. Test Bank Chapter 7
True / False Questions: Chapter 7 Memory Management 1. T / F In a multiprogramming system, main memory is divided into multiple sections: one for the operating system (resident monitor, kernel) and one
Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling
Objectives To introduce CPU scheduling To describe various CPU-scheduling algorithms Chapter 5: Process Scheduling To discuss evaluation criteria for selecting the CPUscheduling algorithm for a particular
Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts
Objectives Chapter 5: CPU Scheduling Introduce CPU scheduling, which is the basis for multiprogrammed operating systems Describe various CPU-scheduling algorithms Discuss evaluation criteria for selecting
Completely Fair Scheduler and its tuning 1
Completely Fair Scheduler and its tuning 1 Jacek Kobus and Rafał Szklarski 1 Introduction The introduction of a new, the so called completely fair scheduler (CFS) to the Linux kernel 2.6.23 (October 2007)
Linux Plumbers 2010. API for Real-Time Scheduling with Temporal Isolation on Linux
Linux Plumbers 2010 November 3rd, Boston API for Real-Time Scheduling with Temporal Isolation on Linux Tommaso Cucinotta, Cucinotta, Dhaval Giani, Dario Faggioli, Fabio Checconi Real-Time Systems Lab (RETIS)
Real-Time Operating Systems for MPSoCs
Real-Time Operating Systems for MPSoCs Hiroyuki Tomiyama Graduate School of Information Science Nagoya University http://member.acm.org/~hiroyuki MPSoC 2009 1 Contributors Hiroaki Takada Director and Professor
Chapter 5 Linux Load Balancing Mechanisms
Chapter 5 Linux Load Balancing Mechanisms Load balancing mechanisms in multiprocessor systems have two compatible objectives. One is to prevent processors from being idle while others processors still
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]
RT-Xen: Towards Real-time Hypervisor Scheduling in Xen
RT-Xen: Towards Real-time Hypervisor Scheduling in Xen Sisu Xi, Justin Wilson, Chenyang Lu, and Christopher Gill Department of Computer Science and Engineering Washington University in St. Louis {xis,
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,
Linux Scheduler. Linux Scheduler
or or Affinity Basic Interactive es 1 / 40 Reality... or or Affinity Basic Interactive es The Linux scheduler tries to be very efficient To do that, it uses some complex data structures Some of what it
Linux Process Scheduling Policy
Lecture Overview Introduction to Linux process scheduling Policy versus algorithm Linux overall process scheduling objectives Timesharing Dynamic priority Favor I/O-bound process Linux scheduling algorithm
CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems
Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems Based on original slides by Silberschatz, Galvin and Gagne 1 Basic Concepts CPU I/O Burst Cycle Process execution
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
Threads Scheduling on Linux Operating Systems
Threads Scheduling on Linux Operating Systems Igli Tafa 1, Stavri Thomollari 2, Julian Fejzaj 3 Polytechnic University of Tirana, Faculty of Information Technology 1,2 University of Tirana, Faculty of
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
Real- Time Scheduling
Real- Time Scheduling Chenyang Lu CSE 467S Embedded Compu5ng Systems Readings Ø Single-Processor Scheduling: Hard Real-Time Computing Systems, by G. Buttazzo. q Chapter 4 Periodic Task Scheduling q Chapter
Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum
Scheduling Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Scheduling Introduction to Scheduling (1) Bursts of CPU usage alternate with periods
Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example
Real-Time Scheduling (Part 1) (Working Draft) Insup Lee Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania www.cis.upenn.edu/~lee/ CIS 41,
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
Load-Balancing for a Real-Time System Based on Asymmetric Multi-Processing
LIFL Report # 2004-06 Load-Balancing for a Real-Time System Based on Asymmetric Multi-Processing Éric PIEL [email protected] Philippe MARQUET [email protected] Julien SOULA [email protected]
Processor Scheduling. Queues Recall OS maintains various queues
Processor Scheduling Chapters 9 and 10 of [OS4e], Chapter 6 of [OSC]: Queues Scheduling Criteria Cooperative versus Preemptive Scheduling Scheduling Algorithms Multi-level Queues Multiprocessor and Real-Time
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.
Konzepte von Betriebssystem-Komponenten. Linux Scheduler. Valderine Kom Kenmegne [email protected]. Proseminar KVBK Linux Scheduler Valderine Kom
Konzepte von Betriebssystem-Komponenten Linux Scheduler Kenmegne [email protected] 1 Contents: 1. Introduction 2. Scheduler Policy in Operating System 2.1 Scheduling Objectives 2.2 Some Scheduling
Framework for Validation, Test and Analysis of Real-time Scheduling Algorithms and Scheduler Implementations
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
Job Scheduling Model
Scheduling 1 Job Scheduling Model problem scenario: a set of jobs needs to be executed using a single server, on which only one job at a time may run for theith job, we have an arrival timea i and a run
Announcements. Basic Concepts. Histogram of Typical CPU- Burst Times. Dispatcher. CPU Scheduler. Burst Cycle. Reading
Announcements Reading Chapter 5 Chapter 7 (Monday or Wednesday) Basic Concepts CPU I/O burst cycle Process execution consists of a cycle of CPU execution and I/O wait. CPU burst distribution What are the
CHAPTER 1 INTRODUCTION
1 CHAPTER 1 INTRODUCTION 1.1 MOTIVATION OF RESEARCH Multicore processors have two or more execution cores (processors) implemented on a single chip having their own set of execution and architectural recourses.
CPU Scheduling. CPU Scheduling
CPU Scheduling Electrical and Computer Engineering Stephen Kim ([email protected]) ECE/IUPUI RTOS & APPS 1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling
What is best for embedded development? Do most embedded projects still need an RTOS?
RTOS versus GPOS: What is best for embedded development? Do most embedded projects still need an RTOS? It is a good question, given the speed of today s high-performance processors and the availability
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
Scheduling. Scheduling. Scheduling levels. Decision to switch the running process can take place under the following circumstances:
Scheduling Scheduling Scheduling levels Long-term scheduling. Selects which jobs shall be allowed to enter the system. Only used in batch systems. Medium-term scheduling. Performs swapin-swapout operations
System Software and TinyAUTOSAR
System Software and TinyAUTOSAR Florian Kluge University of Augsburg, Germany parmerasa Dissemination Event, Barcelona, 2014-09-23 Overview parmerasa System Architecture Library RTE Implementations TinyIMA
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
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
Process Scheduling II
Process Scheduling II COMS W4118 Prof. Kaustubh R. Joshi [email protected] hdp://www.cs.columbia.edu/~krj/os References: OperaWng Systems Concepts (9e), Linux Kernel Development, previous W4118s Copyright
Chapter 5 Process Scheduling
Chapter 5 Process Scheduling CPU Scheduling Objective: Basic Scheduling Concepts CPU Scheduling Algorithms Why Multiprogramming? Maximize CPU/Resources Utilization (Based on Some Criteria) CPU Scheduling
