前言
大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
一、单项选择题(每空2分,共40分)
1.操作系统是提供了处理机管理、内存管理、( )管理和设备管理的软件。
A. 用户
B. 软件
C. 数据
D. 文件
2.多道程序设计技术是指( )。
A. 在实时系统中并发运行多个程序
B. 在分布系统中同一时刻运行多个程序
C. 在一台处理机上同一时刻运行多个程序
D. 在一台处理机上并发运行多个程序
3.( )不是设计实时操作系统主要追求的目标。
A. 安全可靠
B. 及时响应
C. 资源利用率
D. 快速处理
4.操作系统的不确定性是指( )。
A. 程序运行结果的不确定性
B. 程序运行次序的不确定性
C. 程序中线程个数的不确定性
D. 都不对
5. 下列选项中,在用户态执行的是( )
A. 进程调度程序
B. 缺页中断程序
C. Shell(如 Bash)
D. 定时器
6. 以下不属于衡量操作系统性能指标的是( )。
A. 作业的大小
B. 资源利用率
C. 吞吐量
D. 周转时间
7. 以下关于父进程和子进程的叙述中,正确的是( )。
A. 父进程创建了子进程,因此父进程运行完了,子进程才能运行
B. 父进程和子进程可以并发执行
C. 撤销子进程时,应该同时撤销父进程
D. 撤销父进程时,应该同时撤销子进程
8. 若信号量 S 的初值为 3,当前值为-1,则表示有( )等待进程。
A.0 个
B. 1 个
C. 2 个
D. 3 个
9. 在 Linux 系统中,若新建文件 A,随后文件 B 和 C 分别硬链和软链接到 A,A 文件的在 inode 节点中的计数是( )。
A.1
B. 2
C. 3
D. 都不对
10. 为了保证一个程序在主存中改变了存放位置之后仍能正确执行,则对主存空间应采用( )技术。
A. 静态重定位
B. 动态重定位
C. 动态分配
D. 静态分配
11. 把一个分区的存储管理技术用于系统时,可采用( )让多用户进程轮流进入主存储器执行。
A.存储技术
B.虚拟存储技术
C.覆盖技术
D.交换技术
12. 采用分段存储管理的系统中,若地址用 24 位表示,其中 8 位表示段号,则允许每段的最大长度是( )。
A.28
B.216
C.224
D.232
13. 在请求页式存储管理中,页表项中使用修改位的目的是( )。
A. 实现 LRU 置换算法
B. 实现 FIFO 算法
C. 在快表中检查页面是否进入
D. 检查页面是否最近被写过
14. 某计算机主存地址空间大小为 256MB,按字节编址。虚拟地址空间大小为 4GB,采用页式存储管理,页面大小为 4KB,TLB(快表)有 4 个页表项,内容如下表示。则对虚拟地址 03FF F180H 进行虚实地址变换的结果是( )。
有效位 标记 页框号
0 FF180H 0002H
1 3FFF1H 0035H
0 02FF3H 0351H
1 03FFFH 0153H
A.015 3180H
B. 003 5180H
C. TLB 缺失
D. 缺页
15. 用户程序发出磁盘 I/O 请求后,系统的正确处理流程是( )。
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
C.用户程序→设备驱动程序→中断处理程序→系统调用处理程序
D.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
16. 操作系统中的 SPOOLing 技术,实质是将( )转化为共享设备的技术。
A. 共享设备
B. 独占设备
C. 脱机设备
D. 块设备
17. 在同一个进程的多个线程之间,下例哪项是不会被共享的?( )
A. 全局变量
B. 静态变量
C. 局部变量
D. 打开的文件
18. 一组合作进程,执行顺序如图所示。若用信号量上的P、V操作算法实现进程间的同步操作,则最少需要( )信号量。
A.3
B. 4
C. 5
D. 6
19. 某计算机系统中有10台打印机,由K个进程竞争使用,每个进程最多需要3台打印机,该系统不可能会发生死锁的K的最大值是( )。
A. 3
B. 4
C. 5
D. 6
20. 假设一个Linux系统已经在/path路径下挂载了一个文件系统。那么一个应用程序为了读取/path/to/file的第一个字节,必须额外访问( )个磁盘块。
A. 5
B. 6
C. 7
D. 8
二、简答题(每小题4分,共12分)
1、简述进程与线程的关系和区别。
- 线程是进程内的一个执行单元(或可调度的实体)
- 一个进程至少有一个线程
- 线程不能单独运行,只能包含在进程中执行
- 线程与进程一样有生命期及执行的上下文
- 线程共享进程的所有资源
- 进程创建时,同时建立第一个线程
- 同一进程的线程切换不会引起进程切换,不同进程的线程切换,会引起进程切换
- 进程内所有线程结束时,进程结束
2、简述下图虚拟内存管理典型页表项各域的作用。
3、考虑下图单行桥上的死锁问题。写出死锁的四个必要条件,并给出预防死锁的解决方案
- 答案:
死锁的四个必要要求:互斥条件、占有和等待条件、不可抢占条件、循环等待条件
解决方案:
1) 每次只让一个方向的车通过(红绿灯)。破坏“占有和等待”或“循环等待条件”。
2) 再加一座桥。破坏“互斥条件。
三、计算与分析题(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)三种页面置换算法,在下表中填写各算法物理帧的内容,回答缺页次数并计算缺页率。