UNIX环境高级编程:进程控制详解

需积分: 0 1 下载量 161 浏览量 更新于2024-08-02 收藏 1.21MB PDF 举报
"UNIX环境高级编程第8章 进程控制" 在UNIX系统中,进程控制是操作系统核心功能之一,涉及创建、执行和终止进程。这一章深入探讨了这些概念,同时讲解了进程的各种标识,包括实际ID、有效ID和保存的用户及组ID,以及它们在进程控制中的作用。此外,还提到了解释器文件和`system`函数,并简述了进程会计机制。 在UNIX环境中,每个进程都有一个独一无二的非负整数进程ID(PID),这个ID在进程生命周期中保持不变,用于区分不同的进程。进程ID为0的特殊进程是调度进程,也称为交换进程,它直接内嵌于内核,不执行任何外部程序。而进程ID为1的进程通常是`init`,在系统启动时由内核调用,负责启动和管理系统的其他服务。`init`进程以超级用户权限运行,并通过读取配置文件(如`/etc/rc*`)来初始化系统,确保系统达到预期的状态。如果一个进程的父进程终止,`init`会成为它的孤儿进程的新父进程。 进程还有其他标识,比如: 1. `getpid()` 函数:返回当前进程的PID。 2. `getppid()` 函数:返回当前进程的父进程ID。 3. `getuid()` 函数:返回当前进程的实际用户ID,即创建进程的用户的ID。 4. `geteuid()` 函数:返回当前进程的有效用户ID,这个ID决定了进程在执行文件或访问资源时的权限。 5. `getgid()` 函数:返回当前进程的实际组ID,与`getuid()`类似。 有效用户ID和实际用户ID的区别在于,有效用户ID用于访问权限检查,而实际用户ID则反映了进程的真正所有者。在某些情况下,如执行setuid程序,进程的有效用户ID可以被设置为不同于实际用户ID的值,以允许普通用户执行具有特殊权限的操作。 另外,章末提到的进程会计机制,它记录了每个进程的资源使用情况,如CPU时间、内存消耗等,帮助系统管理员监控和管理资源分配。通过这些信息,可以评估系统性能,优化资源利用率,并为审计和计费提供数据支持。 总而言之,这一章深入地讨论了UNIX系统中的进程控制机制,包括其核心概念、标识和管理工具,对于理解和操作UNIX环境中的进程有着重要的意义。