记录型信号量解决读者写者问题的探究

来源 :中国电子商情 | 被引量 : 0次 | 上传用户:zhangqi789
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在多道程序环境下,进程同步问题十分重要,操作系统引入进程后,进程的异步性在多个进程争用临界资源时会给系统造成混乱,进程同步的主要任务就是使并发执行的各个进程之间能有效地共享各种资源,相互合作,是程序的执行具有可再现性。其中读者写者问题尤其具有代表性,而记录型信号量是一个很好的解决方法。
  关键词:信号量 记录式信号量 同步
  一、信号量的描述
  信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。
  信号量的取值只能是整数,即把信号量的取值定义为整型量称为整型信号量。最初由荷兰学者Dijkstra定义的,除初始化外,仅能通过两个标准的原子操作(Atomic Operation)wait(S)和signal(S)来访问。这两个操作分别称为P、V操作。wait和signal操作可描述为:
  wait(S):while S≤0 do no-op
  S∶=S-1;
  signal(S):S∶=S+1;
  S≥0说明当前有资源可供分配,S≤0无资源。,该两个操作是原子操作,不可中断的执行,当修改某个信号量是,其他进程不可同时对该信号量修改。
  在该机制中的wait操作,只要是信号量S≤0,就会不断地测试。因此,该机制并未遵循“让权等待”的准则,使进程处于“忙等”的状态。
  二、记录型信号量的描述
  为了解决“忙等”现象的问题,提出了记录型信号量机制,采用“让权等待”,但在采取了“让权等待”的策略后,又会出现多个进程等待访问同一临界资源的情况。为此,在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。记录型信号量是由于它采用了记录型的数据结构而得名的。它所包含的上述两个数据项可描述为:
  type semaphore=record/*定义类型为记录型*/
  value:integer;
  L:list of process;/*进程队列*/
  end
  相应地,wait(S)和signal(S)操作可描述为:
  procedure wait(S)
  var S:semaphore;
  begin
  S.value∶=S.value-1;
  if S.value<0 then block(S,L)/*资源数目减一操作后若资源量小于0表示该进程申请不到资源,调用阻塞原语,将该进程挂接到阻塞队列的末尾*/
  end
  procedure signal(S)
  var S:semaphore;
  begin
  S.value∶=S.value+1;
  if S.value≤0then wakeup(S,L);/*系统释放一个资源,资源数目仍然资源量小于等于0,表示存在进程在阻塞队列上,调用激活原语,将该队列的第一个进程激活,从而获得资源继续执行*/
  end
  三、读者写着问题的提出
  以上对记录型信号量的发展,原理做了简单的说明,在一个数据文件或者记录经常被多个进程共享 ,我们分为两个状态,一个是读该文件的进程称为读(Reader)进程,另外一种称为写(Writer)进程.允许多个进程同时读一个共享对象,不允许一个写进程和其他的任何同时访问共享对象。
  为实现Reader与Writer进程间在读或写时的互斥而设置了一个互斥信号量Wmutex。另外,再设置一个整型变量Readcount表示正在读的进程数目。由于只要有一个Reader进程在读,便不允许Writer进程去写。因此,仅当Readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作
  四、读者写着问题的描述
  读者-写者问题可描述如下:
  Var rmutex, wmutex:semaphore∶=1,1;
  Readcount:integer∶=0;
  begin
  parbegin
  Reader:begin/*读者进程*/
  repeat
  wait(rmutex);
  if readcount=0 then wait(wmutex);/*第一个读者要申请互斥信号量wmutex */
  Readcount∶=Readcount+1;
  signal(rmutex);
  …
  perform read operation;
  …
  wait(rmutex);
  readcount∶=readcount-1;
  if readcount=0 then signal(wmutex);/*最后一个读者要释放互斥信号量wmutex */
  signal(rmutex);
  until false;
  end
  writer:begin/*写进程*/
  repeat
  wait(wmutex);
  perform write operation;
  signal(wmutex);
  until false;
  end
  parend
  end
  五、总结
  读者写者问题是一个有代表性的进程同步问题,作为初学者要做到透彻理解并不容易,但是如果我们将该问题进行细分,由简单到复杂,理解难度将大大降低。并能在其他的同步问题上有一定得举一反三的作用。
  参考文献
  [1]Crow ley C P.Operating systems:a design-oriented approach[M].Beijing:World Publishing Co,1999:100-126.
  [2]汤小丹,梁红兵,哲凤屏,等.计算机操作系统[M].3版.西安:西安电子科技大学出版社,2007:58-61.
  [3]帖军,陆际光.同步互斥机制中的读者-写者模型[J].中南民族大学学报:自然科学版,2005,24.
  [4]《现代操作系统Modern Operating Systems》Andrew S.Tanenbaum著,陈向群等译 机械工业出版社1999.
  作者简介
  林德丽,出生于1983年09月,女,讲师,研究方向:计算机应用技术。
  (作者单位:青岛科技大学)
其他文献
摘要:换流变压器是与交流输电线相连接的设备,又是高压直流输电系统的关键部分,且大型换流变压器的绝缘结构通常采用油、纸、纸板的复合绝缘材料,因此换流变压器的结构比一般的电力变压器结构复杂。本文利用ORCAD软件,对800kV直流换流变压器建立仿真电路模型。  关键词:换流变压器 内部电场 有限元分析  一、简介  据统计,换流变压器在运行过程中绝缘事故在全部故障中所占的比例在50%以上,而所有这些绝
期刊
我国环境应急管理工作起步较晚,环境应急管理能力建设也处于开拓创新期,基层要做好环境应急管理工作,就必须具备政治敏锐性和政治责任感,打造专业管理队伍,准确地把握环境事件的特点,遵循自然规律,有针对性地做好基层环境应急管理工作。这是历史赋予环境应急管理工作者的责任与使命。2011年是“十二五”环保规划开局之年,如何做好环境应急管理工作,对于顺利完成规划目标任务至关重要。要围绕解决影响科学发展的、危害群
期刊
不管有着怎样的观测条件,在整个的观测过程中,观测的结果都会产生误差。因此测绘数据处理是测量工作中极为重要的一步,测绘数据处理通常分为一般计算、平差计算和计算机辅助成图。  一、一般计算  一般计算通常包括在工程勘察测绘中,若干工序之间各种数据按照严格的数学关系所进行的计算和变换工作。此类计算一般分布在测绘工作中的分工序中,数据之间没有几何矛盾,不需进行几何平差。如同一坐标系下不同坐标形式的转换及不
期刊
2010年前后,随着广电总局印发《关于加快纪录片产业发展的若干意见》,中国纪录片生态发生转折性变化。伴随着《舌尖上的中国》、《圆明园》、《京剧》、《再说长江》、《大国崛起》、《公司的力量》等一批优秀纪录片热播,以及许多电视台、视频门户网站纷纷推出纪录片频道,纪录片强势回归。这其中,纪录片一个新的发展方向值得关注——“微纪录片”。  一、何谓微纪录片?  其实,微纪录片并不算是新生事物,多年前中央电
期刊
摘要:本文提出的教室节能控制系统以单片机(AT89S52)为核心,由控制部分、显示部分、数据存储部分、人体感应部分、日光检测部分和电灯控制部分组成。该系统大部分功能通过硬件来实现,电路简单明了,系统稳定性很高。这套教室节能控制系统可以方便而准确地检测进出教室的人数,根据人数的不同而点亮教室里对应的灯数,可以显示教室里的人数等功能,并通过与单片机连接的按键可以设定教室里实际电灯的数目。这套系统还可以
期刊
供电企业在不断发展和壮大中,也在经历着科技进步的不断洗礼和检验。在电力供应方和电力需求方产生误差时,先进的电能计量设备能解决这方面的矛盾。实践证明,对大中用户电量的实时监控、远方抄表、电量分析预测、防窃电报警等计量工作,能为电价、电费管理等提供技术保障,从而协调电力供方与各单位之间的关系。对于电力企业自身而言,电能计量工作是企业管理的一个分支,计量检测体系能为企业提供计量保证,保证量值统一、准确,
期刊
1、我国环保技术评价相关工作现状  根据国家解决环境问题的需要,环境保护部“十一五”以来较为系统地开展了以环保技术评价为核心的技术管理工作:一是确立了国家环境技术管理体系,并制定发布了环境技术管理体系规划。二是开展了技术指导性文件制修订工作,主要包括污染防治技术政策(在订48项、现行25项)、环境工程技术规范(在订47项、现行43项)、实用技术指南(在订26项、现行8项)等。三是开展了先进技术示范
期刊
由于各种条件限制,专业实装设备型号、数量远远不能满足教学训练需求,研制示教训练系统是运用现代教育技术,采取模拟化、网络化、形象化的教学手段,解决专业教学训练中的实际问题,节约教学训练成本,提高教学训练质量和效果。  一、示教训练系统设计原则  专业设备示教训练系统,研制设计主要遵循以下三条原则。  (一)实用性原则  根据应用单位调研情况和教学实际需求,专业设备示教训练系统计划研制出一套集模拟操作
期刊
本文充分利用电力系统仿真模块系统,方便地实现各种要求的非线性电源运用到电力网自动化控制中,拓宽了PSB活用范围。运用实例仿真,该方法能够分析正确,使用便捷,在实际仿真过程中经检验切实可行。  一、Matlab 在电力系统仿真领域中的应用。  基于负荷元件构成及特性和配电网络的Matlab建模技术,基于实际测量数据和特殊负荷模型参数辨识软件,对国家电网公司所属五大区域电网的1700个负荷点特性进行了
期刊
电网企业只有向客户提供合格的电能、优质的服务和相应的附加业务,才能保障供电的可靠性与服务的优质性,提高电力客户的用电满意度,培养客户的忠诚度,促进企业的稳健发展。在激烈的市场竞争中,客户对电网企业电力营销供电服务质量要求日益增高,因此,供电企业必须高度重视提高电力营销优质服务的管理水平。  1、电力营销优质服务的重要性和必要性  首先,优质服务是构建和谐社会的客观需要。一方面,电力工业是国民经济基
期刊