【操作系统原理03】处理机调度与死锁

发布于:2025-04-20 ⋅ 阅读:(77) ⋅ 点赞:(0)

大纲

image-20250404152431804


一.处理机调度概念与层次

0.大纲

image-20250406213448855


1.基本概念

image-20250406213603353

2.三个层次

(1)高级调度/作业调度

image-20250406213818537

(2)低级调度/处理机调度

image-20250406213928099

(3)中级调度/内存调度

image-20250406214049750

3.七状态模型

image-20250406214228188

4.三层调度都对比与联系

image-20250406214428062


二.进程调度的时机,切换与过程的调度方式

0.大纲

image-20250406214610221

1.进程调度时机

image-20250406215342654

image-20250406215155905

image-20250406215209118

image-20250406215250418

image-20250406215317707

2.调度方式

image-20250406215502140

3.进程的切换与过程

image-20250406215652213


三.调度器和闲逛资源

1.调度器/调度程序

image-20250406220057116

image-20250406220137522

这时内核线程成为调度的基本单位,进程成为资源分配的基本单位

2.闲逛进程

image-20250406220236271


四.调度算法的评价指标

0.调度算法的评价指标

image-20250406222452230

1.CPU利用率

image-20250406222643581

2.系统吞吐量

image-20250406222718006

3.周转时间

image-20250406222944618

image-20250406223143941

4.等待时间

image-20250406223241358

5.响应时间

image-20250406223332884


五.调度算法1

0.大纲

image-20250406223539232

1.先来先服务

image-20250406224046743

image-20250406223917333


2.短作业优先

image-20250406224935089

image-20250406224307210

image-20250406224556883

image-20250406224620490

注意

image-20250406224836128

image-20250406225028281


3.高响应度优先算法

image-20250406225414624

image-20250406225332560


4.总结

image-20250406225429696


六.调度算法2

0.大纲

image-20250406225607414

1.时间片轮转调度算法(RR)

image-20250406231130380

时间片为2时

image-20250406230321903

image-20250406230439372

image-20250406230511595

时间片为5时

image-20250406230807454

时间片影响

image-20250406230941363

image-20250406231044476

image-20250406231105242


2.优先级调度算法

image-20250406231840423

image-20250406231351735

image-20250406231546071

补充

image-20250406231814177

思考

image-20250406231906522


3.多级反馈队列调度算法

image-20250406232448235

image-20250406232326113


4.总结

image-20250406232555290


柒.多级队列调度算法

image-20250406233024751


八.死锁

0.大纲

image-20250412162400801

1.概念

image-20250412163045523

image-20250412163225502

死锁就是在并发环境下,各进程因竞争资源而造成的一种互相等待对方手中的资源,导致各进程都阻塞,都无法向前推进的现象,就是死锁。发生死锁后若无外力干涉,这些进程都将无法向前推进。


2.死锁、饥饿、死循环的区别

image-20250412163733884


3.四大必要条件

产生死锁必须同时满足以下四个条件,只要其中任意条件不成立,死锁就不会发生

  1. 互斥条件

    只有对必须互斥使用的资源的争抢才会导致死锁(如哲学家的筷子、打印机设备)像内存、扬声器这样可以同时让多个进程使用的资源是不会导致死锁的(因为进程不用阻塞等待这种资源)

  2. 不剥夺条件

    进程所获得的组员在未使用完之前,不能由其他进程强行夺走,只能主动释放

  3. 请求和保持条件

    进程已经保持了至少一个资源,但是又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放

  4. 循环等待条件

    存在一种进程资源的循环等待链,链中的每一个进程已获得的资源同时被下一个进程锁请求

    image-20250412164646790

注意:发生死锁时一定有循环等待,但循环等待未必死锁

image-20250412164752652

image-20250412164805861


4.何时发生死锁

image-20250412164911652


5.死锁处理策略

image-20250412164938449


九.死锁处理策略

1.预防死锁

1.0 大纲

image-20250412165103437

1.1 破坏互斥条件

image-20250412165314972

1.2 破坏不剥夺条件

image-20250412165458587

1.3 破坏请求和保持条件

image-20250412165801552

1.4 破坏循环等待条件

image-20250412170052825


2.避免死锁

2.0 大纲

image-20250412171034852


2.1 安全序列

image-20250412171154444

image-20250412171247858

image-20250412171327787

image-20250412171433285

2.2 银行家算法

image-20250412171632206

image-20250412171731827

image-20250412171805359

image-20250412171839919

image-20250412171911989


image-20250412172150453

image-20250412172217338

image-20250412172243520

image-20250412172341447


3.死锁的检测与解除

3.0 大纲

image-20250412172505214

image-20250412175957288


3.1 死锁的检测

image-20250412180202568

image-20250412180501594

3.2 死锁检测算法

image-20250412180631064

3.3 死锁解除

image-20250412180815999