
修改linux的系统时间的方法如下:
1、利用date命令设定系统的日期与时间,语法“date -s "年月日 时:分秒"”。在Linux中,可以利用date命令修改系统时间。date命令可以用来显示或设定系统的日期与时间。例如把date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10。
2、执行“hwclock --systohc”命令保存设置,关机重启。当我们进行完 Linux 时间的校时后,还需要以 hwclock 来更新 BIOS 的时间,因为每次重新启动的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据呐。
Linux系统时间有两种
日历时间。该值是自协调世界时(UTC)1970年1月1日00:00:00这个特定时间以来所经过的秒数累计值。基本数据类型用time_t保存。最后通过转换才能得到我们平时所看到的24小时制或者12小时间制的时间。
进程时间。也被称为CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴答计算。
有几个概率需要了解
1.时间周期(Clock Cycle)的频率:晶体振荡器在1秒以内时钟周期的个数=1秒以内时钟脉冲的个数,Linux里面用
#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
单位为HZ
2.时钟滴答(Clock Tick):
当PIT通道0的计数器减到0值时,它就在IRQ0上产生一次时钟中断,也即一次时钟滴答。PIT通道0的计数器的初始值决定了要过多少时钟周期才产生一次时钟中断。
3.时钟滴答的频率(HZ):1秒以内产生时间滴答个数
HZ在arm和i386上定义为100,ALPHA和IA62为1024 ,IBM Power PC为1000
i386 1个时钟滴答时间为1000ms/100=10ms。
4.时钟滴答的时间间隔(tick)
long tick = (1000000 + HZ/2) / HZ/* timer interrupt period */ 单位为us ,tick=10ms,也可以通过HZ来计算
linux中#define TICK_SIZE= tick
1s=1,000,000us
(5)宏LATCH:Linux用宏LATCH来定义要写到PIT通道0的计数器中的值,它表示PIT将没隔多少个时钟周期产生一次时钟中断。
LATCH=(1秒之内的时钟周期个数)÷(1秒之内的时钟中断次数)=(CLOCK_TICK_RATE)÷(HZ)
Linux为取整 #define LATCH=(CLOCK_TICK_RATE + HZ/2) / HZ。
时钟周期理解:时钟脉冲,电平从0到1(或者相反)。
CLOCK_TICK_RATE和HZ都是 频率 :1秒以内时钟周期 频率 ,1秒以内时钟滴答 频率 。
TSC使用CPU频率,在现代计算机中CPU可能降频也可能超率,TSC时钟不准确。
顺序为HPET >APCI PMT>PIC>TSC
local cpu APIC只在单CPU场景上使用,如进程调度时间.
参考:
http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0913/14187.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)