前端笔试题(操作系统/数据结构等)

一、操作系统

1.判断题

  • 多个进程操作同一个文件时,应该要考虑到文件的一致性问题
  • 可通过文件在不同进程间进行数据传递和共享

共享数据必须初始化,否则微软编译器会把没有初始化的数据放到.BSS段中,从而导致多个进程之间的共享行为失败

  • 操作系统会给每个进程分配独立的数据段和程序段,但是进程相互之间不可见,不可以通过全局变量来传递数据,进程之间地址空间独立。全局变量也就只有在同一个进程内的线程之间可以共享
  • 一个进程也不能访问另一个进程的物理内存空间。

2.IP数据报分片的重组通常发生在(目的主机上)

当一个IP数据报封装成链路层的帧时,此数据报的总长度(即报头区加上数据部分)一定不能超过下层的数据链路层的MTU值,否则无法传输。 因此,我们需要对IP包进行分片,其中IP数据报的首部中,和IP数据包分片有关的字段为——总长度、标识、标志以及位偏移.分片由网络层的路由器完成
目的主机收到所有分片后,对分片进行重新组装还原的过程叫做IP数据报重组。IP协议规定,只有最终的目的主机才可以对分片进行重组。目的主机接收到所有的数据包的分包之后,根据数据包首部中保存的信息,还原最初的数据包。这就是数据包的重组过程。

3.引入多道程序技术以后,处理器的利用率(大大提高)

多道程序设计是指在主存中同时存放多道用户作业,使它们都处于执行的开始点和开始点之间,这些程序共享计算机系统资源。
2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
3)微观上串行:从微观上看,内存中的多道程序轮流地或分时地占有CPU。
多道程序设计的主要优点有:
(1)提高CPU的利用率。在多道程序环境下,多个程序共享计算机资源当某个程序等待I/O操作时,CPU可以执行其他程序,大大提高CPU的利用率。
(2)提高设备的利用率。在多道程序环境下,多个程序共享系统的设备,大大提高系统设备的利用率。
(3)提高系统的吞吐量。在多道程序环境下,减少了程序的等待时间,提高了系统的吞吐量。

4.关于TCP协议以下说法正确的是

  • 通讯双方主动关闭的一方进入TIME_WAIT状态

被动方进入的是LAST_ACK状态,主动方进入的是TIME_WAIT状态。

  • TIME_WAIT状态会持续2个MSL

持续2MSL的目的是为了可以重传ACK,让被动关闭方收到。
假设客户端发起中断请求,则整个过程Client端所经历的状态
在这里插入图片描述

Server端所经历的过程如下
在这里插入图片描述

5.判断题

  • 在计算机中,运算器访问寄存器的速度是最快的(CPU访问存储器)

对指令执行过程中各步骤完成时间进行比较,指出所有步骤中读/写寄存器的速度最快。
通常,把取出指令并执行所用的时间称为一个指令周期。不同指令的功能不同,因此所包含的执行步骤不一样。不考虑指令译码这个步骤,不管是简单指令还是复杂指令,其包含的执行步骤总是可以分解成以下4种基本操作,也即每条指令的功能总是由以下4种基本操作功能组合而成。
(1)读取某存储单元内容装入给定寄存器。
(2)把一个数据从某个寄存器存入给定的存储单元中。
(3)把一个数据从某个寄存器送到另一个寄存器或者ALU输入端。
(4)进行某种算术运算或逻辑运算,将结果送入某个寄存器。

  • 在等待中断的过程中,CPU可以处理其他任务

选项B的描述中,“中断”一词比较含糊,可以有两种不同的理解,一种是“中断请求”,一种是“中断处理结束”。
如果理解成前者,选项B的含义就是“CPU在等待中断请求的过程中,不可以处理其他任务”,这显然是错误的。CPU在执行程序的过程中,总是在执行完一条指令、取下条指令之前,去主动检测“中断请求信号”,若发现有中断请求,则执行一条“中断隐指令”,以响应中断请求。
如果理解成后者,选项B的含义就是“CPU在等待中断处理结束的过程中,不可以处理其他任务”,这也是错误的。
CPU响应中断请求后,就会跳转到一个中断服务程序去执行,以进行中断处理。不同的中断类型具有不同的中断服务程序,进行不同的中断处理。有些中断处理非常简单,例如“打印机缺纸”,其中断服务程序只要在屏幕上显示一个消息即可;有些中断处理则比较复杂,例如,对于采用中断方式进行打印输出的情况,中断服务程序中需要启动外设进行I/O,通常在发出启动外设的命令后进行中断返回,以回到原先被中止的另一个进程代码去执行

  • 同一段代码每次运行的时间不一定是一样的

因为提到“一定”两个字,所以很快可以判断是错误的。不过,对于选项C中提到的知识点的理解,还有许多内容值得详细讨论。
首先是对“程序代码的运行时间”和“同一段代码”如何理解的问题。
操作系统在对处理器进行调度时,一段时间内往往会让多个程序(更准确地说是进程)轮流使用处理器,因此在某个用户程序执行过程中,可能同时还会有其他用户程序和操作系统程序在执行,所以,用户感觉到的某个程序的执行时间并不是其真正的执行时间。通常把用户感觉到的执行时间分成以下两部分:CPU时间和其他时间。CPU时间指CPU用于程序执行的时间,它又包括以下两部分:
(1)用户CPU时间,指真正用于运行用户程序代码的时间;
(2)系统CPU时间,指为了执行用户程序而需要CPU运行操作系统程序的时间。
其他时间指等待I/O操作完成的时间或CPU用于执行其他用户程序的时间。
计算机系统的性能评价主要考虑的是CPU性能。系统性能和CPU性能不等价,两者有一些区别。系统性能是指系统的响应时间,它与CPU外的其他部分也有关系;而CPU性能是指用户CPU时间,它只包含CPU运行用户程序代码的时间。
因此,对“程序代码的运行时间”可以理解为程序代码中每条指令执行时间总和,也可以理解为程序代码运行过程中用户感觉到的执行总时间(包括操作系统代码和穿插在其中的其他程序代码运行时间)。如果理解为后者,那么很可能因为每次运行环境的不同,使得用户感觉到的执行总时间可能不一样。因此,选项C是错误的。
如果理解为前者,那么,还要看选项中的“同一段代码”指的是什么含义,才能确定选项C是否正确。如果“同一段代码”中代码指的可执行文件中一段静态的指令序列(例如一段循环执行的指令序列),那么可能会因为每次执行这段代码时变量的值的不同(例如循环终止条件变量的值不同),导致程序在执行时所执行的指令条数不同(循环执行次数不同),因而使得每次运行该段代码过程中指令执行的总时间不同。所以,选项C是错误的
显然,只有将“程序代码的运行时间”理解为程序代码中每条指令执行时间总和,并且,将“同一段代码”理解成每次运行程序代码过程中在CPU上所执行的指令序列完全相同,那么,选项C才是正确的。显然,对选项C的描述作这种解读有点牵强。

  • 软中断是由软件触发的一种中断

的“软中断”应该特指Intel架构中的“int n”指令,执行该指令后,CPU会根据中断类型号n,到中断向量表(实地址模式)或中断描述符表(保护模式)中,取出相应的中断服务程序执行,执行结束后再回到“int n”指令后面一条指令执行。因此,“int n”指令的执行相当于引起了一次对现行程序的“中断”事件,这里“int n”指令显然是事先安排在软件中的,属于软件触发的事件。因而选项D的描述是正确的。

二、 数据结构

1.一个栈的入栈序列为ABCDE,则不可能的出栈序列为()

ECDBA
DCEAB

2.TCP首部报文信息中跟建立链接有关的是()

TCP:状态控制码(Code,Control Flag)
标志位字段(U、A、P、R、S、F):占6比特。各 比特的含义如下:
URG(紧急指针字段值有效):紧急比特(urgent),当URG=1时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据), 且上图中的 Urgent Pointer 字段也会被启用。
ACK(表示响应):确认比特(Acknowledge)。只有当ACK=1时确认号字段才有效,代表这个封包为确认封包。当ACK=0时,确认号无效。
PSH(表示有 DATA数据传输):(Push function)若为1时,代表要求对方立即传送缓冲区内的其他对应封包,而无需等缓冲满了才送。
RST(表示连接重置):复位比特(Reset) ,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
SYN(表示建立连接):同步比特(Synchronous),SYN置为1,就表示这是一个连接请求或连接接受报文,通常带有 SYN 标志的封包表示『主动』要连接到对方的意思。。
FIN(表示关闭连接):终止比特(Final),用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

3.判断题

  • 在时间片轮询调度算法中,时间片越短则CPU利用率越高

时间片越短,说明其它进程或线程获得CPU,此时需要进行中断,CPU不能处理其它任务。

  • 优先级越高的进程占用CPU的运行时间就一定越多

优先级越高,说明它获得CPU的可能性越大,但本身该作业所需占用CPU的时间就很少。

  • 在遍历大型二维数组int a[x][y]时,先遍历x或先遍历y的处理时间都是一样的

因为是按行顺序进行存储的,所以先遍历x,再遍历y相对要快一点,这涉及到预取操作。

  • 使用cache可以提高CPU的利用率

cache的存在是解决速度不匹配,当寄存器读取的快,cpu就不至于干完活还要等待寄存器读取完数据

4.设一组初始关键字记录关键字为(19,15,12,18,21,36,45,10),则以19位基准记录的一趟快速排序结束后的结果为()

  • 10,15,12,18,19,36,45,21

具有1000个节点的二叉树的最小深度为()(第一层深度为1)

**IP地址205.140.36.68的哪一部分表示网络号(205.140.36)68为主机号
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_59079803/article/details/124977938