版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目(中文):(英 文): 姓 名 学 号 院(系) 专业、年级 指导教师本科学生毕业论文(设计)linux进程间通信的研究与实现the research and implementation ofcommunication between linux processes杨礼彪200906002441电子工程系电子信息工程2009级李春树2013年5月8日湖南科技学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导 老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产 权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或 集体已经发表或撰写过
2、的作品成果。对本文的研究做出重要贡献的个 人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律 结果由本人承担。帶毕业论文(w)名:年 月曰毕业论文(设计)任务书课题名称:学生姓名: 系 别: 专 业:指导教师:linux进程间通信的研究与实现杨礼彪电子工程系电子信息工程李春树2012年11月30日1、关键词:limix环境,进程,通信,研究2、毕业论文(设计)内容要求:用实例对linux进程间的五种通信机制(无名有名管道、消息队列、信号量和 共享内存)进行亲缘进程或是非亲缘进程读写规则的程序验证,通过不同机制协 调进程来实现另外机制间数据的读写。1)利用管道快速传输和节约空间的性质,
3、实现大数据量的信息在亲缘和非 亲缘进程间传输和接收。2)通过有名管道(fifo)提供一个路径名与之进行关联,以先进先出的形式 存在于文件系统中,使不和干的进程也可以通过fifo和互通信。3)将不同通信机制信号量与消息队列结合使用,利用信号量来协调进程对 消息队列屮数据的读写,并应用于实例。4)通过共享内存映射一段内存空间,读进程通过挂载到该共享内存中來读 取内存数据。5)对ipc通信机制的安全性分析,对安全级别比较低的消息队列机制进行 研究改进,实现消息队列的读写权限由系统來管理。3、文献查阅指引:1 吴震,陈権武.一种基于消息的进程间通信机制j.电子器件,2012.8.26, 8-1().2
4、 w.richard stevens. unix network programming, volume 2: interprocess communications (2nd edition) jj.2012, 45-61.3 李娟.利用进程间通信实现程序自我保护j.考试周刊,2011.8.2, 16-20.4 贺建立.linux中system v进程通信机制安全性形式化验证j.计算机工程与科学, 2012.10.30, 17-22.5 武军彪.恢入式操作系统核间任务同步与通信的设计与实现d.西安电子科 技大学, 2012, 18-22.姜玉蓉.linux内核进程间通信的模型检测研究j.计算
5、机科2013,12-18.7冯蕴,杨斌.双内核实时系统下各进程间通信方法的性能分析和测试j.成都信息工程 学院学报,2013.8.15, 12-16.4、毕业论文(设计)进度安排:1) 2013年2月:寻找合适设计课题,选定课题,给老师审核,通过审核,确定课题。2) 2013年3月:杳看关于linux进程间通信的书,搜索各相关资料。3) 2013年4月:写程序,实现进程间通信的五个基本方式。4) 2013年5月:查阅书刊,网上搜索资料,写论文,交初稿,并在导师的指导下修改论文;5) 2013年5月下旬:定稿,做ppt,完成论文答辩。系部意见:负责人签名:注:本砖寸宀三份,由指數rim写 统毕、
6、lki仑文领嗣纽审分下龄选,tk啪t雇钮 锄。湖南科技学院本科毕业论文(设计)开题报告书论文(设计)题目linux进程间通信的研究与实现作者姓名杨礼彪 所属系、专业、年级 电子工程系电子信息工程专业2009年级指导教师姓名、职称李春树 教授预计字数130(h)开题fi期2012-12-25选题的根据:1)说明本选题的理论、实际意义2)综述国内外冇关本选题的研究动态和自己的见解随着计算机及网络技术的高速发展、全球信息化时代的到来,给人们工作、生活 的方方面面带來方便和快捷的同时,也带来了信息安全方面威胁。非法入侵、窃取、 篡改计算机系统中的重要数据,给社会造成难以估量的损失。口前,国内外现有的l
7、inux操作系统的安全级别低于c2级(按美国国防部指定的 tcsec(trusted computer system evaluation criteria),还远不能满足我们对 丁安全的需 求“。为了增强其安全性能,捉高抗风险能力,需要不断地对操作系统进行修补和完 善。因此,通过对通信机制的安全性能的研究入手,借鉴文件系统强制访问控制,实 现进程通信的强制访问控制,以达到避免信息泄露的目的,为我们更好地提升操作系 统的安金性能,具冇十分帝要的指导意义。主耍内容:1)linux系统的介绍;2)linux进程的概述及创建;3)linux进程间通信各种方式的研究与程序实现;4)linux进程通信机
8、制的安全性研究;5)设计的总结。研究方法:1)查阅相关书籍,进行理论分析;2)针对性的对各进程间通信方法的研究,通过不断调试程序去实现通信;3)上网查资料,跟同学探讨并和导师交流。完成期限和采取的主要措施:完成期限:2012.12.30-2013.5.9采取的主要措施:严格遵照湖南科技学院毕业论文(设计)工作管理办法的指示精神,结合个人 的实际悄况,我完成这项设计所釆取的主要措施有两条:一是他人帮助。联系指导导师,确定设计 课题方向与设计内容,让老师指点设计思路,遇到问题请教同学,为更好完成设计提供了很人帮助; 二是查阅资料。到图书馆借來了相关书籍和网络上查阅资料,充分利川各种资源。主耍参考资
9、料:1陈城高.进程间通信技术在银行短信系统中的应用j,计算机工程与应用,2011.4.11,17-24.2j贺建立.linux中system v进程通信机制安全性形式化验证j.计算机工程与科学,2012.10.30,17-22. 李娟.利用进程间通信实现程序自我保护山.考试周刊,2011.8.2,16-20. w.richard stevens. unix network program mi ng, volume 2: interprocess communications (2ndedition) j. 2012,45-61. 姜玉蓉.linux内核进程间通信的模型检测研究j.计算机科学,
10、2013, 121 &l6冯蕴,杨斌.双内核实时系统下各进程间通信方法的性能分析和测试j.成都信息工程学院学报,2013.8.15, 12-16.吴震,陈耀武.一种基于消息的进程间通信机制j.电子器件,2() 12826, 81().指导教师意见:指导教师签名:教研室意见:签名:年 月 日开题报告会纪要时间2012.12.23地点三教608与 会 人 员姓名职务(职称)姓名职务(职称)姓名职务(职称)李春树教授李小武副教授李艳芳副教授杨熙硕+谭永宏副教授廖朝阳硕士会议记录摘要:杨熙老师问:你怎样去查找资料的?答:主要是通过导师介绍的湘科院学校网站上的图书馆、期刊网以及同学推荐的it论坛
11、等查 找相关的文献资料,当然百度、谷歌肯定也是用到了的。李春树老师问:你的研究意义是什么?答:虽然目前国内对linux操作系统的安全性有所研究,但是其安全级别还是比较低,还不能 满足我们对丁安全的需求,所以我们需耍实现更高级别的安全功能。我通过对这个linux操作系统 安全性的研究,实现了 linux的ipc机制的强制访问控制,对提升系统安全性冇所帮助。会议主持人:记录人:年月 日指 导 小 纽 尼、 见负责人签名:年刀 日系部见负责人签名:年月日注:此表由学生本人填写,一式三份,一份留系里存档,指导老师和本人各保存i份。湖南科技学院毕业论文(设计)中期检查表毕业论文(设计)题 口linux进
12、程间通信的研究与实现学生姓名杨礼彪学号200906002441系别电子工程系专业电子信息工程指导教师李春树检查口期2013.4.8指导教师检查情况记载及修改意见:检杳情况记载:1、对要设计的东西了解述可以,对设计很冇帮助;2、缺少国内外设计成果分析;3、参考文献不规范;4、论文正文基木完成,但是论文格式上还没弄好。修改意见:1、要介绍下当前国内外的研究成果,还有哪些不足与改进;2、参考文献要按照规范來写,时间出处等都要冇;3、注意论文格式,参照模版来设计;4、尽量突出说明你自己所做的工作,突出自己的独特之处;5、绪论没做好,要突出设计的意义;6、要按顺序引用。7、截图要冇图标及说明。签名:注:
13、此表用于指导教师在学生毕业论文(设计)初稿完成后对学生执行任务书情况进行中期检查时用,由指导湖南科技学院毕业设计(论文)指导过程记录表毕业论文(设计)题 目linux进程间通信的研究与实现学生姓名杨礼彪学号200906002441专业班级电信0904班指导教师李春树职称教授系(教研室)电子工程系7口 导 过 程 记 录指导内容 记录()1、明确选题背景,选题意义;2、确定选题,填写毕业设计任务书;学生签名:201年 月口指导教师签名:201年 月曰指导内容 记录(二)1、到图书馆查找和借阅为选题有关的文献和资料;2、从中国知网上检索和下载与选题有关的文献;学生签名:201年 月口指导教师签名:
14、201年 月 h指导内容 记录(三)1、注意论文格式,参照模板;2、参考文献的创建时间要在三年z内;3、论文要突出自己设计的不同点;学牛签名:201年 月f1指导教师签名:201年 月 h指导内容 记录(四)1、图形要有图标,要够清楚。2、文献最好为最近出的期刊。学生签名:201年 月曰指导教师签名:201年 月曰导指导内容 记录(五)1、注意文献的引用要加引用标注;2、制作一个能反映论文主要内容的ppt,作答辩陈述用,陈述时间控制58分钟;学牛签名: 指导教师签名:201201年年月hh1、英语名词第一次介绍要冇英文全称。2、论文大体上町以,但还需修改,排版还不够完善, 时还得让人有视觉美感
15、;设计内容突出的同过指导内容 记录(六)学生签名:201年日指导教师签名:201年月日程指导内容 记录(七)学生签名:201年日记指导教师签名:201年月日指导内容 记录(八)录学牛签名: 指导教师签名:201201年年月日h(对情况是否属实做出意见)答辩小组组长意 见组长(签名):201年月h注:本表与毕业论文一起装订存档。湖南科技学院本科毕业论文(设计)评审表论文题hlinux进程间通信的研究与实现作者姓名杨木血所专收年级电子电子信息t程专业2009年级指导教师 姓名、w字 数13000定稿 fl 期2013.5.15中文摘要本论文阐述了在linux环境下,对管道(pipe)、冇名管道(n
16、amed pipe)、信号量(semophore)> 消 息 队歹u( message queue)、 信号(sinal)、共享内存(shared memory)等几种主要进程间 通信手段的内部实现机制进行了分析和比较,并针对每个通信 手段的关键技术环节给出详细的实现事例,为研究大型的应用 系统进程间通信,提供一种有益的参考与借鉴。关键词(3-5 个)linux环境,进程,通信,设计英文摘要this paper describes the linux environment, the pipeline (pipe), named pipes (named pipe), semaphore
17、 (semophore), message queues (message queue), signal (sinal), shared memory (shared memory), such as several major means of inter-process communication mechanism of the internal implementation were analyzed and compared, and means of communication for each of the key technical aspects of the impleme
18、ntation details are given examples of the application of the system for the study of large-scale inter-process communication, provide a useful reference and experience.关键词linux environment, process, communicate, research指导教师评定成绩评审基 元评审要素评审内涵满分指翩 师实评分选题质 量25%目的明确 符合要求选题符合专业培养目标,体现学科、专业特 点和教学计划的基本要求,达
19、到毕业论文(设 计)综合训练的冃的。10理论意义或 实际价值符合本学科的理论发展,有一定的学术意义; 对经济建设和社会发展的应用性研究中的某个 理论或方法问题进行研究,具有 定的实际价 值。10选题恰当题目规模适当,难易度适中;有一定的科学 性。5能力水 平40%查阅文献 资料能力能独立查阅相关文献资料,归纳总结本论文 所涉及的有关研究状况及成果。10综合运用 知识能力能运用所学专业知识阐述问题;能对查阅的资 料进行整理和运用;能对其科学论点进行论证。10研究方案的 设计能力整体思路清晰;研究方案合理可行。5研究方法和手段 的运用能力能运用本学科常规研究方法及相关研究手段 (如计算机、实验仪器
20、设备等)进行实验、实 践并加工处理、总结信息。10外文应用 能力能阅读、翻译一定量的本专业外文资料、夕卜文 摘要和外文参考书目(特殊专业除外)体现一 足的外语水平。5论文质 量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、 数据、最和单位、各种资料引用规范化、符合标 准。10论文篇幅10cxx)字左右。5实评总分成绩等级指导教师评审意见:指导教师签名:说明:评定成绩分为优秀、良好、屮等、及格、不及格五个等级,实评总分90-100分记为优秀,80-89 分记为良好,7079分记为中等,60-69
21、分记为及格,60分以下记为不及格。评阅教师评定成绩评审要索评审内涵满分评阅教 师实畛选题 质量 25%口的明确 符合要求选题符合专业培养目标,体现学科、专业特点和教学 计划的基本要求,达到毕业论文(设计)综合训练的 目的。10理论意义或 实际价值符合本学科的理论发展,有一定的学术意义;对经济建 设和社会发展的应用性研究中的某个理论或方法问题进 行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力 水平 40%查阅文献 资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的 有关研究状况及成果。1()综合运用 知识能力能运用所学专业知识阐述问题;能对查阅的资料
22、进行整 理和运用;能对其科学论点进行论证。10研究方案的 设计能力整体思路清晰;研究方案合理可行。5研究方法和 手段的运用 能力能运用本学科常规研究方法及相关研究手段(如计算机、 实验仪器设备等)进行实验、实践并加工处理、总结信 息。10外文应用 能力能阅读、翻译一定量的本专业外文资料、外文摘要和外 文参考书目(特殊专业除外)体现一定的外语水平。5论文 质量 35%文题相符较好地完成论文选题的冃的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量 和单位、各种资料引用规范化、符合标准。10论文篇幅l(x)00字左右。5实评总分
23、成绩等级评阅教师评审意见:评阅教师签名:说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90-100分记为优秀,80-89 分记为良好,7079分记为中等,60-69分记为及格,60分以下记为不及格。湖南科技学院本科毕业论文(设计)答辩记录表论文题冃linux进程间通信的研究与实现作者姓名杨礼彪所属系、专业、年级电子工程系电子信息工程专业2009年级指导教师 姓名、职称李春树教授答辩会纪要吋间2013.5.18地点三教608答辩小组 成 员姓名职务(职称)姓名职务(职称)姓名职务(职称)李春树教授李小武副教授李艳芳副教授杨熙硕士谭永広副教授廖朝阳硕±答辩中提出的主要
24、问题及回答的简要情况记录:1杨熙老师问:什么是亲缘进程,什么是非亲缘进程?答:顾名思义,亲缘进程就是有一定亲缘关系的进程,这里指的就是父子进程。非亲缘进 程就是跨越了亲缘,是两个程序进程,并非仅限于一个程序内的父子进程。2李小武老师问:除了单机的进程间通信,需要通过怎样能实现跨机通信?可以通过套接字(socket)來实现跨越机子的通信。两台主机a和b,在a主机通过进程c 发送数据到套接字屮,在b主机进程d可以通过读取套接字來获得进程c发送的消息。3谭永宏老师问:在此次设计中你怎样实现非亲缘进程间的通信?答:通过内核中的消息队列來实现,通过写进程往消息队列中写东西,通过读进程从消息 队列中读収内
25、容。写时可以设置消息类型值,读取时只有存在匹配的消息类型值(相当于一个 密码)才能读出东西。会议主持人:记录人:年月fi评语:答 辩 小 组思、见评定等级:负责人(签名):评语:系 学 位 委 员 会 意 见论文(设计)最终评定等级:负责人(签名):系部(公章) 评语:校 学 位 委 员 会二恵、见评定等级:负责人(签名):年 月 fi绪论11 linux 系统32 linux 进程52进程的概念52.2进程的构成要素52.3 linux 进程概述52.4 linux 进程间关系52.5进程的创建62.6linux 进程间通信的介绍73 linux 进程间通信机制103信号103.1.1信号的
26、概念103.1.2信号的木质103.1.3信号來源103.1.4有关信号的系统调用signal103.2管道113.2.1管道的概念及介绍113.2.2无名管道12323无名管道实现通信133.2.4命名管道143.2.5读写管道的特点153.2.6命名管道实现通信153.3 system v ipc183.3.1消息队列183.3.2信号量233.3.3共享内存313.4 linux通信机制的安全性研究363.5总结分析38参考文献39致谢40linux进程间通信的研究与实现本论文阐述了在linux环境下,对管道(pipe)、有名管道(named pipe)、信号量(semophore)&g
27、t; 消息队列(message queue)、信号(sinal)> 共享内存(shared memory)等儿种主要进程间通信手段的内部实现机制 进行了分析和比较,并针对每个通信手段的关键技术环节给岀详细的实 现事例,为研究大型的应用系统进程间通信,提供一种有益的参考与借 鉴。【关键词】linux环境,进程,通信,研究the research and implementation of communication betweenlinux processesabstractthis paper describes the linux environment, the pipeline (
28、pipe), named pipes (named pipe), semaphore (semophore), message queues (message queue), signal (sinal), shared memory (shared memory), such as several major means of inter-process communication mechanism of the internal implementation were analyzed and compared, and means of communication for each o
29、f the key technical aspects of the implementation details are given examples of the application of the system for the study of large-scale inter-process communication, provide a useful reference and experience.【key word 】linux environment, process, communicate, research绪论随着计算机技术的不断发展,计算机系统中运行的应用程序功能
30、口益强大, 孤立存在的,独立运行的应用程序越來越多,越来越多的程序相互间需要共享数 据和不断的交换信息。即使在同意应用程序中,也常常包含多个进程,它们z间 同样需要相互通信、共享和交换数据,共同完成程序功能。linux中一个进程的 地址空间内的数据是私有的,别的进程不可见川。不同类型的进程通信手段也常 常是不同的,在程序设计中采用的进程通信技术不同,对应用程序的功能实现和 运行效率都有着重要影响。linux下的进程通信机制基本上是从unix平台上继承而来,linux进程间 通信的几种主要手段主要包括:管道(pipe)、命名管道(fifo)、消息队列、信 号量和共享内存2。其中管道和有名管道是最
31、早的进程间通信机制z,管道可 用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此, 除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。认清管道和有 名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管 道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于增 强读者对读写规则的感性认识,同时也提供了应用范例。共享内存是直接用虚 拟地址访问内存中的数据,不需要数据从内核到客户进程的相互拷贝,它的通信 效率是几种进程通信机制中最高的。但是不用进程读/写一块内存空间的操作时 微观的、直接的、不能由内核保证互斥性,进程间也不会动到达同步,因此共
32、 享内存需要与其他通信机制结合,来实现进程的同步与互斥。木文将信号量与消 息队列结合使用,利用信号量来协调进程对消息队列中数据的读写(见3.3.3章 节),并应用于实例。随着计算机及网络技术的高速发展、全球信息化时代的到來,给人们工作、 生活的方方面面带来方便和快捷的同时,也带來了信息安全方面威胁。非法入侵、 窃取、篡改计算机系统中的重要数据,给社会造成难以估量的损失。受我国计算机和电了工业水平的限制,国内计算机系统的核心硬件几乎完全 依靠进口,核心计算机系统软件,例如操作系统、数据库管理系统等,也基本上 依赖国外技术,因此我国信息化建设血临着极大的威胁和挑战。在现在国内外研究基础上,计算机硬
33、件和软件系统要能发挥作用,必须通过 操作系统的管理协调才能完成,因此如果能有效的解决操作系统层的安全问题, 就很大程度上解决了信息系统硬件和软件的安全问题。linux的出现,在降低了开发操作系统的门槛,为我国开发口主安全的操作 系统带来机遇。而进程间通信机制又为我们提供了数据传输方式,我们可以通过 进程间通信实现具有安全性的通信,为我们更好提升操作系统打卜基础。目前国内外对linux操作系统的安全性有所研究,但是其安全级别还是低于 c2级(按美国国防部指定的 tcsec(trusted computer system evaluation criteria)。这 级别还不能满足我们对于安全的需
34、求,为了増强其安全功能,提供抗击能力,需 要实现更高级别的安全功能。目前国内外对linux操作系统安全性研究还存在的问题有:1)超级用户的权限太大,它拥有所有的特权,一旦获得超级用户的权限, 就获得了对整个计算机系统的安全控制o2)文件访问控制简单:linux对文件目录的访问控制只能控制到用户组,不 能对单个用户实现访问控制,权限粒度过粗。3)缺少强制访问控制:linux主要采用白主访问控制机制,缺乏强制访问控 制机制5勺。4)安全审计功能不足:linux只有简单的审计,而且主要是通过口志來进行 审计,缺乏对口志数据的安全整性保护,日志也可有能被入侵者修改,消除攻击 痕迹。就tcsec评估來说
35、,达到b级标准的操作系统即称为安全操作系统,当前 我们的目标是b1级,要达到tcbsecb1级,主要需耍实现强制访问控制功能。 我们这里就针对“缺少强制访问控制”这个不足进行改进,实现强制访问控制功 能。与文件访问类似,通过操作系统进程间通信机制对消息队列、共享内存、 信号量,管道和fifos的访问,也可以造成敏感信息的泄漏,对这些通信机制 同样要进行强制访问控制检查。因为管道和fifos实际上就是通过建立一个文件来实现,所以对这两种ipc 机制的强制访问控制的实现可以参考文件系统的安全机制。在章节3.4集中讨论 system v ipc机制的安全,因为ipc机制中消息队列的安全级别不高,只达
36、到自 主访问级,所以侧重对消息队列进行安全性的改进。经过对消息队列安全性的修改,linux的ipc机制基本上实现了强制访问控 制,向实现linux安全操作系统边进了一步,为信息系统安全体系的建设打下坚 实的基础。1 linux系统linux操作系统是unix操作系统的一种克隆系统,最早是由芬兰黑客林纳 斯.托瓦兹(linus b. torvalds)为尝试在英特尔x86架构上提供自由免费的类unix 操作系统而开发的。该计划开始于1991年,林纳斯托瓦兹当时在usenet新闻组 comp.os.minix登载帖了,这份著名的帖了标示着linux计划的止式开始。以后借 助于internet网络,
37、并通过全世界各地计算机爱好者的共同努力,已成为今天世 界上使用最多的一种unix类操作系统,并且使用人数还在迅猛增长。linux是一套免费使用和0由传播的类unix操作系统,是一个基于posix 和unix的多用户、多任务、支持多线程和多cpu的操作系统。它能运行主要 的unixi具软件、应用程序和网络协议。它支持32位和64位硬件。linux继乐 t unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它 主要用于基于intel x86系列cpu的计算机上。这个系统是由全世界各地的成千 上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、 全世界都能口由使用
38、的unix兼容产品。技术上说linux是一个内核。“内核”指的是一个提供硕件抽象层、磁盘及 文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。 一套基于linux内核的完整操作系统叫作linux操作系统。linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定 的用途。其中第一条详细來讲就是系统中的所有都归结为一个文件,包括命令、 硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各 自特性或类型的文件。至于说linux是基于unix的,很大程度上也是因为这两 者的基木思想十分相近。绝大多数基于linux内核的的操作系统使用了大量的gnu软件
39、,包括了 shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如emacso te 因为如此,gnu计划的开创者理杳德马修斯托曼博士提议将linux操作系统改 名为gnu/linux,但有些人只把操作系统叫做“linux”。由于这些系统工具和库主要由gnu计划提供,自由软件基金会提议将该组 合系统命名为gnu/linuxo linux是一个领先的操作系统,可以运行在服务器和 其他大型平台z上,如大型机和超级计算机。世界上500个最快的超级计算机90% 以上运行linux发行版或变种,最快的前10名超级计算机运行的都是linux操作 系统。linux也广泛应用在嵌入式设备上,如手机、
40、平板电脑、路由器、电视 和电了游戏机等。在移动设备上广泛使用的android操作系统就是创建在linux 内核之上的。linux以它的高效性和灵活性著称,linux模块化的设计结构,使得它既能 在价格昂贵的工作站上运行,也能够在廉价的pc机上实现全部的unix特性, 具有多任务、多用户的能力。linux是在gnu公共许可权限下免费获得的,是 一个符合posix标准的操作系统。linux操作系统软件包不仅包括完整的linux 操作系统,而且还包括了文木编辑器、高级语言编译器等应用软件。它还包括带 有多个窗口管理器的x-windows图形用户界面,如同我们使用windows nt 一 样,允许我们
41、使用窗口、图标和菜单对系统进行操作。linux由于其系统软件的免费获取,硬件费用低廉的特点,近年來发展迅猛。 linux的应用软件已达上千兆。从dos环境摸拟到图像,咅响信号的处理,从 游戏到中文软件,无所不包。各大软件公司己纷纷开始推iii linux版本的商业软 件。最近,对linux所做的基准测试表明,pentium/10()的速度可以跟sun/20 篦美。94年底在华盛顿万国会议中心召开了 linux世界年会,各大软件公司都 派出了阵容强大的代表团,展出了丰富的linux产品。linux开始进入商业应用时代。中国的internet跟中国的经济一样正经历大 建设,大发展时代,要在几年内把
42、百座城市的上千所大学,研究所联成网,急需 大量的工作站和系统管理员,linux不失为一个低费用的选择。利用现有的pc 安装上linux系统,就可以在各系,部门得到一台专业的unix工作站,它可以 作为internet上的一个点。目前,在操作系统市场上除了一些专业的领域外,微软公司正在以其 windows95/nt的强劲攻势横扫全球市场。能与其相抗衡的公司越来越少,连微 软公司最大的对手拥有一大批忠心耿耿用户的苹果公司也不得不败卜阵來, 接受微软公司的合作意向。但是在迅猛发展的国际互联网上,有这样一群人,他 们是一支由编程高手、业余计算机玩家、黑客们组成的奇怪队伍,完全独立地开 发出在功能上毫不
43、逊色于微软公司的商业操作系统的一个全新的免费unix操 作系统linux(发音为li-nucks),成为网络上一支不可小觑的力量,并以不到 四年的微薄资格就成为微软的一个强劲对手。据很不精确的统计,全世界使用 linux操作系统的人已经有数百万z多,而且绝大多数是在网络上使用的。而在 中国,随着internet大潮的卷入,一批主要以高等院校的学生和isp (internet service provider)的技术人员组成的linux爱好者队伍也已经蓬蓬勃勃地成长起 來。可以说在中国,随着网络的不断普及,免费而性能优异的linux操作系统必 将发挥出越来越大的作用。2 linux进程2.1进程
44、的概念进程是-个具有独立功能的程序关于某个数据集合的一次运行活动。它可以 申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的 代码,述包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。2.2进程的构成要素从进程的构成要素来看,进程由三部分组成,也就是进程控制块(process control block,简称pcb),有关的程序段,以及操作的数据集。其屮进程控制 块主要包描进程的一些描述信息、资源信息以及控制信息等。系统为每个进程设 置一个pcb,它是标识和描述进程存在及相关特性的数据块,是进城存在的唯 一标识,是金城动态特征的集中反映。当创建一个进程时,系统首先
45、完成其功能 之后,系统则释放pcb,进程也随之消亡。2.3 linux进程概述open系统调用返回的文件描述符是非负整型。每一个进程都有自己的文件描述符集合。当创建进程时,通常有3个打开文件描述符(0, 1, 2), 0代表标准输入,1 代表标准输出,2代表标准错谋,它们统称为标准io。当多个描述符指向同一个文件,每个文件描述符仍保持他独特的性能。由于文件描述符在一个进程中是特有的,因此不能在多个进程中间实现共 享,而唯一的例外是在父/子进程z间,当-个进程调用fork时,调用fork nt打 开的所有文件在子进程和父进程中仍然是打开的,而且子进程写入文件描述符会 影响到父进程的同一文件描述符
46、,反z亦然。2.4 linux进程间关系进程之间有父子关系,如果一个进程创建多个子进程,那这些子进程之间就 有了兄弟关系。linux中,进程0和进程1由内核创建,进程1 (init)是其他所 有进程的祖先。在进程描述符表task.struct结构中,以下字段表示进程间的关系:real_parent:指向创建进程的p的进程的描述符,如果p的父进程不存在, 就指向进程1的描述符。parent:指向p的当前父进程,往往与real.parent 一致。当出现q进程向p 发出跟踪调试ptrace()系统调用时,该字段指向q进程描述符。children: 一个链表头,该字段指向q进程描述符。sibling
47、:指向兄弟进程链表的下一个元素或前一个元素的指针。另外,进程间还存在其他关系:登录会话关系、进程组关系、线程组关系、 跟踪调试关系。在task_struct结构中,以下字段表示这些关系(假设当前进程为p): groupjeader: p所在进程组的领头进程的描述符指针; signal->pgrp: p所在进程组的领头进程的pid;tgid: p所在线程组的领头进程pid;signal->session: 一个链表头,链表中的所有元素是被调试器程序跟踪的p 了进程;ptracejist:当p被调试跟踪时,指向调试跟踪进程的父进程链表的前一个 和下一个元素。2.5进程的创建创建一个进程
48、的系统调用很简单,我们只要调用fork函数就可以了。# include<unistd.h>#include<sys/types.h>pid_t fork();当一个进程调用了 fork以后,系统会创建一个子进程。这个子进程和父进 程不同的地方只有他的进程id和父进程id,其他的都是一样。就象符进程克隆 (clone)自己一样。当然创建两个一模一样的进程是没有意义的。为了区分父进程 和子进程,我们必须跟踪fork的返回值。当fork掉用失败的吋候(内存不足或者 是用户的最大进程数已到)fork返冋1,否则fork的返冋值有重要的作用。对于 父进程fork返冋子进程的id,
49、而对于fork子进程返冋0。我们就是根据这个返 回值来区分父子进程的。父进程为什么耍创建子进程呢?前面我们已经说过了 linux是一个多用户操作系统,在同一吋间会有许多的用户在争夺系统的资源。 有吋进程为了早一点完成任务就创建子进程来争夺资源。一旦子进程被创建,父 子进程一起从fork处继续执行,相互竞争系统的资源。有吋候我们希望子进程 继续执行,而父进程阻塞直到子进程完成任务。这个吋候我们可以调用wait或 者waitpid系统调用。#include <unistd.h>#include <sys/types.h>pid_t wait(int *stat_loc);p
50、id_t waitpid(pid_t pid, int *stat_loc, int options);wait系统调用会使父进程阻塞直到一个了进程结束或者是父进程接受到了 一个信号。如果没有父进程没有子进程或者他的子进程已经结束了 wait会立即 返回。成功时(因一个了进程结束)wait将返回了进程的id,否则返回1,并设置 全局变量errno. stat joe是了进程的退出状态。了进程调用exit,_exit或者是return 来设置这个值。为了得到这个值linux定义了几个宏來测试这个返冋值。wifexited:判断了进程退出值是非0wexitstatus:判断了进程的退出值(当了进程
51、退出时非()。wifsignaled:子进程由于有没有获得的信号而退出。wtermsig: t进程没有获得的信号号(在wifsignaled为真时才有意 义)。waitpid等待指定的子进程直到子进程返冋。如果pid为正值则等待指定的进 程(pid)o如果为()则等待任何一个组id和调用者的组id相同的进程。为1时 等同于wait调用。小于时等待任何一个组id等于pid绝对值的进程。stat joe 和wait的意义一样。options町以决定父进程的状态。口j以取两个值 wnohang:父进程立即返回当没有了进程存在时。wuntached:当了进 程结束时waitpid返回,但是了进程的退出
52、状态不可得到。父进程创建子进程后,子进程一般要执行不同的程序。为了调用系统程序, 我们可以使用系统调用exec族调用.exec族调用有着5个函数。# include <unistd.h>int execl(const char * path, const char *arg, .);int execlp(const char * file, const char * arg, );int execle(const char * path, const char * arg, .);int execv(const char *path, char * const argv);int
53、execvp(const charchar *const argv):exec族调用可以执行给定程序,这样父进程与了进程各行各职。2.6 linux进程间通信的介绍linux的进程间通信,如图2.1示。其中,最初unix ipc包括:管道、fifo、信号;system vipc包括:system v消息队列、system v信号灯、system v共享内存区;posix ipc包括:posix 消息队列、posix信号灯、posix共享内存区。有两点需要简单说明一下:1)由 于unix版本的多样性,电子电气工程协会(ieee)开发了一个独立的unix标 准,这个新的ansi unix标准被称为
54、计算机环境的可移植性操作系统界面(psoix)o现有大部分unix和流行版本都是遵循posix标准的,而linux从 一开始就遵循posix标准;2)bsd并不是没有涉足单机内的进程间通信(socket 本身就可以用于单机内的进程间通信)。事实上,很多unix版本的单机ipc留有 bsd的痕迹,如4.4bsd支持的匿名内存映射、4.3+bsd对可靠信号语义的实现 等等。:嘶 ipc® 'i1图2.1 linux所继承的进程间通信图2给岀了 linux所支持的各种ipc手段,在本文接下来的讨论中,为了 避免概念上的混淆,在尽可能少捉及unix的各个版本的情况下,所冇问题的讨 论最终都会归结到linux坏境下的进程间通信上来。并且,对于linux所支持通 信手段的不同实现版本(如对于共享内存来说,冇posix共享内存区以& system v共享内存区两个实现版本),将主要介绍posix apiolinux下进程间通信的几种主要手段简介:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冀少版八年级生物上册第三单元第二节根对水分的吸收课件
- 《妈妈睡了》教学设计
- 《学习探究-计算机硬件及其故障》教案
- 印刷工程监理管理与评标规范
- 定州市公园环境卫生维护办法
- 知识产权定向合作协议
- 电力工程师解除聘用合同模板
- 纺织品业保密承诺书样本
- 水利工程保险合同范本
- 深圳汽车4S店租赁合同模板
- CORELDRAW 室内平面布置图课件
- 如何进行有效的课堂笔记
- 零售行业数字化转型研究
- 结构力学试卷西南交通大学期中答案期中考试
- 广东省佛山市2022-2023学年高二上学期期末数学试题(学生版+解析)
- 矿井水害综合监测预警系统通用技术条件
- 养老事业2024年养老产业发展前景展望
- 30题质量检验员岗位常见面试问题含HR问题考察点及参考回答
- 基于大数据的电商平台用户行为分析系统研究与实现
- 财务管理的财务财务数字化转型
- 直线与圆的位置关系-省赛一等奖
评论
0/150
提交评论