- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第8章 进 程 控 制
8.1 引言
本章介绍U N I X 的进程控制,包括创建新进程、执行程序和进程终止。还将说明进程的各
种I D—实际、有效和保存的用户和组I D ,以及它们如何受到进程控制原语的影响。本章也包
括了解释器文件和 s y s t e m函数。本章以大多数U N I X 系统所提供的进程会计机制结束。这使我
们从一个不同角度了解进程控制功能。
8.2 进程标识
每个进程都有一个非负整型的唯一进程 I D 。因为进程I D标识符总是唯一的,常将其用做其
他标识符的一部分以保证其唯一性。 5 . 1 3节中的t m p n a m 函数将进程I D作为名字的一部分创建
一个唯一的路径名。
有某些专用的进程:进程ID 0 是调度进程,常常被称为交换进程 ( s w a p p e r ) 。该进程并不执
行任何磁盘上的程序—它是内核的一部分,因此也被称为系统进程。进程 ID 1 通常是i n i t进
程,在自举过程结束时由内核调用。该进程的程序文件在 U N I X 的早期版本中是/ e t c / i n i t ,在较
新版本中是/ s b i n / i n i t 。此进程负责在内核自举后起动一个U N I X 系统。i n i t通常读与系统有关的
初始化文件( / e t c / r c *文件) ,并将系统引导到一个状态(例如多用户) 。i n i t进程决不会终止。它是
一个普通的用户进程 (与交换进程不同,它不是内核中的系统进程 ) ,但是它以超级用户特权运
行。本章稍后部分会说明i n i t如何成为所有孤儿进程的父进程。
在某些U N I X 的虚存实现中,进程ID 2 是页精灵进程( p a g e d a e m o n ) 。此进程负责支持虚存系
统的请页操作。与交换进程一样,页精灵进程也是内核进程。
除了进程I D ,每个进程还有一些其他标识符。下列函数返回这些标识符。
#include sys/types.h
#include unistd.h
pid_t getpid(void); 返回:调用进程的进程 I D
pid_t getppid(void); 返回:调用进程的父进程 I D
uid_t getuid(void); 返回:调用进程的实际用户 I D
uid_t geteuid(void); 返回:调用进程的有效用户 I D
gid_t getgid(void); 返回:调用进程的实际组 I D
gid_t getegid(void); 返回:调用进程的有效组 I D
注意,这些函数都没有出错返回,在下一节中讨论 f o r k函数时,将进一步讨论父进程I D 。4 . 4节
中已讨论了实际和有效用户及组I D 。
1 4 2 U N I X环境高级编程
下载
8.3 fork 函数
一个现存进程调用f o r k 函数是U N I X 内核创建一个新进程的唯一方法(这并不适用于前节提
及的交换进程、 i n i t进程和页精灵进程。这些进程是由内核作为自举过程的一部分以特殊方式
创建的) 。
#include sys/types.h
#include unistd.h
pid_t fork(void);
返回:子进程中为0 ,父进程中为子进程 I D,出错为-1
由f o r k创建的新进程被称为子进程( child process )。该函数被调用一次,但返回两次。两次返
回的区别是子进程的返回值是0 ,而父进程的返回值则是新子进程的进程 I D 。将子进程I D返回
给父进程的理由是:因为一个进程的子进程可以多于一个,所以没有一个函数使一个进程可以
获得其所有子进程的进程 I D 。f o r k
您可能关注的文档
最近下载
- 银行业专业人员资格考试银行业法律法规与综合能力分类模拟108含答案.pdf VIP
- 课件中国的行政区划全国优质课一等奖课件.ppt
- 上市股份有限责任公司章程(标准版).docx
- 兴业证券-电子行业跟踪报告:比亚迪开启全民智驾时代车载摄像头迎机遇.pdf VIP
- 2024年家庭房产分配协议书范本6篇.docx VIP
- 汽车机械制图(第二版)模拟试题及答案2套.docx VIP
- DB33T 817-2010 基础地理信息要素分类与图形表达代码.docx VIP
- 煤制合成气单位产品能源消耗限额.pdf VIP
- 第1讲:平面向量的线性运算及坐标表示.docx VIP
- 第一次中华民国教育年鉴 教科书发刊概况.pdf VIP
文档评论(0)