返回顶部

一缕半夏微光

温柔半两,从容一生

导航

操作系统复习(二)——进程调度

一、进程管理

(一)引入进程目的

为了更好地描述和控制程序并发执行,实现操作系统的并发性和共享性(进程是动态的,程序是静态的)

(二)定义

是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

(三)组成

1、PCB:保存进程运行期间相关的数据,是进程存在的唯一标志。

2、程序段:能被进程调度到CPU的代码。

3、数据段

(四)进程的状态

1、状态种类:

(1)运行态:进程正在占用CPU。

(2)就绪态:进程已处于准备运行的状态,即进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行。

(3)阻塞态:线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。

阻塞的情况分三种:

a.等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。(wait会释放持有的锁)

b.同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。

c.其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。(注意,sleep是不会释放持有的锁)

(4)创建状态:进程正在被创建。

(5)结束状态:进程正在从系统消失。

2.进程状态转换图:

(五)线程

1、引入目的:为了更好的使用多道程序并发执行,提高资源利用率和系统吞吐量。

2、特点:是程序执行的最小单位,基本不拥有任何系统资源(调度的基本单位)

二、处理机调度

(一)概念

是对处理机进行分配,即从就绪队列中按照定的算法(公平、高效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

(二)分类

高级调度(作业调度)(次数少)

中级调度(内存对换)(次数中等)

低级调度(进程调度)(次数多)

(三)调度方式

剥夺式、非剥夺式

(四)调度准则

CPU利用率、系统吞吐量、周转时间、等待时间、响应时间

(五)算法

先来先服务、短作业优先、优先级调度算法、高响应比优先调度算法、时间片轮转、多级反馈队列调度算法

三、进程同步

(一)引入原因

协调进程之间的相互制约关系

(二)制约关系

1、同步:

亦称直接制约关系,是指为完成某种任务而建立的两个或者多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。

2、互斥:

也称间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另进程才允许去访问此临界资源。

(三)临界资源

一次仅允许一个进程使用的资源(比如:打印机、共享缓冲区、共享变量、公用队列)

(四)临界区

在每个进程中访问临界资源的那段程序

(五)临界区互斥

1、原则

(1)空闲让进:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

(2)忙则等待:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。

(3)有限等待:进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。

(4)让权等待:如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

2、基本方法

信号量——利用PV操作实现互斥

四、死锁

(一)产生的原因

非剥夺资源的竞争和进程的不恰当推进顺序(与饥饿的区别)

(二)定义

多个进程因竞争资源而造成的一种僵局,如果没有外力,这些进程将无法推进。

(三)解决方法

1、预防死锁:破坏互斥条件、破坏不剥夺条件、破坏请求和保持条件、破坏循环等待条件。

2、避免死锁:安全状态、银行家算法。

3、检测死锁:利用死锁定理。

4、解除死锁:资源剥夺法、撤销进程法、进程回退法。

参考链接:https://www.bilibili.com/video/BV1xZ4y1r74y/?p=2&spm_id_from=pageDriver

posted on 2022-05-28 12:14  一缕半夏微光  阅读(149)  评论(0编辑  收藏  举报