Timing Subsystem in deep

Linux Kernel Programming - Timing Subsystem

4.55 (10 reviews)
Udemy
platform
English
language
Operating Systems
category
instructor
Timing Subsystem in deep
398
students
5 hours
content
Apr 2021
last update
$59.99
regular price

What you will learn

Programming timing in user space

Timing Hardware

Jiffies

Low resolution & High resolution timers

POSIX Clocks

Description

Timing Measurements in Linux Kernel

Many computer activities are based on timing measurements.

E.g. Your Computer display is turned off, if you have not pressed a key or moved your mouse for a particular time.

Linux timing subsystem mainly handles two types of timing activities

        1. Keeping the current time and date

                a. time() , gettimeofday() and clock_gettime()

                b. Time stamps for files and network packets

        2. Maintaining Timers

                a. Mechanisms to notify kernel and user space (ex. alarm()) that a certain interval of time has elapsed.

Hardware Devices

Linux depends on hardware devices to maintain time. These devices can be basically classified into two types:

        1. Clocks/Counters:  provide precise time measurements

                Used to keep track of current time of day

        2. Timers: Issue interrupts at fixed, predefined frequency.

                Used for implementing software timers

What will you learn from this course?

  • Various timing commands: date, uptime

  • POSIX Clocks: CLOCK_BOOTTIME, CLOCK_MONOTONIC_RAW, CLOCK_REALTIME, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID

  • Timing System calls: ctime, gettimeofday, clock_gettime, clock_settime, clock_getres, times, getrusage

  • Setting time from userspace

  • How to measure time for a particular instruction

  • Hardware Devices used in timing measurement: RTC, TSC, Programmable Interval Timer, APIC, High Precision Event Timer

  • Jiffies

  • Low Resolution and High Resolution Timers

This course comes with a 30 day money back guaranteed!. If you are not satisfied with the course, you'll get your money back

So what are you waiting for, enroll now and take the next step in learning Timing subsystem in Linux Kernel

Content

Programming timing in user space

date command
uptime command
Epoch time
ctime
gettimeofday
Can gettimeofday() be used for measured elapsed time
Monotonic clock
CLOCK_BOOTTIME
CLOCK_MONOTONIC_RAW
CLOCK_REALTIME
CLOCK_PROCESS_CPUTIME_ID
Example to calculate time taken to increment
Another Example using clock_gettime
CLOCK_MONOTONIC vs CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_CPUTIME_ID
clock_settime
clock_getres
times
getrusage

Hardware devices used in timing measurement

Timing Measurements in Linux Kernel
RTC
Kernel module example reading RTC
RTC Interrupts
RTC IOCTL Interface
RTC Periodic Interrupts
RTC Alarm Interrupt
Why RTC is not used after computer is powered on
TSC
Reading TSC from kernel space
RDTSCP
Issues using TSC with multiprocessor systems
Kernel functions for TSC
Programmable Interval Timer
Local APIC
High Precision Event Timer
Linux Abstraction

Jiffies

HZ
jiffies
What is the size of jiffies
Why is jiffies not declared as 64-bit on x86
Jiffies Wraparound
What is the initial value of jiffies on boot
INITIAL_JIFFIES
Why double casting is needed for INITIAL_JIFFIES macro
Convert jiffies to seconds milliseconds
Measuring module loaded time using jiffies
Can we update jiffies
Timer Interrupt processing
Busy looping using jiffies
Jiffies conversions
How are busy loops implemented
What is disadvantage of having periodic interrupts in Linux Kernel
Configuration of clock interrupts

Charts

Price

Timing Subsystem in deep - Price chart

Rating

Timing Subsystem in deep - Ratings chart

Enrollment distribution

Timing Subsystem in deep - Distribution chart

Related Topics

3503674
udemy ID
9/16/2020
course created date
1/21/2021
course indexed date
Bot
course submited by