计算机系统基础2模拟题答案
- 格式:doc
- 大小:389.50 KB
- 文档页数:9
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、CPU是由控制器和_______组成的。
(1)内存储器(2)外存储器(3)运算器(4)南桥2、完整的计算机系统包括_______。
(1)主机和外部设备(2)主板、CPU和内存(3)硬件系统和软件系统(4)不确定3、计算机中,RAM是_______。
(1)顺序存储器(2)随机存储器(3)只读存储器(4)高速缓冲存储器4、下列计算机设备中,________输于输出设备。
(1)键盘(2)显示器(3)鼠标(4)扫描仪5、在微型计算机的总线上,单向传送信息的是________。
(1)数据总线(2)控制总线(3)总线(4)地址总线6、存取周期最短的存储器是________。
(1)光盘(2)硬盘(3)优盘(4)内存7、_______负责CPU与内存间的数据传输。
(1)南桥芯片组(2)北桥芯片组(3)CMOS(4)BIOS8、________负责与主要的I/O设备进行数据传输。
(1)南桥芯片组(2)北桥芯片组(3)CMOS(4)BIOS9、下面软件中,________不属于应用软件。
(1)QQ(2)WindowsMedia(3)WindowsXP(4)RrealPlayer10、机器语言是面向_________的。
(1)操作(2)指令(3)用户(4)机器二、填空题1、计算机基本工作原理是由美籍匈牙利科学家____________于1946年首先提出来的。
2、计算机由__________、____________、___________、输入设备和输出设备五大部件。
3、计算机中的一条指令通常由__________和__________组成。
4、计算机中的软件最基本的可分为:__________和___________。
5、微处理器的主要性能指标包括:__________、_________、_________及_________等。
三、问答题1、冯·诺依曼体系结构模型的主要思想是什么?2、计算机指令系统包括哪些功能指令?3、计算机如何来执行一个应用程序?4、通常情况下,微型机的硬件由哪些部分构成?5、什么是总线?按照总线传输信息的特征可将总线分为哪几类?各自的功能是什么?6、操作系统的基本功能有哪些?习题二一、选择题1.(3)2.(3)3.(2)4.(2)5.(4)6.(4)7.(2)8.(1)9.(3)10.(4)二、填空题1.冯·诺依曼2.运算器控制器存储器3.操作码操作数4.系统软件应用软件5.主频字长高速缓冲存储器CPU扩展指令集三、问答题1.冯·诺依曼体系结构模型的主要思想是什么?答:冯·诺依曼体系结构模型的主要思想主要包括以下3点:采用二进制形式表示数据和指令;采用存储程序模式;计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
《计算机系统基础》模拟试卷及答案一、单项选择题(共20题,40分)1、—个完整的计算机系统包括硬件和软件。
软件又分为()A、操作系统和语言处理程序B、系统软件和应用软件C、操作系统和髙级语言D、低级语言程序和高级语言程序2、假设同一套指令集用不同的方法设计了两种计算机A和B。
机器A的时钟周期为1.2ns ,机器B的时钟周期为2ns。
某个程序在机器A上运行时的CPI为2,在B上的CPI为1,则对于该程序来说,机器A和机器B之间的速度关系为()。
A、机器A比机器B快1.2倍B、机器B比机器A快1.2倍C、机器A的速度是机器B的1.2倍D、机器B的速度是机器A的1.2倍3、以下有关指令集体系结构的说法中,错误的是()A、指令集体系结构位于计算机软件和硬件的交界面上B、指令集体系结构是指低级语言程序员所看到的概念结构和功能特性C、程序员可见寄存器的长度、功能与编号不属于指令集体系结构的内容D、指令集体系结构的英文缩写是ISA4、以下有关冯•诺依曼计算机结构的叙述中,错误的是()。
A、计算机由运算器、控制器、存储器和输入/输岀设备组成B、程序由指令和数据构成,存放在存储器中C、指令由操作码和地址码两部分组成D、指令按地址访问,所有数据在指令中直接给出5、假定变量i、f的数据类型分别是int、float。
已知i=12345,f=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是()。
A、i==(int)(float)iB、i==(int)(double)iC、f==(float)(int)fD、f==(float)(double)f6、在一般的计算机系统中,西文字符编码普遍采用()。
A、BCD码B、ASCII码C、格雷码D、CRC码7、“北”的区位码是1717,那么,其机内码是()。
A、B1B1HB、1717HC、9797HD、3737H8、CPU中能进行算术和逻辑运算的最基本运算部件是()。
计算机专业基础综合(指令系统)模拟试卷2(题后含答案及解析) 题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.下列说法中,正确的是( )。
A.如果指令字长与机器字长相等,那么取指周期等于机器周期B.如果指令字长与存储字长相等,那么取指周期等于机器周期C.指令字长和机器字长的长度一定相等D.为了硬件设计方便,指令字长都和存储字长一样大正确答案:B解析:指令字长通常取存储字长的整数倍,如果指令字长等于存储字长的2倍,则需要2次访存,取指周期等于机器周期的2倍,如果指令字长等于存储字长,则取指周期等于机器周期,故选项A错误,选项B正确。
指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数,与机器字长没有必然的联系,但为了硬件设计方便,指令字长一般取字节或存储字长的整数倍,故选项C错误。
指令字长一般取字节或存储字长的整数倍,故选项D错误。
知识模块:指令系统2.设寄存器R的内容(R)=1500H,内存单元1500H的内容为2500H,内存单元2500H的内容为3500H,PC的值为4500H,采用相对寻址方式,有效地址为2500H的操作数是( )。
A.1500HB.2500HC.3500HD.4500H正确答案:C解析:形式地址为2500H说明操作数存放在主存单元2500H中,因此得到操作数为3500H。
知识模块:指令系统3.试比较各种寻址方式的效率,以下结论中不正确的是( )。
A.立即寻址的效率高于堆栈寻址B.堆栈寻址的效率高于寄存器寻址C.寄存器一次间接寻址的效率高于变址寻址D.变址寻址的效率高于一次间接寻址正确答案:B解析:立即寻址操作数在指令中,不需要访问任何寄存器或内存,取数最快。
堆栈寻址可能是硬堆栈(寄存器)或软堆栈(内存),采用软堆栈时比寄存器寻址慢。
寄存器一次间接寻址先访问寄存器得到地址,然后再访问主存。
计算机一级计算机基础及MS Office应用(计算机系统)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题单项选择题1.除硬盘容量大小外,下列也属于硬盘技术指标的是( )。
A.转速B.平均访问时间C.传输速率D.以上全部正确答案:D解析:硬盘技术指标包含容量大小、转速、平均访问时间、传输速率等方面,因此答案选择D。
知识模块:计算机系统2.IOGB的硬盘表示其存储容量为( )。
A.一万个字节B.一千万个字节C.一亿个字节D.一百亿个字节正确答案:D解析:根据换算公式1GB=1000MB=1000×1000KB=1000×1000×1000B,10GB=1010B,即为100亿个字节。
注:硬盘厂商通常以1000进位计算:1KB=1000.Byte、1MB=1000KB、1GB=1000MB、1TB=1000GB,操作系统中:1KB=1024Byte、1MB=1024KB、1GB=1024MB、1TB=1024GB。
因此A、B、C 选项错误。
知识模块:计算机系统3.假设某台式计算机的内存储器容量为256MB,硬盘容量为40GB。
硬盘的容量是内存容量的( )。
A.200倍B.160倍C.120倍D.loo倍正确答案:B解析:1GB=1024MB=4×256MB,40GB=160×256MB。
知识模块:计算机系统4.移动硬盘或优盘连接计算机所使用的接口通常是( )。
A.RS一232C接口B.并行接口C.USBD.UBS正确答案:C解析:移动硬盘或优盘连接计算机所使用的接口通常是USB,答案选择c。
知识模块:计算机系统5.移动硬盘与U盘相比,最大的优势是( )。
A.容量大B.速度快C.安全性高D.兼容性好正确答案:A解析:移动硬盘和U盘都是外部存储器,都具有体积小、重量轻、存取速度快、安全性高等特点,但是市场上移动硬盘的容量一般比U盘的容量要高。
因此答案选择A。
《计算机操作系统》模拟试卷(二)答案一、单项选择题(本大题共20 小题,每题1分,共20 分。
)1 D2 C3 C4 B5 D6 C7 A8 D9 C 10 A11D 12 B 13 C 14 D 15 D 16 D 17 C 18 D 19 D 20 C二、多项选择题(本大题共5小题,每小题 2 分,共10分。
多选、少选、错选均无分。
)21 22 23 24 25BD ABCD ABE BCE AD三、填空题(本大题共8 小题,每空 1 分,共14分)26.前台,后台27.操作员(或用户),程序员(或程序)28.系统,用户29.建立,打开(可交换次序)30.输入输出操作31.计算时间短,等待时间长32.封闭33.Shell 命令,指该命令的解释四、简答题(本大题共5小题,每小题 4 分,共20分。
)34.可抢占式会引起系统的开销更大。
( 2 分)可抢占式调度是严格保证任何时刻,让具有最高优先数(权)的进程占有处理机运行,因此增加了处理机调度的时机,引起为退出处理机的进程保留现场,为占有处理机的进程恢复现场等时间(和空间)开销增大。
( 2 分)(注:不写空间开销也可。
)35.从文件目录中找到该文件,按址读出第一个记录;( 1 分)取出第一个记录块中指针,存放到新记录的指针位置;( 1 分)把新记录占用的物理块号填入第一个记录的指针位置;( 1 分)启动磁盘把第一个记录和新记录写到指字的磁盘块上。
( 1 分)36.井管理写程序把作业执行结果文件登记在缓输出表中;( 2 分)缓输出程序从缓输出表中查找结果文件并打印输出。
( 2 分)37.(1)作业调度是宏观调度,它决定了哪一个作业能进入主存。
进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理机。
( 2 分)(或)作业调度是高级调度,它位于操作系统的作业管理层次。
进程调度是低级调度,它位于操作系统分层结构的最内层。
(2)作业调度是选符合条件的收容态作业装入内存。
计算机应用基础试题一、单项选择(每题1.5分,共60分)1.完整的计算机系统由(C)组成。
A.运算器、控制器、存储器、输入设备和输出设备B.主机和外部设备C.硬件系统和软件系统D.主机箱、显示器、键盘、鼠标、打印机2.以下软件中,(D)不是操作系统软件。
A.Windows XP B.Unix C.Linux D.Microsoft Office 3.下列存储设备中,断电后其中信息会丢失的是( b )A.ROMB.RAM C.硬盘D.软盘4.任何程序都必须加载到( C )中才能被CPU执行。
A.磁盘B.硬盘C.内存D.外存5.组成计算机的CPU的两大部件是( A )。
A.运算器和控制器B.控制器和寄存器C.运算器和内存D.控制器和内存6.下列关于操作系统的叙述中,正确的是( c )A.操作系统是软件和硬件之间的接口B.操作系统是源程序和目标程序之间的接口C.操作系统是用户和计算机之间的接口D.操作系统是外设和主机之间的接口7.在Windows XP的窗口菜单中,若某命令项后面有向右的黑三角,则表示该命令项( a )。
A.有下级子菜单B.单击鼠标可直接执行C.双击鼠标可直接执行D.右击鼠标可直接执行8.Windows XP操作系统是( a )A.多用户多任务操作系统B.多用户单任务操作系统C.单用户多任务操作系统D.单用户单任务操作系统9. 如下图所示,Windows 的资源管理器中的符号"+"表示的含义是( a )。
A:标记文件夹中还有子文件夹B:备份文件的标记C:文件夹被压缩的标记D:系统文件夹的标记10.对于Windows XP的控制面板,以下说法不正确的是( b )。
A.控制面板是一个专门用来管理计算机硬件系统的应用程序B.从控制面板中无法删除计算机中己经安装的声卡设备C.对于控制面板中的项目,可以在桌面上建立起它的快捷方式D.可以通过控制面板删除一个己经安装的应用程序11.Word编辑文档时,所见即所得的视图是(b)。
计算机系统基础袁春风第二版课后答案计算机系统基础是计算机科学与技术专业中非常重要的一门课程。
它主要介绍了计算机系统的基本原理、结构和运行机制等内容。
为了帮助同学们更好地理解和掌握这门课程,袁春风老师编写了《计算机系统基础》第二版,并在课后附上了一系列的习题与答案。
本文将就该书第二版的课后答案进行论述和解答。
第一章:计算机系统概述本章主要介绍了计算机系统的概念、发展历程以及计算机硬件和软件的基本组成部分等。
通过学习本章,同学们可以了解到计算机系统的总体结构,为后续章节的学习打下坚实的基础。
第二章:数字逻辑与数字系统本章主要介绍了数字逻辑与数字系统的基本概念和基本形式,如布尔代数、逻辑函数、逻辑门电路等。
同时,还涉及到数字系统的组合逻辑和时序逻辑设计等内容。
通过学习本章,同学们可以更好地理解和掌握数字逻辑与数字系统的相关知识,为后续章节的学习打下坚实的基础。
第三章:存储系统本章主要介绍了计算机存储系统的基本概念、结构和存储器的层次结构等。
同时,还涉及到存储系统的性能指标和存储器的组成原理。
通过学习本章,同学们可以更好地理解和掌握计算机存储系统的相关知识,为后续章节的学习打下坚实的基础。
第四章:指令系统本章主要介绍了计算机的指令系统和指令的执行方式等。
同时,还涉及到指令的寻址方式和指令的编码方式等内容。
通过学习本章,同学们可以更好地理解和掌握计算机的指令系统,为后续章节的学习打下坚实的基础。
第五章:中央处理器本章主要介绍了计算机的中央处理器(CPU)的基本组成和工作原理等。
同时,还涉及到CPU的指令执行过程和数据传输方式等内容。
通过学习本章,同学们可以更好地理解和掌握计算机的中央处理器的相关知识,为后续章节的学习打下坚实的基础。
第六章:总线与I/O系统本章主要介绍了计算机系统中的总线和I/O系统的基本概念和工作原理等。
同时,还涉及到总线的分类和总线的组织方式等内容。
通过学习本章,同学们可以更好地理解和掌握计算机系统中总线和I/O系统的相关知识,为后续章节的学习打下坚实的基础。
习题二一、选择题1. 微型计算机的运算器、控制器、内存储器构成计算机的C。
A)CPU B)硬件软件C)主机D)外设2. 下列存储器中,存取速度最快的是D。
A)软盘B)硬盘C)光盘D)内存3. 关于存储器的特性,下列说法中不正确的是B。
A)存储单元新的信息未写入之前,原来的信息保持不变B)存储器可分为RAM和ROMC)主存储器简称“内存”D)存储单元写入新的信息后,该单元中原来的内容便自动丢失4. 在表示存储器的容量时,一般用MB作为单位,其准确的含义是B。
A)1024万B)1024KB C)1000KB D)1024B5. I/O接口位于A。
A)总线和设备之间B)CPU和I/O设备之间C)主机和总线之间D)CPU和主存储器之间6. 下面各组设备中依次为输入设备、输出设备和存储设备的是C。
A)ALU、CPU、ROM B)磁带、打印机、激光打印机C)鼠标器、绘图仪、光盘D)磁盘、鼠标器、键盘7. 显示器分辨率指的是整个屏幕可以显示B的数目。
A)扫描线B)像素C)中文字符D)ASCII字符8. 指挥、协调计算机工作的设备是D。
A)输入设备B)输出设备C)存储器D)控制器9. 下列4个不同数制表示的数中,数值最大的是A。
A)(11011101)B B)(334)OC)(219)D D)(DA)H10. 汉字在计算机系统内使用的编码是B。
A)输人码B)机内码C)字型码D)地址码11. 按照汉字的“输入→处理→输出打印”的处理流程,不同阶段使用的汉字编码分别是C。
A)国际码→交换码→字型码B)输入码→国际码→机内码C)输入码→机内码→字型码D)拼音码→交换码←字型码·2·2.1 计算机系统概述12. 一个72点阵的汉字,其字型码所占的字节数是C。
A)288 B)128 C)648 D)7213. R进制的基本符号是D。
A)0~R B)1~R C)1~R-1 D)0~R-114. 计算机能够识别的计算机语言是B。
2016学年第一学期《计算机基础》模拟考试试卷二一.单项选择题(每小题有且只有一个正确的答案,每小题1.5分,共45分)1、下列不属于...计算机特点的是()DA、运算速度快B、计算精度高C、存储能力强D、高度智能的思维方式2、“文件传输协议”的英文缩写是()CA、WEBB、HTTPC、FTPD、HTML3、多媒体计算机系统由______。
()CA、计算机系统和各种媒体组成B、计算机和多媒体操作系统组成C、多媒体计算机硬件系统和多媒计算机软件系统组成D、计算机系统和多媒体输入输出设备组成4、将十进制数97转换成无符号二进制整数等于()BA、1011111B、1100001C、1101111D、11000115、设汉字点阵为32ⅹ32,那么100个汉字的字形状信息所占用的字节数是()AA、12800B、3200C、32ⅹ3200D、128k6、显示或打印汉字时,系统使用的输出码为汉字的()BA、机内码B、字形码C、输入码D、国际交换码7、大写字母B的ASCII码值是()BA、65 B、66 C、41H D、978、计算机中所有信息的存储都采用()DA、十进制B、十六进制C、ASCII码D、二进制9、一个完整的计算机系统包括()DA、计算机及其外部设备B、主机、键盘、显示器C、系统软件和应用软件D、硬件系统和软件系统10、组成中央处理器(CPU)的主要部件是()DA、控制器和内存B、运算器和内存C、控制器和寄存器D、运算器和控制器11、计算机的内存储器是指()CA、RAM和C磁盘B、ROMC、ROM和RAMD、硬盘和控制器12、下列各类存储器中,断电后其信息会丢失的是()AA、RAMB、ROMC、硬盘D、光盘13、将发送端数字脉冲信号转换成模拟信号的过程称为()BA、链路传输B、调制C、解调D、数字信道传输14、计算机病毒实质上是()DA 操作者的幻觉B 一类化学物质C 一些微生物D 一段程序15、下列描述中不正确的()BA、多媒体技术最主要的两个特点是集成性和交互性B、所有计算机的字长都是固定不变的,都是8位C、计算机的存储容量是计算机的性能指标之一D、各种高级语言的编译都属于系统软件16、计算机软件包括______。
. 精品 1. (a) 在流水线处理器中,什么是冒险(hazard)?在什么情况下出现冒险?对于冒险一般如 何处理? (b) 什么是 CISC?什么是 RISC?它们各自有什么特点和区别? (c)什么是虚拟地址?虚拟地址有什么作用? (d)解释下列名词:大端(big endian)、小端(little endian)、主机序、网络序
(a) 流水线冲突:在流水线系统中,由于相关的存在,使得指令不能在指定的周期内完成。流水线冲突包括结构冲突、数据冲突和控制冲突三种。 1) 结构冲突:因为硬件资源满足不了指令重叠执行要求而产生的冲突。解决方法:设置独
立的数据、指令cache;阻塞后面指令运行 2) 数据冲突:一条指令依赖于前面指令的运行结果而产生的冲突。解决方法:定向、流水
线互锁和编译器指令调度 3) 控制冲突:流水线遇到跳转指令或者其它更改pc值的指令。解决方法:预测指令运
行、延迟跳转、尽快计算跳转目标地址。 (b)CISC 是“复杂指令集”的简称,复杂指令集指令数量很多,部分指令的延迟很长,编 码是可变长度的。RISC 是“精简指令集”的简称,精简指令集指令数量少得多,没有较长延迟 的指令,编码是固定长度的。
(c)虚拟地址是操作系统提供的对主存的抽象,它为每个进程提供了一个大的、一致的 和私有的地址空间。它的作用是 1)它将主存看成一个存储在磁盘上的地址空间的高速缓存, 在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传送数据,通过这种方式,它 高效的利用了主存 2)它为每个进程提供了一致的地址空间,从而简化了存储器管理 3)它 保护了每个进程的地址空间不被其它进程破坏。 (d) 最低有效字节在最前面的方式,称为小端法,最低有效字节在最后面的方式,称为大 端法。主机序是指机器 CPU 采用的字节表示方法。网络序是 TCP/IP 中规定的数据表示格式, 与 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);malloc(20) 需要分配 24 字节的块,头部值为 25(0x19);malloc(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 #include #include
#define MAXTHREADS 32 /* Global shared variables */ long psum[MAXTHREADS]; long nelems_per_thread;
void *sum(void *vargp) { /* Extract the thread id */ int myid = *((int *)vargp); /* Start element index */ long start = myid * nelems_per_thread; /* End element index */ long end = start + nelems_per_thread;
long i, sum = 0; for (i = start; i < end; i++) { sum += i; } psum[myid] = sum;
return NULL; }
int main(int argc, char **argv) { long i, nelems, log_nelems, nthreads, result = 0; pthread_t tid[MAXTHREADS]; int myid[MAXTHREADS];
/* Get input arguments */ if (argc != 3) { printf("Usage:%s \n", argv[0]); exit(0);. 精品 } nthreads = atoi(argv[1]); log_nelems = atoi(argv[2]); nelems = (1L << log_nelems);.
精品 nelems_per_thread = nelems / nthreads; /* Create peer threads and wait for them to finish */ for (i = 0; i < nthreads; i++) { myid[i] = i; (1) ; } for (i = 0; i < nthreads; i++) { (2) ; }
/* Add up the partial sums computed by each thread */ for (i = 0; i < nthreads; i++) { (3) ; }
/* Check final answer */ if (result != (nelems *(nelems - 1))/2) { printf("Error: result=%ld\n", result); }
exit(0); }
(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) pthread_create(&tid[i], NULL, sum, &myid[i]); (2) pthread_join(tid[i], NULL); (3) result += psum[i]; (b) (1)进度图如下