《实验2 进程控制与通信管理word文档良心出品》由会员分享,可在线阅读,更多相关《实验2 进程控制与通信管理word文档良心出品(13页珍藏版)》请在人人文库网上搜索。

1、年级11级专业计算机科学与技术班级五班组号12组实验室9#205日期2014/05/17实验 名称实验二、进程控制与通信管理实 验 内 容分项内容 实验级别1、Linux系统常用进程管理命令的使用操作系统观察级2、Linux系统常用进程创建与管理的系统调用原码阅读与系统编程级3、Windows平台常用进线程控制API原码阅读与系统编程级4、进程同步与互斥控制(读者写者、一家人吃苹果桔子、 哲学家吃饭)码阅读与系统编程级5、简单进程通信(管道、消息缓冲、邮件槽等)(原码阅读与系统编程 级)小 组 成 员姓名学号组内分工自我评分教师评分独立完成实验二(1)良好独立完成实验二(2)良好独立完成实验二。

2、(3)良好独立完成实验二(4)良好独立完成实验二(5)良好小 组 成 绩 评 定教师签名:实验分项11、Linux系统常用进程管理命令的使用2、Linux系统常用进程创建与管理的系统调用3、Windows平台常用进线程控制API 4、进程同步与互斥控制5、简单进程通信实 验 目 的、实验目的:1、加深对进程概念的理解,明确进程和程序的区别。2、进一步认识并发执行的实质。3、分析进程争用资源的现象,学习解决进程互斥的方法。实验要求具体题目:进程创建、进程控制系统平台:Linux/Windows操作系统二、实验原理1. Linux系统常用进程管理命令(1) at命令:定时运行命令让系统在两天后的1。

3、7: 30执行文件data中指定的作业,使用命令:# at f data 15:30 +2 days(2) bg命令后台运行命令如果要将一个大目录的文件进行排序后,将结果输入到一个文件中, 可以使用命令:实 验 原 理 步 骤( 算 法 流 程 )# du -a / | sort -rn /tmp/du.sorted(3) Fg挂起程序使用fg命令时,要加入后台任务号码,如果不加任何号码,则所变动的均是当前任务。# du -a / | sort -rn /tmp/du.sorted &1 237#fg 1(4) Jobs显示后台程序先把两个进程放在系统后台运行,然后使用jobs命令查看后台任务。

4、的执行情况:# du -a /etc user.data &1 233# find / -n ame core -type f -ls core.data &2 234#jobs -l1 + 237 Running du -a /etc user.data2 - 238 Running find / -n ame core -type f -ls core.data(5) kill命令杀掉进程命令执行过程如果出错,用户可用kill来结束任务。对于在后台运行的进程,可以使用kill命令终止:# du -a / | sort -rn /tmp/du.sorted &1 237#kill 237(6。

5、) nice命令改变权限优先级将ls命令的优先序加1并执行,将结果输入文件1.txt :# nice -n 1 ls 1.txt(7) renice命令修改优先级将进程PID为987及32的进程与进程拥有者为daemon及root的优先级别号加1:# renice +1 987 -u daemon root -p 32(8) sleep命令暂停进程下面的命令使进程先暂停60秒,然后查看哪个用户登录到系统中:# sleeP 60; who2、 进程同步与互斥控制(数据同步),原理如下:(1) 、设置全局变量:int ticket=100;互斥量:HANDLE hMutex;(2) 、创建互斥信号。

6、量 ticket: hMutex=CreateMutex(NULL,TRUE,ticket);(3) 、用 WaitForSingleObject(hMutex,INFINITE);捕获互斥信号量 hMutex(4) 、用ReleaseMutex(hMutex);释放互斥量的使用权3、通过邮件槽实现简单进程通信,原理如下:(1) 、油槽服务器:1) hMailslot=CreateMailslot(.mailslotMyMailslot,0, MAILSLOT_WAIT_FOREVER,NULL); / 创建一个邮路。读取邮路数据2) ReadFile(hMailslot,buf,100,&d。

7、wRead,NULL);/3) CloseHandle(hMailslot);/关闭油槽(2) 、油槽客户端:1) hMailslot=CreateFile(.mailslotMyMailslot,GENERIC_WRITE,FILE_SHARE_READ,NULL, OP EN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);/创建油槽文件)WriteFile(hMailslot,buf,strlen(buf)+1,&dwWrite, )CloseHandle(hMailslot);/ 关闭油槽NULL;/写入数据实验源代码如下:1、进程同步与互斥控制(数据同步)#。

8、i nclude stdafx.h#in cludevWi ndows.husing n ames pace std;#in cludeiostream int in dex =0;int ticket=100;HANDLE hMutex;DWORD WINA PI FunIP roc(L PVOID IpP arameter) while(TRUE)WaitForSi ngleObject(hMutex,INFINITE); if(ticket0)cout0)coutthread2 sell ticket :ticket-e ndl;elsebreak;ReleaseMutex(hMutex。

9、);return 0;int _tmai n(int argc, _TCHAR* argv) HANDLE hTread1;HANDLE hTread2;hTread仁CreateThread(NULL,O,Fu n1P roc,NULL,0,NULL); hTread2=CreateThread(NULL,0,Fu n2P roc,NULL,0,NULL); CloseHa ndle(hTread1);CloseHa ndle(hTread2); hMutex=CreateMutex(NULL,TRUE,ticket);if(hMutex)if(ERROR_ALREADY_EXISTS=Ge。

10、tLastError()cout Only one in sta nee can run !e ndl; return 0;ReleaseMutex(hMutex); ReleaseMutex(hMutex); Slee p(10000);return 0;2、1)邮件槽进程通信:油槽服务器:(关键代码段)void C 油槽客户端 Dlg:OnSend()/ TODO:在此添加控件通知处理程序代码HANDLE hMailslot;hMailslot=CreateFile(.mailslotMyMailslot,GENERIC_WRITE,FILE_SHARE_ READ,NULL, OP EN。

11、_EXISTING ,FILE_ATTRIBUTE_NORMAL,NULL);if(INV ALID_HANDLE_V ALUE=hMailslot) MessageBox(打开油槽失败!); return;CStri ng str;char buf100;m_edit.GetWi ndowText(str); strc py_s(buf,str);DWORD dwWrite;if(!WriteFile(hMailslot,buf,strle n( buf)+1, &dwWrite,NULL) MessageBox(写入数据失败!);CloseHa ndle(hMailslot);return。

12、;CloseHa ndle(hMailslot);2)油槽客户端:(关键代码段)void C 油槽客户端 Dlg:OnSend()/ TODO:在此添加控件通知处理程序代码HANDLE hMailslot;hMailslot=CreateFile(.mailslotMyMailslot,GENERIC WRITE,FILE SHAREREAD,NULL,0 PEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,NULL);if(INV ALID_HANDLE_V ALUE=hMailslot) MessageBox(打开油槽失败!”);return;CStri ng str;。

13、char buf100;m_edit.GetWi ndowText(str);strc py_s(buf,str);DWORD dwWrite;if(!WriteFile(hMailslot,buf,strle n(buf)+1, &dwWrite,NULL) MessageBox(写入数据失败!”);CloseHa ndle(hMailslot);return;CloseHa ndle(hMailslot);(写不完时,可另加附页。)三、实验结果:1、实验截图:Sb C ;Wi nd ostem 32c m d .exe结 果 及 分 析threadl thread2 threadl thr。

14、ead2 threadl thread2 threadl thread2 threadl thread2 threadl thread2 threadl thread2 threadl thread2 threadl thread2 threadl thread2 threadl thread threadl thread2 threadlsell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sell sellticke。

15、t ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket ticket:100 :99 :98:9T :9e:95:93:92 :91:90;83:83 ;87;86:85 :8斗:83 :32 ;81:80 :79 :了8:77 :TG2-1进程控制达到数据同步处理截图鳥进程管理!油槽服务器油槽春户端2-2油槽通信控制面板截图A。

16、讷辄很务器A胡礴=張务il2-3油槽-服务器截图4油權-客户薛XX油服务器e$dfgd输入:发送2-4油槽-客户端截图胸定岛油潜-客户端I -u* -X辎入:回而宝送2-5发送-接受效果截图心得体会2、结果分析:1 )、Is命令列出了指定目录下的文件名和目录名,参数-I要求显示文件或目录的详细信息,例如类型、访问权限、连接数、拥有者等。在Linux中,用户通过利用fork创建的进程来与原进程运行相同的程序代码,为了 使新进程运行新的程序,用户可以使用系统调用exec来装入一个新的程序到当前进程的地址空间,如果 exec调用成功,系统开始执行新程序,永远不会返回原来的程 序。2 )、进程同步与互。

17、斥控制,能有效的控制全局变量在某一进程执行过程中唯一被访 问。在多线程程序中容易出现共享资源因时间片到期而终止访问,这样就很容易出现数据的错乱。假如全局变量未火车票;对于线程函数(FunProc1、FunProc2),在访问全局变量ticket时,ticket自减一。如果在线程函数 1 ( FunProcI)访问ticket, 还没有来得及自减一就因时间片到期而被线程函数2( FunProc2)抢占访问,然后自减一。这样就造成了资源数据不一致,从而产生很危险的后果。本实验通过设置互斥信号量从而达到线程之间对共享资源的同步访问,以此还可以 实现进程同步中的读者/写者问题。3)、由于油槽是单向通信。

18、机制,所以只能通过创建油槽服务器进程读取数据,打开 油槽客户端进程写入数据。如果只打开油槽服务器,创建读取数据进程而没有打开 客户端就会导致服务器进入无限等代状态,造成程序崩溃。在创建进程句柄后要记得释放句柄,不然会产生不良后果。在了解了操作系统中进程间的通信的方式我们使用了邮槽实现了简单的进程间的通信,在实际的应用中, 进程间的通信往往是十分重要的,我们可以使用其它的应用程序提供的信息,使我们自己的程序开发更为完善,在进程间的通信中, 我们还可以使用管道技术,管道技术又分为命名管道和匿名管道,匿名管道是实现本机之见的进程通信,命名管道很好的解决了, 客户端和服务器之间的通信,另一种实现服务器和客户端之间的通信是邮槽,通过该实验更加深入理解了操作系统的通信方式一一邮槽通信以及信息 通信。真正体会从课本上学到的东西是有限了,要提高自己的技术水平, 还是得实践去努力。

实验2linux进程控制与通信,实验2 进程控制与通信管理word文档良心出品相关推荐

  1. cgns matlab,MATLABSimulink系统建模与仿真实验报告(详细解析)(word文档良心出品).docx...

    MATLAB Simuli nk 电力系统建模与仿真 ******实验报告 ****** 姓名: 专业?电气工程及其自动化 班级: ******************* 学号: ********** ...

  2. 控制生成word文档

    前段时间才做了一个,将测试数据生成word文档.     其中有表格.画图形         用模版文件来替换最方便,修改模版就修改了格式.     将要填的数据定义成一个符号如<NAME> ...

  3. 利用PowerShell Empire实现Word文档DDE攻击控制(简单没啥用)

    近期,有安全人员发现了一种DynamicData Exchange (DDE)协议绕过MSWord和MSExcel宏限制,不需使用MSWord和MSExcel漏洞,就能实现在Office文档中执行恶意 ...

  4. 在Delphi中很精确地控制生成的WORD文档的格式

    原文地址:http://blog.163.com/laidedou@126/blog/static/1150740632012036110729/ var    WordApplication1: T ...

  5. java 获取 word 窗体域_办公小技巧:巧用窗体域 控制Word文档修改区

    原标题:办公小技巧:巧用窗体域 控制Word文档修改区 有时我们发给别人的Word文档,仅仅需要对方修改其中的一小部分,比如房屋出租合同中的房屋承租人信息,采购清单中的数量信息等.这类文档中的其他信息 ...

  6. Aspose.Words在word文档合并时如何控制列表编号

    为了帮助大家在进行word文档合并时灵活地控制列表编号,Aspose.Words for .NET为大家提供了ImportFormatMode属性设置来进行相应的操作.在本文中,我们会给出两个合并前的 ...

  7. html怎么控制行的字数,怎样控制Word文档一页的行数和每行的字数?

    您好,欢迎来到[爆炒Office],这里有原创的实用办公软件技巧.着手工作实际,解决办公问题. 概述 有的Word文档制作时比较严谨,指定了一页中只能输入多少行文字,且一行中只能输入多少个文字.遇到这 ...

  8. PageOffice如何控制在系统中打开Word文档只读

    PageOffice如何控制在系统中打开Word文档只读 在文档系统有些环节需要限制用户编辑word文件,只许查看,那么如何实现用程序控制文件打开的时候,用只读模式打开呢?若通过PageOffice开 ...

  9. 实验吧-隐写-欢迎来到地狱(Word文档文字隐藏、Rabbit加密)

    地狱伊始.jpg格式有误,无法打开,缺少文件头FF D8 FF E0,添加上之后得到图片: 在这个网盘里有个wav文件,里面隐藏了摩斯电码:-.- . -.-- .-.. . - ..- ... -- ...

最新文章

  1. java unit包_Java接入UNIT文本对话处理源码详解
  2. 还是来说class,什么鬼,类会生宝宝
  3. linux php 断点调试,PHP断点调试工具Xdebug的安装
  4. 【公告】【公告】【公告】【公告】
  5. HDU - 3667 Hotel(线段树+区间合并)
  6. Linux系统开机启动过程分析
  7. 动画理解Dijkstra算法过程
  8. DOM-8 【兼容】冒泡捕获流、事件与事件源对象、事件委托
  9. 关于parallel rollback的一点总结
  10. Python是非常优美的语言,那到底如何个美呢?
  11. HiHocoder 1036 : Trie图 AC自动机
  12. 冒着被开除的风险也要给大家看看看这份Spring Cloud 总结
  13. 局域网部署文档协同办公系统:Windows + onlyoffice + dzzoffice
  14. java treetable_00035-layui+java 树形表格treeTable(异步请求)
  15. 用java操作MySQL编写的高校水电费管理系统
  16. 怎样免费快速把PDF文件压缩到最小?
  17. @Cacheable注解
  18. 花里胡哨的天气插件代码生成
  19. php 快速导出百万级数据到 csv 或者 excel 文件
  20. 一键分享怎么可以找回删除的照片小技巧

热门文章

  1. C语言考前复习(仅供参考)
  2. 镭热激光教你怎样区分光纤激光打标机
  3. 登神长阶 c语言题解
  4. 机器学习_深度学习毕设题目汇总——音乐
  5. weex官方demo weex-hackernews代码解读(1)
  6. armbian设置_基于Armbian大变身!仅需10分钟 Phicomm N1 变身千元SIP电话呼叫中心!...
  7. neo4j cypher操作
  8. 作品更新之FAR CARE APP-ESG设计考量
  9. PCBA加工虚焊和假焊的原因及解决方法
  10. mlfviewer_打开frp文件阅读器 ONEView Demo