




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科学生毕业论文(设计)题目(中 文):linux进程间通信的研究与实现(英 文):the research and implementation of communication between linux processes姓 名学 号院 (系)专业、年级指导教师 湖南科技学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明
2、的法律结果由本人承担。 本科毕业论文(设计)作者签名: 年 月 日 毕业论文(设计)任务书课题名称:linux 进程间通信的研究与实现学生姓名:系 别:专 业:指导教师: 1、 关键词:linux环境,进程,通信,研究2、毕业论文(设计)内容要求:用实例对linux进程间的五种通信机制(无名有名管道、消息队列、信号量和共享内存)进行亲缘进程或是非亲缘进程读写规则的程序验证,通过不同机制协调进程来实现另外机制间数据的读写。1)利用管道快速传输和节约空间的性质,实现大数据量的信息在亲缘和非亲缘进程间传输和接收。2)通过有名管道(fifo)提供一个路径名与之进行关联,以先进先出的形式存在于文件系统中
3、,使不相干的进程也可以通过fifo相互通信。3)将不同通信机制信号量与消息队列结合使用,利用信号量来协调进程对消息队列中数据的读写,并应用于实例。4)通过共享内存映射一段内存空间,读进程通过挂载到该共享内存中来读取内存数据。5)对ipc通信机制的安全性分析,对安全级别比较低的消息队列机制进行研究改进,实现消息队列的读写权限由系统来管理。3、文献查阅指引:1 吴震, 陈耀武. 一种基于消息的进程间通信机制j. 电子器件, 2012.8.26, 8-10.2 w.richard stevens. unix network programming, volume 2: interprocess co
4、mmunications (2nd edition) j. 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.6 姜玉蓉. linux内核进程间通信的模型检测研究j. 计算机科学, 2013, 12-18.7 冯蕴, 杨斌. 双内核实时系统下各进程间通信方法的性能分析和测试j. 成都信息工程学
5、院学报, 2013.8.15, 12-16.4、毕业论文(设计)进度安排:1) 2013年2月:寻找合适设计课题,选定课题,给老师审核,通过审核,确定课题。2) 2013年3月:查看关于linux进程间通信的书,搜索各相关资料。3) 2013年4月:写程序,实现进程间通信的五个基本方式。 4) 2013年5月:查阅书刊,网上搜索资料,写论文,交初稿,并在导师的指导下修改论文; 5) 2013年5月下旬:定稿,做ppt,完成论文答辩。系部意见: 负责人签名: 注:本任务书一式三份,由指导教师填写,经系毕业论文领导小组审批后一份下达给学生,一份交指导教师,一份留系里存档。湖南科技学院本科毕业论文(
6、设计)开题报告书论文(设计)题目linux进程间通信的研究与实现作 者 姓 名杨礼彪所属系、专业、年级 电子工程系 电子信息工程 专业 2009年级指导教师姓名、职称李春树 教授预计字数13000开题日期2012-12-25选题的根据:1)说明本选题的理论、实际意义 2)综述国内外有关本选题的研究动态和自己的见解随着计算机及网络技术的高速发展、全球信息化时代的到来,给人们工作、生活的方方面面带来方便和快捷的同时,也带来了信息安全方面威胁。非法入侵、窃取、篡改计算机系统中的重要数据,给社会造成难以估量的损失。目前,国内外现有的linux操作系统的安全级别低于c2级(按美国国防部指定的tcsec(
7、trusted computer system evaluation criteria),还远不能满足我们对于安全的需求1-3。为了增强其安全性能,提高抗风险能力,需要不断地对操作系统进行修补和完善。因此,通过对通信机制的安全性能的研究入手,借鉴文件系统强制访问控制,实现进程通信的强制访问控制,以达到避免信息泄露的目的,为我们更好地提升操作系统的安全性能,具有十分重要的指导意义。主要内容:1)linux系统的介绍;2)linux进程的概述及创建;3)linux进程间通信各种方式的研究与程序实现; 4)linux进程通信机制的安全性研究;5)设计的总结。研究方法:1)查阅相关书籍,进行理论分析;
8、2)针对性的对各进程间通信方法的研究,通过不断调试程序去实现通信;3)上网查资料,跟同学探讨并和导师交流。完成期限和采取的主要措施:完成期限:2012.12.30-2013.5.9采取的主要措施:严格遵照湖南科技学院毕业论文(设计)工作管理办法的指示精神,结合个人的实际情况,我完成这项设计所采取的主要措施有两条:一是他人帮助。联系指导导师,确定设计课题方向与设计内容,让老师指点设计思路,遇到问题请教同学,为更好完成设计提供了很大帮助;二是查阅资料。到图书馆借来了相关书籍和网络上查阅资料,充分利用各种资源。主要参考资料:1 陈城高. 进程间通信技术在银行短信系统中的应用j, 计算机工程与应用,
9、2011.4.11, 17-24.2 贺建立. linux中system v进程通信机制安全性形式化验证j. 计算机工程与科学, 2012.10.30, 17-22. 3 李娟. 利用进程间通信实现程序自我保护j. 考试周刊, 2011.8.2, 16-20.4 w.richard stevens. unix network programming, volume 2: interprocess communications (2nd edition) j. 2012, 45-61.5 姜玉蓉. linux内核进程间通信的模型检测研究j. 计算机科学, 2013, 12-18.6 冯蕴, 杨斌
10、. 双内核实时系统下各进程间通信方法的性能分析和测试j. 成都信息工程学院学报, 2013.8.15, 12-16.7 吴震, 陈耀武. 一种基于消息的进程间通信机制j. 电子器件, 2012.8.26, 8-10.指导教师意见:指导教师签名: 教研室意见: 签 名: 年 月 日开 题 报 告 会 纪 要时 间2012.12.23地 点三教608与会人员姓 名职务(职称)姓 名职务(职称)姓 名职务(职称)李春树教 授李小武副教授李艳芳副教授杨 熙硕 士谭永宏副教授廖朝阳硕 士会议记录摘要:杨熙老师问:你怎样去查找资料的? 答:主要是通过导师介绍的湘科院学校网站上的图书馆、期刊网以及同学推荐的
11、it论坛等查找相关的文献资料,当然百度、谷歌肯定也是用到了的。李春树老师问:你的研究意义是什么?答:虽然目前国内对linux操作系统的安全性有所研究,但是其安全级别还是比较低,还不能满足我们对于安全的需求,所以我们需要实现更高级别的安全功能。我通过对这个linux操作系统安全性的研究,实现了linux的ipc机制的强制访问控制,对提升系统安全性有所帮助。 会议主持人: 记 录 人:年 月 日指导小组意见负责人签名: 年 月 日系部 意 见负责人签名:年月日注:此表由学生本人填写,一式三份,一份留系里存档,指导老师和本人各保存一份。湖南科技学院毕业论文(设计)中期检查表毕业论文(设计)题 目li
12、nux进程间通信的研究与实现学生姓名杨礼彪学 号200906002441系 别电子工程系专 业电子信息工程指导教师李春树检查日期2013.4.8指导教师检查情况记载及修改意见: 检查情况记载:1、 对要设计的东西了解还可以,对设计很有帮助;2、 缺少国内外设计成果分析;3、 参考文献不规范;4、 论文正文基本完成,但是论文格式上还没弄好。 修改意见:1、 要介绍下当前国内外的研究成果,还有哪些不足与改进;2、 参考文献要按照规范来写,时间出处等都要有;3、 注意论文格式,参照模版来设计;4、 尽量突出说明你自己所做的工作,突出自己的独特之处;5、 绪论没做好,要突出设计的意义;6、 要按顺序引
13、用。7、 截图要有图标及说明。签名: 注:此表用于指导教师在学生毕业论文(设计)初稿完成后对学生执行任务书情况进行中期检查时用,由指导教师填写湖南科技学院毕业设计(论文)指导过程记录表毕业论文(设计)题目linux进程间通信的研究与实现学生姓名杨礼彪学号200906002441专业班级电信0904班指导教师李春树职称教 授系(教研室)电子工程系指导过程记录指导内容记录(一)1、明确选题背景,选题意义;2、确定选题,填写毕业设计任务书;学 生 签 名: 201 年 月 日指导教师签名: 201 年 月 日指导内容记录(二)1、到图书馆查找和借阅与选题有关的文献和资料;2、从中国知网上检索和下载与
14、选题有关的文献;学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日指导内容记录(三)1、注意论文格式,参照模板;2、参考文献的创建时间要在三年之内;3、论文要突出自己设计的不同点; 学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日指导内容记录(四)1、图形要有图标,要够清楚。2、文献最好为最近出的期刊。学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日指导过程记录指导内容记录(五)1、注意文献的引用要加引用标注;2、制作一个能反映论文主要内容的ppt,作答辩陈述用,陈述时间控制在 58分钟;学 生 签 名: 201 年 月 日
15、 指导教师签名: 201 年 月 日指导内容记录(六)1、英语名词第一次介绍要有英文全称。2、论文大体上可以,但还需修改,排版还不够完善,设计内容突出的同时还得让人有视觉美感;学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日指导内容记录(七)学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日指导内容记录(八)学 生 签 名: 201 年 月 日 指导教师签名: 201 年 月 日答辩小组组长意见(对情况是否属实做出意见)组长(签名): 201 年 月 日注:本表与毕业论文一起装订存档。湖南科技学院本科毕业论文(设计)评审表论文题目linux进程间通
16、信的研究与实现作者姓名杨礼彪所属系、专业、年级电子工程系 电子信息工程专业 2009年级指导教师姓名、职称李春树 教授 字 数13000定稿日期2013.5.15中文摘要本论文阐述了在linux环境下,对管道(pipe)、有名管道(named pipe)、信号量(semophore)、消息队列(message queue)、信号(sinal)、共享内存(shared memory)等几种主要进程间通信手段的内部实现机制进行了分析和比较,并针对每个通信手段的关键技术环节给出详细的实现事例,为研究大型的应用系统进程间通信,提供一种有益的参考与借鉴。关键词(3-5个) linux环境,进程,通信,设
17、计英文摘要 this paper describes the linux environment, the pipeline (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 w
18、ere analyzed and compared, and means of communication for each of 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.关键词linux environment, proc
19、ess, communicate, research指导教师评定成绩评审基元评审要素评审内涵满分指导教师实评分选题质量25%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资料进
20、行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分 成绩等级 指导教师评审意
21、见: 指导教师签名: 说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90100分记为优秀,8089分记为良好,7079分记为中等,6069分记为及格,60分以下记为不及格。评阅教师评定成绩评审基元评审要素评审内涵满分评阅教师实评分选题质量25%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文
22、献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资料进行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的
23、基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分 成绩等级 评阅教师评审意见: 评阅教师签名: 说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90100分记为优秀,8089分记为良好,7079分记为中等,6069分记为及格,60分以下记为不及格。湖南科技学院本科毕业论文(设计)答辩记录表论文题目linux进程间通信的研究与实现作者姓名杨礼彪所属系、专业、年级电子工程系电子信息工程专业 2009年级指导教师姓名、职称李春树 教授答 辩 会 纪 要时间2013.5.18地点三教608答辩小组成员姓 名职务(职称)
24、姓 名职务(职称)姓 名职务(职称)李春树教 授李小武副教授李艳芳副教授杨 熙硕 士谭永宏副教授廖朝阳硕 士答辩中提出的主要问题及回答的简要情况记录:1.杨熙老师问:什么是亲缘进程,什么是非亲缘进程? 答:顾名思义,亲缘进程就是有一定亲缘关系的进程,这里指的就是父子进程。非亲缘进程就是跨越了亲缘,是两个程序进程,并非仅限于一个程序内的父子进程。2.李小武老师问:除了单机的进程间通信,需要通过怎样能实现跨机通信?可以通过套接字(socket)来实现跨越机子的通信。两台主机a和b,在a主机通过进程c发送数据到套接字中,在b主机进程d可以通过读取套接字来获得进程c发送的消息。3.谭永宏老师问:在此次
25、设计中你怎样实现非亲缘进程间的通信?答:通过内核中的消息队列来实现,通过写进程往消息队列中写东西,通过读进程从消息队列中读取内容。写时可以设置消息类型值,读取时只有存在匹配的消息类型值(相当于一个密码)才能读出东西。 会议主持人:记 录 人: 年 月 日答辩小组意见评语: 评定等级: 负责人(签名): 年 月 日系学位委员会意见评语: 论文(设计)最终评定等级:负责人(签名): 系部(公章) 年月 日校学位委员会意见评语:评定等级: 负责人(签名): 年月 日o目 录绪论11 linux系统32 linux进程52.1 进程的概念52.2 进程的构成要素52.3 linux进程概述52.4 l
26、inux进程间关系52.5 进程的创建62.6 linux进程间通信的介绍73 linux进程间通信机制103.1信号103.1.1 信号的概念103.1.2 信号的本质103.1.3 信号来源103.1.4 有关信号的系统调用signal103.2管道113.2.1 管道的概念及介绍113.2.2无名管道123.2.3无名管道实现通信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
27、致 谢40ilinux 进程间通信的研究与实现摘 要 本论文阐述了在linux环境下,对管道(pipe)、有名管道(named pipe)、信号量(semophore)、消息队列(message queue)、信号(sinal)、共享内存(shared memory)等几种主要进程间通信手段的内部实现机制进行了分析和比较,并针对每个通信手段的关键技术环节给出详细的实现事例,为研究大型的应用系统进程间通信,提供一种有益的参考与借鉴。【关键词】linux环境,进程,通信,研究iithe research and implementation of communication between lin
28、ux processesabstractthis paper describes the linux environment, the pipeline (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 im
29、plementation were analyzed and compared, and means of communication for each of 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】l
30、inux environment, process, communicate, researchiii绪论 随着计算机技术的不断发展,计算机系统中运行的应用程序功能日益强大,孤立存在的,独立运行的应用程序越来越多,越来越多的程序相互间需要共享数据和不断的交换信息。即使在同意应用程序中,也常常包含多个进程,它们之间同样需要相互通信、共享和交换数据,共同完成程序功能。linux中一个进程的地址空间内的数据是私有的,别的进程不可见1。不同类型的进程通信手段也常常是不同的,在程序设计中采用的进程通信技术不同,对应用程序的功能实现和运行效率都有着重要影响。 linux下的进程通信机制基本上是从unix平
31、台上继承而来,linux 进程间通信的几种主要手段主要包括:管道(pipe)、命名管道(fifo)、消息队列、信号量和共享内存2。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于增强读者对读写规则的感性认识,同时也提供了应用范例 。共享内存是直接用虚拟地址访问内存中的数据,不需要数据从内核到客户进程的相互拷贝,它的通
32、信效率是几种进程通信机制中最高的3。但是不用进程读/写一块内存空间的操作时微观的、直接的、不能由内核保证互斥性,进程间也不会自动到达同步,因此共享内存需要与其他通信机制结合,来实现进程的同步与互斥。本文将信号量与消息队列结合使用,利用信号量来协调进程对消息队列中数据的读写(见3.3.3章节),并应用于实例。随着计算机及网络技术的高速发展、全球信息化时代的到来,给人们工作、生活的方方面面带来方便和快捷的同时,也带来了信息安全方面威胁。非法入侵、窃取、篡改计算机系统中的重要数据,给社会造成难以估量的损失。受我国计算机和电子工业水平的限制,国内计算机系统的核心硬件几乎完全依靠进口,核心计算机系统软件
33、,例如操作系统、数据库管理系统等,也基本上依赖国外技术,因此我国信息化建设面临着极大的威胁和挑战4。在现在国内外研究基础上,计算机硬件和软件系统要能发挥作用,必须通过操作系统的管理协调才能完成,因此如果能有效的解决操作系统层的安全问题,就很大程度上解决了信息系统硬件和软件的安全问题。linux的出现,在降低了开发操作系统的门槛,为我国开发自主安全的操作系统带来机遇。而进程间通信机制又为我们提供了数据传输方式,我们可以通过进程间通信实现具有安全性的通信,为我们更好提升操作系统打下基础。目前国内外对linux操作系统的安全性有所研究,但是其安全级别还是低于c2级(按美国国防部指定的tcsec(tr
34、usted computer system evaluation criteria)5 。这级别还不能满足我们对于安全的需求,为了增强其安全功能,提供抗击能力,需要实现更高级别的安全功能。目前国内外对linux操作系统安全性研究还存在的问题有:1) 超级用户的权限太大,它拥有所有的特权,一旦获得超级用户的权限,就获得了对整个计算机系统的安全控制5 。2) 文件访问控制简单:linux对文件目录的访问控制只能控制到用户组,不能对单个用户实现访问控制,权限粒度过粗。3) 缺少强制访问控制:linux主要采用自主访问控制机制,缺乏强制访问控制机制5-6 。4) 安全审计功能不足:linux只有简单的
35、审计,而且主要是通过日志来进行审计,缺乏对日志数据的安全整性保护,日志也可有能被入侵者修改,消除攻击痕迹。就tcsec评估来说,达到b级标准的操作系统即称为安全操作系统,当前我们的目标是b1级,要达到tcbsec b1级,主要需要实现强制访问控制功能。我们这里就针对“缺少强制访问控制”这个不足进行改进,实现强制访问控制功能。 与文件访问类似,通过操作系统进程间通信机制对消息队列、共享内存、信号量,管道和fifos的访问,也可以造成敏感信息的泄漏,对这些通信机制同样要进行强制访问控制检查。 因为管道和fifos实际上就是通过建立一个文件来实现,所以对这两种ipc机制的强制访问控制的实现可以参考文
36、件系统的安全机制。在章节3.4集中讨论system v ipc机制的安全,因为ipc机制中消息队列的安全级别不高,只达到自主访问级,所以侧重对消息队列进行安全性的改进。 经过对消息队列安全性的修改,linux的ipc机制基本上实现了强制访问控制,向实现linux安全操作系统迈进了一步,为信息系统安全体系的建设打下坚实的基础。1 linux系统 linux操作系统是unix操作系统的一种克隆系统,最早是由芬兰黑客林纳斯.托瓦兹(linus b. torvalds)为尝试在英特尔x86架构上提供自由免费的类unix操作系统而开发的。该计划开始于1991年,林纳斯托瓦兹当时在usenet新闻组com
37、p.os.minix登载帖子,这份著名的帖子标示着linux计划的正式开始。以后借助于internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种unix 类操作系统,并且使用人数还在迅猛增长。 linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。它能运行主要的unix工具软件、应用程序和网络协议。它支持32位和64位硬件。linux继承了unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于intel x86系列cpu的计算机上。这个系统是由全世界各
38、地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的unix兼容产品。 技术上说linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于linux内核的完整操作系统叫作linux操作系统。 linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说linux是基于unix的,很大程度上也是因
39、为这两者的基本思想十分相近。 绝大多数基于linux内核的的操作系统使用了大量的gnu软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如emacs。正因为如此,gnu计划的开创者理查德马修斯托曼博士提议将linux操作系统改名为gnu/linux,但有些人只把操作系统叫做“linux”。由于这些系统工具和库主要由gnu计划提供,自由软件基金会提议将该组合系统命名为gnu/linux。linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行linux发行版或变种,最快的前10名超级计算机运行
40、的都是linux操作系统。 linux也广泛应用在嵌入式设备上,如手机、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的android操作系统就是创建在linux内核之上的。 linux以它的高效性和灵活性著称,linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的pc机上实现全部的unix特性,具有多任务、多用户的能力。linux是在gnu公共许可权限下免费获得的,是一个符合posix标准的操作系统。linux操作系统软件包不仅包括完整的linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的x-windows图形
41、用户界面,如同我们使用windows nt一样,允许我们使用窗口、图标和菜单对系统进行操作。linux由于其系统软件的免费获取,硬件费用低廉的特点,近年来发展迅猛。linux的应用软件已达上千兆。从dos环境摸拟到图像,音响信号的处理,从游戏到中文软件,无所不包。各大软件公司已纷纷开始推出linux版本的商业软件。最近,对linux所做的基准测试表明,pentium/100的速度可以跟sun/20蓖美。94年底在华盛顿万国会议中心召开了linux世界年会,各大软件公司都派出了阵容强大的代表团,展出了丰富的linux产品。linux开始进入商业应用时代。中国的internet跟中国的经济一样正经
42、历大建设,大发展时代,要在几年内把百座城市的上千所大学,研究所联成网,急需大量的工作站和系统管理员,linux不失为一个低费用的选择。利用现有的pc安装上linux系统,就可以在各系,部门得到一台专业的unix工作站,它可以作为internet上的一个点。 目前,在操作系统市场上除了一些专业的领域外,微软公司正在以其windows95/nt的强劲攻势横扫全球市场。能与其相抗衡的公司越来越少,连微软公司最大的对手拥有一大批忠心耿耿用户的苹果公司也不得不败下阵来,接受微软公司的合作意向。但是在迅猛发展的国际互联网上,有这样一群人,他们是一支由编程高手、业余计算机玩家、黑客们组成的奇怪队伍,完全独立
43、地开发出在功能上毫不逊色于微软公司的商业操作系统的一个全新的免费unix操作系统linux(发音为li-nucks),成为网络上一支不可小觑的力量,并以不到四年的微薄资格就成为微软的一个强劲对手。据很不精确的统计,全世界使用linux操作系统的人已经有数百万之多,而且绝大多数是在网络上使用的。而在中国,随着internet大潮的卷入,一批主要以高等院校的学生和isp(internet service provider)的技术人员组成的linux爱好者队伍也已经蓬蓬勃勃地成长起来。可以说在中国,随着网络的不断普及,免费而性能优异的linux操作系统必将发挥出越来越大的作用。 2 linux进程2
44、.1 进程的概念进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。2.2 进程的构成要素 从进程的构成要素来看,进程由三部分组成,也就是进程控制块(process control block,简称pcb),有关的程序段,以及操作的数据集。其中进程控制块主要包括进程的一些描述信息、资源信息以及控制信息等。系统为每个进程设置一个pcb,它是标识和描述进程存在及相关特性的数据块,是进城存在的唯一标识,是金城动态特征的集中反映。当创建一个进程时,系统
45、首先完成其功能之后,系统则释放pcb,进程也随之消亡。2.3 linux进程概述 .open系统调用返回的文件描述符是非负整型。 .每一个进程都有自己的文件描述符集合。 .当创建进程时,通常有3个打开文件描述符(0,1,2),0代表标准输入,1代表标准输出,2代表标准错误,它们统称为标准io。 .当多个描述符指向同一个文件,每个文件描述符仍保持他独特的性能。 .由于文件描述符在一个进程中是特有的,因此不能在多个进程中间实现共享,而唯一的例外是在父/子进程之间,当一个进程调用fork时,调用fork时打开的所有文件在子进程和父进程中仍然是打开的,而且子进程写入文件描述符会影响到父进程的同一文件描
46、述符,反之亦然。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):group_leader:p所在进程组的领头进程的描述符指针;signal-pgrp:p所在进程组的领头进程的pid;tgid:p所在线程组的领头进程pid;signal-session:一个链表头,链表中的所有元素是被调试器程序跟踪的p子进程;ptrace_list:当p被调试跟踪时,指向调试跟踪进程的父进程链表的前一个和下一个元素。2.5 进程的创建创建一个进程的系统调用很简单,我们只要调用fork
48、函数就可以了。 #include #include pid_t fork(); 当一个进程调用了fork以后,系统会创建一个子进程。这个子进程和父进程不同的地方只有他的进程id和父进程id,其他的都是一样。就象符进程克隆(clone)自己一样。当然创建两个一模一样的进程是没有意义的。为了区分父进程和子进程,我们必须跟踪fork的返回值。当fork掉用失败的时候(内存不足或者是用户的最大进程数已到)fork返回-1,否则fork的返回值有重要的作用。对于父进程fork返回子进程的id,而对于fork子进程返回0。我们就是根据这个返回值来区分父子进程的。父进程为什么要创建子进程呢?前面我们已经说过
49、了linux是一个多用户操作系统,在同一时间会有许多的用户在争夺系统的资源。有时进程为了早一点完成任务就创建子进程来争夺资源。一旦子进程被创建,父子进程一起从fork处继续执行,相互竞争系统的资源。有时候我们希望子进程继续执行,而父进程阻塞直到子进程完成任务。这个时候我们可以调用wait或者waitpid系统调用。 #include #include pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid,int *stat_loc,int options); wait系统调用会使父进程阻塞直到一个子进程结束或者是父进程接受到了一个信号。如果没有父
50、进程没有子进程或者他的子进程已经结束了wait会立即返回。成功时(因一个子进程结束)wait将返回子进程的id,否则返回-1,并设置全局变量errno.stat_loc是子进程的退出状态。子进程调用exit,_exit 或者是return来设置这个值。 为了得到这个值linux定义了几个宏来测试这个返回值。 wifexited:判断子进程退出值是非0 wexitstatus:判断子进程的退出值(当子进程退出时非0)。 wifsignaled:子进程由于有没有获得的信号而退出。 wtermsig:子进程没有获得的信号号(在wifsignaled为真时才有意义)。 waitpid等待指定的子进程直到子进程返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药材保健品市场潜力-洞察阐释
- 车辆抵押贷款合同续签与展期合同
- 厂房产权转让与员工安置协议书
- 粤菜餐厅场地租赁及厨艺培训合同范本
- 空间互联网产业园厂房股权转让与卫星应用合作合同
- 车辆挂靠营运与广告合作推广协议
- 车辆买卖合同中的知识产权保护
- 菜市场摊位经营权及附属设施转让合同
- 部编三年级语文暑期学习计划
- 茶楼装修设计施工及售后服务合同
- 筏板基础项目施工工艺规范
- 中国玉石及玉文化鉴赏知到章节答案智慧树2023年同济大学
- 家庭园艺营养土产品技术标准2022
- 浙江高等教育岗前培训考试题目-大学心理学1-20套
- 人教版五年级下数学周末练习题13(分数加减法)
- 科学青岛版五年级下册(2022年新编)21 蜡烛的燃烧 课件
- 垃圾处理-机械炉排炉
- 软件系统运维及方案
- 抗菌药物临床应用指导原则(2023年版)
- 预制混凝土构件检验原始记录表
- 护理学基础试题及答案护理学基础试题库
评论
0/150
提交评论