试题1:现有的操作系统对进程状态的定义不尽相同,有的还引入了挂起(suspend)状态。试简要分析挂起状态的意义。
试题2:下述关于双进程临界区问题的算法(对编号为id的进程)是否正确:
do{
blocked[id]=true;
while(turn !=id)
{
while(blocked[1-id])
turn=id;
}
编号为id的进程的临界区
blocked[id]=false;
编号为id的进程的非临界区
}while(true);
其中,布尔型数组blocked[2]初始值为{false,false},整型turn初始值为0,id代表进程编号(0或1)。请说明它的正确性,或指出错误所在。
试题3:信号量如果只能取0或1为值,就变成了二元信号量。二元信号量更容易实现。而且,信号量可以由二元信号量替换。以下所列函数试图用二元信号量操作waitB()和signalB()替换信号量wait()、signal():
wait(semaphore s)
{
waitB(mutex);
s=s-1
{
signalB(mutex);
waitB(delay);
}
else
signalB(mutex);
}
其中,用于互斥的二元信号量mutex初始化为1,用于进程挂起的二元信号量dealy初始化为0。请指出该替换算法的错误所在。
试题4:已知某系统页面长4K字节,页表项4字节,采用多层分页策略映射64位虚拟地址空间。叵限定最高层页表占1页,问它可以采用几层分页策略。
试题5:一进程已分配到4个页帧(page frame),如下表(所有数字都为10进制数,且以0开始)。
试题1:现有的操作系统对进程状态的定义不尽相同,有的还引入了挂起(suspend)状态。试简要分析挂起状态的意义。
试题2:下述关于双进程临界区问题的算法(对编号为id的进程)是否正确:
do{
blocked[id]=true;
while(turn !=id)
{
while(blocked[1-id])
turn=id;
}
编号为id的进程的临界区
blocked[id]=false;
编号为id的进程的非临界区
}while(true);
其中,布尔型数组blocked[2]初始值为{false,false},整型turn初始值为0,id代表进程编号(0或1)。请说明它的正确性,或指出错误所在。
试题3:信号量如果只能取0或1为值,就变成了二元信号量。二元信号量更容易实现。而且,信号量可以由二元信号量替换。以下所列函数试图用二元信号量操作waitB()和signalB()替换信号量wait()、signal():
wait(semaphore s)
{
waitB(mutex);
s=s-1
{
signalB(mutex);
waitB(delay);
}
else
signalB(mutex);
}
其中,用于互斥的二元信号量mutex初始化为1,用于进程挂起的二元信号量dealy初始化为0。请指出该替换算法的错误所在。
试题4:已知某系统页面长4K字节,页表项4字节,采用多层分页策略映射64位虚拟地址空间。叵限定最高层页表占1页,问它可以采用几层分页策略。
试题5:一进程已分配到4个页帧(page frame),如下表(所有数字都为10进制数,且以0开始)。
虚拟页号 页帧 装入时间 最近访问时间 记问位 修改位
2 0 60 161 0 1
1 1 130 160 0 0
0 2 26 162 1 0
3 3 20 163 1 1
当进程访问第4页时,产生缺页中断。请分别用FIFO(先进先出)、LRU(最近最少使用)、NRU(最近不用)算法,决定缺页中断服务程序选择换出的页面。
试题6:现代操作系统必须支持多种文件系统类型(如CD-ROM的ISO9660、DOS的FAT等)。若要求用如下所示的file_system_type结构描述文件系统类型,用vfsmount结构描述一个已安装(mount)的文件系统:
struct file_system_type {
struct super_block *(*read_super) (struct super_block *, void *, int);
/* read_super所指的函数用于读出该文件系统在外存的超级块 */
const char *name; /*所描述文件系统的类型名,如FAT */
int requires_dev; */支持文件系统的设备 */
struct file_system_type * next; */指向另一种文件系统类型 */
};
struct vfsmount{
kdev_t mnt_dev; /* 文件系统所在设备的主设备号、次设备号*/
char *mnt_devname; /*设备名,如/dev/hdal */
unsigned int mnt_flage; /*安装目录名称 */
struct semaphore mnt_sem; /*设备标志,如ro */
struct super_block *mnt_sb; /*对设备I/O操作时的信号量 */
struct file *mnt_quotas[MAXQUOTAS]; /*指向超级块 */
struct file *mnt_quotas[MAXQUOTAS]; /* 指向配额文件的指针 */
time_t mnt_iexp[MAXQUOTAS]; /*inode有效期 */
time_t mnt_bexp[MAXQUOTAS]; /*数据块有效期 */
struct vfsmount *mnt_next; /*指向另一个已注册的文件系统 */
};
式设计一套数据结构,以描述一操作系统已经安装的文件系统及其类型(答题时,如已知条件不够,请作必要补充)。
《计算机组成》部分试题
1.CPU结构如图所示,其中有一个累加寄存器AC,一个状态寄存器和其他四个寄存器,各部分之间的连线表示数据通路,箭头表示传送方向。
1)、标明图中四个寄存器的名称:
2)简述指令从主存取到控制器的数据通路;
3)简述数据在运算器和主存之间进行存取访问的数据通路
2、假设有一具有4个过程段的流水线浮点加法器,每个过程段所需的时间为:
(1) 求阶差T1=60ns;(2) 对价T2=50ns;(3) 相加T3=90ns;(4) 规格化T4=80ns;
(5) 缓冲寄存器R的延时TR=10ns
1)、求该4级流水线加法器的加速比为多少?2)、如果每个过程段的时间都相同,即都为75ns(包括缓冲寄存器时间),求加速比是多少
3、选择题
1)用n+1位字长(含一位符号位)表示原码定点整数时,所能表示的数值范围是 ;用n+1位字长(含一位符号位)表示原码定点小数时,所能表示的数值范围是 ;
A、0≤|N|≤2n B、0≤|N|≤2n+1-1 C、1≤|N|≤2n-1-1
D、1≤|N|≤2n-1 E、0≤|N|≤1-2-n F、0≤|N|≤1-2-(n-1)
2)采用DMA方式传送数据时,每传送一个数据时就要占用 的时间。
A、一个指令周期;B、一个机器周期;C、一个存储周期;D、一个总线周期;
3)存储周期是 。
A、存储器的读出时间;B、存储器的写入时间;
C、存储器进行连续两次存储操作所需间隔的最小时间;D、存储器的读出和写入时间的平均值;
4)同步控制是 。
A、只适合于CPU控制的方式;B、只适合于外部设备控制的方式;
C、由统一时序信号控制的方式;D、所有指令执行时间都相同的方式;
5)指令周期是 。
A、CPU从主存取出一条指令的时间;B、CPU执行一条指令的时间;
C、时钟周期时间;D、CPU从主存取出一条指令加上执行一条指令的时间;
4、已知Y=-0.0101,机器数据用双符号表示。(1)、求[Y]补;(2)、求 补;(3) 某 补。
5、某机访内指令格式如下,PC为程序计数器,OP为操作码,Ri为寄存器号,I为间接标志,X为寻址模式,D为形式地址,请在下表最后一栏中填入寻址方式名称。
0 1 2 3 4 5 6 7 8 15
OP Ri I X D
I X 有效地址 寻址方式名称
0 00 E=D
0 01 E=PC+D
0 10 E=R2+D
0 11 E=R3
1 00 E=(D)
1 01 E=(PC+D)
1 10 E=(R2)
1 11 E=(R3+D)
6、下图为一处理机的结构图,各部件上注明了微操作所对应的微命令,试用这些微命令描述以下三条机器指令的工作流程(包托取指令和执行指令)(15分)(注:I为间接访问,D1-D3形式地址)
指令助记忆符
ADD AC,D1 ST AC,I,D2 JMP D3 JMP D3
功能描述
(AC)+(D1)>AC (AC)>((D2))
转到D3单元执行
· | 2022考研复试联系导师有哪些注意事 | 04-28 |
· | 2022考研复试面试常见问题 | 04-28 |
· | 2022年考研复试面试回答提问方法有 | 04-28 |
· | 2022考研复试怎么缓解缓解焦虑心态 | 04-27 |
· | 2022年考研复试的诀窍介绍 | 04-27 |
· | 2022年考研复试英语如何准备 | 04-26 |
· | 2022年考研复试英语口语常见句式 | 04-26 |
· | 2022年考研复试的四个细节 | 04-26 |
· | 2022考研复试准备:与导师及时交流 | 04-26 |
· | 2022考研复试面试的综合技巧 | 04-26 |