操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境
操作系统的特征:并发性、共享性、虚拟性、不确定性
操作系统的功能:进程管理、存储管理、文件管理、设备管理、作业管理
操作系统的分类:批处理操作系统、分时操作系统(轮流使用CPU工作片)、实时操作系统(快速响应)、网络操作系统、分布式操作系统(物理分散的计算机互联系统)、微机操作系统(Windows)、嵌入式操作系统
计算机启动的基本流程为:BIOS -> 主引导记录 ->操作系统
2、进程的组成和状态进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)
进程基础的状态时下左图中的三态图,这是系统自动控制时只有三种状态,而右图中的五态,是多了两种状态:静止就绪和静止阻塞,需要人为的操作才会进入对应状态,活跃就绪即就绪,活跃阻塞即等待。
可知,当人为干预后,进程将被挂起,进入静止状态,此时,需要认为激活,才能恢复到活跃状态,之后的本质还是三态图。
3、前驱图前驱图:用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如图所示
可知,ABC可以并行执行,但是必须ABC都执行完之后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序
4、进程资源图进程资源图:用来表示进程和资源之间的分配和请求关系,如图所示
P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行
阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如图中P2(R1的资源已经分配给P1和P3了,没有多余的资源了,所以P2没有R1的资源,造成阻塞)
非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3(R2把其中两个资源给到P2和P3,还有一个资源可以给P1也可以给P3,所以非阻塞)
当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态
进程资源图的化简方法:先看系统还剩下多少资源没有分配,再看有哪些进程是不阻塞的,解这把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源收回来,这样系统剩余的空间资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。最后,所有的资源和进程都变孤立的点。图中P3是不阻塞的,故P3为化简图的开始,把P3孤立,再回收分配给它的资源,可以看到P1也变为不阻塞节点了,故化简顺序为:P3->P1->P2或者P3->P2->P1
5、同步和互斥互斥:某资源(即临界资源)再同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机
同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停止等待,不存在资源是否单独或共享的问题;如自行车和汽车
临界资源:各进程间需要以互斥方式对其进行访问资源
临界区:指进程中对临界资源实施操作的那段程序。本质是一段代码
互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1
同步信号量:对共享资源的访问控制,初值一般是共享资源的数量
6、信号量操作p操作:申请资源,S=S-1,若S>=0,则执行p操作的进程继续执行;若S<0(S不能等于0,因为S=0表示S原来是1,1表示有一个可用资源),则置该进程为阻塞状态(因为无可用资源),并将其出入阻塞队列
v操作:释放资源,S=S+1,若S>0,则执行v操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被p操作阻塞的进程可以继续执行),然后执行v操作的进程继续。
【例题】假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初值都为0.进程P1和P2并发执行后a、b和c的结果分别为:
解析:
7、死锁当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁
死锁的产生要满足四个必要条件:
- 资源互斥
- 每个进程占有资源并等待其他资源
- 系统不能剥夺进程资源
- 进程资源图是一个环路
死锁产生后,解决措施是打破四大条件,有以下方法:
- 死锁预防:采取某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件
- 死锁避免:一般采用银行家算法来避免,银行加算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁
- 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统只能发生死锁,则设法加以解除
- 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等
死锁计算问题:系统内有n各进程,每个进程都需要R个资源,那么其发生死锁的最大资源数位n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1
【例题】某系统中有3个并发进程竞争资源R,每个进程都需要5个R,那么至少有( 13 )个R,才能保证系统不会发生死锁
8、线程传统的进程有两个属性:可拥有资源的独立单位;可独立调度和分配的基本单位
引入线程后,线程是独立调度的最小单位,进程是拥有资源最小单位,线程可以共享进程的公共资源、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据



