****** 九 ******、软设笔记【操作系统】-处理机管理(一)-死锁

操作系统功能、类型和层次结构
一、操作系统定义
操作 系统是直接控制和管理计算机硬件、软件资源、合理地对各类作用进行调度,以方便用户使用的程序集合。

四、操作系统分类
*批处理操作系统
*分时操作系统
*实时操作系统
*网络操作系统
*分布式操作系统

五、操作系统的功能
*处理机管理功能
*存储器管理功能
*设备管理功能
*文件管理功能
*用户接口

OS定义:OS是直接控制和管理计算机硬件、软件资源,合理地对各类作业进行调度,以方便用户使用的程序集合

处理机管理(进程管理)
一、进程的定义
进程:程序关于某个数据集合的一次执行过程。

1.进程的特征(与程序比较)
(1)结构特征
进程控制块(PCB) + 程序 + 数据 = 进程实体
(2)动态性--最基本特征
进程:经程实体的一次执行过程,有生命周期。
程序:程序是一组有序指令的集合,是静态的概念。

2.进程的三种基本状态
(1)就绪状态(ready)
进程已获得除CPU之外的所有必需的资源,一旦得到CPU控制权,立即可以运行。
(2)运行状态(Runing)
进程已获得运行所必需的资源,它正在处理机上执行。
(3)阻塞状态(Blocked)
正在执行的进程由于发送某事件而暂时无法执行时,便放弃处理机而处于暂停状态,称该进程处于阻塞状态或等待状态。

3.进程的五种状态
引入挂起状态后,增加了挂起状态(静止状态)到非挂起状态(活动状态)的转换,或者相反

二、进程互斥与同步
1.进程间两种形式的制约关系
(1)间接相互制约关系 --- 源于资源共享
(2)直接相互制约关系 --- 源于进程合作

2.临界资源
*临界资源(Critical Resource):把一段时间内只允许一个进程访问的资源称为临界资源或独占资源
*临界区(Critical Section):每个进程中访问临界资源的那段代码称为临界区

三、信号量机制
*信号量是OS提供的管理公有资源的有效手段。
*信号量是一个整数,当信号量大于等于零时,代表可供并发进程使用的资源数量,当信号量小于零时,表示处于阻塞态进程的个数。

Wait操作:
*申请资源,减量操作,S.value := S.value - 1
*当S.value < 0时,表示资源分配完了,进行自我阻塞。
Signal操作:
*释放资源,增量操作,S.value := S.value + 1
*当S.value <= 0,唤醒S.L链表中的等待进程。  

四、信号量的应用
1.利用信号量实现进程互斥(模式)
为使多个进程互斥的访问某临界资源,必须为该资源设置一互斥信号量mutex,并设其初始值为1,然后将各进程访问资源的临界区cs置于wait(mutex)和signal(mutex)之间即可。

2.利用信号量实现前驱关系(模式)
设有两个并发执行的进程P1和P2,P1中有语句S1,P2中有语句S2,希望在S1执行后在执行S2.
使进程P1和P2共享一个公用信号量S,并赋予其初值为0. 

3.利用记录型信号量实现同步(模式)
P1,P2两个进程因合作完成一项任务而公用一个变量x。
进程P2将处理结果送入x;进程P1将x的结果打印。

五、进程调度
也称短程调度(Short-Term Scheduling),用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序把处理机分配给该进程。
为最基本的一种调度,三种类型OS中都必须有进程调度。

进程调度可采用下述两种调度方式:
*非抢占方式(Non-preemptive Mode)
一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而被阻塞时,才把处理机分配给其他进程,决不允许进程抢占已经分配出去的处理机。

*抢占方式(Preemptive Mode)
允许调度程序根据某种原则,去暂停某个正在执行的进程,将处理机重新分配给另一进程。
抢占的原则:
*时间片原则:个进程按时间片运行,一个时间片用完时,停止该进程执行重新进行调度。
*短作业(进程)优先原则:短作业(进程)可以抢占长作业(进程)的处理机。
*优先权原则:优先权高的抢占优先权低的进的处理机。

六、调度算法
1.先来先服务
是一种最简单的调度算法,既可以用于作业调度,也可用于进程调度。
进程调度采用FCFS算法时,每次调度都从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之运行。
*FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。
2.短作业(进程)优先调度算法
对短作业或短进程优先调度的算法。可以分别用于作业调度和进程调度。
*短作业优先(SJF)的调度算法:从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。
*短进程优先(SPF)调度算法,是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行。

SJF调度算法的优缺点:
优点:有效的降低作业的平均等待时间,提高系统吞吐量。
缺点:对长作业不利。
*该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。
*由于作业(进程)的长短只是根据估计执行时间定的,主观因素较大,不一定能真正做到短作业优先。

3.高优先权优先调度算法
为了照顾紧迫性作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。
此算法常用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。

(1)优先权的类型
对于最高优先权优先调度算法,关键在于:使用静态优先权、动态优先权;如何确定进程的优先权。
*静态优先权:在创建进程时确定的,在进程的整个运行期间保持不变,利用某一范围的整数来表示(0~7),又称为优先数。
*动态优先权:在创建进程时所赋予的优先权可以随进程的推进或随其等待时间的增加而改变。

(2)高响应比优先调度算法
在批处理系统中,短作业优先算法是一种比较好的算法,器主要不足是长作业的运行得不到保证。我们为每个作业引入动态优先权,并使左作业的优先级随着等待时间的增加而以速率a提高,则可解决问题,见下式:
优先权 = (等待时间 + 要求服务时间)/要求服务时间
由于等待时间与服务时间之和就是系统的响应时间,故上式又可以表示为:Rp = 响应时间/要求服务时间

由上式可以看出:
*如作业等待时间相同,则要求服务的时间越短优先权越高,所以该算法利于短作业。
*当要求服务的时间相同,作业优先权的高低决定于其等待时间的长短,所以是先来先服务。
*对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长也可获得处理机。

4.时间片轮转调度算法
是一种最古老,最简单,最公平且使用最广的算法。每个进程分配一个时间段,称作它的事件片,即该进程允许运行的时间。
*如果在时间片结束时,进程还没有运行结束,则cpu将被剥夺并分配给另一个进程,该进程到就绪队列尾重新排队。
*如果进程在时间片内阻塞或结束,则CPU当即进行切换。






转载于:https://www.cnblogs.com/changemax/p/10015114.html

你可能感兴趣的:(****** 九 ******、软设笔记【操作系统】-处理机管理(一)-死锁)