Time Sources and Timing

Slides:



Advertisements
Similar presentations
Time Measurement Topics Time scales Interval counting Cycle counters K-best measurement scheme time.ppt CS 105 Tour of Black Holes of Computing.
Advertisements

Operating Systems Process Scheduling (Ch 3.2, )
CS 6560 Operating System Design Lecture 7: Kernel Synchronization Kernel Time Management.
The Process Control Block From: A Process Control Block (PCB, also called Task Control Block or Task Struct) is.
BFS: Brain F*ck Scheduler Jacob Chan. Objectives  Brain F*ck Scheduling  What it is  How it works  Features  Scalability  Limitations  Definition.
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Jonathan.
COMS W6998 Spring 2010 Erich Nahum
Chapter 13 Embedded Systems
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
4061 Session 17 (3/19). Today Time in UNIX Today’s Objectives Define what is meant when a system is called “interrupt-driven” Describe some trade-offs.
Real-Time Concepts for Embedded Systems
CS591 (Spring 2001) The Linux Kernel: Debugging. CS591 (Spring 2001) Accessing the “Black Box” n Kernel code: n Not always executed in context of a process.
Real-Time Systems Design1 Priority Inversion When a low-priority task blocks a higher-priority one, a priority inversion is said to occur Assume that priorities:
Timer Timer is a device, which counts the input at regular interval (δT) using clock pulses at its input. The counts increment on each pulse and store.
Time Management.  Time management is concerned with OS facilities and services which measure real time, and is essential to the operation of timesharing.
Outline for Today Objectives: –Time and Timers Administrative details: –Talk on learning at 4 in 130 North Building –Questions?
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Oindrila.
Copyright ©: Nahrstedt, Angrave, Abdelzaher, Caccamo1 Timers and Clocks II.
Computer Organization Instruction Set Architecture (ISA) Instruction Set Architecture (ISA), or simply Architecture, of a computer is the.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
How & When The Kernel Runs David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO
Time Sources and Timing David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Scheduling Classes and Real-Time Scheduling in Linux David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St.
Interrupts and Interrupt Handling David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Ch6. Flow of Time Ch7. Getting Hold of Memory 홍원의.
Processes David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
© 2013 MontaVista Software, LLC. MontaVista Confidential and Proprietary. CGE7 Core Isolation Nawneet Anand.
Real-Time Operating Systems RTOS For Embedded systems.
Timers and Time Management Ok-Kyun Ha
Outline for Today Objectives: –Time and Timers Administrative details: –About the final…
Computer System Structures
REAL-TIME OPERATING SYSTEMS
Processes and threads.
Scheduling of Non-Real-Time Tasks in Linux (SCHED_NORMAL/SCHED_OTHER)
Chapter 8: Main Memory.
Process Management Process Concept Why only the global variables?
How & When The Kernel Runs
Midterm Review Chris Gill CSE 422S - Operating Systems Organization
Midterm Review David Ferry, Chris Gill
Processes David Ferry, Chris Gill
Time Sources and Timing
Semester Review Chris Gill CSE 422S - Operating Systems Organization
Interrupts and Interrupt Handling
Chapter 8: Main Memory.
Chapter 9: Virtual-Memory Management
CS140 – Operating Systems Midterm Review
EECS 373: Design of Microprocessor-Based Systems
Kernel Structure and Infrastructure
Lecture Topics: 11/1 General Operating System Concepts Processes
Enforcing Real-Time Behavior I
Top Half / Bottom Half Processing
Operating Systems Lecture 3.
Overview of the Lab 2 Assignment: Multicore Real-Time Tasks
Midterm Review Brian Kocoloski
How & When The Kernel Runs
Scheduling of Regular Tasks in Linux
Time Sources and Timing
Processes David Ferry CSCI 3500 – Operating Systems
Kernel Tracing David Ferry, Chris Gill, Brian Kocoloski
Supporting Time-Sensitive Applications on a Commodity OS
Scheduling Classes and Real-Time Scheduling in Linux
Scheduling & Dispatching
Interrupts and Interrupt Handling
Processes David Ferry, Chris Gill, Brian Kocoloski
COMP755 Advanced Operating Systems
Virtual Memory and Paging
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Shared Memory David Ferry, Chris Gill
Scheduling of Regular Tasks in Linux
Presentation transcript:

Time Sources and Timing David Ferry, Chris Gill CSE 422S - Operating Systems Organization Washington University in St. Louis St. Louis, MO 63143

CSE 422S – Operating Systems Organization What is meant by Time? Absolute time since some fixed past event, e.g.: Seconds since start of the Unix Epoch (00:00:00 UTC on 1 January 1970) Seconds since system boot Relative time, E.g.: Seconds between two events Ten seconds into the future (from now) Execution time of a program segment World time, E.g.: February 4th, 10:37 AM An OS must approximate time to provide time-based functions for users. CSE 422S – Operating Systems Organization

CSE 422S – Operating Systems Organization Time Sources RTC (Real-Time Clock) Available on most computers (not on RPi 2 or 3 unless you add it) Low precision (as low as 0.5 seconds) Hardware Timers Might be used to generate interrupts, might be queryable Run at a variety of frequencies Programmable Interval Timer (PIT) High-Performance Event Timer (HPET) Programmable Interrupt Controller (PIC) Advanced Programmable Interrupt Controller (APIC) Processor Cycles Timestamp Counter (TSC) on x86, 64-bit Cycle Counter (CCNT) on ARM, 32-bit, 64-cycle divider, not accessible in user mode Potentially very high accuracy Can generate interrupts on x86 with TSC-deadline CSE 422S – Operating Systems Organization

How does the kernel schedule services? Three approaches: Timer interrupts to regularly provide service e.g.: task scheduling, current time update Kernel timers (hrtimers, legacy timers) Kernel threads (not time dependent) A portable OS must use whatever timer hardware is available to support actions #1 and #2. CSE 422S –Operating Systems Organization

Basic Timer Interrupt in Linux Historically the OS would run periodically: Fundamental timestep is variable HZ found in /include/asm-generic/param.h OS function tick_periodic() runs each 1/HZ seconds jiffies variable tracks number of ticks since boot xtime variable tracks wall-clock time Current time since boot: jiffies * 1/HZ Current wall time: boot_time + jiffies * 1/HZ Timers are checked for expiry each tick Concerns with this approach: Excessive power consumption (can’t really idle processors) Inappropriate for highly virtualized systems Might be appropriate for real-time systems CSE 422S –Operating Systems Organization

Problems with legacy time system Legacy timers could only expire each tick Latency problems: with 10ms tick a timeout might be delivered 9.9ms late Resolution problems: with a 10ms tick all we know was that timeout was 0-9.9ms ago Legacy timer wheel implementation problems: Bad worst case expiration running time (O(N)) 95-99% of timers never actually expire (e.g. http timeouts, error checking) but still incur overhead Thus, not optimized for “millions of network timers” case CSE 422S –Operating Systems Organization

Modern Timer Interrupt in Linux Two fundamental operating modes: Periodic (CLOCK_EVT_MODE_PERIODIC) One-shot (CLOCK_EVT_MODE_ONESHOT) One-shot mode (CONFIG_NO_HZ): All timer events are independent (not periodic) Next timer event is scheduled for: Next hrtimer expiration (or jiffie, whichever is sooner) Not rescheduled if no runnable tasks jiffies is maintained as though periodic Big power savings in idle CSE 422S –Operating Systems Organization

CSE 422S –Operating Systems Organization hrtimers subsystem The kernel now provides a high resolution timing subsystem: hrtimers Not bound to jiffies Can use multiple time sources High resolution (nanosecond representation) Implementation: Per-CPU timer list stored as a sorted red-black tree for fast expiration Separate list for fast removal (no tree walking) Expiration handled by dedicated interrupts CSE 422S –Operating Systems Organization

Time Measurement Nuances The timespec struct is declared in <time.h> Stores time info (in seconds and nanoseconds) struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; May need to normalize when adding, subtracting, etc. temp.tv_sec = t2.tv_sec - t1.tv_sec; // ok: monotonically non-decreasing temp.tv_nsec = t2.tv_nsec - t1.tv_nsec; // could give negative value Watch out for overflow (use unsigned long long etc.) Today’s studio will give you experience measuring time (and timer resolution) in user space programs CSE 422S –Operating Systems Organization