系列文章如下
学习过程中一定要有系统观念(知识框架,每一章开头都会有一个思维导图),知道目前自己在学习的是哪一板块的内容,和前面有什么样的联系
操作系统的很多知识点前后都是联系非常紧密的,去一点一点理解而不是死记硬背会学习的非常愉快的!!!
操作系统相关文章
概述,初步了解操作系统功能及其一些概念
操作系统(一)| 概述 作业 批处理 OS运行环境要求 基本特征-CSDN博客
进程管理部分,重头戏
操作系统(二 )| 进程控制 进程状态 进程描述 进程控制 进程同步互斥-CSDN博客
操作系统(三)| 进程管理上 进程状态 同步 互斥-CSDN博客
操作系统(三)| 进程管理下 经典进程问题分析 线程 死锁-CSDN博客
内存管理部分
操作系统(四)| 内存管理 实存储器管理 虚拟存储器管理 分页 分段式管理-CSDN博客
文件系统管理部分
操作系统(五)| 文件系统上 结构 存取方式 文件目录 检索-CSDN博客
操作系统(六)| 文件系统下 文件使用 共享 保护-CSDN博客
设备管理部分
操作系统(七)| 设备管理-- 端口 驱动程序 基本I/O控制 磁盘I/O-CSDN博客
文章目录
1 进程管理题目
1.1 进程并发多情况分析题
**例题1 **
设有两个进程P1和P2,其执行代码分别如下:
进程P1 进程P2
A; C;
B; D;
E;
其中,A、B、C、D、E都是原子操作。请给出进程P1和P2并发执行时所有可能的执行轨迹。
答案1
A C B D E
A C D B E
A C D E B
A B C D E
C A D B E
C A B D E
C D A B E
C D A E B
C D E A B
1.2 进程并发P,V操作分析题
例题1
共享缓冲区问题。三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。试用信号量的P、V操作设计该问题的同步算法,给出所用共享变量(如果需要)和信号量及其初始值,并说明各自的含义。
答案1
题目要求分析
1 访问缓冲区之间三个进程要互斥
2 生成数字放入之前要保证,有空余的单元格
3 取偶数时要保证有偶数,取奇数时要保证有奇数
1.remainder=N// 缓冲区剩余的单元格
2.
3.mutex=1 //缓冲区互斥访问
4.odd_number=0//缓存区内奇数个数
5.even_number=0//缓存区内偶数个数
6.//生成进程
7.void P1(void){
8. P(remainder) //检测是否有剩余的单元格
9. P(mutex);
10. num=produce();//生成一个数
11. if(num为偶数):
12. even_number++;
13. else
14. odd_number++;
15. put();//送入缓存区
16. V(mutex);
17.}
18.
19.void P2(void){
20. P(odd_number) //检测是否有偶数
21. P(mutex);
22. getodd();
23. odd_number=countodd();
24. V(mutex);
25. V(remainder) //剩余单元格加一
26.}
27.
28.void P3(void){
29. P(even_number) //检测是否有奇数
30. P(mutex);
31. geteven();
32. even_number=counteven();
33. V(mutex);
34. V(remainder) //剩余单元格加一
35.}
1.3 进程调度分析题
例题1
设有5个进程A、B、C、D、E(没有I/O),就绪时刻和运行时间如下:
进程 就绪时刻 运行时间
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
分别采用下列调度算法,给出调度顺序,计算平均周转时间和平均带权周转时间(忽略进程切换开销)。
1)先来先服务
2)时间片轮转(时间片大小=1)
3)时间片轮转(时间片大小=4)
4)短进程优先
说明:若进程P1执行时间片到的时刻与进程P2的就绪时刻相等,则认为进程P2先处于就绪状态。
答案1
(1)先来先服务顺序为 ABCDE
周转时间和=3+7+9+12+12=43
平均周转时间=43/5=8.6
平均带权周转时间=(3/3+7/6+9/4+12/5+12/2)/5=2.56
(2)顺序为 AABA BCBD CBED CBED CBDD
周转时间和=4+16+13+14+7=54
平均周转时间=54/5=10.8
带权周转时间=(4/3+16/6+13/4+14/5+7/2)/5=2.71
(3)顺序为 ABCDBED
周转时间和3+15+7+14+11=50
平均周转时间=(3+15+7+14+11)/5=10
平均带权周转时间=(3/3+15/6+7/4+14/5+11/2)/5=2.71
(4)顺序:ABECD
平均周转时间=(3+7+3+11+14)/5=7.6
平均带权周转时间=(3/3+7/6+3/4+11/5+14/2)/5=1.84
1.4 方案设计评价综合题
例题1
你认为应该用哪些指标来评价进程调度算法?请给出你认为最重要的4个指标,并采用你给出的这些指标,对先来先服务、时间片轮转、短进程优先、静态优先级、动态优先级、多级反馈队列等调度算法进行评价。
答案1
最重要的四个指标:CPU利用率、等待时间、周转时间,公平性
先来先服务:对于CPU繁忙性进程CPU利用率比较高,IO繁忙性CPU利用率比较低、平均等待时间波动很大不稳定,周转时间较长。公平性有待提高
时间片轮转:CPU利用率较高,短进程可能有较长的等待时间,时间片轮转对I/O型密集型进程不公平,周转时间通常较长。
短进程优先:CPU的利用率较高,但对于长进程不太友好、具有最优平均周转时间,等待时间较短。
静态优先级:优先级低者永远得不到调度的情况,缺乏公平。CPU利用率取决于优先级,等待时间、周转时间以及响应时间取决于优先级设置,高优先级时间较短。
动态优先级:CPU利用率更加灵活,等待时间、周转时间取决于算法的实现。
多级反馈队列:综合一些优点,公平性较高,CPU利用率较高,等待时间、周转时间取决于优先级设置。
例题2
假定CPU按照程序中规定的顺序执行指令(即指令不会乱序执行),以2个进程的互斥为例,分析Peterson解决方案的正确性。
答案2
当一个进程想进入临界区时,先调用enter_region函数,判断是否能安全进入,不能的话等待,能的话则将标志位设置为True,同时将共享变量turn设置为自己的标识号,表示要进入临界区的进程号,这时候另一个进程就不能进入了,实现了互斥;当该进程从临界区退出后,需调用leave_region函数,将标志位设置为False,这时候就允许另一个进程进入临界区。
2 内存管理题目
2.1 虚拟存储管理——物理地址计算题
题目1
在某个段式存储管理系统中,逻辑地址为16位,其中,段号占4位。进程P的段表如下:
段号 段基址 段长度
0 4100H 500H
1 1000H 60H
2 1200H 100H
3 2200H 390H
4 2090H 120H
求下列逻辑地址所对应的物理地址。要求用十六进制表示,例如:1000H。
1)420H 2)1030H 3)2100H 4)3320H 5)4160H
求上述的物理地址分别为多少?
答案1
物理地址分别为:1) 4520H ;2) 1030H ;3) 地址越界 ;4) 2520H ;5) 地址越界 。
2.2 虚拟存储管理——置换调度算法题
题目1
在请求分页管理系统中,假设某进程的页表内容如下:
页号 物理块(页帧)号 有效位
0 101H 1
1 - 0
2 254H 1
页的大小为4KB,一次内存的访问时间是100ns;一次快表(TLB)的访问时间是10ns,忽略访问页表之后的TLB更新时间;处理一次缺页的时间为108ns(包含更新TLB和页表的时间),缺页中断处理后,返回到产生缺页中断的指令处重新执行。设系统为进程固定分配了2个物理块,采用LRU置换算法和局部置换策略,TLB初始为空。现依次访问下列虚地址:
1)2356H 2)1680H 3)25A8H
求上述访问对应的物理地址分别为多少?
访问时间多少
答案1
对应的物理地址分别为:1) 254356 H;2) 101680 H;3) 2545A8 H。
根据虚地址得到物理地址所需时间分别为:1) 110 ns;2) 100000120 ns;3) 10 ns。
3 文件系统题目
3.1 目录项分解法读盘次数分析题
题目1
某磁盘文件系统采用多级目录结构,目录当做文件,每个文件有唯一ID,磁盘逻辑块与物理块大小均为4096字节。目录文件存放目录符号项,每个符合目录项占32个字节,包括文件ID和文件名。基本目录项包括文件类型标志(目录文件和普通文件)和文件地址addr等。对于目录文件,addr所指向的一个磁盘块存放文件内容,对于普通文件,addr所指的1个磁盘块按顺序存放文件目录所占用的若干磁盘块地址(每个地址8个字节)。已知文件ID与其基本目录项所在磁盘块地址的对应关系以及根目录的ID
1 每个普通文件最大长度多少字节,每个目录下最多可以包含多少个文件(包含子目录)?
2 设普通文件f.dat存在于目录/user/data下,为了获取f.dat的ID,需要读几个磁盘块?若已知f.dat的ID,读其第42000个字节,需要读几个磁盘块
3 为了支持更大的文件,如何改进文件系统?
答案1
(1)
512*4KB=2048KB
4096/32=128个
(2)
读根目录的基本目录项(第一次),访问根目录地址获得user的ID(第二次)-》
访问user的基本目录项(第三次),访问user目录地址获得data的ID(第四次)-》
访问data的基本目录项(第五次),访问data的目录地址 获得f.dat的ID 共六次
访问f.dat的基本目录项,获得目录地址(第一次)
访问地址,然后直接获得第11块的物理地址(第二次)
然后直接访问11块的物理地址,访问(第三次)共三次
(3)
多级索引文件物理块,如两级!
4 设备管理题目
4.1 磁盘调度算法计算题
例题1
假定磁头在完成了磁道12处的请求后,正在磁道18处为一个磁盘请求服务,寻道时每移动1个磁道需要6ms。若当前请求访问的磁道顺序为:10,22,20,2,40,6,38,分别采用下列调度算法,计算完成这些磁盘请求的总的寻道时间(不包括从磁道12移动到磁道18的寻道时间)。先来先服务调度算法FCFS 2)最短寻道时间优先调度算法SSTF 3)电梯调度算法SCAN 4)循环扫描算法C-SCAN 总的寻道时间分别为多少ms
答案1
864,372,360,408
4.2 磁盘访问时间计算
题目1
假定每个扇区512字节,磁盘传送速度5400RPM,声称寻道时间(最大寻道时间一半)位12ms,数据传输速率4MB/s,磁盘控制开销为1ms,不考虑排队时间,则磁盘响应时间多少?
答案1
18.6ms
= 0 + 1 + 12 + 0.5 5400 R P M + 0.5 K B 4 M B / s = 18.6 =0+1+12+\frac{0.5}{5400 RPM} +\frac{0.5KB}{4MB/s}=18.6 =0+1+12+5400RPM0.5+4MB/s0.5KB=18.6