前端程序员面试分类真题26_第1页
前端程序员面试分类真题26_第2页
前端程序员面试分类真题26_第3页
前端程序员面试分类真题26_第4页
前端程序员面试分类真题26_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前端程序员面试分类真题26单项选择题1.

操作系统不执行以下操作中的______A.分配内存B.输出/输入C.资源回收D.用户访问数据库资源正确答案:D[考点]操作系统基本概念[解析(江南博哥)]操作系统简称OS(OperatingSystem),是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸”机上的最基本的系统软件,是计算机硬件和其他软件的接口,任何其他软件都必须在操作系统的支持下才能运行。它具有作业管理、文件管理、存储管理、设备管理以及进程管理等功能。以下将分别针对这几种功能进行介绍。

(1)作业管理主要包括任务管理、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

(2)文件管理又称为信息管理。它是操作系统中实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称,是对文件存储器的存储空间进行组织、分配和回收的软件,负责文件的存储、检索、共享和保护。

(3)存储管理实质上是对存储“空间”的管理,主要指对内存的管理。

(4)设备管理其实是对硬件设备的管理,其中包括对输入/输出设备的分配、启动和完成。

(5)进程管理也称为处理器管理,是对处理器执行“时间”的管理,即如何将CPU真正地分配给每个任务。

本题中,选项A中的分配内存与选项C中的资源回收属于内存管理,选项B中的输出/输入属于输入设备管理,选项D中的用户访问数据库资源是由用户对数据库系统发起的操作,不属于操作系统的作用范畴。所以,选项D正确。

2.

以下关于实时操作系统(RTOS)的任务调度器描述中,正确的是______A.任务之间的公平性是最重要的调度目标B.大多数RTOS调度算法都是可抢占式(可剥夺式)的C.RTOS调度器都采用了基于时间片轮转的调度算法D.RTOS调度算法只是一种静态优先级调度算法正确答案:B[考点]操作系统基本概念[解析]实时操作系统(Real-TimeOperatingSystem,RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。能够提供及时响应和高可靠性是其主要特点。

对于选项A,由于RTOS具有实时响应的特性,因此,它的调度目标是时间响应,而不是任务之间的公平性。所以,选项A不正确。

对于选项B,为了保证响应的实时性,实时操作系统采用了抢占式的调度方式。所以,选项B正确。

对于选项C与选项D,为了保证响应的实时性,实时操作系统采用了抢占式的调度方式,而不是采用基于时间片轮转的调度方式,也不是静态优先级调度方式。所以,选项C与选项D不正确。

所以,本题的答案为B。

3.

以下命令中,可以用来查看当前系统启动时间的是______A.wB.topC.psD.uptime正确答案:D[考点]操作系统基本概念[解析]w命令用来显示当前登录的用户信息。top命令用来实时显示系统中各个进程的资源占用状况。ps命令用来列出系统中当前运行的进程。uptime命令主要用于获取主机运行时间和查询Linux系统负载等信息,可以显示系统现在时间、系统已经运行了多长时间、目前有多少登录用户以及系统在过去的1min、5min和15min内的平均负载。所以,选项D正确。

4.

如果系统的umask设置为244,那么创建一个新文件后,它的权限是______A.--w-r--r--B.-r-xr--r--C.-r---w--w-D.-r-x-wx-wx正确答案:C[考点]操作系统基本概念[解析]umask主要用来设置用户创建文件的默认权限(设置的是权限的补码),在计算新创建文件的默认权限的时候,首先写出文件最大的权限模式,然后从这个模式中拿走umask就可以得到新创建文件的默认权限。Linux操作系统中的文件有三种权限:r(读)、w(写)和x(执行),分别用数字4、2、1代表。对于新创建的文件来说,最大的权限是6,因为新创建的文件不能有执行权限,只能在创建后通过chmod命令(chmod是Linux系统管理员最常用到的命令之一,用于改变文件或目录的访问权限)给文件增加执行权限。新创建文件的最大权限模式为666(-rw-rw-rw-),由于unmask设置为244,因此,从666中拿去244后变为422(--r---w--w-)。

所以,本题的答案为C。

5.

在Bash中,以下说法正确的是______A.$#表示参数的数量B.$$表示当前进程的名字C.$@表示当前进程的pidD.$?表示前一个命令的返回值正确答案:A[考点]操作系统基本概念[解析]Bash是一个为GNU(GNUisNotUNIX的递归缩写)计划编写的UNIXshell,它的名字是一系列单词的缩写:Bourne-AgainShell。它是大多数Linux系统以及MacOSXv10.4默认的shell,能运行于大多数UNIX风格的操作系统之上,甚至被移植到MicrosoftWindows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到MS-DOS上。

Bash的命令语法是Bourneshell命令语法的超集。本题中,对于选项A,$#用来表示执行Bash程序时命令行参数的个数。所以,选项A正确。

对于选项B,$$用来表示当前脚本运行的进程ID。所以,选项B错误。

对于选项C,$@用来表示参数列表。所以,选项C错误。

对于选项D,$?命令表示函数或者脚本自身的退出状态,用于检查上一个命令、函数或者脚本执行是否正确。所以,选项D错误。

所以,本题的答案为A。

6.

在Bash中,需要将脚本demo.sh的标准输出和标准错误输出重定向至文件demo.log,以下用法正确的是______A.bashdemo.sh&>demo.logB.bashdemo.sh>&demo.logC.bashdemo.sh>demo.log2>&1D.bashdemo.sh2>demo.log1>demo.log正确答案:C[考点]操作系统基本概念[解析]输出可以分为标准输出和标准错误输出,其中2代表标准错误输出,1代表标准输出。重定向有两种方式:>demo.log与>>demo.log。其中,>demo.log把标准输出重定向到demo.log文件中,这种方式会清空demo.log中的内容,而>>demo.log只把标准输出重定向到demo.log,而不会清空demo.log中已有的内容。对于本题而言,bashdemo.sh>demo.log,用来把标准输出定向到demo.log文件中,2>&1用来把标准错误输出重定向到标准输出。

所以,本题的答案为C。

7.

在Bash中,下列语句是赋值语句的是______A.a="test"B.$a="test"C.a="test"D.$a="test"正确答案:C[考点]操作系统基本概念[解析]Bash中赋值语句的写法为:变量名称=值(等号两边不能有空格)。所以,选项C正确。

8.

以下命令中,可以打印文件(demo.log)中包含“ERP”的行到标准输出的是______A.sed'/ERR/a\'demo.logB.sed'/ERP/p'demo.logC.sed'/ERP/d'demo.logD.sed-n'/ERP/p'demo.log正确答案:D[考点]操作系统基本概念[解析]sed是一种在线编辑器,一次处理一行内容,主要用来自动编辑一个或多个文件,简化对文件的反复操作。处理过程如下:把当前处理的行存储在临时缓冲区中,称为“模式空间”,然后用sed命令对缓冲区中的内容进行处理,处理完之后,把缓冲区的内容送往屏幕,接着去处理下一行,这样不断地重复,直到文件末尾。这种处理方式默认情况下并没有改变文件的内容。

sed的使用方式为sed[-nefri][动作],选项与参数如下:

(1)-n:使用安静(silent)模式。在一般sed的用法中,所有来自标准输入的资料一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。

(2)-e:一般使用方法为-e<script>或-expression=<script>,表示用选项中指定的script文件来处理文本文件。

(3)-f:直接将sed的动作写在一个文件内。

(4)-r:sed的动作能支持延伸型正规表示法的语法。

(5)-i:直接修改读取的文件内容,而不是输出到终端。

(6)动作:[n1[,n2]]动作行为。n1、n2用来表示选择进行动作的行数,例如,如果想要后面的动作在100~200行之间进行,则用100,200动作行为来表示。

下面介绍几个常用的动作行为:

(1)a\:在当前行后添加一行或多行。

(2)c\:用新文本替换当前行中的文本。

(3)d:删除行。

(4)i\:在当前行之前插入文本。

(5)p:打印这一行。

(6)s:用一个字符串替换另外一个字符串。

(7)g:取出暂存缓冲区的内容,将其复制到模式缓冲区。

例如,1,20s/old/new/g就是把1~20行中的old替换成new。

本题中,对于选项A和选项C,a\和d分别是添加和删除的意思,指令显然是错误的。所以,选项A和选项C错误。

对于选项B,sed'/ERP/p'demo.log,没有采用安静模式,因此,会打印demo.log中包含ERP的行。默认情况下sed把所有行都打印到屏幕,如果某行匹配到模式,则把该行另外再打印一遍。所以,选项B错误。

对于选项D,sed-n'/ERP/p'demo.log,-n用于取消默认的输出,从而只把包含“ERP”的行打印出来,-p是指打印行,demo.log是指定的文件。所以,选项D正确。

所以,本题的答案为D。

9.

使用dkpg命令安装的软件为______A..rpmB..tar.gzC..tar.bz2D..deb正确答案:D[考点]操作系统基本概念[解析]对于选项A,rpm格式的文件需要用rpm命令来安装。所以,选项A错误。

对于选项B,.tar.gz格式的文件必须首先用tar命令解压,解压后才能安装。所以,选项B错误。

对于选项C,.tar.bz2格式的文件也需要用tar命令解压,解压后才能安装。所以,选项C错误。

对于选项D,.deb格式的文件需要用dkpg命令来安装。所以,选项D正确。

10.

批处理操作系统的目的是______A.提高系统资源利用率B.提高系统与用户的交互性能C.减少用户作业的等待时间D.降低用户作业的周转时间正确答案:A[考点]操作系统基本概念[解析]批处理是指计算机系统对一批作业自动进行处理的技术。由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行,且在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量。采用批处理作业技术的操作系统称为批处理操作系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。

批处理操作系统分为单道批处理系统和多道批处理系统。在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。在多道批处理系统中,用户提交的作业都存放在外存中,并形成队列,这个队列称为“后备队列”,然后作业调度程序按照作业调度算法将若干作业调入内存,多个作业同时执行,以达到共享CPU和资源、提高资源利用率和系统吞吐量的目的。

通过上面的分析可知,批处理操作系统的目的是提高系统资源利用率。所以,选项A正确。

11.

在退出UNIX系统账户之后还需要继续运行某个进程,那么可用______A.awkB.sedC.crontabD.nohup正确答案:D[考点]操作系统基本概念[解析]对于选项A,awk是一个文本分析工具,它把文件逐行地读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。相对于grep(GlobalRegularExpressionPrint,全局正则表达式输出,它是一种强大的文本搜索工具)的查找、sed的编辑,awk在对数据分析并生成报告时,显得尤为强大。所以,选项A错误。

对于选项B,sed是StreamEditor(流式编辑器)的缩写,它能够基于模式匹配过滤(指的是在文件中找到符合某些条件的行)修改文本,对找到的符合条件的内容进行一些修改操作。所以,选项B错误。

对于选项C,crontab用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供以后读取和执行。所以,选项C错误。

对于选项D,nohup是Linux操作系统下不挂断的运行命令,其功能是让执行的命令在后台执行,不会因为客户端session断掉而停止执行。所以,选项D正确。

12.

以下关于链接的描述中,错误的是______A.一个静态库中不能包含两个同名全局函数的定义B.一个动态库中不能包含两个同名全局函数的定义C.如果两个静态库都包含一个同名全局函数,它们不能同时被链接D.如果两个动态库都包含一个同名全局函数,它们不能同时被链接正确答案:D[考点]操作系统基本概念[解析]为了提高编程效率,通常会把一些公用函数制作成函数库,供其他程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被链接到目标代码中,而是在程序运行时才被载入,因此,在程序运行时还需要动态库存在。

具体而言,静态库与动态库的区别如下:静态库在程序的链接阶段被复制到程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是在程序运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此,节省了很多内存资源。

通常,函数可以定义在3个地方:①程序自身:②静态库;③动态库。由于静态库需要通过链接进入程序,所以,函数定义在程序和静态库可以看成是一样的同名函数出现在程序和静态库中,一旦二者同时定义,会在链接时报重定义的错误。而当同名函数出现在动态库中时,尽管编译链接可以通过,但是调用时会出现函数的覆盖问题。

那么,定义在以上3个地方的同名函数,会调用哪个函数呢?

(1)程序和静态库定义了同名函数,链接时会报重定义错误。

(2)程序和动态库定义了同名函数,会覆盖动态库中定义的函数。

(3)动态库中定义的同名函数,先链接覆盖后链接的函数。

通过上面的分析可知,如果两个静态库都包含一个同名全局函数,它们不能同时被链接,而如果两个动态库都包含一个同名全局函数,则会出现函数的覆盖问题。所以,选项A、选项B、选项C都是正确的,只有选项D是错误的。

13.

操作系统的一些特别端口要为特定的服务预留,以下关于必须要root权限才能打开的端口的描述中,正确的是______A.端口号在64512~65535之间的端口B.所有小于1024的端口C.RFC标准文档中已经声明特定服务的相关端口,例如HTTP服务的80端口、8080端口等D.所有端口都可以不受权限限制打开正确答案:B[考点]操作系统基本概念[解析]端口是计算机与外界通信交流的出口。其中硬件领域的端口又称接口,例如,USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入/输出)缓冲区。

具体而言,操作系统一共有65535个端口可用。一般用到的是1~65535,其中,0不使用,1~1023为系统端口,也叫保留端口,这些端口只有系统特许的进程才能使用,被分配给一些常见的重要服务(例如HTTP、FTP和SSH等)。1024~65535为用户端口,又分为临时端口(1024~5000)和服务器(非特权)端口(5001~65535),其中,一般的应用程序使用1024~4999来进行通信,服务器(非特权)端口用来给用户自定义端口。大于1024的端口作为随机分配之用。

根据以上描述可知,系统端口为小于1024的端口。所以,选项B正确。

14.

若干个等待访问磁盘者依次要访问的磁道为19,43,40,4,79,11,76,当前磁头位于40号柱面,若用最短寻道时间优先磁盘调度算法,则访问序列为______A.19,43,40,4,79,11,76B.40,43,19,11,4,76,79C.40,43,76,79,19,11,4D.40,19,11,4,79,76,43正确答案:B[考点]操作系统基本概念[解析]磁盘调度:在多道程序设计的计算机系统中,各个进程可能会不断提出各种对磁盘进行读/写操作的请求。由于有时候这些进程发送请求的速度比磁盘响应还要快,有必要为每个磁盘设备建立一个等待队列。常用的磁盘调度算法有以下四种:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)和循环扫描算法(CSCAN)。

最短寻道时间优先算法(ShortestSeekTimeFirst,SSTF)要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但不能保证平均寻道时间最短。其缺点是对用户服务请求的响应机会不是均等的,从而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期地被延迟,有些请求的响应时间将不可预期。

本题中,当采用最短寻道时间优先磁盘调度算法时,每次访问的磁道都应该是离上一次访问的磁道最近的,所以,只有选项B满足要求。因此,选项B正确。

15.

Linux系统可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的有效用户和实际用户分别是______A.root、mikeB.root、rootC.mike、rootD.mike、mikeE.deamon、mikeF.mike、deamon正确答案:A[考点]操作系统基本概念[解析]在Linux进程中涉及多个用户ID和用户组ID,包括如下:

(1)实际用户ID和实际用户组ID:标识我是谁。也就是登录用户的uid和gid,假如Linux系统以hehe登录,在Linux系统中运行的所有命令的实际用户ID都是hehe的uid,实际用户组ID都是hehe的gid(可以用id命令查看)。

(2)有效用户ID和有效用户组ID:用来决定当前进程对文件的访问权限,即实际该进程是以哪个用户运行的。一般情况下,有效用户ID等于实际用户ID,有效用户组ID等于实际用户组ID。但是当可执行文件的文件模式中设置了“设置-用户-ID(set-user-id)位”时,进程的有效用户ID等于该可执行文件的拥有者ID;同样,如果可执行文件的文件模式中设置了“设置-用户组-ID(set-group-id)位”时,则进程的有效用户组ID等于该可执行文件的拥有组ID。

所以,本题的答案为A。

16.

有4个进程A、B、C、D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11、7、2、4个时间单位,设时间片为1,则四个进程的平均周转时间为______A.15.25B.16.25C.16.75D.17.25E.17.75F.18.25正确答案:B[考点]操作系统基本概念[解析]平均周转时间就是用周转总时间除以作业个数,即所有作业的周转时间/作业总数,周转时间为作业完成时间减去作业到达时间。

本题中,A、B、C、D四个进程同时到达指的是它们的到达时间为0。由于四个进程按轮转法分别运行11、7、2、4个时间单位,时间片为1,所以,执行过程如下:时间1执行A;时间2执行B;时间3执行C;时间4执行D;时间5执行A;时间6执行B;时间7执行C,C完成;时间8执行D……最后进程A、B、C、D的完成时间分别是24、20、7、14,减去它们自己的到达时间就是周转时间,故平均周转时间=(24+20+7+14)/4=65/4=16.25。所以,选项B正确。

17.

为了使虚存系统有效地发挥其预期作用,所运行的程序应具有的特性是______A.该程序不应含有过多的I/O操作B.该程序大小不应超过实际的内存容量C.该程序的指令相关不应过多D.该程序应当具有较好的局部性正确答案:D[考点]操作系统基本概念[解析]对于选项A,程序不应含有过多的I/O操作,这是一个原因,但不是主要原因。所以,选项A错误。

对于选项B,显然,该描述正好和虚存的目的相悖。所以,选项B错误。

对于选项C,该程序的指令相关不应过多,这是一个原因,但不是主要原因。所以,选项C错误。

对于选项D,程序应当具有较好的局部性,从而使虚存系统有效地发挥其预期作用,描述正确,所以,选项D正确。

18.

主进程调用fork产生子进程,以下子进程无法继承的资源是______A.锁B.打开的文件C.进程组IDD.控制终端正确答案:A[考点]操作系统基本概念[解析]fork产生的子进程继承了父进程大部分的资源,主要包括:①父进程的运行环境;②堆栈和内存;③控制终端;④打开文件的描述符和文件方式创建屏蔽字;⑤执行时的关闭标志;⑥进程组号;⑦当前工作目录和根目录等。

由此可见,选项B、选项C和选项D的描述是正确的。锁是与每个进程相关的资源,无法共享。如果可以共享会导致两个进程同时进入临界区访问,进而导致程序运行错误。所以,选项A错误。

19.

在Linux操作系统下,非超级用户要运行某个文件夹下的可执行脚本,对该文件夹至少要拥有______权限;如果要用Is命令查看该文件夹下有哪些文件,对该文件夹至少要拥有______权限。A.前者是执行权限,后者是执行和读取权限B.前者是执行和读取权限,后者是执行和读取权限C.前者是执行权限,后者是读取权限D.前者是执行和读取权限,后者是读取权限正确答案:A[考点]操作系统基本概念[解析]Linux操作系统中的每个文件和目录都有存取许可权限,存取权限规定了三种访问文件或目录的方式:读(r)、写(w)、可执行或查找(x)。

对于文件的存取权限而言,读权限(r)表示只允许指定用户读取相应文件的内容,而禁止对它做任何的更改操作,将所访问的文件内容作为输入的命令都需要有读的权限,例如cat(连接并显示指定的一个或者多个文件的有关信息)、more(类似cat,不过会一页页地显示,方便使用者一页页阅读)等。写权限(w)表示允许指定用户打开并修改文件,例如命令vi、cp等。执行权限(x)表示允许指定用户将该文件作为一个程序执行。

对于目录的存取权限而言,在1s命令后加上-d选项,可以了解目录文件的使用权限。其中,读权限(r)表示可以列出存储在该目录下的文件,即读取目录内容列表,这一权限允许shell使用文件扩展名列出相匹配的文件名。写权限(w)表示允许用户从目录中删除或添加新的文件,通常只有系统管理员才具有写权限。执行权限(x)表示允许用户在目录中查找,并能用cd命令将工作目录改到该目录。

本题中,要想进入一个目录,必须要具有x权限(执行权限),因此查看目录下的文件需要r权限(读权限)和x权限(只有进入目录后才能查看文件)。执行目录下某个可执行文件也需要首先进入这个目录,因此也需要x权限。所以,选项A正确。

20.

“死锁”是针对______的A.某个进程申请资源数超过了系统拥有的最大资源数B.某个进程申请系统中不存在的资源C.硬件故障D.多个并发进程竞争独占型资源正确答案:D[考点]操作系统基本概念[解析]所谓死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。举一个简单的例子。在吃饭的时候,只有拿到一双筷子后才能开始吃饭,如果有两个人,每个人都只拿了一根筷子,而等待另一根筷子可用,此时,两个人都已经占用了部分资源(一根筷子),而等待另一个资源(另一根筷子),两个人永远都在等待对方释放资源,因此,发生了死锁。可以通过外力作用把一个人的筷子强制释放后转给另外一个人来解决死锁。很显然,选项D的描述符合死锁的定义。

21.

某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台,当N的取值不超过______时,系统不会发生死锁A.3B.5C.8D.7正确答案:B[考点]操作系统基本概念[解析]本题中,不发生死锁的条件是至少能保证1个进程能获得3台打印机。最坏的情况是1个进程获取了3台打印机,另外N-1个进程获取2台打印机,等待获取第3台。

本题可以构建如下等式:3+(N-1)*2=11,解算结果为N=5。所以,选项B正确。

22.

有一个变量inta=0,两个线程同时对其进行+1操作,每个线程加100次,不加锁,最后变量a的值是______A.200B.<=200C.>=200D.都有可能正确答案:B[考点]进程与线程[解析]多线程(multithreading)技术指的是从软件或者硬件上实现多个线程并发执行的技术。本题中,+1操作的执行过程如下:取出变量a,对变量a执行+1操作,把计算结果放回去。如果两个线程中+1操作都没有被中断,所有的+1操作都生效了,那么此时相应地对a执行了200次+1操作,在这种情况下,a的值变为200。由于这两个线程在对a执行+1操作的时候,并没有加锁,所以,有可能会导致部分+1操作丢失,如下所示:

(1)线程1读取变量a的值(读取到寄存器中)为0。

(2)线程2读取变量a的值,此时读取到的值也为0。

(3)线程1对a执行+1操作并放回去,此时a的值为1。

(4)线程2也对a执行+1操作并放回去,由于此时线程2寄存器中a的值为0,执行+1操作后变为1并放回去,此时a的值还为1。

在这种情况下,线程1对a执行+1的操作就会丢失。因此,执行结束后,a的最大值为200。所以,选项B正确。

23.

某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是______A.9B.10C.11D.12正确答案:B[考点]进程与线程[解析]系统不会发生死锁的最少资源数=每个进程拥有(4-1=3)个资源+多出1个资源=3*3+1=10。所以,选项B正确。

24.

以下关于计算机的描述中,不正确的是______A.进程调度有“可抢占”和“非抢占”两种方式,后者引起系统的开销更大B.每个进程都有自己的文件描述符表,所有进程共享同一打开文件表和v-node表C.基本的存储技术包括RAM、ROM、磁盘以及SSD,其中访问速度最慢的是磁盘,CPU的高速缓存一般是由RAM组成的D.多个进程竞争资源出现循环等待时可能造成系统死锁正确答案:A[考点]进程与线程[解析]对于选项A,可抢占式调度会导致系统的开销更大。可抢占式(preemptive)调度严格保证在任何时刻具有最高优先级的进程占有处理机运行,因此,该方式增加了处理机调度的时间,和为退出的进程保留现场、为获取到处理机的进程恢复现场等时间(和空间),因此,开销比较大。非抢占式(nonpreemptive)调度是一种让进程运行直到结束或阻塞的调度方式(容易实现,适合专用系统,不适合通用系统)。所以,选项A不正确。

对于选项B,在内核中,对于每个进程都有一个文件描述符表,表示这个进程打开的所有文件。文件描述符表中每一项都是一个指针,指向一个用于描述打开文件的数据块——File对象。File对象中描述了文件的打开模式、读写位置等重要信息,当进程打开一个文件时,内核就会创建一个新的File对象。需要注意的是,File对象不是专属于某个进程的,不同进程的文件描述符表中的指针可以指向相同的File对象,从而共享这个打开的文件。File对象有引用计数,记录了引用这个对象的文件描述符个数,只有当引用计数为0时,内核才会销毁File对象,因此,某个进程关闭文件,不会影响与之共享同一个File对象的进程。所以,选项B正确。

对于选项C,ROM(ReadOnlyMemory,只读存储器)和RAM(RandomAccessMemory,随机存取存储器)指的都是半导体存储器。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。磁盘是一种类似磁带的计算机外部存储器,它将圆形的磁性盘片装在一个方的密封盒子里。SSD(SolidStateDrive,固态硬盘,简称固盘)是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。ROM、RAM、磁盘和SSD都是存储设备,其中,访问速度最快的是RAM,访问速度最慢的是磁盘,CPU的高速缓存一般是由RAM组成的。所以,选项C正确。

对于选项D,如果系统中存在多个进程,它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,那么这种等待永远都不能结束,这时就称系统出现了“死锁”。所以,选项D正确。

所以,本题的答案为A。

25.

某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将______A.从就绪变为运行B.从运行变为就绪C.从运行变为阻塞D.从阻塞变为就绪正确答案:C[考点]进程与线程[解析]在操作系统中,进程的基本状态有就绪状态、运行状态和阻塞状态三种。以下将分别对这三种状态进行分析。

1.就绪状态

进程已经具备运行条件,但是CPU还没有得到分配。也就是说,当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,此时进程的状态称为就绪状态。在一个系统中,处于就绪状态的进程可能有多个,通常将这些处于就绪状态的进程排成一个队列,称为就绪队列。

2.运行状态

进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于运行状态,在多处理机系统中,则有多个进程处于运行状态。

3.阻塞状态

当正在运行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即程序的执行受到阻塞,这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。

三种进程之间的转换图如下图所示。

三种进程之间的转换图

以下将针对这个状态转换图的条件进行讨论与分析:

1.就绪→运行

对于就绪状态的进程,当进程调度程序按一种选定的策略从中选中一个就绪进程,并为之分配了处理机后,该进程便由就绪状态变为运行状态。

2.运行→阻塞

如果正在运行的进程因发生某等待事件而无法执行,则进程由运行状态变为阻塞状态,例如进程提出输入/输出请求而变成等待外部设备传输信息的状态,进程申请资源(主存空间或外部设备)得不到满足时变成等待资源状态,进程运行中出现了故障(程序出错或主存储器发生读写错误等)变成等待干预状态等。

3.阻塞→就绪

处于阻塞状态的进程,当其等待的事件已经发生,例如输入/输出完成、资源得到满足或错误处理完毕时,处于阻塞状态的进程并不会马上转入运行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为运行状态。

4.运行→就绪

正在运行的进程,因为时间片用完而被暂停执行,或在采用抢先式调度算法的系统中,有更高优先级的进程要运行而被迫让出处理机时,该进程便由运行状态转变为就绪状态。

以上四种情况可以相互正常转换,那么为什么阻塞状态无法直接转换为运行状态呢?为什么就绪状态无法直接转换为阻塞状态呢?其实,即使给阻塞进程分配CPU,也无法执行,这是因为操作系统在进行调度时,不会在阻塞队列中进行挑选,其调度的选择对象为就绪队列,而就绪状态根本就没有执行,是进入不了阻塞状态的。

本题中,进程在运行过程中进入I/O操作,则处理阻塞。所以,此时进程的状态将从运行变为阻塞。所以,选项C正确。

26.

Linux系统下的进程有______三种状态A.精确态、模糊态和随机态B.运行态、就绪态和等待态C.准备态、执行态和退出态D.手动态、自动态和自由态正确答案:B[考点]进程与线程[解析]进程的状态有两种划分方式:三态模型与五态模型。

(1)三态模型:运行态、就绪态和阻塞(等待)态。

(2)五态模型:新建态、就绪态、运行态、阻塞态和终止态。

所以,本题的答案为B。

27.

下列的进程状态变化中,不可能发生的是______A.运行→就绪B.运行→等待C.等待→运行D.等待→就绪正确答案:C[考点]进程与线程[解析]状态不能直接从等待状态(也称为阻塞状态)跳转到运行状态,只能跳转到就绪状态。所以,选项C正确。

28.

进程进入等待状态的方式有______A.CPU分配给优先级更高的线程B.阻塞的线程获得资源或者信号C.在时间片轮转的情况下,如果时间片到了D.获得自旋锁(spinlock)未果正确答案:D[考点]进程与线程[解析]等待状态通常是我们说的阻塞态,因为一般阻塞态是指等待某一触发事件的发生后进入就绪状态。

对于选项A,进程是从运行状态进入就绪状态。所以,选项A错误。

对于选项B,进程是从阻塞状态进入就绪状态。所以,选项B错误。

对于选项C,进程是从运行状态进入就绪状态。所以,选项C错误。

对于选项D,获取锁失败后进入阻塞状态。所以,选项D正确。

29.

以下关于Linux下进程的描述中,不正确的是______A.僵尸进程会被init进程接管,而僵尸进程不会造成资源浪费B.孤儿进程的父进程在它之前退出,会被init进程接管,它不会造成资源浪费C.进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux下的线程本质上用进程实现D.子进程如果对资源只是进行读操作,那么完全和父进程共享物理地址空间正确答案:A[考点]进程与线程[解析]对于选项A,僵尸进程不会被init进程接管,而是会一直占用资源。所以,选项A错误。

对于选项B,孤儿进程在产生的时候就会被imt进程所接管,会直接回收资源,也就不会占用资源。所以,选项B正确。

对于选项C与选项D,描述正确。

所以,本题的答案为A。

30.

下列关于进程的描述中,不正确的是______A.进程在退出时会自动关闭自己打开的所有文件B.进程在退出时会自动关闭自己打开的网络连接C.进程在退出时会自动销毁自己创建的所有线程D.进程在退出时会自动销毁自己打开的共享内存正确答案:D[考点]进程与线程[解析]进程是一个具有一定独立功能的,程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程开启的线程都仅仅属于本进程,所以,进程在退出时,会自动关闭进程打开的文件、自己打开的网络,同时销毁自己创建的所有线程。但是,由于共享内存是公用的,一旦被销毁了,会对其他正在使用这段内存的进程造成破坏,所以,进程在退出时不会自动销毁自己打开的共享内存。所以,选项D错误,而选项A、选项B、选项C都是正确的。

31.

既有利于短作业又兼顾长作业的调度方式是______A.先来先服务B.均衡调度C.最短作业优先D.最高响应比优先正确答案:D[考点]进程与线程[解析]本题中,选项A、选项B和选项C的调度方法都不满足题目要求,所以,选项A、选项B和选项C错误。

对于选项D,最高响应比优先法(HighestResponse_ratioNext,HRN)是对FCFS(FirstComeFirstServed,先来先服务)方式和SJF(ShortestJobFirst,最短作业优先)方式的一种综合平衡。FCFS方式只考虑每个作业的请求时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。响应比R定义如下:R=(W+T)/T=1+W/T,其中,T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也会增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF方式,当采用HRN方式时,其吞吐量将小于采用SJF方式时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。等待时间一定,要求服务的时间越短,先运行;要求服务的时间一定,等待时间越长,先运行。可见,最高响应比优先调度是一种既有利于短作业又兼顾长作业的调度方式。所以,选项D正确。

32.

进程调度是从______选择一个进程投入运行A.就绪队列B.作业后备队列C.等待队列D.提交队列正确答案:A[考点]进程与线程[解析]进程的基本调度状态有运行、就绪和阻塞。进程调度程序从处于就绪状态的进程中选择一个投入运行。运行进程因等待某一事件而进入阻塞状态,因时间片到达而回到就绪状态。处于阻塞状态的进程在所等待的事件发生时,便进入就绪状态。

本题中,就绪队列是等待CPU时间的队列,其中存放着等待执行的任务。进程调度是从就绪队列中选择一个进程投入运行。所以,选项A正确。

33.

下面的进程调度算法中,适用于运行时间可以预知的批处理调度算法是______A.最短作业优先B.先来先服务C.优先级调度D.时间片轮转调度正确答案:A[考点]进程与线程[解析]对于选项A,最短作业优先(ShortestJobFirst,SJF)是对FCFS(FirstComeFirstServed,先来先服务)算法的改进,其目标是减少平均周转时间。其优点是相比FCFS改善了平均周转时间和平均带权周转时间,缩短了作业的等待时间,同时,提高了系统的吞吐量。但缺点就是对长作业非常不利,可能长时间得不到执行;未能依据作业的紧迫程度来划分执行的优先级;难以准确估计作业(进程)的执行时间,从而影响调度性能。最短作业优先是一种适用于运行时间可以预知的非抢占式的批处理调度算法。所以,选项A正确。

对于选项B,先来先服务(FirstComeFirstServed,FCFS)是最简单的调度算法,按先后顺序进行调度。它适用于长作业,而不利于短作业;有利于CPU繁忙的作业,而不利于I/O繁忙的作业。所以,选项B错误。

对于选项C,优先级调度(PriorityScheduling)是多级队列算法的改进,平衡了各进程对响应时间的要求。它适用于作业调度和进程调度,可分成抢先式和非抢先式。所以,选项C错误。

对于选项D,轮转法(RoundRobin)是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。所以,选项D错误。

所以,本题的答案为A。

34.

在进程间通信的方式中,访问速度最快的是______A.管道B.消息队列C.共享内存D.套接字正确答案:C[考点]进程与线程[解析]共享内存就是映射一段能被其他进程所访问的内存,这段内存由一个进程创建,但多个进程都可以访问。共享内存是最快的进程间通信的方式,它是针对其他进程间通信方式运行效率低而专门设计的。所以,选项C正确。

35.

同一进程下的多个线程可以共享的资源是______A.栈B.数据区C.寄存器D.线程ID正确答案:B[考点]进程与线程

36.

系统中的“颠簸”是由______引起的A.内存容量不足B.缺页率高C.交换信息量大D.缺页率反馈模型不正确正确答案:B[考点]进程与线程[解析]如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将很频繁地产生缺页中断,这种频率非常高的页面置换现象称为抖动,也称为“颠簸”。在请求分页存储管理中,可能出现这种情况,即对刚被替换出去的页,立即又要访问,又需要将它调入,因为没有空闲内存又要替换另一页,而后者又是即将被访问的页,于是造成了系统需花费大量的时间忙于进行这种频繁的页面交换,致使系统的实际效率很低,严重时导致系统瘫痪。

通过上面的分析可知,“颠簸”是由缺页率高引起的。所以,选项B正确。

37.

下面不是进程和程序的区别的是______A.程序是一组有序的静态指令,进程是一次程序的执行过程B.程序只能在前台运行,而进程可以在前台或后台运行C.程序可以长期保存,进程是暂时的D.程序没有状态,而进程是有状态的正确答案:B[考点]进程与线程

下表是程序、进程、线程的定义与关联关系。程序、进程、线程的定义与关联关系术语定义与描述程序一组指令的有序结合,是一个静态无状态的文本进程具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单元线程进程的一个实体,是CPU调度和分派的基本单元,是比进程更小的能独立运行的基本单元。本身基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(例如程序计数器、一组寄存器和栈)。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行

所以,本题的答案为B。

38.

程序和进程的本质区别是______A.独占使用和分时使用计算机资源B.非顺序和顺序执行机器指令C.在外存和内存存储D.静态和动态特征正确答案:D[考点]进程与线程

39.

文件长度是一个大于0的整数,用变量unsignedfile_length来表示。把文件分成块,每块的长度也是一个大于0的整数,用变量unsignedblock_length来表示。则文件被分成的块数为______A.file_length/block_lengthB.file_length/block_length+1C.(file_length+block_length-1)/block_lengthD.(file_length-1)/block_length+1正确答案:D[考点]内存管理[解析]本题可以采用排除法解答。

假设file_length=5,block_length=2,则可以分成3块,排除选项A。

假设file_length=6,block_length=2,也可以分成3块,排除选项B。

对于选项C,两个unsigned类型的值相加可能会溢出,所以,可以排除选项C。

对于选项D,对于上述两种情况都能得到正确的结果。因此,选项D正确。

40.

X86体系结构在保护模式下有三种地址,以下对于这三种地址的描述中,正确的是______A.虚拟地址先经过分段机制映射到线性地址,然后线性地址通过分页机制映射到物理地址B.线性地址先经过分段机制映射到虚拟地址,然后虚拟地址通过分页机制映射到物理地址C.虚拟地址先经过分页机制映射到线性地址,然后线性地址通过分段机制映射到物理地址D.线性地址先经过分页机制映射到虚拟地址,然后线性地址通过分段机制映射到物理地址正确答案:A[考点]内存管理[解析]要想弄明白各类地址的映射,首先需要弄懂各地址的概念。

虚拟地址指的是由程序产生的由段选择符和段内偏移地址两个部分组成的地址。这两部分组成的地址并没有直接访问物理内存,而是要通过分段地址的变换机构处理或映射后才会对应到相应的物理内存地址。

逻辑地址指用户程序经编译之后的每个目标模块都以0为基地址顺序编址,在程序中使用的地址都是逻辑地址。

线性地址指的是虚拟地址变换到物理地址之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经过变换产生物理地址。如果没有采用分页机制,那么线性地址就是物理地址。

物理地址指的是现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果,是实际数据存放的地址。

虚拟地址到物理地址的转化方法是与体系结构相关的。一般来说,有分段和分页两种方式。以X86CPU为例,分段、分页两种方式都是支持的。内存管理单元(MemoryManagementUnit,MMU)负责从虚拟地址到物理地址的转化。逻辑地址是段标识+段内偏移量的形式,MMU通过查询段表,可以把逻辑地址转化为线性地址。如果CPU没有开启分页功能,那么线性地址就是物理地址;如果CPU开启了分页功能,MMU还需要查询页表来将线性地址转化为物理地址,即逻辑地址-(段表)→线性地址-(页表)→物理地址。

不同的逻辑地址可以映射到同一个线性地址上,不同的线性地址也可以映射到同一个物理地址上,所以,这是一种多对一的关系。另外,同一个线性地址,在发生换页以后,也可能被重新装载到另外一个物理地址上。所以,这种多对一的映射关系也会随时间发生变化。

分段机制就是把虚拟地址空间中的虚拟内存组织成一些长度可变的称为段的内存块单元。分页机制把线性地址空间和物理地址空间分别划分为大小相同的块,这样的块称为页。通过在线性地址空间的页与物理地址空间的页之间建立的映射,分页机制实现线性地址到物理地址的转换。

通过以上分析可知,选项A是正确的。

41.

在段页式存储管理系统中其虚拟地址空间是______的A.一维B.二维C.三维D.四维正确答案:C[考点]内存管理

42.

在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1、2、3、4、1、2、5、1、2、3、4、5、6时,将产生缺页中断的次数是______A.10B.9C.8D.7正确答案:A[考点]内存管理[解析]在地址映射过程中,如果在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,操作系统必须在内存中选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫作页面置换算法,也称为页面淘汰算法。

先进先出页面淘汰算法简称FIFO(FirstInFirstOut)算法,该算法会置换出最早进入内存的页面,即在内存中驻留时间最久的页面。该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,设置一个总是指向最早页面的指针。

本题中,置换过程如下:

(1)访问1,缺页,调入1,内存中为1。

(2)访问2,缺页,调入2,内存中为1,2。

(3)访问3,缺页,调入3,内存中为1,2,3。

(4)访问4,缺页,调入4,淘汰1,内存中为2,3,4。

(5)访问1,缺页,调入1,淘汰2,内存中为3,4,1。

(6)访问2,缺页,调入2,淘汰3,内存中为4,1,2。

(7)访问5,缺页,调入5,淘汰4,内存中为1,2,5。

(8)访问1,不缺页,内存中为1,2,5。

(9)访问2,不缺页,内存中为1,2,5。

(10)访问3,缺页,调入3,淘汰1,内存中为2,5,3。

(11)访问4,缺页,调入4,淘汰2,内存中为5,3,4。

(12)访问5,不缺页,内存中为5,3,4。

(13)访问6,缺页,调入6,淘汰5,内存中为3,4,6。

所以,一共产生了10次缺页。因此,选项A正确。

43.

函数的局部变量所需存储空间是在______分配的A.进程的数据段B.进程的栈上C.进程的堆上D.以上都可以正确答案:B[考点]内存管理[解析]一个C/C+编译的程序所占用的系统内存一般分为代码段、数据段、BBS段、堆和栈。

(1)代码段(codesegment/textsegment):代码段有时候也叫文本段,通常是指用来存放程序执行代码(包括类成员函数和全局函数以及其他函数代码)的一块内存区域,这部分区域的大小在程序运行前就已经确定,并且内存区域通常是只读。某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量。这个段一般是可以被共享的,比如在Linux操作系统中打开了两个Vi来编辑文本,那么一般来说,这两个Vi是共享一个代码段的。

(2)数据段(datasegment):数据段通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段也属于静态内存分配。因此,数据段属于静态区(全局区)。

(3)符号起始的区块(BlockStartedbySymbol,BSS)段:BSS段通常是指用来存放程序中未初始化的全局数据和静态数据的一块内存区域。BSS段属于静态内存分配,程序结束后静态变量资源由系统自动释放。

(4)堆(heap):堆用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc或new等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free或delete等函数释放内存时,被释放的内存从堆中被删除(堆被缩减)。堆一般由程序员分配释放,如果程序员自己不释放,在程序结束时,该块内存空间可能会由操作系统回收。需要注意的是,它与数据结构中的堆是两回事,分配方式类似于链表。

(5)栈(stack):栈上存放的是用户临时创建的局部变量,一般包括函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此之外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且等到调用结束后,函数的返回值也会被存放回栈中。栈由编译器自动分配、释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。栈内存分配运算内置于处理器的指令集中,一般使用寄存器来存取,效率很高,但是分配的内存容量有限。

通过上述描述可知,选项B正确。

44.

当在CPU内存之间进行地址转换时,______将地址从虚拟(逻辑)地址空间映射到物理地址空间A.TCBB.MMUC.CACHED.DMA正确答案:B[考点]内存管理[解析]本题中,对于选项A,TCB是TrustedComputingBase的简称,指的是计算机内保护装置的总体,包括硬件、固件、软件和负责执行安全策略的组合体。它建立了一个基本的保护环境并提供一个可信计算机系统所要求的附加用户服务。所以,选项A错误。

对于选项B,MMU是MemoryManagementUnit的缩写,即内存管理单元,它用来管理虚拟存储器、物理存储器的控制线路,同时也负责将虚拟地址映射为物

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论