操作系统最后的刷题
往年卷
2023
第一题,shell进程是坑,顺序是坑。了解setbuf是I/O相关系统调用。不使用API的弊端两条要记住。
第二题简单。
第三题,了解临界区管理的硬件方法也是重要的。
关中断在作业里已经提到了。
TSL:测试并建立指令,其中test和set不能分开。
//TestAndSret指令是一个硬件指令,以下为其软件逻辑内容,并非实际算法
bool lock; 设置一个新的bool变量判断临界区是否加锁
bool TestAndSet(bool *lock){
bool old;
old = *lock
lock = true; //将lock赋true值
return old; //将原值传回
}
while (TestAndSet(&lock));检查之前是否上锁
临界区访问
lock=false; //解锁
剩余代码
XCHG/SWAP:把True和锁的值交换,如果换到False就进入临界区,否则自旋
var
lock : boolean;
lock := false;
process Pi
var pi : boolean;
begin
pi := true;
repeat Swap(lock, pi ) until pi = false;
临界区;
lock := false;
end;
基于TSL或XCHG指令实现的临界区管理机制称为自旋锁,常用于内核临界区管理
用户层很少用自旋锁,主要原因:1)忙等待的效率问题;2)优先级反置问题。
第四题简单。
第五题,经典虚拟分页,要做到十分熟练。多级页表优缺点要记住。
第六题,经典UNIX文件系统,要做到十分熟练。
2022
第一题简单。问答要会说话。
第二题,明晰周转时间是从到来开始计时。熟练我自己的计算技巧。这算法。。。看来还是得熟读PPT啊!!明天早上一定要注意这一点。死锁产生的必要条件有哪些?设备采用静态分配策略破坏了哪个条件?互斥条件、占有并等待条件、不剥夺条件、循环等待条件;破坏了占有并等待条件。【我们是静态分配的,不是靠请求的】
这个老师确实课上重点提过诶!看破坏了哪个条件。
看来老师为了筛选认真听课的人还是很努力的。即使这个知识点有点偏。
第三题,没太懂
第四题,第一问简单,第二问卧槽这也考!!!真就是PPT最重要了。其实很好理解,页面大小会影响什么?不能太大,否则内碎片太多。不能太小,否则页表项太多。二者加起来作为一个综合指标求最小值点,就能得到想要的答案。第三问!卧槽这题出的真好啊!话要会说!想得到最近(刷新后)的访问情况!第四问也不错!第五问答案真的标准!快表。算法。硬件层面与软件层面。
第五题卧槽出的真好但是不难。但不认真读题又很容易出错。第四问话要会说。
编程题,刷课后题的好处来啦。原题啊卧槽。可惜不是出在今年。题面说的不清楚啊,应该是编号总和才对。
2021
第一题
我去知识盲区。这个讲过么。。
该命令执行过程中,创建了一种什么类型的进程间通信机制?简要描述其实现,
并列举几种常见的进程间通信机制(不少于2个)
答:管道通信机制。基于文件系统实现的通信机制,可分为有名管道和匿名管道。
常见的进程间通信:共享内存、信号机制、套接字
信号机制倒是知道。软件模拟硬件中断。一会去查查具体了解下。
共享内存确实,但你让我说我还真想不到。
套接字是真tm没讲过啊。
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分不同应用程序进程间的网络通信和连接。生成套接字,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。
第二题
我勒个好题啊,又是课上讲的东西!
第一问千万不要混淆作业调度和进程调度。作业调度是没有抢占一说的,作业调度高级调度,是看谁进内存。进程调度是看CPU执行谁。
第二问其他算法的使用也得会,不能只知道个名字哦。
第三问话要会说。这个课上也讲过。
最关键问题是预测进程的行为。例如老化算法,可根据进程历史行为来预测其后续行为;
为什么对调度程序而言,区分CPU约束型进程和I/O约束型进程很重要?
答:CPU约束型进程可以利用整个时间片,且不会做任何阻碍I/O操作的工作;另一方面,I/O约束型进程有在运行I/O操作前只运行很少数量的计算机操作的性质。这种进程一般不会使用很多的CPU。所以,通过给I/O约束型进程优先权和允许在CPU约束型进程之前运行,可以很好地利用计算机资源。
我们当然应该给I/O约束型进程更高的优先级。
第四问同理,一定要会说话。可见优缺点问题也很重要。
抢占式优点:不会使得一个低优先级进程长时间占用CPU,更好响应优先级高的进程;
缺点:进行进程调度浪费太多时间.
非抢占式优点:进程调度少,CPU利用率高;
缺点:可能会使一个低优先级进程霸占CPU,紧急的进程不能响应
第三题
送分喵
第四题
第二问很容易漏掉一些信息
页表项记录的6大信息
页框号
驻留标志
辅存地址
修改位m、引用位r、锁定位
第四问又开始补漏了。冷门算法也很重要!只要PPT有!写入的话两个标志位都要设成1,但是可以看出访问位会定时清零,所以答案是R=0,W=1.太容易错了!!!一定得注意。
第五题
第二问一定要看清是目录文件还是inode啊,这个是硬链接考点。
注意,硬链接是两个文件,系统打开文件表项也是两个,只不过指向的inode一样。
作业
hw1
Q1 用户(程序员)角度、系统角度
Q2 点到内核态
Q3 抽象封装角度、可移植性角度
Q4 性能、耦合度(安全性)
Q5 抢占式,中断后边必有调度;非抢占式,中断后干原来的事情,则不调度。
hw2
Q1 背!!!简单来说,运行态到就绪态就是该让给别人了,运行态到等待态就是要干IO之类的或者等资源或者等同步
Q2 废话,主要提到进程上下文里有啥即可
Q3 多核?灵活?切换代价?
Q4 乐
Q5 ez
Q6 熟练使用算法,知道啥叫周转时间
Q7 同上
hw3
Q1 典
Q2 废话
Q3 排列组合题
Q4 和课后题比起来简单太多
自己写写试试...
Q5 熟练使用算法
hw4
Q1 给我记住!!!
Q2 典
Q3 典
Q4 典
hw5
Q1 典
Q2 注意审题,要不要写?缺页后会重新执行原指令。
Q3 典,注意审题,页目录项算不算页表项
Q4 熟练使用算法
互联网万岁
实验报告&笔记等
挺好
最后的概念冲刺
处理器管理两方面:处理器资源分配、进程调度。
为什么要进程挂起?
提高系统资源利用率、减轻系统的负载、调试程序排除故障。
PCB由什么组成?
进程标识信息、进程现场信息(寄存器的值,包括PSW)、进程控制信息(调度、组成、通信、资源清单...)
进程切换的状态转换图?

进程创建fork的流程?
申请PCB-分配进程映像空间-分配资源-内容装入分配空间-初始化PCB分配标识-加入就绪队列或投入运行-通知操作系统
进程阻塞sleep/wait的流程?
保存现场到PCB-修改进程状态为等待态-加入等待队列-转入调度程序
唤醒时,从等待队列里取出PCB,修改为就绪态,加入就绪队列
为什么要引入线程?
进程时空开销、通信代价高、并发粒度大(并发程度不高)
线程的思路是什么?
把进程的两项功能:独立分配资源、独立分派调度分离(这两个方面也是处理器管理的内容)
并发程序设计的优点:
对于单处理器系统,可让处理器和个I/O设备同时工作,发挥硬件的并行能力
对于多处理器系统,可让各进程在不同的处理器上并行执行,加快计算速度
简化程序设计任务
不能让一个进程无限地留在临界区、不能强迫一个进程无限等待进入临界区
无空等待、有空让进、择一而入、算法可行
实现临界区管理的其他软件方法
Dekker算法:入自己的临界区时,把自己的标志位inside置为true,并检查对方标志位,如果对方不在也不想进入临界区,进程Pi可立即进入临界区;如果双方都想进入,咨询指示器turn,若turn为1(或为2),P1(或P2)知道应该自己进入
Peterson算法:对turn的置值和while语句来限制每次只有一个进程进入临界区;进程执行完临界区程序后,修改insidei状态使等待进入临界区的进程可在有限时间内进入。
存储保护硬件
界地址寄存器、存储键【用户作业被允许进入主存,OS分给它一个唯一的存储键号 并将分配给该作业各存储块存储键也置成同样键号。当OS挑选该作业运行时,OS将它的存储键号放入程序状态字PSW存储键(“钥匙”)域中。匹配则允许访问。】
作业为什么能够部分装入和部分对换?【理论基础】
作业信息(程序)的局部性,使得在作业信息不完全装入主存的情况下能够保证其正确运行
空间局部性,一段时间内,仅访问程序代码和数据的一小部分
时间局部性,最近访问过的程序代码和数据,很快又被访问的可能性很大
虚拟存储管理与对换技术的区别
虚拟存储管理以页或段为单位处理进程,所需主存容量大于当前系统空闲量时仍能运行
对换技术(中级调度,挂起和解除挂起)以进程为单位处理进程所需主存容量大于当前系统空闲量时,无法解除挂起
Belady现象
123412512345
实现按名存取的文件系统的优点
将用户从复杂的物理存储地址管理中解放出来
可方便地对文件提供各种安全、保密和保护措施
实现文件的共享(同名共享、异名共享)
关于权限
open时看的是inode中提供的权限
read时看的是open时的权限参数,存在系统打开文件表的f_flag里
物理块尺寸
块越小 → 磁盘利用率越高
块越大 → 磁盘的I/O效率越高
为解决文件读写效率低下的问题,采用什么措施
主存映射文件。把文件映射到进程地址空间。
最后的PV信号量代码题冲刺
考前
PV
背东西

浙公网安备 33010602011771号