数据结构
一、概述
数据的逻辑结构独立于其存储结构
以下与数据的存储结构无关的术语是( )。
A、循环队列 B、链表 C、哈希表 D、栈
循环队列:指定是用顺序表表示的队列
链表:指定是使用链式存储的方式
哈希表:指定使用散列表存储的方式
栈:是线性结构中的受限性表;特点是后进先出,栈顶进,栈顶出
A、B、C描述的均为物理结构即数据的存储结构,D是逻辑结构,所以选D。
数据的最小单位是( 数据项 )
数据的基本单位是(字节)
一般说来,算法必须具备以下五个重要特性:确定性、可行性、输入、输出和有穷性。
可读性:有助于人们阅读理解
正确性:算法能正确的解决问题
健壮性:对非法输入能进行相应处理
效率与存储量需求:效率高
数据结构中有三种基本操作,分别是插入、删除和查找,但不是每种都符合。比如,二维数组没有删除,栈没有查找。
~时间和空间复杂度
设串长为n,模式串长为m,则KMP算法所需的附加空间为O(m)。
因为KMP算法涉及到next数组的存储,next数组是基于模式串长度计算的。
给定有n个元素的一维数组,建立一个有序单链表的最低时间复杂度是( )。
最快排序nlogn,简历单链表n,最复杂为n*nlogn
二、线性表
线性表的定义(关键词:数据元素、相同特性、有限、有序)
~静态链表
静态链表的特点:不需要移动元素,只需要修改指针;需要一次性分配较大量空间,存储结构可以反应数据之间的逻辑关系。
静态链表指针表示的是( )。下一元素在数组中的位置
~顺序表
按值查找的时间复杂度为O(n);
按位序查找的时间复杂度为O(1);
一个线性表最常用的操作是存取任一指定序号的元素并在最后进行插入删除操作,则利用(A、顺序表 )存储方式可以节省时间。(随机存储)
~单链表
按值查找的时间复杂度为O(n);
按位序查找的时间复杂度为O(n);
~双链表
在长度为n(n≥1)的双链表中 插入 一个结点p(非尾结点)要修改___4__个指针成员。
在长度为n(n≥1)的双链表中 删除 一个结点p(非尾结点)要修改___2___个指针成员。
~存储结构:
链式存储:结点内存储单元地址一定连续;相邻结点存储空间不一定连续;
顺序存储:结点内存储单元地址一定连续;相邻结点存储空间一定连续;
随机存取(直接存取,Random Access)指的是当存储器中的数据被读取或写入时,所需要的时间与该数据所在的物理地址无关。
随机存取的微观现实例子就是编程语言中的数组。
顺序存取
(Sequential Access)是一种按记录的逻辑顺序进行读、写操作的存取方法,所需要的时间与该数据所在的物理地址有关。顺序存取表现为:在存取第N个数据时,必须先访问前(N-1)个数据。
顺序存取的微观现实例子就是数据结构中的链表。
若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省时间。
顺序表:查改
链表:增删
带有头结点的单向循环链表其判空:head->next==head
以下是广义表存储数据的一些常用形式:
- A = ():A 表示一个广义表,只不过表是空的。
- B = (e):广义表 B 中只有一个原子 e。
- C = (a,(b,c,d)) :广义表 C 中有两个元素,原子 a 和子表 (b,c,d)。
- D = (A,B,C):广义表 D 中存有 3 个子表,分别是A、B和C。这种表示方式等同于 D = ((),(e),(b,c,d)) 。
- E = (a,E):广义表 E 中有两个元素,原子 a 和它本身。这是一个递归广义表,等同于:E = (a,(a,(a,…)))。
广义表的长度看最外层共有几个逗号,长度为逗号+1 如(a,b,c)的长度就是3;(a,(b,(c)))的长度为2
深度的化看有几层括号 .
广义表((a),a)的表尾是( A )。
A. a B. (a) C. () D. ((a))
广义表的表尾是除了头以外的所有元素。
表头是元素,表尾是广义表。
例如: 广义表(a, (b))的表头是单元素a,表尾是广义表((b))。【要在(b)的外面加一层小括号,才能变成广义表。因此是((b)) 】
一个非空广义表的表头可以是子表或原子。
~三元组
定义:将稀疏矩阵非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间。
简单的来说,就是把稀疏矩阵里面的非0元素的行和列,还有数值这三个值记录下来,弄个表。
线性结构是一种一对一关系的数据结构。可分为线性表、栈、队列、字符串等。
三、栈、队列、数组、矩阵
~循环队列
长度为n的要预留一个,故最多有n-1个元素。
队空:rear头 == front尾
队满:(front+1 )n == rear
出队(从头出):rear == (rear +1 )% n
入队(从尾进):front ==(front+1)%n
设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为
总个数size = (rear-front+m)%m;
size = (11-20+70)%70 =
61%70 = 61;
循环队列存储在数组A[0…m] 中,则入队时的操作为( rear=(rear+1)%(m+1) )。
入队时,rear先+1再对数组长度取余。数组A[0…m] 中共含有 m+1 个元素,故在求模运算时应为 %(m+1)。
~三维数组
三维数组A【10】【20】【30】按行序为主序存放于一个连续的存储空间中,其中A【0】【0】【0】的存储地址是100,数组中每个元素占用1个字节,则A【2】【5】【7】的存储地址是( )
-
100+2×20×30+5×30+7
三维数组A[n][m][k],n,m,k三个分量分别称之为行,列,页。
假设A[0][0][0]的存储地址为a,其中每个元素所占内存空间为b,那么计算A[x][y][z]的存储地址的公式为a+(xmk+yk+z)b
有一个三维数组A[-2 ... 2][-4 ... 5][2 ... 6],其中元素个数是
解析: 数组A的第1维长度为5,第2维长度为10,第3维长度为5,元素个数=5×10×5=250。
~三元组
存:行列值
~链栈
链栈特点是动态申请内存空间,只要内存空闲空间够,就可以一直申请下去,所以出现上溢的情况很少,这是它的优点。
链栈是一种数据存储结构,可以通过单链表的方式来实现,使用链栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。
~栈
由栈的定义可知,栈是一种后进先出的线性表,所以栈具有记忆功能。
四、树
~二叉链表
二叉链表,别名左孩子右兄弟表示法,是树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。
根节点的右指针为空。
~指针域
由含n个结点的二叉树线索化后有______ 个线索(不计头结点)。
双亲表示法
孩子链表存储结构
一棵度为5、结点个数为n的树采用孩子链存储结构时,其中空指针的个数是____4n+1__。
总指针数=5n,非空总指针数=分支数=n-1,空指针域的个数=5n-(n-1)=4n+1。
类比二叉树:
首先总的节点数为n
则可知其二叉树有2n条链域
从下至上看树,每个结点将对应一条链域 即对应其双亲结点,而头结点并没有双亲结点,故总边数为n-1
又因为二叉树总共有2n条链域,空指针个数=2n-(n-1)
则空指针个数为n+1
~平衡二叉树
高度为1的平衡二叉树节点为1个,高度为5的最少多少个?
~哈夫曼树
哈夫曼编码
等长编码是一种简单且译码具有唯一性的编码方式,这种编码方式的特点是每个字符的编码长度相同。
~并查集
五、图
图G由顶点集V和边集E组成,记为G=(V,E)
~领接表
设某有向图的邻接表中有n个表头结点和m个表结点
表头结点n表示有n个顶点,表结点m表示有m条有向边。
~连通图
强连通图
一个有向图,如果任何两个节点AB之间,从A到B可达,从B到A也可达,则称为强连通图。
一个含有n(n>1)个节点的强连通图,一定可以选出n条边,把n个节点连成一个环(可能自交)。
有n个顶点的强连通图最多有n(n-1)条边,最少有n条边
十字链表是有向图特有的。
邻接多重表是无向图特有的。
~无向图
极大连通子图是讨论连通分量的。
极小连通子图是讨论生成树的。
~图的深度优先遍历和广度优先遍历
下列关于图遍历的说法不正确的是( C )。
A. 连通图的深度优先搜索是一个递归过程
B. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
C. 非连通图不能用深度优先搜索法
D. 图的遍历要求每一顶点仅被访问一次
深度优先搜索算法是一个递归的过程,广度优先搜索算法是一个逐层遍历的过程。
深度优先遍历用了 栈,广度优先遍历用了 队列。
非连通图也可以使用深度和广度优先遍历,只需把每个顶点都遍历一次。
~关键路径
设AOE网有n个顶点,e条边,在求事件可能的最早发生时间及允许的最迟发生时间,以及活动的最早开始时间和最晚开始时间时,都要对图中所有顶点及每个顶点边表中所有的边结点进行检查,时间花费为O(N+E)。
六、排序和查找
~插入排序
对同一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是___D___。
A. 排序的总趟数
B. 元素的移动次数
C. 使用辅助空间的数量
D. 元素之间的比较次数
折半插入排序所需附加存储空间和直接插入排序相同, 从时间上比较,折半插入排
序仅减少了关键字间的比较次数,而记录的移动次数不变。折半插入排序的时间复杂度仍为 (n2), 所以两者之间的不同只可能是元素之间的比较次数。
~B树和B+树
B树只能支持随机检索
B+树既能支持随机检索,又能支持顺序检索。
~辅助空间
计算机组成原理
一、概述
~冯·诺依曼体系结构
根据冯·诺依曼体系结构的基本思想可知,所有的数据和指令序列都是以二进制形式存放在存储器中,计算机根据周期来区分指令和数据,因此数据是从存储器读取而非在指令中给出。以运算器为中心。
按地址访问并顺序执行指令。
二、数据运算
~数据运算:
补码加减法是指()。C. 操作数用补码表示,连同符号位直接相加减,减某数用加负某数的补码代替,结果的符号在运算中形成。
在原码两位乘中,符号位単独处理,参加操作的数是()。原码两位乘中,符号位单独处理,但运算过程中可能需要进行“减被乘数绝对值”的操作,计算机中减法一般通过补码加法来实现,故原码两位乘运算过程中参加操作的数是绝对值的补码。
浮点数舍入处理的方法除了0舍1入法外,还有()法。C 末位恒置“1”
~各种字长
下列给出的部件中其位数(宽度)一定与机器字长相同的是:( )
I、ALU
II、指令寄存器
III、通用寄存器
IV、浮点寄存器
A、I,II
B、I,III
C、II,III
D、II,III,IV
参考答案:B
机器字长:是指计算机进行一次整数运算所能处理的二进制的位数,通常与 CPU 的寄存器位数,加法器有关。
三、存储器
关联存储器(相联存储器),是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找快表。既可以按照地址寻址也可以按照内容寻址(通常是某些字段),为了与传统寄存器作区别,称为按内容寻址的存储器。
~DRAM和SRAM
下列关于 TLB 和 Cache 的叙述中错误的是:( )
A、命中率与程序局部性有关
B、缺失后都需要去访问主存
C、缺失处理都可以由硬件实现
D、都由 DRAM 存储器组成
参考答案:D
答案解析:Cache 由 SRAM 组成。TLB 通常用相联存储器组成,也可以由 SRAM。DRAM 需要不断的刷新,性能较低,肯定不能选。
四、指令
~定长操作码和扩展操作码
水平型微指令与垂直微指令的比较 (1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则差。 (2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。 (3)由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而微程序长。 (4)水平型微指令用户难以掌握,而垂直型微指令与指令格式比较相似,相对来说,比较容易掌握。 水平型微指令与机器指令差别很大,一般需要对机器的结构、数据通路、时序系统以及微命令很精通才能设计。
~微指令的编码
1.直接编码方式
每一位代表一种微操作命令,如1代表打开某控制门,0代表禁止,这种方法速度快,但是动辄使控制字段达到几百位,需要极大的控存容量。
2.字段直接编码方式
字段直接编码讲微指令分成数段,每一段含互斥的微命令,如三位二进制代码就可以表示七个不同的微命令,因此可以用较少的二进制信息表示较多的微操作命令信号。这里要求不同字段之间的命令是相容的(可以同时执行),同一字段内的命令是互斥的(不可同时执行)。
3.字段间接编码方式
这种方式较第二种更加复杂,一个字段中的某些微命令还需要另一个字段中的微命令来解释。虽然进一步缩短了字长,但是削弱了并行控制能力,通常作为一种辅助手段。
~指令流水线
五阶段流水线可分为取指IF、译码/取数ID、执行EXC、存储器读MEM、写回WriteBack。数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路,包括程序计数器、算术逻辑运算部件、通用寄存器组、取指部件等等,不包括控制部件。
五、CPU
六、I/O总线
程序查询方式:CPU与设备串行工作、数据传送与主程序串行工作;
中断方式:CPU与设备并行工作、数据传送与主程序串行工作;
DMA方式:CPU与设备并行工作、数据传送与主程序并行工作。
适用范围:
程序查询方式:适合于工作不太繁忙的系统;
中断方式:适合于CPU任务比较忙的情况下,尤其适合实时控制和紧急事件的处理;
DMA方式:适合于需要高速而又频繁地与存储器进行批量的数据交换的I/O设备。
通道方式:经常用于大型计算机的控制。根据数据传送方式,通道可分成字节多路通道、选择通道和数组多路通道三种类型。
DMA:
DMA方式传送数据时,DMA需要与主存交互以实现数据的传送,因此每传送一个数据就要占用一个存储周期的时间
3种方式
停止CPU访问主存的特点是:在DMA传送过程中,CPU释放总线的控制权,处于不工作或保持状态,数据传送完毕后,DMA控制器向CPU发-个DMA结束信号,把总线控制权还给CPU。
周期挪用方式的特点是DMA控制器与主存储器之间传送一个数据, 占用(窃取)一 个CPU周期,即CPU暂停工作一个周期, 然后继续执行程序。
DMA与CPU交替访问的特点是:总线控制权分两个周期分时由DMA控制器和CPU控制,DMA控制器和CPU交替使用总线,是一种效率最高的DMA传送方式。
通道:
通道是一种特殊的处理机,具有( 执行I/O指令集 )能力。
CPU通过I/O指令方式来控制通道,而不是中断。
外部中断处理过程, PC 值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。
~I/O接口和I/O端口
IO接口:向CPU提供I/O设备的状态信息和进行命令译码。对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异。
IO端口:是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息。
I/O指令实现的数据传送通常发生在 通用寄存器和I/O端口之间
~中断
~同步和异步
异步控制方式常用于( )作为其主要控制方式。
操作系统
一、概述
Linux Unix系统是分时 ,Win多用户多任务批处理
~操作系统的分类
因为缺少交互性,所以才产生分时操作系统。
程序的并发具有2、4、6
①顺序性 ②间断性 ③封闭性 ④开放性 ⑤可再现性 ⑥不可再现性
二、进程、同步互斥、死锁
一个进程是:PCB结构与程序和数据的组合
进程被创建后,首先进入就绪状态。
进程是进程,程序是程序,进程不是程序。 ❌进程是在多程序并行环境中的完整的程序
~三级调度
下列关于处理机调度功能的描述错误的是( D )
A、作业调度的主要功能是根据某种算法从外存后备队列中选择合适的作业调入内存,并为其创建第一个进程
B、中程调度的主要功能是当内存紧张是挂起部分暂时不运行的进程,并在内存有空闲时激活部分被挂起的进程,以提高内存利用与和系统吞吐量
C、进程调度的主要功能是根据某种算法从就绪队列选择合适进程调度到处理机运行
D、作业调度是处理机调度中最基本最高级的调度,在所有类型的操作系统中都必须配置。
1、高级调度(作业调度)
按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竟争处理机的权利。
高级调度是辅存(外存)与内存之间的调度。每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,但调出的时机必然是作业运行结束才调出。
典型的作业可分为三个作业步:编译作业步->连续装配作业步->运行作业步。相当于我们的程序代码的整个执行步骤。
2、中级调度(内存调度)
为了使内存中的内存不至于太多,有时需要把某些进程从内存中调到外存。在内存使用情况紧张时,将一些暂时不能运行的进程从内存中对换到外存中等待。当内存有足够的空闲空间时,再将合适的进程重新换入内存。
3、低级调度(进程调度)
主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。并且保存处理机现场信息。进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;
如果系统中有内核态线程,则操作系统可以按线程进行调度。
I/O型进程 的优先级大于 计算型进程,因为不用yi z z
~信号量初值问题:
同步信号量的初值一般设为(0);
互斥信号量的初值一般设为 (1);
用P、V操作实现进程同步,信号量的初值为 (由用户确定)。(用P,V操作实现进程同步时,信号量的初值应根据具体情况来确定。若期望的消息尚未产生,则对应的初值应设为0;若期望的消息已存在,则信号量的初值应设为一个非0的正整数。)
~线程和进程
~管程:
下列关于管程的描述错误的是(C )
A、管程是一种同步机制
B、管程定义了一个数据结构和并发进程对其所能进行的一组操作
C、管程具有动态性,在进程调用后被撤销
D、管程实现了信息隐蔽
E、管程是一个可单独变异的基本程序单位,并发进程必须互斥使用
管程是资源管理模块,供进程调用不会被撤销
以下关于管程的叙述中,错误的是()。
以下关于管程的叙述中,错误的是()。
A、管程是进程同步工具,解决信号量机制大量同步操作分散的问题
B、管程每次只允许一个进程进入管程
C、管程中signal操作的作用和信号量机制中的V操作相同
D、管程是被进程调用的,管程是语法范围,无法创建和撤销
答案:C
管程的signal操作与信号量机制中的V操作不同,信号量机制中的V操作一定会改变信号量的值S=S+1。而管程中的signal操作是针对某个条件变量的,若不存在因该条件而阻塞的进程,则signal不会产生任何影响。
管程和进程的比较
虽然二者都定义了数据结构,但进程定义的是私有数据结构PCB,管程定义的是公共数据结构,如消息队列等;
二者都存在对各自数据结构上的操作,但进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作;
设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题;
进程通过调用管程中的过程对共享数据结构实行操作,该过程就如通常的子程序一样被调用,因而管程为被动工作方式,进程则为主动工作方式;
进程之间能并发执行,而管程则不能与其调用者并发;
进程具有动态性,由“创建”而诞生,由“撤消”而消亡,而管程则是操作系统中的一个资源管理模块,供进程调用。
为什么使用管程?
信号量机制是一种进程同步机制,但每个要访问临界资源的进程都必须自备同步操作wait(S)和signal(S)。这样大量同步操作分散到各个进程中,可能会导致系统管理问题和死锁,在解决上述问题的过程中,便产生了新的进程同步工具——管程。
进程和程序是既有联系又有区别。
主要区别:
1.程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。
2.程序的存在是永久的,而进程则是有生命的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。
3.程序仅是指令的有序集合。而进程则是由程序、数据和进程控制块组成。
4.进程与程序之间不是一一对应的,一个进程可以执行多个程序。
多进程的执行通过内存保护实现互不干扰,如页式管理中有页地址越界保护,段式管理中有段地址越界保护。
~死锁
死锁预防:
破坏请求和保持条件:静态分配法
破坏循环等待条件:顺序资源分配法
若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中,正确的是()。
Ⅰ、S1会限制用户申请资源的顺序,而S2不会
Ⅱ、S1需要进程运行所需的资源总量信息,而S2不需要
Ⅲ、S1不会给可能导致死锁的进程分配资源,而S2会
A、仅Ⅰ、Ⅱ
B、仅Ⅱ、Ⅲ
C、仅Ⅰ、Ⅲ
D、Ⅰ、Ⅱ、Ⅲ
答案:B
死锁的处理采用三种策略:死锁预防、死锁避免、死锁检测和解除。
死锁预防采用破坏产生死锁的4个必要条件中的一个或几个来防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,即限制了用户申请资源的顺序,因此Ⅰ的前半句属于死锁预防的范畴。
银行家算法是著名的死锁避免算法,其中的最大需求矩阵Max定义了每个进程对m类资源的最大需求量,系统在执行安全性算法中都会检查次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。在死锁的检测和解除中,系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除手段,因此Ⅱ、Ⅲ正确。
三、内存管理
~重定位
重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。它是实现多道程序在内存中同时运行的基础。重定位有两种,分别是动态重定位与静态重定位。
~非连续存储(分段,分页)
页式存储管理中,页表的始地址存放在()中。
页表的功能由一组专门的存储器实现,其始地址放在页表基址寄存器(PTBR)中。这样才能满足在地址变换时能够较快地完成逻辑地址和物理地址之间的转换。
某个操作系统对内存的管理采用页式存储管理方法,所划分的页面大小()。B、必须相同
引入段式存储管理方式,主要是为了满足用户的下列要求:方便编程、分段共享、分段保护、动态链接和动态增长。(不方便操作)
段页式的优点:用分页方法来管理物理存储空间。用分段方法来分配和管理用户地址空间。
不同点:
碎片:页内部碎片;段外部碎片。
大小不同:页的大小固定且由系统决定,而段的长度却不固定,由其所完成的功能决定。
地址空间: 页一维;段二维。段页式三维。
请求分页存储管理 就是为了解决内存容量不足而使用的方法,它基于局部性原理实现了以时间换取空间的目的。它的主要特点自然是间接扩充了内存。
适应于请求段的内存分配方法是( )。
段内存分配可以减少内部碎片,固定分区、首次适应均不能减少内部碎片。最佳适应和可变分区满足。
分段存储管理 有利于动态链接。
在请求分段存储管理中,分段的尺寸受内存空间的限制,但作业的总的尺寸不受内存空间的限制。
分段:不定长 连续 要注意段长度是不固定的,是段的内存地址一定是连续的。
分页:定长 可能连续可能不连续
可重定位分区分配方式也是属于连续分配方式的,解决了碎片问题。只是它在内存碎片很多而导致的程序不能放入内存时,进行“紧凑”(可能会移动原来的数据的,所以此时就需要重定位啦~紧凑完了,就能放进去啦~~)
~抖动
下面关于“抖动”的预防方法错误的是( )
A、采用全局置换策略
B、把工作集与进程调度相结合,给缺页率偏高的进程分配更多物理块
C、利用“L=S”准则调节缺页率
D、当缺页率偏高时,优先选择优先级低的进程暂停
A:应该采用局部。
下列存储分配方案可使系统抖动的是( )。
虚拟的方式都会产生抖动,其它则不会。
~临界区
下面关于临界区的描述错误的是(A )
A、临界区是内存中的一个特殊区域
B、临界区是进程访问临界资源的那段代码
C、在临界区之前设置进入区,以检查临界资源的状态并对其访问标志做出正确设置
D、在临界区之后设置退出区,用于释放被锁定的临界资源
临界区不是内存里的特殊区域,而是指一种特殊的程序执行环境,它提供了一种机制,可以保证对共享资源的互斥访问,以避免发生资源竞争冲突。临界区可以让多个程序并行地运行,而不会影响到彼此。
~利用率
CPU利用率从小到大
(1)手工操作没有操作系统,属于单道程序系统,大量的处理机时间被人工操作所浪费,因此CPU的利用率很低。
(2)单道批处理系统在一定程度上克服了手工操作的缺点,但仍属于单道程序系统,大量的CPU时间浪费在等待I/O操作的完成上。因此它的CPU利用率比手工操作的系统要高,但比多道程序系统要低。
(3)多用户分时系统是多道程序系统,具有交互性。但是程序的分时运行需CPU不断地在多个程序之间进行切换,这种切换需要占用CPU时间。
(4)多道批处理系统是多道程序系统,没有交互性。CPU在执行一道程序时一般切换到其他程序,只有在需要等待某种事件发生时,才切换到另一程序执行。因此,它的CPU切换次数远远低于分时系统,而CPU的有效利用率高于批处理系统。
用于交换空间的磁盘利用率已达97.7%,其他设备的利用率为5%,CPU的利用率为20%,说明在任务作业不多的情况下交换操作非常频繁,因此判断物理内存严重短缺。系统处于频繁的I/O换入/换出过程中,CPU处于空闲状态,利用率不高。与磁盘交换区速度和容量无关。
处理:加内存条,减少进程数。
有一个分页虚存系统,测得CPU 和磁盘的利用率如下,试指出每种情况下的存在问题和可采取的措施:( 1 ) CPU 利用率为13 % ,磁盘利用率为97 % ( 2 ) CPU 利用率为87 % ,磁盘利用率为3 % ( 3 ) CPU 利用率为13 % ,磁盘利用率为3 %。
答:( 1 )系统可能出现抖动,可把暂停部分进程运行。(2 )系统运行正常,可增加运行进程数以进一步提高资源利用率。(3 )处理器和设备和利用率均很低,可增加并发运行的进程数。
~虚拟存储器
虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的 虚拟内存的实际容量=min(内存和外存容量之和,CPU寻址范围)
~缓冲区
引入缓冲的主要原因包括:缓和CPU与I/O设备间速度不匹配的矛盾;根据对CPU的中断频率,放宽对中断时间的限制;提高CPU和I/O设备之间的并行性。所以采用缓冲技术,可减少对CPU的中断次数,从而提高系统效率。
各技术之间的比较:
~多道程序技术
引入多道程序的目的在于( 充分利用CPU,减少CPU等待时间 )
四、文件管理
JCB:作业控制块
PCB:进程控制块
TCB:线程控制块
FCB:文件控制块
从用户的角度看,文件系统主要是实现( 按名存取 )
2、链接分配
链接分配采取离散分配的方式,可以为文件分配离散的磁盘块,分为隐式链接和显式链接。
⑴隐式链接
目录中记录了文件存放的起始块号和结束块号,也可以增加一个字段表示文件的长度。除了文件的最后一个磁盘块之外,每个磁盘块中都会保存指向下一个盘块的指针,这些指针对用户来说是透明的。隐式链接的示意图如下图所示。
用户想要访问逻辑块号为 i 的块,需要从0号块一直访问到 i 号块,这样总共需要 i+1 次的磁盘 I/O。
隐式链式分配的方式下拓展文件,可以随便找一个空闲磁盘块,挂到文件的磁盘块链尾,并修改文件的 FCB。
隐式链式分配的优点:很方便文件拓展,不会有碎片问题,外存利用率高。
隐式链式分配的缺点:只支持顺序访问,不支持随机访问,查找效率低,而且指向下一个盘块的指针也需要耗费一定的存储空间。
⑵显式链接
把用于链接文件的各物理块的指针显式地存放在一张表中,这张表就叫做文件分配表(FAT,File Allocation Table)。一个磁盘仅设置一张 FAT,开机时会将 FAT 读入内存,并会常驻内存,FAT 的各个表项在物理上连续存储,且每一个表项长度相同,所以物理块号字段可以是隐含的。
下图所示的就是一个名为 aaa 的文件依次存放在磁盘块 2—>5—>0—>1。
显式链接分配方式逻辑块号转换成物理块号的过程不需要读磁盘操作。
显式链式分配的优点:既支持顺序访问,也支持随机访问;方便文件拓展,不会有碎片问题;外存利用率高;相比于隐式链接,地址转换不需要访问磁盘,因此文件访问效率更高。
显式链式分配的缺点:文件分配表需要占用一定的存储空间。
~空闲链表法
~位示图法
~成组链接法
~软链接和硬链接
软链接就是把到达共享文件的路径记录下来,当要访问文件时,根据路径寻找文件。 硬链接就是多个FCB的索引指针指向一个索引结点。
硬链接就是增加指向共享文件的索引节点,这样只要还有需要该共享文件的索引节点存在,该文件就无法关闭,另一种软链接是指,我给出一个路径,这个路径就是第一个打开该文件的索引节点的路径,但是这样做有个劣势在于如果该索引节点将该文件关闭,则余下以软链接连接到共享文件的方式全部失效。
拓展:软链接与硬链接的另一个区别在于,如果原始文件被删除或更改,则软链接将失效,但硬链接仍然有效,文件的链接数就 ➖ 1。软链接更容易创建,而硬链接需要更多的空间,因为它需要复制文件的实际位置。
五、I/O管理
~I/0系统分层
计算机网络
一、概述
~2种模型
在OSI中,为实现有效可靠数据传输,完成这项工作的层次是数据链路层。
在TCP/IP中,为实现有效可靠数据传输,完成这项工作的层次是传输层。
~总线形状
10BASE-2、10BASE-5 以太网采用的是 (总线型)拓扑结构。
10BASE-T以太网采用的是(星型)拓扑结构。
系统可靠性最高的网络拓扑结构是___网状型___。
~物理介质
双绞线传输介质是把两根导线绞在一起,这样可以减少 _ 信号之间的相互串扰_ 。
~各种网线距离
在10BASE-5中任意两节点之间的距离不会超过( 500)m。
使用5类UTP电缆的100Base-T,一根电缆的最大长度为(100 )m。
100Base-2也称细缆以太网,它的最长媒体段为 ( 185 ) m。
利用模拟通信信道传输数字信号的方法称为( 频带传输 )。
~通信方式
计算机网络通信采用同步和异步两种方式,但传送效率最高的是(同步方式 )。
同步通信与异步通信区别:
1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2.同步通信效率高;异步通信效率较低。
3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
4.同步通信可用于点对多点;异步通信只适用于点对点。
二、物理层
~信号转换
数字转模拟叫调制,模拟转数字叫解调
集线器是共享,交换机是平分。
具有5个10M端口的集线器的总带宽可以达到(10M)
三、数据链路层
~帧确认
停止等待协议 :一直等到才会继续发新的。
回退N帧协议 : 错误之后的全部重传。
选择重传协议 :只发错误的。
~MTU
对IP数据报进行分片的主要目的是()。适应各个物理网络不同的MTU长度
MTU是最大传输单元,用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。MTU是包或帧的最大长度,一般以字节记,如果过大在碰到路由器时会被拒绝转发,如果太小,因为协议一定要在包上加上包头,那实际传送的数据量就会过小。
“在常见的以太网中,mtu通常设置1500时,网速最快,而无线路由器的默认值网络通常为1492
~IP数据报
一个数据报划分为3个更小的数据报,以下说法正确的是()
对所有数据报,Identifier字段(标识符)均相同
~交换机
四、网络层
~TCP/IP协议
TCP/IP协议:最大传输单元MTU大小默认 1500
~UPD
UDP报文结构如下图所示:
报文首部非共同字段:序列号, TCP才有序列号,保证可靠。
~TCP
TCP报文结构如下图所示:
~IP数据报
IP数据报首部长度限制为60字节
在 IP 数据报中,与分组和重装无关的字段是( )。
A、总长度 B、标识 C、标志 D、片偏移
~IP地址
A类地址:1~126
B类地址:128~191
C类地址:192~223
私有地址
A类:10.0.0.0-10.255.255.255
B类: 172.16.0.0-172.31.255.255
C类:192.168.0.0-192.168.255.255
~面向连接和无连接
下列关于面向连接服务和无连接服务说法错误的是( )。
A、面向连接服务使用于数据量大、实时性要求高的场合
B、面向连接的服务的信道利用率高
C、无连接服务适合短报文的传输
D、无连接服务在数据传输过程中动态分配带宽
~数据报
在因特网中,IP数据报从源结点到目的结点W能需要经过多个网络和路由器。在整个传输过程中,IP数据报报头中的( )
源地址为发送地址,目的地址为最终接收端地址。在传输过程中,两者都不会变化。
~最大传送单元MTU
通常为1500字节,过长就要进行分片了。
MF=1表示后面还有分片的数据报
DF=0是表示允许分片
~RIP协议
RIP协议路由的更新报文发送典周期是( 30 )秒
RIP协议中
能解决路由环路问题的方法是( ) 水平分割、定义路由度量的最大值、触发更新
不能解决路由环路问题的方法是( ) 路由器重启 、毒性反转 、DV算法
~IPV4/6
IPv4的32位地址共40多亿个,IPv6的128位地址是IPv4地址总数的( 2^96 )倍。
IPv6每个地址占128位;MAC地址则为48位;
MAC帧的数据字段其长度在46到1500字节(最小长度64减去18字节的首部和尾部)
~NAT
动态NAT用来实现私有地址与公用网络地址之间的转换
动态NAT能够对内部主机起到一定的安全保护作用
动态NAT的提出为解决IP地址不足的问题提供了有效途径
静态NAT实现的是公用网络地址和内部地址一对一的映射
~VPN
VPN是虚拟专用网,所谓虚拟指的是公用公网网络线路,并提供了加密、认证和完整性等安全能力,可以有效降低在公共网络上传输数据的风险,即使信息被截获也不会泄密。
~ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
RARP(反过来):是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
~路由表
ARP表:主要是IP与MAC地址的映射,存在PC电脑中。
MAC表:主要是MAC地址和接口的映射,存在交换机中。转发过程中MAC的源地址和目的地址都会改变。
路由表:主要是IP地址网络部分与接口的映射,存在在路由表中
五、传输层
TCP/IP模型的分组:排序工作由传输层完成,而重组工作由网络层完成
UDP的首部只有8个字节;TCP则为20个字节
六、应用层
传输层与应用层的接口上所设置的端口是一个( 16 )位的地址
从协议分析角度出发,WWW 服务的第一步操作是浏览器对服务器的(请求域名解析 )。
需要记得默认数值
HTTP使用TCP作为它的支撑运输协议,端口80。
SMTP 使用TCP作为它的支撑运输协议,端口25。
FTP 使用TCP作为它的支撑运输协议,数据端口20,控制端口21。
DNS 使用UDP作为它的支撑运输协议,端口53。
最大传送单元MTU通常为1500字节,过长就要进行分片了。
IP数据报首部长度限制为60字节
IPv4首部:20字节
IPv6首部:40字节
TCP首部:20字节
UDP首部:8字节