操作系统考点

操作系统上午题有n分

操作系统的地位

img

真题

真题1

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=3

真题2

img

程序顺序执行

img

前趋图

img

这里呢,我理解为做这样的题目入p出V(入屁),也就是观察那个图,如果入度的话就是P操作,出度的话就是V操作,例如上面图中P1有两个出度,那就是V(S1)和V(S2),对于P2来说一个入度一个出度,所以就是P(S1)和V(S3),所以在做题之前要先把S1开始标在那个有向边上,注意我这只是为了快速做题,本身这个说法是不正常的,但是可以快速做对题

真题

真题1

img

img

真题2

img

img

这里我一直不明白那个S1-Sn怎么把它正确的标到那个对应的线上去,然后我这个视频我搞懂了这个,它是按P1–》P5的顺序进行标的,也就是从小到大的原则,也就是无论哪个图都是从P1开始标,标它们的出度,这里P1有两个出度,一个是P1到P4,就把它看做是14,一个是P1到P3,把它看做是13,然后13<14,根据从小到大的原则,P1到P3那根线上标S1,P1到P4那根线上标S2,然后P1的出度标完了就去标P2的出度,P2的出度也就两个,同理,23<25,所以P2到P3那根线上标S3,P2到P5那根线上标S4,后面继续标P3的出度,直到都标完了为止

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=8

真题3

img

img

真题4

img

img

真题5

img

img

img

img

img

img

这些题目都是一样的,就两个点,能表对每个线对应的S(关键),然后记得入P出V,那这种题直接拿下

程序并发执行和前驱图

img

img

这里的前驱图和上面的前趋图是不一样的,然后它是竖着看的

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=16

程序并发执行的问题

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=17

真题

真题1

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=18

真题2

img

进程的三态模型

img

真题

真题1

img

某进程在等待的东西如果被另外一个进程给释放了,那这个进程就会从等待变成就绪状态,因为它等待的东西已经有了所以就不会继续等待

真题2

img

这个题目值得看一眼,如果单纯的只是释放了某个东西,那除了等待这个东西的进行会变成就绪状态以外其他进程保持现有状态

同步与互斥

img

img

信号量机制和PV操作

img

img

P减V加,P申请V释放

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=24

真题

真题1

img

S的值为负数,负几就有几个进程在等待,S值为0就表示没有等待的,但是有一个或多个进程正在运行,S为正数就表示有多少个资源可以使用

真题2

img

真题3

img

真题4

img

PV操作实现进程间同步和互斥

img

img

这里S1理解为缓冲区的空间,S2理解为缓冲区产品的数量,例如上面是单缓冲区,所以S1为1,就是缓冲区中每次只能存放一个,V(S2)是指商品数量新增一个,所以上面图的整个理解就是生产一个商品放缓冲区,P(S1)这是把S1的值减1这样S1就为0,如果后面生产者又生产了一个产品这个时候S1还是0的话那就会堵塞在那里,可以把S1为0理解为缓冲区满了,然后V(S2)是把S2的值加一,表示生产了一个产品在缓冲区,然后消费者去消费产品就是通过P(S2)来实现的,消费完后就释放缓冲区也就是V(S1)来实现

img

多个缓冲区一般是要三个信号量,一个是互斥的信号量初始值为1,一个是缓冲区容量的信号量初始值为n(这个n是缓冲区能存多少个的容量),一个是缓冲区已经生成了多少个产品,初始值为0

真题

真题1

img

真题2

img

S1和S5都是互斥信号量,值都为1,S2值为n,S4值为m

真题3

img

img

img

这题目看起来很复杂,其实只要把S理解为一个售票员就可以了,一个售票员一次只能服务一个顾客,上面的流程就是售票员服务顾客的流程,所以a就是P(S)这就表示这个售票员正在为一个顾客服务,所以要用P操作,c和d根据后面的中文提示可以看出售票员已经快服务结束了,都已经快出票或者告诉顾客没票了,所以都是V(S)就表示这个售票员又空闲了,被释放了,可以服务下个顾客

死锁

img

只要满足m>=n*(k-1)+1那就不会发生死锁

m为资源数量,n为进程数量,k为每个进程需要的资源数量

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=36

真题

真题1

img

套公式就可

只要满足m>=n*(k-1)+1那就不会发生死锁

m为资源数量,n为进程数量,k为每个进程需要的资源数量

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=37

真题2

img

真题3

img

真题4

img

看清楚题目是要发生死锁的最小值,取2在那个表达式的范围内是不会发生死锁的

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=41

真题5

img

进程资源图

img

这就是进程资源图,三个考点,根据这个图判断哪些进程会堵塞?能不能化简(其实就是会不会发生死锁)?化解顺序是怎样的?(不发生死锁的时候进程工作顺序是怎样的)?

上面这个图中P1-P3是表示进程,R1和R2是表示资源种类,里面的圆圈是表示这个种类的资源数量有多少个,由进程指向资源的是表示申请资源,反之表示分配资源

忘记怎么做下面的真题了就看视频

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=44

真题

真题1

img

这里要注意第26题中我一开始是给P1先申请资源的,所以就会导致后两个进程都堵塞,但是我发现没有这个选项,其实它这里有两个进程都可以运行,P1和P3这两个进程,但是一次只能运行一个,你选P1先运行可以,选P3先运行也可以,所以C选项是符合的,也就是能够在第一次申请资源的时候就有足够的资源的进程就是非阻塞节点

真题2

img

真题3

img

真题4

img

死锁的处理

img

银行家算法

img

注意一下进程释放的资源数是最大需求量的数而不是已分配资源数,一开始我就是这里搞错了

真题

真题1

img

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=50

真题2

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=51

线程

img

真题

真题1

img

真题2

img

只要知道同一个进程中的多个线程不能共享该进程的栈指针,但是可以共享该进程的代码、打开的文件、全局变量

局部性原理

img

真题

真题1

img

其实就是谁最近被访问了或者修改了那它就大概率还会被访问或修改,所以不能被淘汰,优先淘汰的是最近没有被访问或者修改的

真题2

img

这题真狗,我直接选了B,仔细看题,1号都不在内存里淘汰个屁

分页存储管理

img

物理地址是3C20H,这里有个技巧,不用把1C20都转为2进制,根据题目来转,例如上面的4k表示页内地址有12位,那C20就是页内地址,不用动,所以页号为1**(不用转,直接是多少那就页号是多少)**,对应物理块号为3,那物理地址就是3C20H

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=59

真题

真题1

img

真题2

img

真题3

img

*真题4

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=64

段页式存储管理

img

注意上面的这个最多有多少个段、页、页的大小都不是固定的,要看题目给的地址位数,这里段号是31-24+1=8,页号是23-12+1=12,页内地址是11-0+1=12,也就分别是28,212,212,只是页内地址转为了k为单位

注意两个地方,第一个所有的值都不是固定的,第二个页号的描述是最大允许有多少个页,而不是每个页均有多少个页

真题

真题1

img

真题2

img

单缓冲区

img

下面这个公式是用来计算单缓冲区花费的时间

(T+M)*n+C

T为输入的时间,M为传输的时间,n为作业的个数,C为处理的时间

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=70

双缓冲区

img

下面这个公式是用来计算双缓冲区花费的时间

T*n+M+C

T为输入的时间,M为传输的时间,n为作业的个数,C为处理的时间

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=71

真题

真题1

img

真题2

img

套公式即可

磁盘调度算法

先来先服务(FCFS)

img

最短寻道时间优先(SSTF)

img

扫描算法(SCAN)或电梯调度算法

img

这里我是按照之前学的,把这些请求顺序从小到大排好序列(要把磁头起始位置和0也加进去),也就是0、14、37、53、65、67、98、122、124、183,然后看磁头是往哪里走,把起始位置当做原点,如果向0走,那就是53往左边数,53-37-14,注意0只是位置参考不算进来,然后到了0已结走投无路了那就掉头,但是掉头是从原点开始算的,所以就是53往右数,65-67-98-122-124-183,最后把两个合在一起就是53-37-14-65-67-98-122-124-183,计算其中的差值就可

循环扫描算法(CSCAN)或单向扫描算法

img

总的来说后两种算法难点,不太熟,先来先服务和最短寻道时间优先算法移动臂的运动方向随时改变,然后知道每个算法对应的英文是什么

真题

真题1

img

真题2

img

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=76

真题3

img

旋转调度算法

img

img

这里只要知道如果顺序处理的情况下那总时间是(读时间+处理时间+每个扇区旋转时间n-2)(n-1)+(读时间+处理时间),这里的n是记录数量

优化后就是刚好旋转后就是对应的记录,总时间为(读时间+处理时间)*n

特别注意:这里的磁头它旋转的时候是不会停下来的,也就是在处理记录的时候磁头还是会继续往下转,而不会留下来等记录处理完

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=78

真题

真题1

img

答案:(27)246 (28)54

真题2

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=80

真题3

img

真题4

img

答案:(27)102 (28)30

多级索引结构

img

注意这里下标都是从0开始的

真题

真题1

img

真题2

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=85&spm_id_from=pageDriver

真题3

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=86

真题4

img

如果只告诉了磁盘块的大小,那就是暗示索引块大小和数据块大小都为磁盘块大小,块号就是地址项

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=87

真题5

img

真题6

img

文件目录

img

真题

真题1

img

真题2

img

目录结构

img

img

img

*也就是全文件名和绝对路径都是从根目录开始的,然后区别在于全文件名会把文件的名字加在最后,但是绝对路径最后面是加的*

*相对路径是从当前目录开始的,最后面一般是加*

真题

真题1

img

这里第二题我选了C,注意C后面缺少一个\,所以访问不到f1.java文件

特别注意:这里Java-prog\和Program\Java-prog\都是可以表示相对路径的

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=94

真题2

img

真题3

img

位示图

img

真题

真题1

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=99

真题2

img

这个题目和上面那个题目差不多,但是有个地方要注意,上面那个题目没有给出位示图字编号是从多少开始的,所以默认为从1开始,只要位示图字从1开始的那计算结果要加1,然后这个题是位示图字从0开始的,计算结果不用加1

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=100

真题3

img

真题4

img

位示图字编号从1开始要加1,从0开始不用加1,无论是否被整除

真题5

img

杂题

杂题1

img

img

杂题2

img

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=108

杂题3

img

杂题4

img

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=110

杂题5

img

杂题6

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=112

杂题7

img

杂题8

img

img

杂题9

img

杂题10

img

杂题11

img

杂题12

img

img

杂题13

img

img

杂题14

img

可移植性并不是指所写的程序不作修改就可以在任何计算机上运行,而是指当条件有变化时,程序无需作很多修改就可运行。

这里不选易移植性是因为后面还有句针对硬件变化进行结构与功能上的配置,移植性没这个本事

杂题15

img

杂题16

img

杂题17

img

讲解地址:https://www.bilibili.com/video/BV1AY411E7GC?p=123

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...