【操作系统不挂科】操作系统期末考试卷<2>(单选题&简答题&计算与分析题&程序分析题&应用题)
前言
大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
目录
- 一、单项选择题(每空2分,共40分)
- 1.以下选项中,( )不是操作系统关心的主要问题。
- 2.操作系统中采用多道程序设计技术提高了 CPU 和外部设备的( )。
- 3. ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
- 4. 当 CPU 处于内核态时,它可以执行的指令是( )。
- 5. 下列选项中,在内核态执行的是( )
- 6. 某个运行中的进程要申请打印机,它将变为( )。
- 7. 下列选项中,导致创建新进程的操作是( )。Ⅰ. 用户登录成功 Ⅱ. 设备分配 Ⅲ. 启动程序执行
- 8. 若信号量 S 的初值为 3,当前值为-2,则表示有( )等待进程。
- 9. 在 Linux 系统中,若新建文件 A,随后文件 B 和 C 分别硬链接和软链接到 A,A 文件 i-node节点中的计数是( )。
- 10. 把作业空间中使用的逻辑地址变为内存中物理地址称为( )。
- 11. 下列( )存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。
- 12. 下列( )项不是分段较分页内存管理的优势。
- 13. 作业在执行中发生缺页中断,经操作系统处理后,应让其执行( )指令。
- 14. 某计算机主存地址空间大小为 256MB,按字节编址。虚拟地址空间大小为 4GB,采用页式存储管理,页面大小为 4KB,TLB(快表)有 4 个页表项,内容如下表所示。则对虚拟地址 03FF F180H 进行虚实地址变换的结果是( )。
- 15. 用户程序发出磁盘 I/O 请求后,系统的正确处理流程是( )。
- 16. 在采用 SPOOLing 技术的系统中,用户的打印结果首先被送到( )。
- 17. 在同一个进程的多个线程之间,下例哪项是不会被共享的?( )
- 18. 一组合作进程,执行顺序如图所示。若用信号量上的 P、V 操作算法实现进程间的同步操作,则最少需要( )信号量。
- 19. 某计算机系统中有11台打印机,由K个进程竞争使用,每个进程最多需要3台打印机,该系统不可能会发生死锁的K的最大值是( )。
- 20. 假设一个Linux系统已经在/path路径下挂载了一个文件系统。那么一个应用程序为了读取/dir1/dir2/file的第一个字节,必须额外访问( )个磁盘块。
- 二、简答题(每小题4分,共12分)
- 1、简述进程与线程的关系和区别。
- 2、简述下图虚拟内存管理典型页表项各域的作用。
- 3、死锁的四个必要条件是什么?为了解决哲学家就餐问题的死锁,试给出至少两种解决方案,并指出破坏了死锁必要条件中的哪个条件?
- 三、计算与分析题(1-3 每题 4 分,4-5 每题 3 分,共 18 分)
- 1、当前磁盘读写位于柱面号 10,初始向小磁道方向移动。此时有多个磁盘请求以下列柱面号顺序送至磁盘控制器:2、12、11、18、14、4、1、6。在寻道时,移动一个柱面需要3ms,按 LOOK 磁头臂调度算法,指出寻道次序并计算所需总的寻道时间。
- 2、从磁盘将一块数据传送到缓冲区所用时间为 120us,将缓冲区中数据传送到用户区所用时间为 50us,CPU 处理一块数据所用时间为 10us。如果有多块数据需要处理,并分别采用单缓冲区和双缓冲区结构传送某磁盘数据,则处理一块数据平均各需多少时间?给出计算过程。
- 3、假定有 2 个进程,每个进程花费 80%的时间进行 I/O,20%的时间使用 CPU,每个进程启动时间和其需要进行计算的分钟数如下,不考虑进程切换时间,在多线程/进程环境下,系统的总响应时间是多少?给出求解过程。
- 4、FAT 文件系统的中有两个文件 FILE1 和 FILE2。首块编号和 FAT 表如下所示。回答下列问题:1)假定磁盘块的大小是 4KB,则两个文件最大是多少?2)FILE1 最小是多少字节?
- 5、在 UNIX 操作系统中,给文件分配磁盘块采用的是混合索引分配方式。文件的索引结点(i-node)中具有 12 个直接块地址(每个直接块地址都直接指向一个数据块),以及一级、二级和三级间接索引。每个索引块和数据块的大小均为 8KB,块地址长度为 4 个字节。请回答:1)文件的大小是多大时,可以只用到索引结点的直接块?2)若一个文件大小为 100KB,不计目录项,请问该文件占用多大的磁盘空间?
- 四、程序分析题(每小题 2 分,共 10 分)
- 1、分析下列实现二个线程互斥的代码。哪个线程会先进入临界区?这种方案存在什么问题?
- 2、指出下列实现互斥的 Peterson 解决方案中存在的错误。
- 3、指出下列生产者-消费者问题代码中存在的错误。
- 4、分析下列代码,共创建了多少个进程(包括运行程序本身的进程)?
- 5、下列创建线程的代码中,运行到标号 1、2 和 3 时,从当前代码判断存在几个线程?
- 五、综合应用题(每小题 6 分,共 18 分)
- 1、有如下一组进程,其就绪时刻(指在该时刻已经在就绪队列中就绪)、CPU 执行时间如下表所示。若分别采用先来先服务、短作业优先和轮转(时间片=1)调度算法,画出各自的 Gantt图,回答每种调度算法的平均周转时间和平均等待时间。
- 2、某请求页式存储管理允许用户空间为 32 个页面(每页 1KB),物理内存为 16KB,如有一个用户程序有 10 页长,且某时刻该用户进程的页表如下所示(其中“not valid”指该页不在物理内存中,数值均按十进制提供)。回答下列问题:1)指定页需要多少位?物理内存有多少块?2)如果程序执行时遇到以下两个虚拟地址(十六进制):0AC5H、1AC5H,试计算它们对应的物理地址。3)页表存放在内存中,对内存的一次存取需要 1.5us,对 TLB 的查找时间忽略。试问上题中的两个地址访问共耗费多少时间?
- 3、考虑下面的页面引用串:3、2、3、1、4、3、5、4、2、3、4、3假设使用 3 个帧的请求调页,分别采用先进先出(FIFO)、最近最少使用(LRU)、时钟(CLOCK)三种页面置换算法,在下表中填写各算法物理帧的内容,回答缺页次数并计算缺页率。
一、单项选择题(每空2分,共40分)
1.以下选项中,( )不是操作系统关心的主要问题。
A.管理计算机裸机
B. 设计、提供用户程序与计算机硬件系统的界面
C. 管理计算机系统资源
D. 高级程序设计语言的编译器
- D
2.操作系统中采用多道程序设计技术提高了 CPU 和外部设备的( )。
A. 利用率
B. 可靠性
C. 稳定性
D. 兼容性
- A
3. ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
A. 集群
B. 分布式
C. 分时
D. 实时
- C
4. 当 CPU 处于内核态时,它可以执行的指令是( )。
A. 只有特权指令
B. 只有非特权指令
C. 计算机中的所有指令
D. 都不对
- C
5. 下列选项中,在内核态执行的是( )
A. Shell(如 Bash)
B. 任务管理器
C. 进程调度程序
D. 从用户态切换到内核态
- C
6. 某个运行中的进程要申请打印机,它将变为( )。
A. 就绪态
B. 阻塞态
C. 创建态
D. 僵尸态
- B
7. 下列选项中,导致创建新进程的操作是( )。Ⅰ. 用户登录成功 Ⅱ. 设备分配 Ⅲ. 启动程序执行
A.仅Ⅰ和Ⅱ
B. 仅Ⅱ和Ⅲ
C. 仅Ⅰ和Ⅲ
D. Ⅰ、Ⅱ、Ⅲ
C
8. 若信号量 S 的初值为 3,当前值为-2,则表示有( )等待进程。
A. 2 个
B. 3 个
C. 4 个
D. 5 个
- A
9. 在 Linux 系统中,若新建文件 A,随后文件 B 和 C 分别硬链接和软链接到 A,A 文件 i-node节点中的计数是( )。
A. 0
B. 1
C. 2
D. 3
- C
10. 把作业空间中使用的逻辑地址变为内存中物理地址称为( )。
A.加载
B. 重定位
C. 物理化
D. 逻辑化
- B
11. 下列( )存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。
A. 固定分区
B. 可变分区
C. 分页管理
D. 段页式管理
- C
12. 下列( )项不是分段较分页内存管理的优势。
A. 地址转换
B. 保护
C. 共享
D. 缓存
- A
13. 作业在执行中发生缺页中断,经操作系统处理后,应让其执行( )指令。
A. 被中断的前一条
B. 被中断的那一条
C. 被中断的后一条
D. 启动时第一条
- B
14. 某计算机主存地址空间大小为 256MB,按字节编址。虚拟地址空间大小为 4GB,采用页式存储管理,页面大小为 4KB,TLB(快表)有 4 个页表项,内容如下表所示。则对虚拟地址 03FF F180H 进行虚实地址变换的结果是( )。
A.015 3180H
B. 003 5180H
C. TLB 缺失
D. 缺页
- A
15. 用户程序发出磁盘 I/O 请求后,系统的正确处理流程是( )。
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
D.用户程序→设备驱动程序→中断处理程序→系统调用处理程序
- B
16. 在采用 SPOOLing 技术的系统中,用户的打印结果首先被送到( )。
A.磁盘固定区域
B. 内存固定区域
C. 终端
D. 打印机
- A
17. 在同一个进程的多个线程之间,下例哪项是不会被共享的?( )
A. 全局变量
B. 局部变量
C. 静态变量
D. 打开的文件
- B
18. 一组合作进程,执行顺序如图所示。若用信号量上的 P、V 操作算法实现进程间的同步操作,则最少需要( )信号量。
A. 6
B. 7
C. 8
D. 9
- C
19. 某计算机系统中有11台打印机,由K个进程竞争使用,每个进程最多需要3台打印机,该系统不可能会发生死锁的K的最大值是( )。
A. 3
B. 4
C. 5
D. 6
- C
20. 假设一个Linux系统已经在/path路径下挂载了一个文件系统。那么一个应用程序为了读取/dir1/dir2/file的第一个字节,必须额外访问( )个磁盘块。
A. 5
B. 6
C. 7
D. 8
- C
二、简答题(每小题4分,共12分)
1、简述进程与线程的关系和区别。
- 线程是进程内的一个执行单元(或可调度的实体)
- 一个进程至少有一个线程
- 线程不能单独运行,只能包含在进程中执行
- 线程与进程一样有生命期及执行的上下文
- 线程共享进程的所有资源
- 进程创建时,同时建立第一个线程
- 同一进程的线程切换不会引起进程切换,不同进程的线程切换,会引起进程切换
- 进程内所有线程结束时,进程结束
2、简述下图虚拟内存管理典型页表项各域的作用。
- 答案:
3、死锁的四个必要条件是什么?为了解决哲学家就餐问题的死锁,试给出至少两种解决方案,并指出破坏了死锁必要条件中的哪个条件?
- 答案:
死锁的四个必要要求:互斥条件、占有和等待条件、不可抢占条件、循环等待条件
解决方案:
- 增加(5 根)筷子:破坏互斥条件
- 同时拿两根筷子:破坏占有和等待条件
- 筷子集中到一起:破坏占有和等待条件或循环等待条件
三、计算与分析题(1-3 每题 4 分,4-5 每题 3 分,共 18 分)
1、当前磁盘读写位于柱面号 10,初始向小磁道方向移动。此时有多个磁盘请求以下列柱面号顺序送至磁盘控制器:2、12、11、18、14、4、1、6。在寻道时,移动一个柱面需要3ms,按 LOOK 磁头臂调度算法,指出寻道次序并计算所需总的寻道时间。
- 柱面访问顺序:(10)–6–4–2–1–11—12–14–18
移动距离:(10-1)+(18-1)=26
总寻道时间:26*3=78ms
2、从磁盘将一块数据传送到缓冲区所用时间为 120us,将缓冲区中数据传送到用户区所用时间为 50us,CPU 处理一块数据所用时间为 10us。如果有多块数据需要处理,并分别采用单缓冲区和双缓冲区结构传送某磁盘数据,则处理一块数据平均各需多少时间?给出计算过程。
- 1)单缓冲区:
(120+50+10)-10=170us
2)双缓冲区:
(120+50+10)-50-10=120us
3、假定有 2 个进程,每个进程花费 80%的时间进行 I/O,20%的时间使用 CPU,每个进程启动时间和其需要进行计算的分钟数如下,不考虑进程切换时间,在多线程/进程环境下,系统的总响应时间是多少?给出求解过程。
4、FAT 文件系统的中有两个文件 FILE1 和 FILE2。首块编号和 FAT 表如下所示。回答下列问题:1)假定磁盘块的大小是 4KB,则两个文件最大是多少?2)FILE1 最小是多少字节?
FILE1 分配块:2–>3–>6–>8,共 4 块。
FILE2 分配块:7,共 1 块
1) FILE1 最大:44KB=16KB;
FILE2 最大:14KB=4KB
2)FILE1 最小:34KB+1B=131024+1=3073B
5、在 UNIX 操作系统中,给文件分配磁盘块采用的是混合索引分配方式。文件的索引结点(i-node)中具有 12 个直接块地址(每个直接块地址都直接指向一个数据块),以及一级、二级和三级间接索引。每个索引块和数据块的大小均为 8KB,块地址长度为 4 个字节。请回答:1)文件的大小是多大时,可以只用到索引结点的直接块?2)若一个文件大小为 100KB,不计目录项,请问该文件占用多大的磁盘空间?
1)文件小于:10*4KB=40KB
2)文件数据占 13 块,i-node 占 1 块,一级间接索引占 1 块,共 13+1+1=15 块。
四、程序分析题(每小题 2 分,共 10 分)
1、分析下列实现二个线程互斥的代码。哪个线程会先进入临界区?这种方案存在什么问题?
1)B 线程先进临界区
2)处于非临界区的线程执行会阻塞想进入临界区的线程。
2、指出下列实现互斥的 Peterson 解决方案中存在的错误。
线程 0 中:
while(flag[1] || turn == 1) ; 改为:while(flag[1] && turn == 0);
flag[1]=FALSE;改为 flag[0]=FALSE;
线程 1 中:while(flag[0] || turn==0); 改为:while(flag[0] && turn == 1);
flag[0]=FALSE;改为 flag[1]=FALSE;
3、指出下列生产者-消费者问题代码中存在的错误。
生产者中:up(&full);up(&mutex);改为:up(&mutex);up(&full);
消费者中:up(&empty ;up(&mutex);改为:up(&mutex);up(&empty);
4、分析下列代码,共创建了多少个进程(包括运行程序本身的进程)?
6 个
5、下列创建线程的代码中,运行到标号 1、2 和 3 时,从当前代码判断存在几个线程?
标号 1: 1 线程
标号 2: 2 线程
标号 3: 1 线程
五、综合应用题(每小题 6 分,共 18 分)
1、有如下一组进程,其就绪时刻(指在该时刻已经在就绪队列中就绪)、CPU 执行时间如下表所示。若分别采用先来先服务、短作业优先和轮转(时间片=1)调度算法,画出各自的 Gantt图,回答每种调度算法的平均周转时间和平均等待时间。
- 答案:
2、某请求页式存储管理允许用户空间为 32 个页面(每页 1KB),物理内存为 16KB,如有一个用户程序有 10 页长,且某时刻该用户进程的页表如下所示(其中“not valid”指该页不在物理内存中,数值均按十进制提供)。回答下列问题:1)指定页需要多少位?物理内存有多少块?2)如果程序执行时遇到以下两个虚拟地址(十六进制):0AC5H、1AC5H,试计算它们对应的物理地址。3)页表存放在内存中,对内存的一次存取需要 1.5us,对 TLB 的查找时间忽略。试问上题中的两个地址访问共耗费多少时间?
3、考虑下面的页面引用串:3、2、3、1、4、3、5、4、2、3、4、3假设使用 3 个帧的请求调页,分别采用先进先出(FIFO)、最近最少使用(LRU)、时钟(CLOCK)三种页面置换算法,在下表中填写各算法物理帧的内容,回答缺页次数并计算缺页率。
- 答案: