- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux程项目个人总结
Linux进程项目个人总结 主要内容 一、程序的设计思想 二、调试过程中遇到的主要问题及解决方案 三、对软件开发流程的认识 一、程序的设计思想 二、调试过程中遇到的问题 及解决方案 (1)延时问题 (2)监控程序的操作界面 (3)进程被杀死后重新创建的问题 (4)程序退出运行后的资源释放问题 (1)延时问题 原来:采用反复做除法运算的方式 改进:通过调用sleep()函数进行延时, 降低了CPU的利用率。 (2)监控程序的操作界面 原来:曾设想采用输出选择菜单的方式, 通过输入单个字符进行选择 改进:采用输入字符串作为命令、外加单 个字符做参数的方式,使得界面比 较简洁。 (3)进程被杀死后重新创建的问题 原来:不同进程的代码写在一个.c文件中,使得 不能单独创建一个进程。 改进:每个进程对应一个单独的.c文件和可执行 文件,通过使用execl()函数来创建一个单 独的进程。 (4)程序退出运行后的资源释放问题 原来:不释放 改进:在每个进程退出时,都要检查连接在共享 内存上的进程数,若为0,则将共享内存销 毁,信号量集也随后销毁。 三、对软件开发流程的认识 通过完成这个任务,使我对软件开发的基本流程有了大体的了解。软件项目的实施一般包括以下几个阶段:需求分析、概要设计、详细设计、编码、测试与维护。其中各个阶段的主要任务如下: (1)需求分析:确定程序的主要功能、开发环境、 运行的平台等。 (2)概要设计:确定程序的各个模块、以及各个模 块间的关系和通信。 (3)详细设计:完成各个模块的流程图、函数 接口、数据结构的定义、算法的设计等。 (4)编码:选择合适的语言编写代码,在编码 的过程中,进行部分模块的测试,最后将 各个模块进行集成。 (5)测试和维护:设计测试方案,对整个系统进行白盒测试和黑盒测试等形式的测试,并将前期阶段形成的文档进行整理,以便于以后维护和升级。 另外通过项目的实施,个人的感受有以下几点: (1)相互之间要多交流,只有多交流,才能 使模块间的接口清晰明确。 (2)相互之间要多讨论,以获得更广阔的思路,采用更好的技术来实现。 (3)要按照软件工程的流程来实施,先设计,再编码。 第一小组 张会健 本项目中包含两个程序: (1)26个英文字母读写的程序 a.一个写进程向共享内存1写26个英文字母 b.四个读进程从共享内存1读取字母,将其写入共 享内存2中各自对应的区域。只允许同时最多有 两个读进程访问共享内存1。 c.各个进程的状态在共享内存3中保存。 d.监控程序以字符串命令的形式接受输入。 e.监控程序通过访问共享内存将各个进程的id、当前 状态、读写进度显示出来。监控程序访问共享内存 1、2时受信号量限制。 f.监控程序以向读写进程发送信号的形式,改变读写 进程的运行状态,但不能创建新的进程。 g.程序全部退出运行时销毁共享内存与信号量集。 (2)求1^2 + 2^2 + 3^2 + …….N^2的并行计算程序 a.创建四个并行计算进程分别计算部分和,最终由 求和进程将四个部分和相加,得出最终结果。 b.各个进程的id、当前状态、部分和、最终结果 全部存放在一块共享内存中。 c.创建一个单独的子进程,用于从消息队列接受监 控程序发送的消息,根据消息类型和消息内容的 不同创建不同的进程。当监控程序退出时,向其 发送类型为3的消息,令其退出。 d.监控程序以字符串命令的形式接受输入 e.监控程序通过访问共享内存显示各个进程id、当 前状态、计算进度。 f.监控程序通过向各个进程发送信号改变进程的运 状态,通过向消息队列发送消息重新创建进程。 g.程序全部退出运行时,销毁共享内存与消息队列 列。 * *footer * *
文档评论(0)