文件名称:UNIX时间值-中国电信智慧城市白皮书
文件大小:18.36MB
文件格式:PDF
更新时间:2024-07-29 20:46:20
Unix 环境高级编程
1.10 UNIX时间值 长期以来,U N I X系统一直使用两种不同的时间值: (1) 日历时间。该值是自1 9 7 0年1月1日0 0 : 0 0 : 0 0以来国际标准时间(U T C)所经过的秒数累 计值(早期的手册称U T C为格林尼治标准时间)。这些时间值可用于记录文件最近一次的修改 时间等。 (2) 进程时间。这也被称为C P U时间,用以度量进程使用的*处理机资源。进程时间以 时钟滴答计算,多年来,每秒钟取为 5 0、6 0或1 0 0个滴答。系统基本数据类型 c l o c k _ t保存这种 时间值。另外,P O S I X定义常数C L K _ T C K,用其说明每秒滴答数。(常数C L K _ T C K现在已不 再使用。2 . 5 . 4节将说明如何用s y s c o n f函数得到每秒时钟滴答数。) 当度量一个进程的执行时间时(见3 . 9节),U N I X系统使用三个进程时间值: • 时钟时间。 • 用户C P U时间。 • 系统C P U时间。 时钟时间又称为墙上时钟时间(wall clock time)。它是进程运行的时间总量,其值与系统 中同时运行的进程数有关。在我们报告时钟时间时,都是在系统中没有其他活动时进行度量的。 用户C P U时间是执行用户指令所用的时间量。系统 C P U时间是为该进程执行内核所经历 的时间。例如,只要一个进程执行一个系统服务,例如 r e a d或w r i t e,则在内核内执行该服务 所花费的时间就计入该进程的系统 C P U时间。用户 C P U时间和系统 C P U时间的和常被称为 C P U时间。 要取得任一进程的时钟时间、用户时间和系统时间很容易——只要执行命令 t i m e ( 1 ),其参 数是要度量其执行时间的命令,例如: $ cd /usr/include $ time grep _POSIX_SOURCE */*.h > /dev/null real 0m19.81s user 0m0.43s sys 0m4.53s t i m e命令的输出格式与所使用的s h e l l有关。 8 . 1 5节将说明一个运行进程如何取得这三个时间。关于时间和日期的一般说明见 6 . 9节。 1 . 11 系统调用和库函数 所有的操作系统都提供多种服务的入口点,由此程序向内核请求服务。各种版本的 U N I X 都提供经良好定义的有限数目的入口点,经过这些入口点进入内核,这些入口点被称为系统调 用(system call)。系统调用是不能更改的一种 U N I X特征。U N I X第7版提供了约5 0个系统调用, 4 . 3 + B S D提供了约11 0个,而S V R 4则提供了约1 2 0个。 1 4 U N I X环境高级编程 下载