Linux时间子系统(六) POSIX timer】的更多相关文章

一.前言 在用户空间接口函数文档中,我们描述了和POSIX timer相关的操作,主要包括创建一个timer.设定timer.获取timer的状态.获取timer overrun的信息.删除timer.本文将沿着这些用户空间的接口定义来看看内核态的实现.虽然POSIX timer可以基于各种不同的clock创建,本文主要描述real time clock相关的timer. 本文第二章描述了POSIX timer的基本原理,第三章描述系统调用的具体实现,第四章主要讲real time clock的…
一.前言 clock是timer的基础,任何一个timer都需要运作在一个指定的clock上来.内核中维护了若干的clock,本文第二章描述了clock的基本概念和一些静态定义的posix clock.根据计时的特点,clock分成两种:一种是真实世界的时间概念,另外一个是仅仅计算CPU执行时间 ,这两种clock分别在第三和第四章描述.从clock的生命周期来看,可以分成静态和动态的posix clock,静态是一直存在于内核中的,而动态clock有创建和销毁的概念,本文第五章描述了dynam…
用户空间应用中创建一个Timer(alarm/setitimer/POSIX Timer等等),然后程序继续执行: 内核进入创建/设置Timer系统调用,开始计时,在超时后通过何种方式通知用户空间: 用户空间又是如何执行回调函数的. 下面就着重这个流程,梳理一下Timer周期中用户空间和内核空间涉及到的相关模块. 1. 总体框架 关注的Timer(alarm/setitimer/POSIX Timer),都在libc/librt/libphtread中定义.librt是POSIX.1b Real…
关于Linux时间子系统有两个系列文章讲的非常好,分别是WowoTech和DroidPhone. 还有两本书分别是介绍: Linux用户空间时间子系统<Linux/UNIX系统编程手册>的第10章 时间和第23章 定时器与休眠 Linux内核时间子系统<深入Linux内核架构>的第15章 时间管理. <Linux/Unix系统编程手册> 时间子系统 <深入Linux内核架构>时间子系统 WowoTech Linux时间子系统专题 Linux时间子系统之(一)…
专题文档汇总目录 Notes:首先讲解了POSIX timer的标识(唯一识别).POSIX Timer的组织(管理POSIX Timer).内核中如何抽象POSIX Timer:然后分析了POSIX timer相关系统调用(timer_create/timer_gettime/timer_getoverrun/timer_settime/timer_delete):再后重点分析了real time timer的callback函数.POSIX timer超时有三种方式(SIGEV_SIGNAL…
专题文档汇总目录 Notes: 本章主要介绍了若干种类的静态时钟,这些时钟都可以通过k_clock表示,注册到posix_clocks中.这些都是静态时钟,可以分为三大类:各种REALTIME时钟.带_ALARM唤醒功能的时钟以及进程线程相关时钟.当然不是所有的时钟都具备定时器功能,但是所有的时钟都提供clock_getres和clock_get. 然后介绍了可以动态加载/卸载的时钟,除了具备时钟.定时器功能外,还需要具备字符设备操作接口. 原文地址:Linux时间子系统之(五):POSIX C…
专题文档汇总目录 Notes:介绍struct clocke_event_device及其功能feature.模式:触发event接口clockevents_program_event:clockevent注册接口:clockevent的sysfs接口. 原文地址:Linux时间子系统之(十六):clockevent 一.clock event控制的通用逻辑 1.产生clock event的设备 各种系统的timer硬件形形色色,不过在general clock event device lay…
专题文档汇总目录 Notes:ARM平台Clock/Timer架构:System counter.Timer以及两者之间关系:Per cpu timer通过CP15访问,System counter通过memory mapped IO访问:将System counter和Per cpu timer分别作为clocksource和clock event device注册到Linux时间子系统. 原文地址:Linux时间子系统之(十七):ARM generic timer驱动代码分析 一.前言 关注…
一.前言 关注ARM平台上timer driver(clocksource chip driver和clockevent chip driver)的驱动工程师应该会注意到timer硬件的演化过程.在单核时代,各个SOC vendor厂商购买ARM core的IP,然后自己设计SOC上的peripherals,这里面就包括了timer的硬件.由于没有统一的标准,各个厂商的设计各不相同,这给驱动工程师带来了工作量.然而,如果仅仅是工作量的话就还好,实际上,不仅仅如此.linux的时间子系统要求硬件t…
专题文档汇总目录 Notes:从框架上讲解了时间子系统,从底向上包括CPU Local TImer.Global Counter.Clock Souce/Clock Events模块管理.Tick Device.高精度timer.低精度timer.Broadcast timer.Timekeeping.用户空间Time/Timer系统调用接口.用户空间函数库.然后介绍了时间子系统相关文件及其描述,不同功能需求的内核配置.低精度Timer/高精度Timer和周期Tick/Dynamic Tick两…