操作系统复习题的.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统复习题的

第二章 进程管理 例1 进程间交换数据不能通过()进行 共享文件 消息传递 访问进程地址空间 访问共享存储区 例2 PCB不包括的内容是() CPU现场 进程优先级 进程执行状态 文件缓冲区 例4 下面关于线程的叙述正确的是() 线程包含CPU线程,可以独立执行程序 每个线程有自己独立的地址空间 进程只能包含一个线程 线程之间的通信必须使用系统调用 例6 下面的系统调用中不会导致进程阻塞的是() 读/写文件 获得进程PID 申请内存 发送消息 例8 下面关于临界区的叙述正确的是 临界区可以运行规定数目的多个进程同时执行 临界区只包含一个程序段 临界是必须互斥执行的程序段 临界区的执行不能被中断 例9 信号量s不能用于哪个操作 V操作 P操作 赋初值 运算表达式 预测与练习 7、若信号量的初值为2,当前为-3,表示等待的进程有 1个 2个 3个 5个 9、P操作可能导致 进程就绪 进程结束 进程阻塞 新进程创建 例8、叙述下列解决双进程临界区问题的算法的错误 Process P0: do{ flag[0]=ture; while(flag[1]); 临界区 flag[0]=false; }while(1); Process P1: do{ flag[1]=true; while(flag[0]); 临界区 flag[1]=false; }while(1); 例9、在具有n个进程的系统中,运行m个进程(n=m=1)同时进入它们的共享区,其信号量s的值变化范围是?处于等待状态的进程数最多是? 例10、有3个并发进程通过使用缓冲区buf1、buf2以及信号量none1、nonf1、none2、nonf2写作完成下图的任务,buf1、buf2的大小分别为n1、n2,s1、s2的初值都为1,nonf1=nonf2=0;none1=n1,none2=n2 输入进程 while(1){ P(none1) P(s1); 输入一个字符到buf1; V(s1); V(nonf1) }; 加工进程 while(1){ P(nonfl); P(s1) 从buf1取一个字符到ch; V(s1) V(none1); jiagong P(none2); P(s2); ch送buf2; V(s2); V(nonf2); }; 输出进程 while(1){ P(nonf2) P(s2) 从buf2取一个字符到打印机 V(S2) V(none2) }; 例11、在一个仓库中可以存放A和B两种产品,要求 每次只能存入一个产品 A产品数量-B产品数量M B产品数量-A产品数量N 其中M、N是正整数,试用P、V操作描述产品A、B入库过程 Semaphore sa,sb,mutex; sa=m-1;sb=n-1;mutex=1; void process_A(){ while(1){ P(sa); P(mutex); A产品入库; V(mutex); V(sb); } } void process_B(){ while(1){ P(sb); P(mutex); B产品入库; V(mutex); V(sa); } } 例12、一个文件P供A、B两组进程共享,同组进程可以同时读文件,但不同组进程必须互斥读文件,试用C语言实现两组进程的读文件过程 Semaphore s1,s2,mutex; int:num1,num2; s1=1;s2=1;mutex=1;num1=0;num2=0; void process_A(){ P(s1); num1++; if(num1==1)P(mutex); V(s1); 读文件P; P(s1); num1--; if(num2==0)V(mutex); V(s1); } void process_B(){ P(s2); num2++; if(num2==1)P(mutex); V(s2); 读文件P; P(s2); num2--; if(num2==0)V(mutex); V(s2); } 兄弟俩共同使用一个帐号,每次现存或取10元,存钱取钱进程如下 int amount=0; process SAVE(){ int m1; m1=amount; m1+=10; amou

文档评论(0)

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

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

1亿VIP精品文档

相关文档