2020 操作系统(哈尔滨工业大学) 最新满分章节测试答案
本答案对应课程为:点我自动跳转查看
本课程起止时间为:2020-02-10到2020-06-30
本篇答案更新状态:已完结
操作系统基础 章节测试
1、 问题:要想顺利启动系统,bootsect.s必须让在磁盘的固定位置上,这个工作是由谁完成的?()
选项:
A:ls
B:ld
C:vi
D:gcc
E:makefile
答案: 【makefile】
2、 问题:启动保护模式以后,指令jmpi 0, 8执行和没有启动保护模式有何区别?()
选项:
A:得出跳转地址的方式不一样
B:没有区别
C:指令的编码格式不一样
D:跳转后的地址肯定不一样
答案: 【得出跳转地址的方式不一样】
3、 问题:在setup中获取内存大小这一个硬件参数的目的是什么?()
选项:
A:为后面的内存管理做准备
B:为读入内核计算内存的大小
C:为GDT表的初始化做准备
D:没有目的
答案: 【为后面的内存管理做准备】
4、 问题:在屏幕上打出“Loading System…”等系统Logo的时候,计算机内部没有正在做什么?()
选项:
A:读磁盘
B:启动保护模式
C:初始化中断处理程序的地址
D:等待用户输入指令
答案: 【等待用户输入指令】
5、 问题:Windows系统启动和Linux系统启动时,下面哪项工作最不一样?()
选项:
A:初始化内核数据结构
B:打印Logo
C:读入内核
D:获取硬件参数
答案: 【打印Logo】
6、 问题:针对课程中的系统启动实例,下面哪个顺序是对的?()
选项:
A:BIOS, bootsect, init, setup
B:BIOS, bootsect, setup, init
C:BIOS, setup, bootsect, init
D:BIOS, init, bootsect, setup
答案: 【BIOS, bootsect, setup, init】
7、 问题:根据GDT表,jmpi 0, 8要跳到0地址处去执行,那么能不能执行jmp 0来实现同样的跳转呢?为什么?()
选项:
A:也可能,但首先要设置cs,并且要保证cs指向的那个GDT表项中的基地址为0
B:能,因为jmp 0会跳到0地址处去执行
C:不能,jmp 0不查GDT表
D:不能,因为jmp 0是非法指令
答案: 【也可能,但首先要设置cs,并且要保证cs指向的那个GDT表项中的基地址为0】
8、 问题:针对下面的makefile,最后执行的是哪条指令?()all: a b c ld a b c –o imagea:a.c gcc a.c –o ab:b.c gcc b.c –o bc:c.c gcc c.c –o c
选项:
A:gcc b.c -o b
B:ld a b c –o image
C:gcc c.c –o c
D:gcc a.c –o a
答案: 【ld a b c –o image】
9、 问题:下面哪项工作不是操作系统启动要完成的工作?()
选项:
A:检查硬件设备是否正常
B:初始化LDT表
C:获取硬件参数
D:读入操作系统内核
答案: 【检查硬件设备是否正常】
10、 问题:mem_init就是初始化一个数组,下面哪个论述不对?()
选项:
A:如果某个数组项中的内容为0,则表示对应的那一段内存空闲
B:mem_init调用之前可以不获得物理内存的大小
C:初始化时将所有数组项中的内容都设置为0
D:数组中的每个项用来表示内存中一段固定大小的内存
答案: 【mem_init调用之前可以不获得物理内存的大小】
11、 问题:用户程序调用printf(“Hello World!”)最终要通过写显存来完成Hello World!的输出,给出从用户程序到写显存中间经过的顺序。()
选项:
A:用户程序;sys_write;C函数库;系统调用;写显存
B:用户程序;C函数库;系统调用;sys_write;写显存
C:用户程序;系统调用;C函数库;sys_write;写显存
D:用户程序;C函数库;sys_write;系统调用;写显存
答案: 【用户程序;C函数库;系统调用;sys_write;写显存】
12、 问题:为什么要将程序的执行分为用户态和内核态?()
选项:
A:保护用户程序不被随意修改
B:保护操作系统内核
C:不让用户程序执行某些指令
D:一个用户程序不能干扰另一个用户程序
答案: 【保护操作系统内核】
13、 问题:在系统调用的实现中,在int 0x80指令调用之前,给eax赋值的目的是什么?()
选项:
A:表示是0x80号中断,而不是别的中断
B:将来区分是哪个系统调用
C:传递返回值
D:传递参数
答案: 【将来区分是哪个系统调用】
14、 问题:为什么要命名为系统调用,下面哪个理由不对?()
选项:
A:为了和其他的函数调用相区别
B:最终调用了操作系统提供的功能
C:具体表现为一个函数调用
D:直接跳转到内核中的一个函数
答案: 【直接跳转到内核中的一个函数】
15、 问题:鼓励操作系统实现POSIX接口的真正目的是什么?()
选项:
A:让操作系统变得统一
B:和Windows竞争
C:推广UNIX
D:上层应用程序可以移植
答案: 【上层应用程序可以移植】
16、 问题:printf(“Hello World!”)中字符串“hello World!”最终是如何传递给sys_write函数的?()
选项:
A:通过一段共享内存完成的
B:直接通过栈完成的
C:直接通过寄存器完成的
D:通过寄存器找到用户态内存区中该字符串的起始地址,然后利用FS段寄存器找到并读入的
答案: 【通过寄存器找到用户态内存区中该字符串的起始地址,然后利用FS段寄存器找到并读入的】
17、 问题:应用程序中的系统调用为什么要展开成一段包含int 0x80的代码?()
选项:
A:展开成jmp指令也可以,此处只是选择int指令而已
B:int 0x80是唯一能从CPL=3(用户态)到CPL=0(内核态)的指令跳转
C:为了代码的可读性更好
D:为了代码的可重用性
答案: 【int 0x80是唯一能从CPL=3(用户态)到CPL=0(内核态)的指令跳转】
18、 问题:下面哪个不是系统调用?()
选项:
A:write
B:open
C:fork
D:exec
E:printf
答案: 【printf】
19、 问题:Windows的系统接口和Linux接口的不一样导致了什么样的结果?()
选项:
A:Linux和Windows之间不能通过网络传输文件
B:Windows中的文件在Linux中打不开
C:Windows上的程序不能在Linux上运行
D:Windows系统和Linux系统不能同时安装到一台机器上
答案: 【Windows上的程序不能在Linux上运行】
20、 问题:在Linux上添加一个系统调用foo()的步骤,下面哪个步骤是不对的?()
选项:
A:将foo展开成一段包含int 0x80的代码
B:设置int 0x80的中断处理程序入口地址
C:在系统内核中实现sys_foo()函数
D:在int 0x80的中断处理程序中增加对sys_foo的函数调用
答案: 【设置int 0x80的中断处理程序入口地址】
进程与线程 章节测试
1、 问题:下面哪种死锁处理策略代价最小?()
选项:
A:死锁预防
B:死锁避免
C:死锁检测+恢复
D:死锁忽略
答案: 【死锁忽略】
2、 问题:下面哪种死锁处理策略引入的不合理因素最严重?()
选项:
A:死锁预防
B:死锁避免
C:死锁检测+恢复
D:死锁忽略
答案: 【死锁预防】
3、 问题:为什么进程切换的代价要比线程切换要大?()
选项:
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦