首页 > 系统相关 >操作系统速成——2.进程调度

操作系统速成——2.进程调度

时间:2022-11-04 19:15:43浏览次数:40  
标签:操作系统 处理机 调度 速成 临界 剥夺 进程 死锁

二.进程调度

 

2.1进程管理

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

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

组成:由PCB程序段数据段,其中PCB最为重要

PCB:保存进程运行期间相关的数据,是进程存在的唯一标志,是常驻内存的,进程一旦被创建就常驻内存

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

数据段:就是一段数据

 

进程的状态:状态种类和状态变化

 

状态的种类:

运行态:进程正在占用CPU

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

阻塞态:进程进入阻塞

创建状态:进程正在被创建

结束状态:进程正在从系统消失

 

状态变化:

 

 

就绪态—》运行态

运行态——》就绪态

运行态——》阻塞态:进程需要的某一资源还没有准备好就会进入阻塞态

阻塞态——》就绪态

 

线程

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

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

 

2.2处理机调度(是会考大题的)

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

 

分类:分为

高级调度(作业调度)(次数少):怎么理解?一个作业从外存调入内存,一个作业在调度过程中只有一次调入内存和调出内存,所以次数相对比较少

中级调度(内存对换)(次数中等):什么意思?就是将暂时不能运行的进程调出到外存等待,这一状态叫挂起态。如果进程已经具备条件再调入内存

低级调度(进程调度)(次数多):按照某种算法把就绪队列中的某些进程调到内存中来,次数比较多。

 

调度方式:

剥夺式和非剥夺式

剥夺式:我有个进程1正在运行,进程2来了,进程2优先级比进程1高,此刻进程1下处理机,进程2进处理机,剥夺获得处理机的权力

非剥夺式:进程1上处理机,进程2来了但是进程1先上的处理机,必须等进程1把作业做完

 

调度的准则

CPU利用率:高一点好

系统吞吐量:在单位时间内CPU完成作业的数目,比方说在一个单位内完成3个作业,吞吐量就是3

周转时间:周转时间=作业的完成时间-作业的提交时间

等待时间:进程处于等待处理机状态时间之和

响应时间:从提交到他第一次开始运行

 

算法:

先来先服务:FCFS  first come first service  ,可选非剥夺式和剥夺式

短作业:哪个作业断哪个先运行,前提是作业都到达了 ,可选非剥夺式和剥夺式

优先级调度算法:看题目,看他给的是数字大的优先级高还是数字小的优先级高,可选非剥夺式和剥夺式

高响应比优先调度算法:响应比一定是大于1的,可选非剥夺式和剥夺式

 (运行时间+等待时间)/等待时间=响应比

 

时间片轮转:时间片轮转一定是剥夺式的

多级反馈队列调度算法:每1级优先级都不一样

 

2.3进程同步

进程同步引入的原因:协调进程之间的相互制约关系,制约关系分为同步和互斥

 

制约关系

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

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

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

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

 

临界区互斥的4个原则:空闲让进,忙则等待,有限等待,让权等待

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

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

有限等待:进入临界区的进程要在有限时间内退出,以便其他进程及时进入自己的临界区

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

 

基本方法:实现临界区互斥的基本方法是信号量,信号量主要将的是pv操作会考一个大题

 

2.4死锁

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

 

产生的原因:非剥夺资源的竞争和进程不恰当推进顺序(注意与饥饿区别,饥饿说的是我这个进程缺乏某个资源,这个资源没有得到满足,只要这个进程资源得到满足就脱离了饥饿状态)

 

解决方案

 

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

避免死锁:安全状态和银行家算法(大题)

检测死锁:利用死锁定理

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

 

标签:操作系统,处理机,调度,速成,临界,剥夺,进程,死锁
From: https://www.cnblogs.com/romablog/p/16858827.html

相关文章