ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:123KB ,
资源ID:3324136      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-3324136.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《工程量清单计价》练习题及答案.doc)为本站会员(A海阔天空)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

《工程量清单计价》练习题及答案.doc

1、的“有效储存期”:20世纪80年代时为24个月,20世纪90年代已延长为36个月。此外,欧洲空间局(ESA)标准ESAPSS01-60ESA空间系统的元器件选择、采购和控制以及欧洲空间标准化合作组织(ECSS)标准ECSS-Q-60A空间产品保证电子、电气和机电元器件均规定了从制成到预计装机日期超过了60个月的库存元器件,装机前应进行复验程序。目前我国军用“七专”元器件,也有部分元器件的技术条件规定了“有效储存期”。如QZJ 840620规定了射频插头座在环境温度为5-35、相对湿度不大于80%的库房中储存60个月内应具有使用性;QZJ 840621规定了石英谐振器出厂后,在正常的存放条件下,

2、96个月内的频率变化应在补充技术条件规定的范围内。有效储存期作为元器件的质量指标应该由元器件生产厂家给出,而大多数国内生产厂家要做到这一点还存在一定的困难。在元器件生产厂家不能提供的情况下,通常在总结经验的基础上,参照国内外经验自行规定元器件的有效储存期。元器件的有效储存期与储存的环境条件有关,但在美军标准及欧洲空间机构的同类标准都未说明36个月或60个月是在怎样的储存环境下的有效储存期。对此只能理解为欧美的仓库环境条件较好,或已达到相当于I类的储存环境条件。不同的元器件其结构和材料等有一定的差异,所以其有效储存期也不尽相同,欧洲空间机构类似的标准化文件将元器件的有效储存期一律定为60个月,这

3、种做法不一定很科学。元器件的有效储存期与元器件的质量等级有关,但在美军标准及欧洲空间机构的类似标准中都未说明元器件的质量等级。8、元器件的超期复验 美国军用标准MIL-S-19500规定半导体分立器件库存超过了36个月,交货时要通过电参数测试和外观检查;MIL-M-38510规定集成电路库存超过了36个月,交货时要通过电参数测试。欧洲空间局标准ESA-01-60以及欧洲空间标准化合作组织ECSS标准ECSS-Q-60A规定超过60个月的库存元器件,装机前应进行复验。这两个管理标准规定的复验程序包括电参数测试、外观目检、密封性检查和破坏性物理分析等。储存期超过有效储存期的元器件应按一定的程序进行

4、复验,复验通过的元器件,才能作为合格品用于装备型号正(试)样上。以下简要介绍我国军用元器件超期复验的要求。A、超期复验的分类元器件的超期复验需按照超过有效存储期时间的长短进行分类。元器件的超期复验超过有效储存期的时间分为A、B、C三类。1. 储存期已超过有效储存期,但未超过1.3倍的为A类。2. 储存期已超过有效储存期1.3倍,但未超过1.7倍的为B类。3. 储存期已超过有效储存期1.7倍,但未超过2.0倍的为C类。除非另有规定,超过有效储存期2.0倍的元器件不得进行超期复验;对于已通过了A、B类超期复验,而且其总储存期未超过有效储存期2.0倍的元器件,允许按C类进行第二次超期复验;已经过C类

5、超期复验的元器件,不得再次进行超期复验。不同的装备研制,可根据需要对上述分类进行细化或剪裁,某航空型号的元器件储存管理规定中规定按有效储存期的长短分为A、B两类。1. 储存期已超过有效储存期,但未超过1.5倍的为A类。2. 储存期已超过有效储存期1.5倍,但未超过2.0倍的为B类。B、元器件超期复验的要求通常情况下,储存期超过有效储存期的元器件必须按相关技术文件的检验过程进行复验,通过复验的元器件,才能作为合格品装机使用,未经复验的超期元器件不得装机使用。超过有效储存期2.0倍的元器件不得进行超期复验。在复验过程中发现致命缺陷(功能失效)或严重缺陷的元器件,应进行失效分析;如果分析结果表明缺陷

6、为批次性,则同一生产批的元器件不得用于型号产品。复验合格的元器件应继续在规定的环境条件下存放;复验不合格的元器件应严格隔离。以下简要介绍元器件超期复验要求。l A类超期复验要求A类超期复验时元器件储存期超过有效储存期的时间不长,重点检查对元器件的外观、电性能以及密封情况;序号检验项目检验要求方法和不合格判据1外观检查全部检查用5倍10倍放大镜或显微镜对元器件进行外观检查,元器件引出端断裂或外壳脱落为致命缺陷;引出端锈蚀或表面损伤为严重缺陷;表面镀涂层脱落、起泡或标志模糊不清但不影响使用为轻缺陷。有这三种缺陷的元器件均为不合格品,应予剔除。检查结果如果为不合格元器件的比例超过规定的比例(航天产品

7、通常为5%),或致命缺陷和严重缺陷元器件的比例超过规定的比例(航天产品通常为2%),则整批元器件不得用于装备产品上2电特性测试全部测试规定的电特性对入库时已进行电特性测试的元器件,应按入库测试的方法进行相同参数的测试。对入库时未进行电特性测试的元器件,应按元器件相应的详细规范或数据手册测量功能和主要参数(电线、电缆仅要求测试绝缘电阻和耐电压)。元器件丧失规定的功能为致命缺陷;参数不符合技术规范的要求(参数超差)为致命缺陷。要求在室温下进行测试,必要时也可进行高、低测试。测试结果不合格元器件的比例超过规定的比例(航天产品通常为10%),或其中有致命缺陷元器件的比例超过规定的比例(航天产品通常为3

8、%),则整批元器件不得用于装备产品上3密封性检查全部做密封性检查半导体分立器件按GJB 128A方法1071、半导体集成电路按GJB 548A方法1014A、元件按GJB 360A方法112进行密封性检查;除非另有规定,对于液体钽电容器可用PH试纸进行检查,不要求进行真空检漏。对入库时已进行过密封性检查的元器件,复验粗检漏不合格超过规定比例(航天产品通常为5%或总不合格品超过10%)时,则整批不得用于装备产品上 l B类及C类超期复验要求B类或C类的超期复验时元器件储存期超过有效储存期的时间较长,除按A类超期复验的要求进行复验,还要重点对检查元器件的引出端可焊性以及引出端的强度,对于某些类别的

9、元器件还要抽样进行破坏性物理分析检测。 引出端的可焊性,按下表规定进行检查。元器件类别试验方法试验条件样本大小/合格判定数小功率分立器件GJB 128A方法2026(2352)或按详细规范规定5(0)大功率分立器件3(0)中、小规模数字集成电路GJB 548B方法2003.1(2455)或按详细规范规定5(0)模拟集成电路3(0)大规模集成电路1(0)电阻器、电容器、电感器GJB 360A方法208(2352)或按详细规范规定5(0)继电器3(0)电连接器3(0)石英谐振器、振荡器3(0) 引出端强度试验,按下表规定进行。允许采用同批电特性不合格的器件作为样本。元器件类别试验方法试验条件样本大

10、小/合格判定数小功率分立器件GJB 128A方法2036A、E或详细规范规定5(0)大功率分立器件3(0)中、小规模数字集成电路GJB 548B方法2004.2A、B2或详细规范规定5(0)模拟集成电路3(0)大规模集成电路1(0)电阻器、电容器、电感器GJB 360A方法211A、C或详细规范规定5(0)继电器3(0)石英谐振器、振荡器3(0) 破坏性物理分析试验对于半导体器件、非固体钽电容器、密封继电器、金属壳封装的石英谐振器和振荡器进行复验时,应抽样做破坏性物理分析。破坏性物理分析的样本大小及合格判据参照下表。元器件类别样本大小合格判定数说明小功率分立器件30复验批总数不足10 只时,抽

11、样1只小功率微波分立器件20大功率分立器件20大功率微波分立器件20中、小规模数字集成电路30模拟集成电路20大规模集成电路20非固体钽电容器30密封继电器20石英谐振器、振荡器20有关元器件DPA的方法及批不合格判据,规定如下:1. 分立器件按GJB 128A方法20722075、2037、2017分别进行内部目检、键合强度和芯片剪切检验;集成电路按GJB 548B方法2013、2011.1、2019.2分别进行内部目检、键合强度和芯片剪切检验。检验结果如果发现腐蚀等批次性失效模式,则整批不得装机使用。2. 对非固体钽电容器进行内部目检,当发现内壁有腐蚀孔或普遍腐蚀的现象,则整批不得装机使用

12、。3. 对密封继电器、石英谐振器、振荡器等进行内部目检,当发现内部有腐蚀现象,则整批不得装机使用。4. 什么是产品可靠性?1. 最近一两年,国外品牌产品在国内市场呈现升温趋势,这当中包括手机、平板电视、音响、冰箱等电子产品,电脑、MP3/MP4,ERP系统等IT产品,汽车、纺织设备、机床等机电产品其中一个关键的原因就是很多中国企业产品的可靠性比较差。2. 就目前中国企业产品与国外领先企业产品的差距而言,主要已经不是功能和性能的差距,而主要是核心技术的差距,还有就是质量和可靠性方面的差距。作为时间维度上的质量,可靠性的差距是最明显的,是最影响用户信心的,应该也是产品质量方面最难以解决的。3. 所

13、谓产品可靠性(Reliability),是产品在规定的条件和规定的时间完成规定功能的能力,其中1) 规定的条件包括环境条件(气候、机械、化学、电磁等)、负荷大小、工作方式等,2) 规定的时间是指在产品有效寿命期.操作系统实 验 指 导 书 绍兴文理学院计算机系 前 言1实验总体目标通过学生自己动手设计实验验证理论知识,使学生掌握操作系统特征和功能,掌握不同调度算法下进程的调度、进程控制、进程调度与死锁,并必须掌握作业管理、存储器管理、设备管理和文件管理的主要原理。加深对操作系统基本原理理解。 适用专业计算机科学与技术 先修课程C语言程序设计、计算机组成原理、数据结构 实验课时分配序号实验名称学

14、时实验要求实验类型1分析操作系统所面临的操作需求2必修验证2进程管理4必修设计3存储管理4必修设计4设备管理2必修设计5文件管理4必修设计 实验环境有70台中等配置的计算机组成的小型局域网的实验室环境。计算机的具体要求:(1)Pentium 133Hz以上的CPU;(2)建议至少256MB的内存;(3)建议硬盘至少2GB,并有1GB空闲空间。(4)安装Windows操作系统及C语言编译程序或Linux虚拟环境。 实验总体要求培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程

15、序的能力,加深对操作系统课程的理解。使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。实验要求做到:1) 详细描述实验设计思想、程序结构及各模块设计思路;2) 详细描述程序所用数据结构及算法;3) 明确给出测试用例和实验结果;4) 为增加程序可读性,在程序中进行适当注释说明;5) 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6) 实验报告撰写要求结构清晰、描述准确逻辑性强;7) 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。 本实验的重点、难点及教学方法建议重点:理解进程调度中PCB的设计,以实现

16、对进程的调度。难点:进程调度程序的设计,设备管理程序的设计。教学方法建议:力争在本指导书的帮助下,独立设计程序以加深理解。实验一 分析操作系统所面临的操作需求(一)实验目的使学生理解操作系统所面临的操作需求,掌握操作系统中的进程管理、存储管理、设备管理和文件管理等功能。(二)实验内容1.分析操作系统所面临的操作需求;2.熟悉实验环境;3.资料搜集与整理,进行实验的前期准备。熟悉编程环境本课程中的实验题目既可以在windows下用控制台应用程序实现,也可以在linux下用全屏幕程序实现。这里我们首先介绍在windows下用vc+6.0设计控制台应用程序的步骤,然后介绍在linux下用C语言编写全

17、屏幕程序的步骤。1. windows的控制台应用程序 图1-1 图1-2图1-3步骤1:开机,单击“开始”按钮,选择“程序-MicrosoftVisualStudio6.0-MicrosoftVisualC+6.0”进入MicrosoftVisualC+6.0。见图1-1。步骤2:在MicrosoftVisualC+6.0中,单击“File”菜单,选择“New”菜单命令,见图1-2。步骤3:在“Files”选项卡中选择“C+SourceFile”,见图1-32.linux的vi应用编程登录 Linux是一个多用户多任务操作系统,多个用户可以拥有自己独立的用户账号登录提示: Red Hat Li

18、nux release 6.0 (Hedwing) Kernel 2.2.5-15 on an i686 Login:此时输入用户户名(账号)并键入回车,则系统显示“passward”。在输入密码和回车。登录后:roothawk/root#表示是按root方式登录,$表示是普通用户。Linux大小写敏感,用“-”加参数zlinux:# ls FHowTo/ HowToMin/ linux nag/ sag/获取帮助:Linux带有联机手册,可以用man命令来阅读 Zlinux:$ man ls虚拟终端 Linux可有多个用户登录到同一个计算机,但一般微机只有一个终端难以体现。可以使用多个虚拟终

19、端,用Alt+F1、 Alt+F2等来切换。退出系统 在停止使用系统时,要退出系统。具体方法:exit或logout,或Ctrl+D关机 如果没有用户在使用系统,可以关机。但是不能直接关闭电源,而要按正常顺序关机。一般用户是不能关机的,只有root用户可以关机。方法:可以使用halt或shutdown命令,也可以同时键入Ctrl+Alt+Del。Windows 虚拟机环境:登录到系统点击桌面“VMware”图标 Vmware Workstation窗口CommandsStart this virtual machine进入fedora后,用户名:root 口 令:123456使用编辑器vi 编

20、辑文件1. 进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。下面作一些简单的解释:首先vi命令是打开vi编辑器。后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。2. 最基本的命令I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入编辑模式了。如下图所示: 3. a与i是相同的用法4. 当文件编辑完后,需要保存退出,

21、这时需要经过以下几个步骤:1)按一下键盘上的Esc 键;2)键入冒号(:),紧跟在冒号后面是wq(意思是保存并退出)。如果不想保存退出,则在第二步键入冒号之后,键入!q(不带w,机尾部保存)。如下图所示:5. 退出vi编辑器的编辑模式之后,要对刚才编写的程序进行编译。编译的命令是:gcc filename.c -o outputfilename,其中gcc是c的编译器。参数:filename.c 是刚才编辑的c 文件(当然也可以是以前编写好的c文件);后面中括号里面的参数是可选的,它是一个输出文件。如果不选,默认的输出文件是a.out ,选了之后输出文件就是outputfilename.out

22、6. 最后一步是运行程序,方法如下:./outputfilename.out实验二 进程管理(一)实验目的掌握临界区的概念及临界区的设计原则;掌握信号量的概念、PV操作的含义以及应用PV操作实现进程的同步与互斥;分析进程争用资源的现象,学习解决进程互斥的方法;掌握进程的状态及状态转换;掌握常用的进程调度算法。(二)实验内容1分析进程的同步与互斥现象,编程实现经典的进程同步问题生产者消费者问题的模拟;2编写允许进程并行执行的进程调度程序,在常用的进程(作业)调度算法:先来先服务算法、短作业优先算法、最高响应比优先算法、高优先权优先算法等调度算法中至少选择三种调度算法进行模拟,并输出平均周转时间和

23、平均带权周转时间。本实验涉及内容较多,可以在两个题目里选择一个完成。编程实现经典的进程同步问题生产者消费者问题的模拟模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。进程是程序在一个数据集合上运行的过程,进程是并发执行的,也即系统中的多个进程轮流地占用处理器运行。我们把若干个进程都能进行访问和修改的那些变量称为公共变量。由于进程是并发地执行的,所以,如果对进程访问公共变量不加限制,那么就会产生“与时间有关”的错误,即进程执行后所得到的结果与访问公共变量的时间有关。为了防止这类错误,系统必须要用同步机构来控制进程对公共变量的访问。一般说,同步机构是由若干条原语同步原语所组成。本实验

24、要求模拟PV操作同步机构的实现,模拟进程的并发执行,了解进程并发执行时同步机构的作用。此次用到的数据结构知识如下: typedef struct Pcb char name10; /进程名char state10; /运行状态char reason10; /若阻塞,其原因int breakp; /断点保护struct Pcb *next; /阻塞时的顺序 Pcb,*link; 进程名状态等待原因断点后继进程 进程控制块结构定义两个进程: link p1;/生产者进程,link c1;/消费者进程。pc程序计数器和link ready; 就绪队列,link b_s1; s1阻塞队列,link b

25、_s2; s2阻塞队列。实验指导:a. h头文件#include #include #include /* malloc()等 */ #include /* INT_MAX等 */ #include /* EOF(=Z或F6),NULL */ #include /* atoi() */ #include /* eof() */ #include /* floor(),ceil(),abs() */ #include /* exit() */ #include using namespace std; #include #define BUF 10 /缓存的大小 #define MAX 20 /

26、最大可以输入的字符b. h头文件/数据结构的定义和全局变量typedef struct Pcb char name10; /进程名char state10; /运行状态char reason10; /若阻塞,其原因int breakp; /断点保护struct Pcb *next; /阻塞时的顺序Pcb,*link;int s1,s2; /信号量link p1;/生产者进程link c1;/消费者进程char strMAX; /输入的字符串char bufferBUF; /缓冲池int len; /输入长度int sp=0; /string的指针int in=0; /生产者指针int out=

27、0; /消费者指针char temp; /供打印的临时产品char rec_pMAX;/生产记录int rp1=0;/生产记录指针char rec_cMAX;/消费记录int rp2=0;/消费记录指针link ready; /就绪队列link b_s1; /s1阻塞队列link b_s2; /s2阻塞队列int pc; /程序计数器int count; /字符计数器int con_cnt; /消费计数器c. h头文件void init(); /初始化void p(int s); /P操作void v(int s); /V操作void block(int s);/阻塞函数void wakeup

28、(int s);/唤醒函数void control(); /处理机调度void processor();/处理机执行void print(); /打印函数void init() /初始化s1=BUF;s2=0;p1=(link)malloc(sizeof(Pcb);/建立新的结点,并初始化为生产者strcpy(p1-name,Producer);strcpy(p1-state,Ready);strcpy(p1-reason,Null);p1-breakp=0;p1-next=NULL;c1=(link)malloc(sizeof(Pcb);/建立新的结点,并初始化为消费者strcpy(c1-n

29、ame,Consumer);strcpy(c1-state,Ready);strcpy(c1-reason,Null);c1-breakp=0;c1-next=NULL;ready=p1;ready-next=c1;/初始化为生产进程在前,消费进程在后c1-next=NULL;b_s1=NULL;b_s2=NULL;/阻塞进程为NULLpc=0;con_cnt=0; /消费计数器void p(int s)if(s=1) /p(s1)s1-;if(s1breakp=pc; /保存断点else /p(s2)s2-;if(s2breakp=pc; /保存断点void v(int s)if(s=1)

30、/v(s1)s1+;if(s1breakp=pc; /保存断点else /v(s2)s2+;if(s2breakp=pc; /保存断点void block(int s)/阻塞函数的定义link p;int num1=0;int num2=0;if(s=1)/生产进程strcpy(p1-state,Block);/改变状态strcpy(p1-reason,S1);/说明原因p=b_s1;while(p)num1+;p=p-next;/p的值为NULL,表示队尾if(!b_s1)b_s1=p1;elsep=p1;p1-next=NULL;printf(t* p1生产进程阻塞了!n);ready-b

31、reakp=pc; /保存断点ready=ready-next;/在就绪队列中去掉,指向下一个num1+;else/消费进程strcpy(c1-state,Block);strcpy(c1-reason,S2);p=b_s2;while(p)num2+;p=p-next;/p的值为NULL,表示队尾if(!b_s2)b_s2=c1;elsep=c1;ready-breakp=pc; /保存断点ready=ready-next;/在就绪队列中去掉,指向下一个c1-next=NULL;printf(t* c1消费进程阻塞了!n);num2+;printf(t* 阻塞的生产进程个数为:%dn,num

32、1);printf(t* 阻塞的消费进程个数为:%dn,num2);void wakeup(int s)/唤醒函数的定义link p;link q=ready;if(s=1) /唤醒b_s1队首进程,生产进程队列p=b_s1;b_s1=b_s1-next;/阻塞指针指向下一个阻塞进程strcpy(p-state,Ready);strcpy(p-reason,Null);while(q)/插入就绪队列q=q-next;q=p;p-next=NULL;printf(t* p1生产进程唤醒了!n);else /唤醒b_s2队首进程,消费进程队列p=b_s2;b_s2=b_s2-next;/阻塞指针指

33、向下一个阻塞进程strcpy(p-state,Ready);strcpy(p-reason,Null);while(q-next)/插入就绪队列q=q-next;q-next=p;p-next=NULL;printf(t* c1消费进程唤醒了!n);void control() /处理器调度程序int rd;int num=0;link p=ready; if(ready=NULL) /若无就绪进程,结束return;while(p) /统计就绪进程个数num+;p=p-next;/最终p变为NULLprintf(t* 就绪进程个数为:%dn,num);time_t t; srand(unsi

34、gned) time(&t);rd=rand()%num;/随机函数产生随机数if(rd=1)p=ready;ready=ready-next;ready-next=p;p-next=NULL;strcpy(ready-state,Run);strcpy(ready-next-state,Ready);else strcpy(ready-state,Run);pc=ready-breakp;void processor() /模拟处理器指令执行if(strcmp(ready-name,Producer)=0) /当前进程为生产者switch(pc) case 0:/produceprintf(

35、t* 生产者生产了字符%cn,strsp);rec_prp1=strsp;/添加到生产记录 sp=(sp+1)%len;pc+;ready-breakp=pc; /保存断点break;case 1: /p(s1)pc+;p(1);break;case 2: /putbufferin=rec_prp1; /放到缓冲区printf(t* %c字符成功入驻空缓存!n,bufferin);rp1+; in=(in+1)%BUF;pc+;ready-breakp=pc; /保存断点break;case 3: /v(s2)pc+;printf(t* 释放一个s2信号n);v(2);break;case 4

36、:/goto01 printf(t* 生产进程goto 0 操作n);pc=0;count-; /剩余字符个数减1printf(t* 剩余字符count=%d个n,count);ready-breakp=pc; /保存断点if(countstate,Stop);strcpy(p1-reason,Null);ready-breakp=-1;ready=ready-next;/在就绪队列中去掉 else /当前进程为消费者switch(pc)case 0: /p(s2)pc+;p(2); break;case 1: /getprintf(t* 消费者取字符!n);temp=bufferout;ou

37、t=(out+1)%BUF;pc+;ready-breakp=pc; /保存断点break;case 2: /v(s1)pc+;printf(t* 释放一个s1n);v(1);break;case 3: /consumeprintf(t* 消费了字符%cn,temp);rec_crp2=temp;/添加到消费记录rp2+;con_cnt+;if(con_cnt=len)strcpy(c1-state,Stop);/完成态c1-breakp=-1;return;pc+;ready-breakp=pc; /保存断点break;case 4: /goto0printf(t* 消费进程goto 0 操作n);pc=0;ready-breakp=pc; /保存断点void print()int i,j;printf(-生产者消费者模拟-n);printf(* 模拟过程的字符串为:t);printf(%sn,&str);printf(* 已生产:);for(j=0;j=rp1;j+)printf(%c,rec_pj);printf(n* 空缓存:);for(j=rp2;j=rp1;j+)printf(%c,bufferj);printf(&q

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报