📔个人主页📚:秋邱-CSDN博客
☀️专属专栏✨:软考——软件设计师
🏅往期回顾🏆:C++: 类和对象(上)
🌟其他专栏🌟:C语言_秋邱
一、操作系统总览(⭐)
1.1、考点1、操作系统的作用
按照计算机层次来分:计算机硬件(裸机)、
操作系统、语言处理、应用程序。
操作系统作用
- 管理系统的硬件、软件、数据资源
- 控制程序运作
- 人机之间的接口
- 应用软件和硬件之间的接口
操作系统工作范围:进程、存储、文件、作业、设备管理
1.2、考点2、特殊的操作系统
分类 | 特点 |
批处理操作系统 | 单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成 多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行 |
分时操作系统 | 采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统 特点:多路性、独立性、交互性和及时性 |
实时操作系统 | 实时控制系统和实时信息系统 交互能力要求不高,可靠性要求高(规定时间内响应并处理) |
网络操作系统 | 方便有效共享网络资源,提供服务软件和有关协议的集合主要的网络操作系统有:Unix、Linux和WindowsServer系统 |
分布式操作系统 | 任意两台计算机可以通过通信交换信息 是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性 |
微机操作系统 | Windows:Microsoft开发的图形用户界面、多任务、多线程操作系统Linux:免费使用和自由传播的类Unix操作系统,多用户、多任务、多线程和多CPU的操作系统 |
嵌入式操作系统 | 运行在智能芯片环境中 特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL和BSP支持) |
二、进程管理(⭐⭐)
2.1、考点1、线程的概念
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。
PCB:PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。
2.1.1、进程与程序
进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程。
程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。
2.1.2、线程
进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。
2.2、考点2、进程的状态
运行:当一个进程在CPU上运行时。(单处理机处于运行态的进程只有一个)。
就绪:一个进程获得了除CPU外的一切所需资源,一旦得到处理机即可运行。
阻塞:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O等待I/0完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行,故称进程处于阳寒状态。
挂起原因:
(1)进程过多,主存资源不足,此时必须将某些进程挂起,放到磁盘对换区,暂时不参与调度,以平衡系统负载
(2)系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
2.3、进程调度(⭐️⭐️⭐️)
2.3.1、考点1、PV操作的概念
前面提到了三态的三种状态,进程三个状态之间的转换就是靠PV操作来控制的。PV操作主要就是P操作、V操作和信号量。其中信号量起到了至关重要的作用。
信号量:信号量是一种特殊的变量
信号量可以表示资源数量;
信号量为负数时还可以表示排队进程数
P可以简单的理解为资源申请,V可以理解为资源释放。P操作是减法运算(S:=S-
1),当信号量S小于0时申请资源;V操作是加法运算(S:=+1),当信号量小于等于0
时释放资源。
2.3.2、考点2、信号量与PV操作
互斥模型:互斥模型就像“千军万马过独木桥”每一次只能一个人通过,要上桥的时候P(S)进行资源申请(锁死),过桥之后V(S)进行资源释放(解锁。
同步模型:有一个生产者进程和一个消费者进程,它们共享一个有固定大小的缓冲区。生产者不断生产产品并放入缓冲区P(S),消费者从缓冲区中取出产品进行消费V(S)。需要保证生产者不会在缓冲区满时继续生产,消费者不会在缓冲区空时继续消费。
2.3.3、考点3、前驱图与PV操作
若用PV操作控制进程 P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号的初始值为0。为了方便理解我们把进程用生活中的例子来讲述。
在这个前驱图中,容易位置开始结果都是一样的,假设从d开始搅拌,不能直接搅拌,需要先检查资源,用P来检查。需要先完成前三个进程,完成之后由V来进行通知 ,进程D就能执行, 对没一个前驱活动都要进行检查。
2.4、死锁问题(⭐⭐)
死锁:是指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
死锁四大条件:互斥、保持和等待、不剥夺、环路等待。
解决死锁的处理:
- 死锁预防:(打破四大条件)有序资源分配法、静态资源分配
- 死锁避免:银行家算法;
- 死锁的检测与解除;
- 鸵鸟策略(不予理睬)
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果进程在等待一件不可能发生的事,则进程就死锁了。而如果多个进程产生死锁就会造成系统死锁。
例:系统有5个进程:A、B、C、D、E。这5个进程都需要4个系统资源。如果系统至少有多少个资源,则不可能发生死锁。
假设每个进程分配三个资源,就有十五个,还是会进程死锁,+1后则不回。
从而推出:系统不可能发生死锁的最小资源数(w-1)*m+1<=n
2.5、进程资源图(资源调度的一中方式)(⭐⭐)
可化简:整体能够执行下去。
非阻塞节点:指那些可以继续执行而不需要等待其他资源的进程节点。
阻塞节点:指那些由于等待其他资源而不能继续执行的进程。
三、存储管理
3.1、段页式存储
3.1.1、考点1:页式存储(⭐⭐⭐)
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。(由操作系统完成)
由逻辑地址来推出页帧号,
例如,页式存储系统中,每个页的大小为4B。逻辑地址:10 1100 1101 1110
讲解:总容量 = 存储个数 * 编址内容(默认1B),即存储个数是4K,转化为二进制2^12。因此,页内地址需要占据12位来表示。10 1100 1101 1110那么页号就是2,查表可得,页帧号为6,二进制表示110,页内地址不变最后物理地址110 1100 1101 1110。
注意:页内地址表示在一页内的偏移量,取决于页的大小。
优点:利用率高,碎片小,分配及管理简单。
缺点:增加了系统开销,可能产生抖动现象。
抖动现象:简单理解就是频繁地将页面从内存中移出并从磁盘上的交换空间(或称虚拟内存)中重新载入页面
淘汰依据:访问位为0 > 多个修改位为0
页面置换算法:最优算法、随机算法、先进先出算法(可能产生抖动)、最近最少算法(LRU,不会抖动,LRU的理论依据是“局部性原理”)、
时间局部性:刚被访问的内容,立即又被访问。
空间局部性:刚被访问的内容,临近的空间很快被访问。
3.1.2、考点2:段式存储(⭐⭐)
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
逻辑地址(断号,段内偏移量)
合法地址(0,25k),非法地址(0,35)。段内便宜量不得超过段长。
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
3.1.3、考点3:段页式存储
段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。
页面大小固定为 2^13
页的个数最大为 2^11
段的个数最大为 2^8
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
3.2、磁盘管理(⭐️⭐️⭐️)
存取时间=寻道时间+等待时间,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
读取磁盘数据的时间应包括以下三个部分:
- 找磁道的时间。
- 找块(扇区)的时间,即旋转延迟时间。
- 传输时间。
磁道的寻找一般按照逻辑地址来寻找。
磁道的寻找有多种方式:
先来先服务(FCFS)算法、最短寻道时间优先(SSTF)算法、扫描算法(SCAN)、循环扫描(CSCAN)算法
在磁盘调度过程中,同一个进程只能运行一个(输入传送不能同时进行)
(2)可以看出,当读出记录凡并处理结束后,磁头刚好转至记录的开始处,立即就可以读出并处理,因此处理 10 个记录的总时间为 10x(2ms(读记录)+4ms(处理记录))=10X6ms-60ms 。
四、设备管理(⭐️⭐️⭐️)
4.1、I/O软件管理分层
硬件:完成具体的I/0操作。
中断处理程序:I/0完成后唤醒设备驱动程序
设备驱动程序:设置寄存器,检查设备状态
设备无关I/0层:设备名解析、阻塞进程、分配缓冲区
用户级I/O层:发出IO调用。
五、文件管理(⭐️⭐️⭐️)
5.1、考点1、文件相关概念
文件:具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
逻辑结构:有结构的记录式文件、无结构的流式文件。
物理结构:连续结构、链接结构、索引结构、多个物理块的索引表。
文件目录:
目录结构
一级目录结构:线性结构,查找速度慢,不允许重名和实现文件共享等
二级目录结构:主文件目录(MFD)+用户目录(UFD)
三级目录结构:树型目录结构(多级目录结构)
5.2、考点2、树形目录结构(绝对路径,相对路径)
★绝对路径:是从盘符开始的路径。
★相对路径:是从当前目录开始的路径。
若当前目录为Program,要求访问f1.java,则:
绝对路径:\Program\Java-prog\f1.java
相对路径:Java-prog\f1.java
5.3、考点3、位示图(位表示比特位)
1)、4096 / 32 = 128,但因为是从0号开始的,所以4096是第129字的第一位
2)、有多内存需要管理:200GB / 1MB = 200 * 2^30 / *2^20 =200*2^10;
有多少位示图字:200 *2^10 / 32 = 6400;
5.4、考点4、索引文件
某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为1KB字节且每个文件索引节点有8个地址项iaddr[0]~iaddr![7],每个地址项大小为4字节,其中iaddr[0]~iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。若用户要访问文件userA中逻辑块号为4和5的信息,则系统应分别采(1)该文件系统可表示的单个文件最大长度是(2)KB。
A. 直接地址访问和直接地址访问
B .直接地址访问和一级间接地址访问
C.一级问接地址访问和一级间接地址访问
D .一级间接地址访问和二级间接地址访问
A .517 B. 1029 C. 65797 .D. 66053
索引项 :1kb / 4 = 256个,
iaddr[0]-iaddr[4]采用直接索引 5个物理盘块,一个5KB
iaddr[5]-iaddr[6]采用一级索引 2*256 KB
iaddr[7]采用二级索引 256*256KB
5KB+2*256 KB+256*256KB=66053KB
六、作业管理
6.1、考点1、作业状态与管理
、
6.2、考点二、作业算法调度
- 先来先服务。
- 短作业优先
- 时间片轮转法
- 最高优先权优先法
- 响应比高优先。响应比高的作业优先启动。 响应比 = (作业等待时间+作业执行时间)/作业执行时间