CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  软件培训/认证/考试 >  软件水平考试

各位前辈,请赐教!(一个关于操作系统的问题?)

楼主benneng(本能)2001-07-03 15:41:23 在 软件培训/认证/考试 / 软件水平考试 提问

这是一个关于使用P,V原语实现进程同步的问题:  
  var   n,produned,consumed:interger;  
  program   ex4;  
  procedure   prod2(consumed,produced:integer);  
  var   i:integer  
  begin  
  for   i:=1   to   1000   do  
  begin    
  P(consumed);             //(1)  
  n:=n+1;          
  V(produced);  
  end  
  end;  
  procedure   cons2(consumed,produced:integer);  
  var   i:integer  
  begin  
  for   i:=1   to   1000   do  
  begin  
  P(produced);  
  print('n   is:',n);  
  V(consumed);  
  end  
  end;  
  begin  
  n:=o;                 //全局变量N初值为0  
  cosumed:=o;               //建立一个初值为0的信号量  
  produced:=1;             //建立一个初值为1的信号量  
  resume(create(prod2,"prod",consumed,produced));  
  resume(create(cons2,"cons",consumed,produced));  
  end.  
        书中说:“这里采用了俩个信号量实现同步控制,信号量produced初值为1,所以,对cons2的调用不会阻塞,cons2可以打印n的初值。”但是,当进行到标号(1)的那一行语句时,执行了P原语,当前进程就被阻塞了,后面的n:=n+1那一行和V原语那一行怎么会执行呢?真是怪哉!!!!望各位高手指点迷津,小生在这里谢过了!!!!!!  
  可以发到小生的邮箱里:yangtao76@eyou.com  
  问题点数:20、回复次数:3Top

1 楼stellaxyq(汐)回复于 2001-07-04 11:58:41 得分 20

信号量阻塞是对线程来说的  
  两个线程开始运行的话,一开始(1)会阻塞  
  但你打印好了n的值以后,做了V(consumed)操作吧,这时consumed就被释放了,然后(1)就可以继续运行了!!  
  记住它是两个线程在运行,两个,而不是一个,它们之间可以互相阻塞和释放的。一个阻塞的话,它就会自动放弃对cpu的控制,而让别的线程可以占用cpu资源来运行,这样的话可以理解了吗?Top

2 楼benneng(本能)回复于 2001-07-05 10:08:49 得分 0

多谢,请问也就是说释放后,cosumed的值又成了0了吗?Top

3 楼stellaxyq(汐)回复于 2001-07-05 11:05:26 得分 0

对  
  具体的实现要看你的p,v是怎么写的了Top

相关问题

  • 请问各位前辈:怎样判断客户端的操作系统是中文还是英文的呢?
  • 各位前辈,,用C#开发的软件能在哪几种操作系统上运行呀??
  • 请问各位高手安装2000.98双操作系统的问题
  • 请各位帮忙翻译一下(这是关于操作系统的文章)
  • 请问各位高手,在TC2.0中如何操作系统时间?
  • 急需Windows .net Server操作系统的激活CDKEY,请各位帮帮忙!
  • 请问各位如何显示操作系统版本?如win98、2000、xp等。
  • 请问各位大虾,WindiowsXP2的操作系统可以装SQL2000吗?
  • 本人准备开发一套商场pos系统,请各位有经验的前辈提点建议!包括使用的操作系统,编程语言以及主要解决的问题等。
  • 请教:ATL操作系统兼容性

关键词

  • 线程
  • 信号
  • 初值
  • 原语
  • consumed
  • produced
  • 阻塞
  • 信号量
  • cons
  • 一行

得分解答快速导航

  • 帖主:benneng
  • stellaxyq

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo