SylixOS时间变换介绍

[TOC]

1、概述

SylixOS中提供了时间变换相关接口,主要用于计算两个时间点之差以及根据入参时间timespec计算超时时间。

2、接口介绍

2.1 计算两个时间点之差

SylixOS中用于计算两个时间点之差的接口函数原型如下:

ULONG  __timespecToTickDiff (const struct timespec  *ptvS,
                              const struct timespec  *ptvE);
INT64  __timespecToTickDiff64 (const struct timespec  *ptvS,
                                const struct timespec  *ptvE);

函数原型分析:
? - 函数返回两个时间点之差,并转换为tick数;
? - 参数ptvS是开始时间;
? - 参数ptvE是结束时间。
以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。

2.2 根据timespec计算超时时间

SylixOS中用于计算超时时间的接口函数原型如下:

ULONG  __timespecTimeoutTick (BOOL  bRel, const struct timespec  *ptv);
INT64  __timespecTimeoutTick64 (BOOL  bRel, const struct timespec  *ptv);

函数原型分析:
? - 函数返回超时时间(用tick数表示);
? - 参数bRel是判断相对时间还是绝对时间;
? - 若计算相对超时时间,参数ptv是当前时间与结束时间的间隔,需根据当前时间计算结束时间点;若计算绝对超时时间,则参数ptv即为结束时间点。
以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。

3、 超时时间计算流程

根据上一章节可以看出计算超时时间分为相对时间和绝对时间,两者计算方法不同。现以__timespecTimeoutTick为例,分析其具体计算流程如下图所示。

由上图可以看出,当计算相对超时时间时,需根据入参时间计算结束时间,再根据结束时间和当前时间的差值计算超时时间;当计算绝对超时时间时,入参即为结束时间,可直接计算超时时间并返回。

原文地址:http://blog.51cto.com/11178899/2062793

时间: 2024-10-31 16:54:54

SylixOS时间变换介绍的相关文章

OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍

模型变换.视图变换.投影变换.视口变换介绍 opengl中存在四种变换,分别是模型变换,视图变换,投影变换,视口变换.这四种变换是图形渲染的基本操作,实质上这四种变换都是由矩阵乘法表示(这些操作都是由一个4*4的矩阵来完成的),通过变换,我们可以看到各种通的显示效果,最简单的效果就是让图元沿着某个方向变换(放大,缩小,翻转等)或者对所要显示的图元进行裁剪.接下来我们就详细介绍这四种变换以及相互之间的联系. 我们要在屏幕上显示一个具有三维坐标的物体,大致需要以下步骤: 1.     进行模型,视图

回文数-时间变换-判断邮箱

class huiwenshu public class huiwenshu { public static void main(String[] args) { System.out.println("输入..."); Scanner in = new Scanner(System.in); String number = in.next(); boolean flag = true; for(int i=0;i<number.trim().length()/2;i++){ i

根据时间变换页面背景

1.概述 有些时侯为了丰富页面的显示效果,将页面制作成根据时间变换页面背景的样式,这样会使浏览者对此网站不会感觉厌倦,同时也会觉得网站制作的非常新颖.本实例通过Date对象的getHours()方法获得当前系统时间的小时,然后根据不同的时间段来改变页面的背景图片. 2.技术要点 主要使用JavaScript中的Date对象的getHours()方法得到当前系统时间的小时,然后在一定的时间段内判断当前小时是否符合指定的时间段,如果符合则使用document对象的write()方法在页面中显示一幅图

SylixOS功能点介绍

1.概述 SylixOS作为一款大型的国产实时操作系统,有着众多小的功能点,本文对SylixOS功能点和部分性能点做了一个总结,具体内容如下. 2.SylixOS功能大纲 基于SylixOS的1.5.3的内核,SylixOS功能大纲如图 2.1所示. 图 2.1 SylixOS功能大纲 3.SylixOS功能大纲介绍 SylixOS作为抢占式多任务硬实时操作系统,具有的功能与特点经过整理后,如图 3.1和图 3.2所示. 图 3.1 SylixOS功能特点之一 图3.2 SylixOS功能特点之

Quartz中的时间表达式介绍和常用表达式

Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等比如:表示式:  0 0 12 * * ?    表示:每天的12点调用 1.特殊符号的介绍 Cron表达式的时间字段除允许设置数值外,还可使用一些特殊的字符,提

python时间模块介绍

时间戳是以秒为单位的浮点小数,时间戳以自1970年1月1日午夜到现在经过了的时间来表示 时间模块使用方法:import time 常见函数如下: 1.time.time() 返回时间戳 2.time.localtime([secs]) 返回时间元组 3.time.mktime(tupletime) 返回时间戳 4.time.asctime([tupletime]) 返回形式为"Sat Jul 25 20:08:32 2015" 相当于ctime(time.mktime([tupleti

mysql 时间字段介绍

mysql时间类型大概有5种,如下图 1.创建数据库 create table t1 ( id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, d1_data date, d2_time time, d3_datatime datetime, d4_year year, d5_timestamp TIMESTAMP ); 字符串方式插入 INSERT INTO t1 (d1_data,d2_time,d3_datatime,d4_year,d5_time

SylixOS中ROOTFS介绍

ROOTFS简介ROOTFS(根文件系统)是一种特殊的文件系统,根文件系统是内核启动时挂载的第一个文件系统,因此根文件系统包括了SylixOS启动时所必须的目录和关键性的文件,例如内核启动时所必需的etc目录,以及系统命令bin目录等,任何包括这些SylixOS启动所必须的文件都可以成为根文件系统.SylixOS的ROOTFS属于虚拟类型的根文件系统,因为此文件系统并不存在于具体的物理磁盘中,而是系统启动后动态创建的,并将此系统保存于内存中. 根目录文件系统映射配置参数系统内核启动参数函数API

js 不同时间格式介绍以及相互间的转换

首先必须要提到的是 Date 对象,它用来处理时间和日期. 使用 new Date() 语句可创建 Date 对象,创建出来的时间格式如下(后面提到的标准时间都是指该格式): Wed Jul 17 2019 13:59:21 GMT+0800 (中国标准时间) Date 对象有以下几种创建方式: 1. let date = new Date();2. let date = new Date(milliseconds);3. let date = new Date(dateString);4. l