UNIX系统进程会计与控制详解

需积分: 11 23 下载量 84 浏览量 更新于2024-08-06 收藏 18.16MB PDF 举报
"这篇文档是关于UNIX环境高级编程和Linux的相关知识,特别是进程会计的实践。文档中提到了进程会计是UNIX系统中的一个特性,允许系统在进程结束时记录详细的会计记录,这些记录包含了如CPU使用时间、用户ID、组ID和启动时间等信息。这种功能在SVR4和4.3+BSD实现中有详细描述,系统提供了如`runacct`、`actcom`和`sad(8)`等工具来处理会计数据。此外,文档还指出`acct`函数用于启动和停止进程会计,通常由超级用户通过`accton(8)`命令来执行。会计记录的结构定义在`<sys/acct.h>`头文件中。" 在UNIX环境中,进程会计是一个用于监控和记录系统资源使用情况的重要工具。当启用这个选项时,操作系统会在每个进程结束后写入一个会计记录到指定的文件,如`/var/adm/pacct`(在某些早期系统中可能是`/usr/adm/acct`)。这些记录通常包含32字节的二进制数据,用于存储关于进程的信息,例如: 1. **命令名**:记录执行的命令或程序的名字。 2. **CPU时间总量**:进程消耗的CPU时间,包括用户时间和系统时间。 3. **用户ID和组ID**:执行该进程的用户的标识和所属组的标识。 4. **启动时间**:进程开始执行的时间戳。 UNIX系统提供了不同的工具来管理和分析这些会计记录。例如,SVR4系统有`runacct`和`actcom`,而4.3+BSD系统则有`sad(8)`命令,它们可以帮助汇总和解释原始的会计数据。 文档中还涵盖了UNIX的基础知识,如登录、文件和目录管理、输入输出、程序与进程的概念、C语言标准、错误处理、用户标识(用户ID和组ID)、信号机制、时间值、系统调用和库函数等。此外,文档还讨论了UNIX的标准化过程,如ANSI C、IEEE POSIX、X/Open XPG3和FIPS 151-1,以及不同UNIX实现(如SVR4和4.3+BSD)的特点和它们与标准之间的关系。 文件I/O是UNIX编程的重要部分,文档详细介绍了`open`、`creat`、`close`、`lseek`、`read`、`write`等基本的文件操作函数,以及如何进行文件共享、实现原子操作、使用`dup`、`dup2`、`fcntl`和`ioctl`函数来控制文件描述符。此外,还提到了`/dev/fd`设备,它允许以文件描述符的方式访问打开的文件。 这篇文档是深入理解UNIX系统和高级编程的一个宝贵资源,涵盖了从基础概念到高级特性的广泛内容,对于系统管理员和开发人员来说极具价值。