- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多进程编程函数
写在前面的话
本文主要根据本人在 UNIX 系统上的编程实践经验总结而成 , 既做为自己在
一个时期内编程实践的部分总结 , 又可成为文章发表 . 对 UNIX 程序员初学者来
说是一个小小的经验 , 仅供参考 ; 对 UNIX 老手来说则不值一哂 , 请各位多多指
教.
一.多进程程序的特点
由于 UNIX 系统是分时多用户系统 , CPU 按时间片分配给各个用户使用 , 而在
实质上应该说 CPU 按时间片分配给各个进程使用 , 每个进程都有自己的运行环境
以使得在 CPU 做进程切换时不会 忘记 该进程已计算了一半的 半成品 . 以 DOS
的概念来说 , 进程的切换都是一次 DOS 中断 处理过程 , 包括三个层次 :
(1) 用户数据的保存 : 包括正文段 (TEXT), 数据段 (DATA,BSS), 栈段
(STACK), 共享内存段 (SHARED MEMORY) 的保存 .
(2) 寄存器数据的保存 : 包括 PC(program counter,指向下一条要执行的指
令的地址 ), PSW(processor status word, 处理机状态字 ), SP(stack
pointer, 栈指针 ), PCBP(pointer of process control block, 进程控
制块指针 ), FP(frame pointer, 指向栈中一个函数的 local 变量的首地
址 ), AP(augument pointer, 指向栈中函数调用的实参位置 ), ISP(
interrupt stack pointer, 中断栈指针 ), 以及其他的通用寄存器等 .
(3) 系统层次的保存 : 包括 proc,u,虚拟存储空间管理表格 ,中断处理栈 .
以便于该进程再一次得到 CPU 时间片时能正常运行下去 .
既然系统已经处理好所有这些中断处理的过程 , 我们做程序还有什么要担
心的呢 ? 我们尽可以使用系统提供的多进程的特点 , 让几个程序精诚合作 , 简
单而又高效地把结果给它搞出来 .
另外 ,UNIX 系统本身也是用 C 语言写的多进程程序 ,多进程编程是 UNIX 的特
点,当我们熟悉了多进程编程后 ,将会对 UNIX 系统机制有一个较深的认识 .
首先我介绍一下多进程程序的一些突出的特点 :
1.并行化
一件复杂的事件是可以分解成若干个简单事件来解决的 , 这在程序员
的大脑中早就形成了这种概念 , 首先将问题分解成一个个小问题 , 将小问
题再细分 , 最后在一个合适的规模上做成一个函数 . 在软件工程中也是这
么说的 . 如果我们以图的方式来思考 , 一些小问题的计算是可以互不干扰
的, 可以同时处理 , 而在关键点则需要统一在一个地方来处理 , 这样程序
的运行就是并行的 , 至少从人的时间观念上来说是这样
原创力文档


文档评论(0)