- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIX培训教程(四)——多进程编程
UNIX培训教程(四)
多进程编程
V 1.0?
目 录
第一章 多进程程序的特点 4
第二章 常用的多进程编程的系统调用 5
2.1 fork() 5
2.2 system() 6
2.3 exec() 7
2.4 popen() 8
2.5 pclose() 9
2.6 wait() 9
2.7 waitpid() 10
2.8 setpgrp() 11
2.9 exit() 11
2.10 signal() 12
2.11 kill() 13
2.12 alarm() 14
2.13 msgsnd() 15
2.14 msgrcv() 16
2.15 msgctl() 17
2.16 msgget() 18
2.17 shmat() 19
2.18 shmdt() 20
2.19 shmget() 20
2.20 shmctl() 21
2.21 semctl() 23
2.22 semget() 24
2.23 semop() 25
2.24 sdenter() 27
2.25 sdleave() 28
2.26 sdget() 28
2.27 sdfree() 29
2.28 sdgetv() 29
2.29 sdwaitv() 29
2.30 sbrk() 30
2.31 getenv() 31
2.32 putenv() 31
第三章 多进程编程技巧 32
3.1 主要程序结构 32
3.1.1 事件主控方式 32
3.1.2 信息协调方式 32
3.2 选择主体分叉点 32
3.2.1 事件初始产生 32
3.2.2 主程序自主产生 32
3.3 进程间关系处理 33
3.3.1 父子进程关系 33
3.3.2 兄弟进程关系 33
3.4 进程间通讯处理 33
多进程程序的特点
由于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.并行化
一件复杂的事件是可以分解成若干个简单事件来解决的, 这在程序员的大脑中早就形成了这种概念, 首先将问题分解成一个个小问题, 将小问题再细分, 最后在一个合适的规模上做成一个函数. 在软件工程中也是这么说的. 如果我们以图的方式来思考, 一些小问题的计算是可以互不干扰的, 可以同时处理, 而在关键点则需要统一在一个地方来处理, 这样程序的运行就是并行的, 至少从人的时间观念上来说是这样的. 而每个小问题的计算又是较简单的.
2.简单有序
这样的程序对程序员来说不亚于管理一班人, 程序员为每个进程设计好相应的功能, 并通过一定的通讯机制将它们有机地结合在一起, 对每个进程的设计是简单的, 只在总控部分小心应付(其实也是蛮简单的), 就可完成整个程序的施工.
3.互不干扰
这个特点是操作系统的特点, 各个进程是独立的, 不会串位.
4.事务化
比如在一个数据电话查询系统中, 将程序设计成一个进程只处理一次查询即可, 即完成一个事务. 当电话查询开始时, 产生这样一个进程对付这次查询; 另一个电话进来时, 主控程序又产生一个这样的进程对付, 每个进程完成查询任
您可能关注的文档
- Monitoring Physical and Chemical Characteristics Oil for Lubrication 润滑油的物理化学特性的监控.pdf
- Mr. Wang高考英语回扣:词汇和语法精练详解系列7.doc
- MSDS FF-9000S(干膜) 系列.pdf
- MTK芯片系列手机的维修宝典(五).doc
- n-lite1.4教程.doc
- NA820使用说明.doc
- NBU 7.0丢失容灾文件时恢复CATALOG(以实验证明) NBU恢复CATALOG.doc
- ND地推每月培训课程第二期——《打牢基础,客户代表业务技能进阶》.ppt
- No.5 指令集 01.pdf
- NLN2003结构及功能讲解.ppt
- 军工项目实施中的工序协调措施.docx
- 2006年北京高考文综真题及答案.pdf
- 2001年福建高考文科综合真题及答案(图片版).pdf
- 小学历史课中历史文献对历史研究的重要性分析教学研究课题报告.docx
- 《基于 BIM 的建筑项目全生命周期项目管理中的项目管理科学研究》教学研究课题报告.docx
- 小学科学课程中科学实验教学对科学探究能力的培养研究教学研究课题报告.docx
- 高中历史文献研读对学生历史研究能力的培养研究教学研究课题报告[001].docx
- 《农村金融市场利率定价机制改革与农村金融政策支持体系完善研究》教学研究课题报告.docx
- 高中心理健康课堂教学中问题驱动的案例分析与实践教学研究课题报告.docx
- 2.4.2 “种”是生物分类的基本单位说课稿-2024--2025学年济南版生物七年级上册.docx
最近下载
- DB4403_T 77-2024 电动汽车充电安全监控平台数据采集规范.docx
- 基层网络舆情监测工作的实践与思考.docx VIP
- 加强政治机关建设提升机关工作质量.pptx VIP
- 作业3:《windows服务器基础配置与局域网组建》工学一体化课程学习任务设计.docx VIP
- 某小区供配电系统设计本科生毕业设计论文.doc VIP
- DG_TJ 08-2242-2023 民用建筑外窗应用技术标准.docx
- 胶带简介介绍.ppt
- 文化创意产品设计开发合同.doc VIP
- 瓦工:高级瓦工(强化练习).docx VIP
- 作业11:《windows服务器基础配置与局域网组建》工学一体化课程教学进度计划表.docx VIP
文档评论(0)