操作系统原理,作业知识.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 3 章作业 3.2 试比较进程和程序的区别。 答: (1)进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没有任 何执行的含义。而进程则强调执行过程,它动态地被创建,并被调度执行后消亡; (2 )进程具有并发特征,而程序没有; (3 )进程是竞争计算机系统资源的基本单位, 从而其并发性受到系统自己的制约。 这里 制约就是对进程独立性和异步性; (4 )不同的进程可以包含同一程序,只要该程序所对应的数据集不同。 3.3 我们说程序的并发执行将导致最终结果失去封闭性。 这话对所有的程序都成立吗?试距 离说明。 答:并非对所有的程序都成立。 如: Begin local x; x=10; print(x); End 上述程序中 x 是内部变量, 不可能被外部程序访问, 因此这段程序的运行不会手外部环 境影响。 3.7 并发进程间的制约有哪 2 种?引起制约的原因是什么 ? 答:并发进程间的制约有两种:直接制约和间接制约。 直接制约是由并发进程互相共享对方的私有资源所引起的。 间接制约是由竞争公有资源 引起的。 3.8 什么是进程间的互斥?什么是进程间的同步? 答:进程间的互斥是指: 一组并发进程中的一个或多个程序段, 因共享某一共有资源而导致 它们必须以一个不许交叉执行的单位执行, 集不允许两个以上的共享该资源的并发进程同时 进入临界区。 进程间的同步是指:异步环境下的一组并发进程阴直接制约互相发送消息二进行合作、 互相等待,是个进程按一定的速度执行的过程。 3.13 编写一个程序使用系统调用 fork 生成三个子进程, 并使用系统调用 pipe 创建一管道, 使得这 3 个子进程和父进程公用同一条管道进行信息通信。 答: main() { int r,i,P1,P2,fd[2]; char buf[50],s[50]; pipe(fd); while((P1=fork())==-1); if(P1==0) { lockf(fd[1],1,0); sprintf(buf,child process P1 is sending messages!\n); printf(child process P1!\n); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); } else { while((P2=fork())==-1); if(P2==0) { lockf(fd[1],1,0); sprintf(buf,child process P2 is sending messages!\n); printf(child process P2!\n); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); } else { while((P3=fork())==-1); if(P3==0) { lockf(fd[1],1,0); sprintf(buf,child process P3 is sending messages!\n); printf(child process P3!\n); write(fd[1],buf,50); sleep(5); lockf(fd[1],0,0); exit(0); } wait(0); if(r=read(fd[0],s,50)==-1) printf(cant read pipe\n); else printf(%s\n,s); wait(0); if(r=rea

文档评论(0)

cy65918457 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档