UNIX环境高级编程:进程控制详解
需积分: 10 8 浏览量
更新于2024-07-27
收藏 1.21MB PDF 举报
"UNIX环境高级编程(第八章)讨论了进程控制的多个方面,包括进程标识、fork函数、vfork函数、exit函数、wait和waitpid函数、wait3和wait4函数、竞态条件、exec函数、更改用户ID和组ID、解释器文件、system函数、进程会计、用户标识以及进程时间。本章深入介绍了UNIX系统中创建、管理和通信进程的技术,同时也探讨了进程间的交互和安全性问题。"
在UNIX系统中,进程控制是操作系统的核心功能之一,涉及程序的执行、资源管理和进程间协作。第八章详细阐述了以下几个关键知识点:
1. **进程标识**:每个进程都有一个唯一的进程ID(PID),通过`getpid()`获取当前进程的PID,`getppid()`获取父进程的PID。此外,还有实际用户ID(getuid())、有效用户ID(geteuid())和实际组ID(getgid()),它们影响着进程的权限。
2. **fork函数**:用于创建新的进程,返回值在父子进程中不同,使得两个进程可以独立执行。
3. **vfork函数**:与fork类似,但子进程与父进程共享地址空间,直到子进程调用exec函数或退出。
4. **exit函数**:用于进程正常结束,并返回一个退出状态给父进程。
5. **wait和waitpid函数**:允许父进程等待子进程结束,waitpid可以指定等待特定的子进程。
6. **wait3和wait4函数**:提供比wait更详细的信息,如资源使用情况,可以选择收集已终止或停止的子进程信息。
7. **竞态条件**:在多线程环境下,当多个线程同时访问并修改同一资源时可能导致的不可预测结果,需要同步机制来避免。
8. **exec函数**:替换当前进程的执行映像,加载并执行新的程序。
9. **更改用户ID和组ID**:setreuid和setregid用于改变实际用户ID和实际组ID,seteuid和setegid改变有效用户ID和有效组ID,这对于执行需要特定权限的操作至关重要。
10. **解释器文件**:一种特殊类型的文件,允许通过解释器执行脚本,而不是直接运行二进制可执行文件。
11. **system函数**:在shell中执行命令,等同于用户在终端输入命令。
12. **进程会计**:记录进程的资源使用情况,如CPU时间、内存使用,提供系统管理的依据。
13. **用户标识**:在UNIX中,用户标识用于确定进程的权限,实际用户ID代表进程创建者的身份,有效用户ID用于确定对文件的访问权限。
14. **进程时间**:包括用户时间(进程执行代码的时间)和系统时间(进程在内核模式下运行的时间),可通过getrusage等函数获取。
这一章的内容对于理解UNIX系统的进程管理和控制机制至关重要,对编写多进程应用程序和进行系统级编程有着直接的指导作用。
2019-04-10 上传
2016-12-13 上传
2017-08-20 上传
2009-11-25 上传
2017-08-15 上传
2009-02-25 上传
2010-01-16 上传
2010-11-01 上传
2015-02-07 上传
zwj525
- 粉丝: 0
- 资源: 24
最新资源
- vhdl实现三人表决器
- java struts教程
- 如何实现SQL SERVER 2008 的故障转移群集
- s60系列应用框架手册.pdf
- Hibernate开发指南
- JavaScript高级编程(CHS)
- DWR中文文档.pdf DWR中文文档.pdf
- 基于stc单片机出租车计价
- 深入了解MFC中的文挡/视结构.PDF
- 电子元件基础教程,本文简单介绍了一些电子元器件的概念和特性,对初学者有一定的帮助。
- arm architecture reference manual
- 《ZigBee概述》(中文版)
- Reversing C++
- 图的遍历#include <stdlib.h>
- Toad for Oracle
- ORACLE官方SQL教程中文版