计算机系统基础2模拟题答案复习过程
全国计算机等级考试模拟题二(带操作题及答案)

一、选择题1.下列叙述中正确的是()。
A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构D。
【解析】本题主要考查栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。
根据数据结构中各数据元素之间的前后关系的复杂程度。
一般将数据结构分为两大类型:线性结构与非线性结构。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
2.支持子程序调用的数据结构是()。
A.栈B.树C.队列D.二叉树A。
【解析】栈是一种限定在一端进行插入与删除的线性表。
在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。
所以一般采用栈式存储方式。
3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
A.10 B.8 C.6 D.4C。
【解析】根据二叉树的性质,在任意二叉树中,度为O 的结点(即叶子结点)总是比度为2的结点多一个。
4.下列排序方法中,最坏情况下比较次数最少的是()。
A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序D。
【解析】冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为n(n -1)/2,而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。
5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下列属于应用软件的是()。
A.编译程序B.操作系统C.教务管理系统D.汇编程序C。
【解析】编译程序和汇编程序属于支撑软件,操作系统属于系统软件,而教务管理系统属于应用软件。
6.下列叙述中错误的是()。
A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性A。
全国计算机等级考试二级公共基础模拟试题及答案解析12套

计算机二级公共基础模拟试题一一、选择题(每小题2分)在下列各题的A),B),C),D),4个选项中,只有1个选项是正确选项添涂在答题卡相应位置上,答在试卷上不得分。
1.栈和队列的共同特点是( C )。
A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素C)没有共同点2.已知二叉树后序编历序列是dabec,中续遍历序列是debac,它的前序编历序列是( D )。
A)acbedB)decabC)deabcD)cebda33.链表不具有的特点是( B )。
A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要的移动元素D)所需空间与线性长度4.结构化程序设计的3种结构是( D )。
A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值机构、等价结构D)顺序结构、选择结构、循环结构5.为了提高测试的效率。
应该( D )A)随即选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后指定软件的测试次数D)集中对付那些错误的群集的程序6.算法的时间复杂度是指( C )A)执行算法程序所需要的时间 B)算法程序的长度C)在完成编码以后指定软件的测试次数D)算法程序中的指定条数7.软件生命周期中花费用最多的阶段是( D )A)详细设计B)软件编码C)软件测试D)软件维护8.数据库管理系统DBMS中用来定义模拟、内模式和外模式的语言为( C )A)C B)Basic C)DDL D)DML9.下列有关数据库的描述,正确的是( C )A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件10.下列有关数据库的描述,正确的是( D )A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字节D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的键字,则称其为本关系的外关键字二、填空题(每空2分)请将每一个空的正确答案写在答题卡【11】~【15】序号的横线上,答案试卷上不得分。
计算机二级模拟考试题及答案题目

1[单选题]计算机软件的确切含义是A.计算机程序、数据与相应文档的总称B.系统软件与应用软件的总和C.操作系统、数据库管理软件与应用软件的总和D.各类应用软件的总称参考答案:A参考解析:本题考查软件的基本概念。
计算机软件的含义:(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合;(2)程序能够满意地处理信息的数据结构;(3)描述程序功能需求以及程序如何操作和使用所要求的文档。
故选A。
2[单选题]正确的IP地址是参考答案:A参考解析:IP地址是由四个字节组成的,习惯写法是将每个字节作为一段并以十进制数来表示,而且段间用“.”分隔。
每个段的十进制数范围是0至255。
3[单选题]下列关于数据库设计的叙述中,正确的是()。
A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典参考答案:A参考解析:数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
4[单选题]下列关于计算机病毒的叙述中,正确的选项是()。
A.计算机病毒只感染.exe或.corn文件B.计算机病毒可以通过读写软件、光盘或互联网络进行传播C.计算机病毒是通过电力网进行传播的D.计算机病毒是由于软件片表面不清洁而造成的。
参考答案:B参考解析:计算机病毒传染途径众多,可以通过读写软件、光盘或Intemet 网络进行传播,故答案选B选项。
5[单选题]在满足实体完整性约束的条件下()。
A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字参考答案:A参考解析:实体完整性约束要求关系的主键中属性值不能为空值,所以选择A。
6[单选题]组成计算机指令的两部分是()。
A.数据和字符B.操作码和地址码C.运算符和运算数D.运算符和运算结果参考答案:B参考解析:一条指令通常由两个部分组成:操作码和操作数。
二级计算机公共基础知识课后习题及答案

全国计算机等级考试二级公共基础知识课后习题及答案1第一章数据结构与算法一.选择题1.算法的时间复杂度是指( )A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数2.算法的空间复杂度是指( )A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间3.下列叙述中正确的是( )A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结构D. 二叉树是线性结构4.数据的存储结构是指( )A. 数据所占的存储空间量B. 数据的逻辑结构在计算机中的表示C. 数据在计算机中的顺序存储方式D. 存储在外存中的数据5.下列关于队列的叙述中正确的是( )A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表D. 队列是先进后出的线性表6.下列关于栈的叙述中正确的是( )A. 在栈中只能插入数据B. 在栈中只能删除数据C. 栈是先进先出的线性表D. 栈是先进后出的线性表8.在深度为5的满二叉树中,叶子结点的个数为( )A. 32B. 31C. 16D. 159.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )A. N+1B. N C .(N+1)/2 D. N/210.设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1 .则T的叶子结点数为A. 8B. 7 C . 6 D. 5二.填空题1. 对长度为n的有序线性表中进行二分查找,需要的比较次数为( )2. 设一棵完全二叉树共有700个结点,则在该二叉树中有( )个叶子结点3. 设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为( )4. 在最坏情况下,冒泡排序的时间复杂度为( )5. 在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有( )个元素第一章参考答案一.选择题1.C 2. D 3. A 4. B 5. C 6. D 7. B 8. B 9. B 10. A二. 填空题1) log2n 2) 350 3) DEBFCA 4) N(N-1)/2 5) 3第二章程序设计基础一. 选择题1.结构化程序设计主要强调的是( )A. 程序的规模B. 程序的易读性C. 程序的执行效率D. 程序的可移植性2.对建立良好的程序设计风格,下面描述正确的是( )A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无3.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( )A.调用语句B.命令C.口令D.消息4.信息隐蔽的概念与下述哪一种概念直接相关?( )A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度5.下面对对象概念描述错误的是( )A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性二.填空题1.结构化程序设计的三种基本逻辑结构为顺序、选择和()2.源程序文档化要求程序应加注释。
计算机二级模拟考试答案

计算机二级模拟考试答案一、单选题1. 在计算机系统中,CPU指的是什么?A. 中央处理器B. 存储器C. 输入设备D. 输出设备答案:A2. 下列哪个选项不是计算机硬件的组成部分?A. 显示器B. 键盘C. 鼠标D. 操作系统答案:D3. 在计算机中,1KB等于多少字节?A. 1024B. 512C. 256D. 128答案:A4. 下列哪个选项是计算机病毒的特点?A. 可执行性B. 可读性C. 可编辑性D. 可复制性答案:A二、多选题1. 计算机系统由哪些部分组成?A. 硬件系统B. 软件系统C. 操作系统D. 应用程序答案:A和B2. 下列哪些属于计算机的输入设备?A. 键盘B. 鼠标C. 打印机D. 扫描仪答案:A和B和D三、判断题1. 计算机的内存是临时存储设备。
答案:正确2. 计算机的硬盘是永久存储设备。
答案:正确3. 计算机病毒只能通过电子邮件传播。
答案:错误四、填空题1. 计算机的CPU主要由______和______组成。
答案:运算器、控制器2. 计算机的存储设备分为______存储和______存储。
答案:内部、外部3. 计算机的______是计算机硬件和软件资源的管理者。
答案:操作系统五、简答题1. 简述计算机硬件系统的组成。
答案:计算机硬件系统主要由输入设备、输出设备、存储器、中央处理器和外部设备等组成。
2. 计算机软件系统的作用是什么?答案:计算机软件系统是计算机运行的基础,它包括操作系统、应用程序和各种支持软件等,它们共同协作,控制和管理计算机硬件资源,实现用户的各种需求。
结束语:以上是计算机二级模拟考试的部分答案,希望对您的学习和复习有所帮助。
计算机 第二次模拟试题(有答案)

计算机基础课程综合复习第二次摸底考试试题一、选择题(每题2分,共70分)下列各题A、B、C、D四个选项中,只一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)完整的计算机硬件系统一般包括外部设备和( C )。
A. 运算器和控制器B. 存贮器C. 主机D.中央处理器(2)英文OS指的是( C )。
A. 显示英文的屏幕B. 窗口软件C. 操作系统D.磁盘操作系统(3)和十进制数225相等的二进制数是( D )。
A. 11101110B. 11111110C. 10000000D. 11100001(4)计算机能够自动工作,主要是因为采用了( C )。
A. 二进制数制B. 高速电子元件C. 程序控制D.设计语言(5)办公自动化属于计算机应用领域中的( C )。
A. 人工智能B. 科学计算C.数据处理D.计算机辅助设计(6)网络通讯软件是一种( A )软件。
A. 应用B. 编辑C. 会话D.系统(7)操作系统是计算机系统不可缺少的组成部分,是为提高计算机的( B )和方便用户使用计算机而配的基本软件。
A. 速度B. 利用率C. 灵活性D.兼容性(8)第一台电子计算机使用的逻辑部件是( D )。
A. 集成电路B. 大规模集成电路C. 晶体管D.电子管(9)计算机可直接执行的指令一般包含( B )两个部分A. 数字和字符B. 操作码和操作数C. 数字和运算符号D.源操作数和目的操作数(10)一片1.44MB的软盘可以存储大约140万个( A )。
A. ASCII字符B. 中文字符C. 磁盘文件D.子目录(11)调制解调器的主要功能是( B )。
A. 数字信号的编码B. 模拟信号与数字信号的转换C. 模拟信号的放大D.数字信号的放大(12)在微型计算机的性能指标中,用户可用的内存容量通常是指( B )。
A. ROM的容量B. RAM的容量C. CD-ROM的容量D.RAM和ROM的容量之和(13)数据库管理系统是一种( D )软件。
计算机基础知识模拟试卷(二)含参考答案

计算机基础知识模拟试卷(二)时间:60分钟分数:150分一、单项选择题(每小题2分,共75小题)1.现代计算机是一种按程序进行自动处理的工具,目前被广泛使用的计算机是(C)A、数字计算机B、模拟计算机C、通用并专门用于家庭的计算机D、数字与模拟混合的计算机2.十进制数向二进制数进行转换时,十进制数码91相当二进制数(A)A、1011011B、1101011C、1101111D、11100013.ftp是指(B)、A、邮件信箱B、协议C、网址D、新闻组4.在微机中访问速度最快的存储器是(D)A、磁带B、硬盘C、软盘D、RAM5.数控机床是一种装有程序控制系统的自动化机床,能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而是机床动作并加工零件,这属于(A)。
A、计算机辅助制造B、人工智能C、信息处理D、过程控制6.以下软件属于操作系统的是(D)A、VISUAL BASICB、、WORD2010C、WPS2010D、WINDOWS 77.微型计算机中,合称为中央处理单元CPU的是指是(B)。
A、通用寄存器和控制器B、运算器和控制器C、累加器和算术逻辑运算部件(ALU)D、累加器和控制器8.下面列出的计算机病毒传播途径,不正确的说法是(A)、A、通过把多张光盘叠放在一起B、使用来路不明的软件C、通过借用他人的U盘D、通过非法的软件拷贝9.信息技术是指(A)。
A、获取、处理、存储、传输信息的技术、B、获取信息的技术C、传输信息的技术D、处理信息的技术10.微型计算机系统中的中央处理器是指(D)A、内存储器、控制器和运算器B、内存储器和控制器C、内存储器和运算器D、控制器和运算器11.微处理器处理的数据基本单位为字。
一个字的长度通常是(A)。
A、与微处理器芯片的型号有关B、16个二进制位C、32个二进制位D、64个二进制位12.微型计算机硬件系统中最核心的部位是(C)。
A、I/O设备B、主板C、CPUD、内存储器13.微型计算机的发展经历了从集成电路到超大规模集成电路等几代的变革,各代变革主要是基于(D)A、操作系统B、存储器C、输入输出设备D、微处理器14.开机后电脑显示器和主机都没有任何反应,首先应该检查(C)A、内存条是否有松动B、计算机上的硬件设置是否有错误C、供电是否正常D、Windows启动文件是否损坏15.微型计算机中,存储器的功能是(C)A、控制机器各个部件协调一致地工作B、进行算术运算和逻辑运算C、存储各种信息D、保持各种控制状态16.计算机病毒具有破坏性、(D)、潜伏性和传染性等特点。
浙江省温州市成考专升本2023年计算机基础第二次模拟卷(附答案)

浙江省温州市成考专升本2023年计算机基础第二次模拟卷(附答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(40题)1.具有多媒体功能的微型计算机系统中,常用的CD-ROM是____。
A.只读型大容量软盘B.只读型光盘C.只读型硬盘D.半导体只读存储器2.按____键之后,可删除光标位置前的一个字符。
A.InsertB.DelC.BackspaceD.Edn3.在Word中,要选定一个英文单词可以用鼠标在单词的任意位置____。
A.单击B.双击C.右击D.按住Ctrl键单击4.关于因特网中主机的IP地址,叙述不正确的是____。
A.IP地址是网络中计算机的身份标识B.IP地址可以随便指定,只要和别的主机IP地址不同就行C.主机的IP地址必须是全球唯一的D.IP地址是由32个二进制位组成5.下列设备中,能将信息以图片形式输入到计算机中的是A.触摸屏B.绘图仪C.扫描仪D.打印机6.万维网的WWW的含义是____。
A.WorkwidewithB.waitwaitwaitC.WorkwindweakD.Worldwideweb7.对以下视频设备描述正确的是______。
A.视频信息的采集和显示播放是通过音频卡来实现的B.视频卡主要用于捕捉、数字化、冻结、存储、输出、放大、缩小和调整来自激光视盘机、录像机或摄像机的图像C.电视卡是一种播放软件D.视频卡只能进行音频的相关处理8.在使用高级筛选中,条件区域中“性别”字段下输入“男”,“成绩”字段下输入“中级”,则将筛选出___________类记录。
A.所有记录B.性别为“男”或成绩为“中级”的所有记录C.性别为“男”且成绩为“中级”的所有记录D.筛选无效9. 下列关于路由器的叙述,正确的是______。
A.网络中的路由器可不分配IP地址B.网络中的路由器不能有IP地址C.网络中的路由器应分配两个以上的IP地址D.网络中的路由器只能分配一个IP地址10.微处理器芯片的位数即是指它的_______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机系统基础2模
拟题答案
1. (a) 在流水线处理器中,什么是冒险(hazard)?在什么情况下出现冒险?对于冒险一般如
何处理?
(b) 什么是CISC?什么是RI S C?它们各自有什么特点和区别?
(c)什么是虚拟地址?虚拟地址有什么作用?
(d)解释下列名词:大端(big endian)、小端(little endian)、主机序、网络序
(a)流水线冲突:在流水线系统中,由于相关的存在,使得指令不能在指定的周期内完成。
流水线冲突包括结构冲突、数据冲突和控制冲突三种。
1)结构冲突:因为硬件资源满足不了指令重叠执行要求而产生的冲突。
解决方法:设置独立的数据、指令cache;阻塞后面指令运行
2)数据冲突:一条指令依赖于前面指令的运行结果而产生的冲突。
解决方法:定向、流水线互锁和编译器指令调度
3)控制冲突:流水线遇到跳转指令或者其它更改pc值的指令。
解决方法:预测指令运行、延迟跳转、尽快计算跳转目标地址。
(b)CISC 是“复杂指令集”的简称,复杂指令集指令数量很多,部分指令的延迟很长,编码是可变长度的。
RISC 是“精简指令集”的简称,精简指令集指令数量少得多,没有较长延迟的指令,编码是固定长度的。
(c)虚拟地址是操作系统提供的对主存的抽象,它为每个进程提供了一个大的、一致的和私有的地址空间。
它的作用是1)它将主存看成一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传送数据,通过这种方式,它高效的利用了主存2)它为每个进程提供了一致的地址空间,从而简化了存储器管理3)它保护了每个进程的地址空间不被其它进程破坏。
(d) 最低有效字节在最前面的方式,称为小端法,最低有效字节在最后面的方式,称为大端法。
主机序是指机器CPU 采用的字节表示方法。
网络序是TC P/I P中规定的数据表示格式,
与CPU 类型和操作系统无关,网络序采用大端排列。
2. 有如下假设:
(1)存储器是字节寻址的;
(2)存储器访问的是1 字节的字(不是4 字节的字);
(3)地址宽度为13 位;
(4)高速缓存是2 路组相联的(E=2),块大小为4 字节(B=4),有8 个组(S=8);高速缓存的内容如下,所有数字都是以十六进制来表示的:
(a)下面的放开展示的是地址格式(每个小方框一个位)。
指出(在图中标出)用来确定下列内容的字段:
(1)CO 高速缓存块偏移
(2)CI 高速缓存组索引
(3)CT 高速缓存标记
(b)假设一个程序运行在上述机器上,它引用0xE34 处的1 个字节的字。
指出访问的高速缓存条目和十六进制表示的返回的高速缓存字节值。
指出是否会发生缓存不命中,如果出现缓存不命中,用“-”来表示“返回的高速缓存字节”。
(a) 由于块大小是4(22),那么需要两位来表示块内偏移;由于缓存一共有8(23)组,那么
需要3 位来表示组索引;由于地址一共13 位,那么标记位为8(13 –2 - 3)位;按照高速缓存地址划分的规则(从高位到低位依次是标记,组索引,块内偏移),13 位地址可标记为:
(b) 地址0xE34 的二进制表示为:0b111000110100;根据上面的讨论,末两位为块内偏
移0b00(0x0),末两位之前三位为组索引0b101(0x5),末五位之前是标记
0b1110001(0x71);通过查表可以找到组号为5,标记为0x71 的位置,该位置有效位
为1,读取第一个字节得到数据0xB。
3. (a)确定下面的malloc 请求序列得到的块大小和头部值。
假设:
(1)分配器维持双字对齐,使用隐式空闲链表,格式如下图所示。
(2)块大小向上摄入为最接近的8 字节的倍数。
(b) 确定下面每种对齐要求和块格式的组合的最小块大小。
假设:隐式空闲链表,不允许有效载荷为零,头部和脚部放在4 字节的字中。
(a)块大小包括块头部大小(如果块有尾部的话,那么也包含尾部大小),当请求3 字节大小的块时,需要3+4=7 字节的内容,而根据条件的8 字节倍数要求,块
的大小确定为8 字节(最后一字节虽然没有申请,但也分配了);根据图片显示
的块结构,块头部值的最后三位为元数据,元数据头两位始终为0,最后一位为
1 表示已占用的块;块头部值可计算为块大小加上块元数据值,即0x8+0b001,
即头部值为9。
根据上面的方法,malloc(11)需要分配16 字节的块,头部值为17(0x11);ma ll o c(20) 需要分配24 字节的块,头部值为25(0x19);m a ll o c(21)需要分配32 字节的块,头部值为33(0x21)
(c) 第一项,块对齐单字,已分配和空闲块都有头部和尾部,那么头部和尾部数据需要
8 字节;而有效载荷不允许为0,那么大于8 且能被4 整除的最小正整数为12,因
此最小块大小为12。
第二项,块对齐单字,已分配块可以省略脚部,那么仅考虑已分配块,头部数据需要4 个字节;有小载荷不允许为0,那么大于4 且能被4 整除的最小正整数为8,因此最小块大小为8。
第三项,大于8 且能被8 整除的最小整数为16。
第四项,大于4 且能被8 整除的最小整数为8。
4. (a) 下面是一个并行求和算法,将其补充完整。
#include <pth rea d.h>
#include <s td li b.h>
#include <s td i o.h>
#define MAXTHREADS 32
/* Global shared variables */
long p s u m[MA XT H REA D S];
long n elems_p er_th rea d;
void *sum(void *vargp)
{
/* E x tract the thread id */
int myid = *((int *)var gp);
/* S tart element index */
long start = myid * n elem s_p er_th rea d;
/* E n d element index */
long end = start + n e l ems_p er_th rea d;
long i, sum = 0;
for (i = start; i < en d; i++) {
sum += i;
}
p s u m[my i d] = sum;
return NU LL;
}
int main(int argc, char **argv)
{
long i, nelems, l og_n elems,n th read s, result = 0;
pth read_t t i d[MA XT H REA D S];
int my i d[MA XT HRE AD S];
/* Get input arguments */
if (argc != 3) {
p ri n tf("U s ag e:%s<n th rea d s><l og_n elems>\n",a rg v[0]);
exi t(0);
}
nthreads = a to i(ar g v[1]);
l og_n elem s = atoi(ar g v[2]);
nelems = (1L << log_n elems);
(b) 思考下面的程序,它视图使用一对信号量来实现互斥。
初始时:s = 1, t = 0
线程1:P(s)→V(s)→P(t)→V(t)
线程2:P(s)→V(s)→P(t)→*(t)
(1) 画出这个程序的进度图。
(2) 它总是死锁吗?请分析原因
(3) 如果是,那么对初始信号量的值做那些改变就能消除潜在的死锁呢?
(4) 画出得到的无死锁程序的进度条。
(a) (1) p th rea d_cr e ate(&ti d[i],NULL, sum, &myi d[i]);
(2) p th rea d_j o i n(ti d[i],N U L L);
(3) result += p s u m[i];
(b) (1)进度图如下
(2)因为任何可行轨迹最终都将陷入死锁状态,所以这个程序总会发生死锁。
(3)为了消除死锁,可以将变量t 初始化为1。
(4)修正后的进度图如下。