ò Paper reading assigned for next Thursday ò Lab 2 due next Friday ò What is cooperative multitasking? ò What is preemptive multitasking?
|
|
|
- Georgia Craig
- 9 years ago
- Views:
Transcription
1 Housekeeping Paper reading assigned for next Thursday Scheduling Lab 2 due next Friday Don Porter CSE 506 Lecture goals Undergrad review Understand low-level building blocks of a scheduler Understand competing policy goals Understand the O(1) scheduler CFS next lecture Familiarity with standard Unix scheduling APIs What is cooperative multitasking? Processes voluntarily yield CPU when they are done What is preemptive multitasking? OS only lets tasks run for a limited time, then forcibly context switches the CPU Pros/cons? Cooperative gives more control; so much that one task can hog the CPU forever Preemptive gives OS more control, more overheads/complexity 1
2 Where can we preempt a process? In other words, what are the logical points at which the OS can regain control of the CPU? System calls Before During (more next time on this) After Interrupts Timer interrupt ensures maximum time slice (Linux) Terminology mm_struct represents an address space in kernel task represents a thread in the kernel A task points to 0 or 1 mm_structs Kernel threads just borrow previous task s mm, as they only execute in kernel address space Many tasks can point to the same mm_struct Multi-threading Quantum CPU timeslice Outline Policy goals Policy goals Low-level mechanisms O(1) Scheduler CPU topologies Scheduling interfaces Fairness everything gets a fair share of the CPU Real-time deadlines CPU time before a deadline more valuable than time after Latency vs. Throughput: Timeslice length matters! GUI programs should feel responsive CPU-bound jobs want long timeslices, better throughput User priorities Virus scanning is nice, but I don t want it slowing things down 2
3 No perfect solution Context switching Optimizing multiple variables Like memory allocation, this is best-effort Some workloads prefer some scheduling strategies Nonetheless, some solutions are generally better than others What is it? Swap out the address space and running thread Address space: Need to change page tables Update cr3 register on x86 Simplified by convention that kernel is at same address range in all processes What would be hard about mapping kernel in different places? Other context switching tasks Swap out other register state Segments, debugging registers, MMX, etc. If descheduling a process for the last time, reclaim its memory Switch thread stacks Switching threads Programming abstraction: /* Do some work */ schedule(); /* Something else runs */ /* Do more work */ 3
4 How to switch stacks? Example Store register state on the stack in a well-defined format Carefully update stack registers to new stack Tricky: can t use stack-based storage for this step! ebp esp Thread 1 (prev) regs Thread 2 (next) regs ebp ebp eax /* eax is next->thread_info.esp */! /* push general-purpose regs*/! push ebp! mov esp, eax! pop ebp! /* pop other regs */! Weird code to write How to code this? Inside schedule(), you end up with code like: switch_to(me, next, &last);! /* possibly clean up last */! Where does last come from? Output of switch_to Written on my stack by previous thread (not me)! Pick a register (say ebx); before context switch, this is a pointer to last s location on the stack Pick a second register (say eax) to stores the pointer to the currently running task (me) Make sure to push ebx after eax After switching stacks: pop ebx /* eax still points to old task*/ mov (ebx), eax /* store eax at the location ebx points to */ pop eax /* Update eax to new task */ 4
5 Outline Strawman scheduler Policy goals Low-level mechanisms O(1) Scheduler CPU topologies Scheduling interfaces Organize all processes as a simple list In schedule(): Pick first one on list to run next Put suspended task at the end of the list Problem? Only allows round-robin scheduling Can t prioritize tasks Even straw-ier man O(1) scheduler Naïve approach to priorities: Scan the entire list on each run Or periodically reshuffle the list Problems: Goal: decide who to run next, independent of number of processes in system Still maintain ability to prioritize tasks, handle partially unused quanta, etc Forking where does child go? What about if you only use part of your quantum? E.g., blocking I/O 5
6 O(1) Bookkeeping O(1) Intuition runqueue: a list of runnable processes Blocked processes are not on any runqueue A runqueue belongs to a specific CPU Each task is on exactly one runqueue Task only scheduled on runqueue s CPU unless migrated 2 *40 * #CPUs runqueues 40 dynamic priority levels (more later) 2 sets of runqueues one active and one expired Take the first task off the lowest-numbered runqueue on active set Confusingly: a lower priority value means higher priority When done, put it on appropriate runqueue on expired set Once active is completely empty, swap which set of runqueues is active and expired Constant time, since fixed number of queues to check; only take first item from non-empty queue How is this better than a sorted list? Remember partial quantum use problem? Process uses half of its timeslice and then blocks on disk Once disk I/O is done, where to put the task? Simple: task goes in active runqueue at its priority Higher-priority tasks go to front of the line once they become runnable Time slice tracking If a process blocks and then becomes runnable, how do we know how much time it had left? Each task tracks ticks left in time_slice field On each lock tick: current->time_slice--! If time slice goes to zero, move to expired queue Refill time slice Schedule someone else An unblocked task can use balance of time slice Forking halves time slice with child 6
7 More on priorities 100 = highest priority 139 = lowest priority 120 = base priority nice value: user-specified adjustment to base priority Selfish (not nice) = -20 (I want to go first) Really nice = +19 (I will go last) Base time slice # % (140 prio)* 20ms prio <120 time = $ % (140 prio)* 5ms prio 120 & Higher priority tasks get longer time slices And run first Goal: Responsive UIs Idea: Infer from sleep time Most GUI programs are I/O bound on the user Unlikely to use entire time slice Users get annoyed when they type a key and it takes a long time to appear Idea: give UI programs a priority boost Go to front of line, run briefly, block on I/O again Which ones are the UI programs? By definition, I/O bound applications spend most of their time waiting on I/O We can monitor I/O wait time and infer which programs are GUI (and disk intensive) Give these applications a priority boost Note that this behavior can be dynamic Ex: GUI configures DVD ripping, then it is CPU-bound Scheduling should match program phases 7
8 Dynamic priority Rebalancing tasks dynamic priority = max ( 100, min ( static priority bonus + 5, 139 ) ) Bonus is calculated based on sleep time Dynamic priority determines a tasks runqueue This is a heuristic to balance competing goals of CPU throughput and latency in dealing with infrequent I/O May not be optimal As described, once a task ends up in one CPU s runqueue, it stays on that CPU forever What if all the processes on CPU 0 exit, and all of the processes on CPU 1 fork more children? We need to periodically rebalance Balance overheads against benefits Figuring out where to move tasks isn t free Idea: Idle CPUs rebalance Average load If a CPU is out of runnable tasks, it should take load from busy CPUs Busy CPUs shouldn t lose time finding idle CPUs to take their work if possible There may not be any idle CPUs How do we measure how busy a CPU is? Average number of runnable tasks over time Available in /proc/loadavg Overhead to figure out whether other idle CPUs exist Just have busy CPUs rebalance much less frequently 8
9 Rebalancing strategy Locking note Read the loadavg of each CPU Find the one with the highest loadavg (Hand waving) Figure out how many tasks we could take If worth it, lock the CPU s runqueues and take them If not, try again later If CPU A locks CPU B s runqueue to take some work: CPU B must lock its runqueues in the common case that no one is rebalancing Cf. Hoard and per-cpu heaps Idiosyncrasy: runqueue locks are acquired by one task and released by another Usually this would indicate a bug! Why not rebalance? SMP Intuition: If things run slower on another CPU Why might this happen? NUMA (Non-Uniform Memory Access) Hyper-threading Multi-core cache behavior Vs: Symmetric Multi-Processor (SMP) performance on all CPUs is basically the same CPU CPU CPU CPU Memory All CPUs similar, equally close to memory 9
10 Node NUMA Node Hyper-threading Precursor to multi-core CPU CPU CPU CPU Memory Memory Want to keep execution near memory; higher migration costs A few more transistors than Intel knew what to do with, but not enough to build a second core on a chip yet Duplicate architectural state (registers, etc), but not execution resources (ALU, floating point, etc) OS view: 2 logical CPUs CPU: pipeline bubble in one CPU can be filled with operations from another; yielding higher utilization Hyper-threaded scheduling Imagine 2 hyper-threaded CPUs 4 Logical CPUs But only 2 CPUs-worth of power Suppose I have 2 tasks They will do much better on 2 different physical CPUs than sharing one physical CPU They will also contend for space in the cache Multi-core More levels of caches Migration among CPUs sharing a cache preferable Why? More likely to keep data in cache Less of a problem for threads in same program. Why? 10
11 Scheduling Domains Outline General abstraction for CPU topology Tree of CPUs Each leaf node contains a group of close CPUs When an idle CPU rebalances, it starts at leaf node and works up to the root Most rebalancing within the leaf Higher threshold to rebalance across a parent Policy goals Low-level mechanisms O(1) Scheduler CPU topologies Scheduling interfaces Setting priorities Scheduler Affinity setpriority(which, who, niceval) and getpriority() Which: process, process group, or user id PID, PGID, or UID Niceval: -20 to +19 (recall earlier) nice(niceval) Historical interface (backwards compatible) Equivalent to: setpriority(prio_process, getpid(), niceval) sched_setaffinity and sched_getaffinity Can specify a bitmap of CPUs on which this can be scheduled Better not be 0! Useful for benchmarking: ensure each thread on a dedicated CPU 11
12 yield Summary Moves a runnable task to the expired runqueue Unless real-time (more later), then just move to the end of the active runqueue Several other real-time related APIs Understand competing scheduling goals Understand how context switching implemented Understand O(1) scheduler + rebalancing Understand various CPU topologies and scheduling domains Scheduling system calls 12
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
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
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
Operating Systems Concepts: Chapter 7: Scheduling Strategies
Operating Systems Concepts: Chapter 7: Scheduling Strategies Olav Beckmann Huxley 449 http://www.doc.ic.ac.uk/~ob3 Acknowledgements: There are lots. See end of Chapter 1. Home Page for the course: http://www.doc.ic.ac.uk/~ob3/teaching/operatingsystemsconcepts/
ò Scheduling overview, key trade-offs, etc. ò O(1) scheduler older Linux scheduler ò Today: Completely Fair Scheduler (CFS) new hotness
Last time Scheduling overview, key trade-offs, etc. O(1) scheduler older Linux scheduler Scheduling, part 2 Don Porter CSE 506 Today: Completely Fair Scheduler (CFS) new hotness Other advanced scheduling
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
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 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
Process Scheduling CS 241. February 24, 2012. Copyright University of Illinois CS 241 Staff
Process Scheduling CS 241 February 24, 2012 Copyright University of Illinois CS 241 Staff 1 Announcements Mid-semester feedback survey (linked off web page) MP4 due Friday (not Tuesday) Midterm Next Tuesday,
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
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
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
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
Scheduling policy. ULK3e 7.1. Operating Systems: Scheduling in Linux p. 1
Scheduling policy ULK3e 7.1 Goals fast process response time good throughput for background jobs avoidance of process starvation reconciliation of needs of low- and high-priority processes Operating Systems:
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
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
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
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
Comp 204: Computer Systems and Their Implementation. Lecture 12: Scheduling Algorithms cont d
Comp 204: Computer Systems and Their Implementation Lecture 12: Scheduling Algorithms cont d 1 Today Scheduling continued Multilevel queues Examples Thread scheduling 2 Question A starvation-free job-scheduling
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
CPU Scheduling. Core Definitions
CPU Scheduling General rule keep the CPU busy; an idle CPU is a wasted CPU Major source of CPU idleness: I/O (or waiting for it) Many programs have a characteristic CPU I/O burst cycle alternating phases
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
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
CPU Scheduling. CSC 256/456 - Operating Systems Fall 2014. TA: Mohammad Hedayati
CPU Scheduling CSC 256/456 - Operating Systems Fall 2014 TA: Mohammad Hedayati Agenda Scheduling Policy Criteria Scheduling Policy Options (on Uniprocessor) Multiprocessor scheduling considerations CPU
Multi-core and Linux* Kernel
Multi-core and Linux* Kernel Suresh Siddha Intel Open Source Technology Center Abstract Semiconductor technological advances in the recent years have led to the inclusion of multiple CPU execution cores
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)
Chapter 5: CPU Scheduling. Operating System Concepts 8 th Edition
Chapter 5: CPU Scheduling Silberschatz, Galvin and Gagne 2009 Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating
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
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
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
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?
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
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,
Processes and Non-Preemptive Scheduling. Otto J. Anshus
Processes and Non-Preemptive Scheduling Otto J. Anshus 1 Concurrency and Process Challenge: Physical reality is Concurrent Smart to do concurrent software instead of sequential? At least we want to have
W4118 Operating Systems. Instructor: Junfeng Yang
W4118 Operating Systems Instructor: Junfeng Yang Outline Introduction to scheduling Scheduling algorithms 1 Direction within course Until now: interrupts, processes, threads, synchronization Mostly mechanisms
Effective Computing with SMP Linux
Effective Computing with SMP Linux Multi-processor systems were once a feature of high-end servers and mainframes, but today, even desktops for personal use have multiple processors. Linux is a popular
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
Task Scheduling for Multicore Embedded Devices
Embedded Linux Conference 2013 Task Scheduling for Multicore Embedded Devices 2013. 02. 22. Gap-Joo Na ([email protected]) Contents 2 What is multicore?? 1. Multicore trends 2. New Architectures 3. Software
Process Scheduling in Linux
The Gate of the AOSP #4 : Gerrit, Memory & Performance Process Scheduling in Linux 2013. 3. 29 Namhyung Kim Outline 1 Process scheduling 2 SMP scheduling 3 Group scheduling - www.kandroid.org 2/ 41 Process
Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm
Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm PURPOSE Getting familiar with the Linux kernel source code. Understanding process scheduling and how different parameters
HyperThreading Support in VMware ESX Server 2.1
HyperThreading Support in VMware ESX Server 2.1 Summary VMware ESX Server 2.1 now fully supports Intel s new Hyper-Threading Technology (HT). This paper explains the changes that an administrator can expect
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
CPU Scheduling 101. The CPU scheduler makes a sequence of moves that determines the interleaving of threads.
CPU Scheduling CPU Scheduling 101 The CPU scheduler makes a sequence of moves that determines the interleaving of threads. Programs use synchronization to prevent bad moves. but otherwise scheduling choices
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
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 (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
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
White Paper Perceived Performance Tuning a system for what really matters
TMurgent Technologies White Paper Perceived Performance Tuning a system for what really matters September 18, 2003 White Paper: Perceived Performance 1/7 TMurgent Technologies Introduction The purpose
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
CS414 SP 2007 Assignment 1
CS414 SP 2007 Assignment 1 Due Feb. 07 at 11:59pm Submit your assignment using CMS 1. Which of the following should NOT be allowed in user mode? Briefly explain. a) Disable all interrupts. b) Read the
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
A Survey of Parallel Processing in Linux
A Survey of Parallel Processing in Linux Kojiro Akasaka Computer Science Department San Jose State University San Jose, CA 95192 408 924 1000 [email protected] ABSTRACT Any kernel with parallel processing
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:
Main Points. Scheduling policy: what to do next, when there are multiple threads ready to run. Definitions. Uniprocessor policies
Scheduling Main Points Scheduling policy: what to do next, when there are multiple threads ready to run Or multiple packets to send, or web requests to serve, or Definitions response time, throughput,
Outline: Operating Systems
Outline: Operating Systems What is an OS OS Functions Multitasking Virtual Memory File Systems Window systems PC Operating System Wars: Windows vs. Linux 1 Operating System provides a way to boot (start)
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
These sub-systems are all highly dependent on each other. Any one of them with high utilization can easily cause problems in the other.
Abstract: The purpose of this document is to describe how to monitor Linux operating systems for performance. This paper examines how to interpret common Linux performance tool output. After collecting
Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems
Lecture Outline Operating Systems Objectives Describe the functions and layers of an operating system List the resources allocated by the operating system and describe the allocation process Explain how
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
Why Relative Share Does Not Work
Why Relative Share Does Not Work Introduction Velocity Software, Inc March 2010 Rob van der Heij rvdheij @ velocitysoftware.com Installations that run their production and development Linux servers on
Kernel Optimizations for KVM. Rik van Riel Senior Software Engineer, Red Hat June 25 2010
Kernel Optimizations for KVM Rik van Riel Senior Software Engineer, Red Hat June 25 2010 Kernel Optimizations for KVM What is virtualization performance? Benefits of developing both guest and host KVM
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 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
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
REAL TIME OPERATING SYSTEMS. Lesson-10:
REAL TIME OPERATING SYSTEMS Lesson-10: Real Time Operating System 1 1. Real Time Operating System Definition 2 Real Time A real time is the time which continuously increments at regular intervals after
The CPU Scheduler in VMware vsphere 5.1
VMware vsphere 5.1 Performance Study TECHNICAL WHITEPAPER Table of Contents Executive Summary... 4 Introduction... 4 Terminology... 4 CPU Scheduler Overview... 5 Design Goals... 5 What, When, and Where
OS OBJECTIVE QUESTIONS
OS OBJECTIVE QUESTIONS Which one of the following is Little s formula Where n is the average queue length, W is the time that a process waits 1)n=Lambda*W 2)n=Lambda/W 3)n=Lambda^W 4)n=Lambda*(W-n) Answer:1
Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies
Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Kurt Klemperer, Principal System Performance Engineer [email protected] Agenda Session Length:
Chapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
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
4003-440/4003-713 Operating Systems I. Process Scheduling. Warren R. Carithers ([email protected]) Rob Duncan ([email protected])
4003-440/4003-713 Operating Systems I Process Scheduling Warren R. Carithers ([email protected]) Rob Duncan ([email protected]) Review: Scheduling Policy Ideally, a scheduling policy should: Be: fair, predictable
OS Thread Monitoring for DB2 Server
1 OS Thread Monitoring for DB2 Server Minneapolis March 1st, 2011 Mathias Hoffmann ITGAIN GmbH [email protected] 2 Mathias Hoffmann Background Senior DB2 Consultant Product Manager for SPEEDGAIN
RTOS Debugger for ecos
RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3
Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat
Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat Why Computers Are Getting Slower The traditional approach better performance Why computers are
Operating Systems Lecture #6: Process Management
Lecture #6: Process Written by based on the lecture series of Dr. Dayou Li and the book Understanding 4th ed. by I.M.Flynn and A.McIver McHoes (2006) Department of Computer Science and Technology,., 2013
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Linux Block I/O Scheduling. Aaron Carroll [email protected] December 22, 2007
Linux Block I/O Scheduling Aaron Carroll [email protected] December 22, 2007 As of version 2.6.24, the mainline Linux tree provides four block I/O schedulers: Noop, Deadline, Anticipatory (AS)
CPU Scheduling. Multitasking operating systems come in two flavours: cooperative multitasking and preemptive multitasking.
CPU Scheduling The scheduler is the component of the kernel that selects which process to run next. The scheduler (or process scheduler, as it is sometimes called) can be viewed as the code that divides
Using Power to Improve C Programming Education
Using Power to Improve C Programming Education Jonas Skeppstedt Department of Computer Science Lund University Lund, Sweden [email protected] jonasskeppstedt.net jonasskeppstedt.net [email protected]
Readings for this topic: Silberschatz/Galvin/Gagne Chapter 5
77 16 CPU Scheduling Readings for this topic: Silberschatz/Galvin/Gagne Chapter 5 Until now you have heard about processes and memory. From now on you ll hear about resources, the things operated upon
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
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)
Linux Load Balancing
Linux Load Balancing Hyunmin Yoon 2 Load Balancing Linux scheduler attempts to evenly distribute load across CPUs Load of CPU (run queue): sum of task weights Load balancing is triggered by Timer interrupts
Introduction. Application Performance in the QLinux Multimedia Operating System. Solution: QLinux. Introduction. Outline. QLinux Design Principles
Application Performance in the QLinux Multimedia Operating System Sundaram, A. Chandra, P. Goyal, P. Shenoy, J. Sahni and H. Vin Umass Amherst, U of Texas Austin ACM Multimedia, 2000 Introduction General
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
Course Development of Programming for General-Purpose Multicore Processors
Course Development of Programming for General-Purpose Multicore Processors Wei Zhang Department of Electrical and Computer Engineering Virginia Commonwealth University Richmond, VA 23284 [email protected]
Scheduling Algorithms
Scheduling Algorithms List Pros and Cons for each of the four scheduler types listed below. First In First Out (FIFO) Simplicity FIFO is very easy to implement. Less Overhead FIFO will allow the currently
University of Pennsylvania Department of Electrical and Systems Engineering Digital Audio Basics
University of Pennsylvania Department of Electrical and Systems Engineering Digital Audio Basics ESE250 Spring 2013 Lab 9: Process CPU Sharing Friday, March 15, 2013 For Lab Session: Thursday, March 21,
Benchmarking Hadoop & HBase on Violin
Technical White Paper Report Technical Report Benchmarking Hadoop & HBase on Violin Harnessing Big Data Analytics at the Speed of Memory Version 1.0 Abstract The purpose of benchmarking is to show advantages
Operating System Tutorial
Operating System Tutorial OPERATING SYSTEM TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Operating System Tutorial An operating system (OS) is a collection
Operating System Software
Operating System Software Lecture 7 The operating system Defines our computing experience. First software we see when we turn on the computer, and the last software we see when the computer is turned off.
The Linux Kernel: Process Management. CS591 (Spring 2001)
The Linux Kernel: Process Management Process Descriptors The kernel maintains info about each process in a process descriptor, of type task_struct. See include/linux/sched.h Each process descriptor contains
Multi-core architectures. Jernej Barbic 15-213, Spring 2007 May 3, 2007
Multi-core architectures Jernej Barbic 15-213, Spring 2007 May 3, 2007 1 Single-core computer 2 Single-core CPU chip the single core 3 Multi-core architectures This lecture is about a new trend in computer
