计算机操作系统笔记-ch02进程管理

第二章 进程管理

2.2.1、处理机调度的概念、层次

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。
在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。

1、高级调度

image-20221013140601794

2、中级调度

image-20221013141031141

3、补充知识-进程的挂起与七状态模型

image-20221013141535358

4、低级调度

image-20221013141737811

5、三层调度的对比、联系

image-20221013142106045

6、总结

image-20221013142258101

2.2.2、进程调度的时机、切换与过程、方式
1、进程调度的时机

image-20221015205229212

进程在访问普通临界区时可以进行调度与切换

但进程在操作系统内核程序临界区不能进行调度与切换

image-20221015204623751

2、进程的调度方式

image-20221015205349377

3、进程的切换与过程

image-20221015205743492

4、总结

image-20221015205835236

2.2.3、调度算法的评价指标
1、CPU利用率

image-20221016090309198

2、系统吞吐量

image-20221016090442648

3、周转时间

image-20221016091119915

image-20221016091229204

4、等待时间

image-20221016091555786

5、响应时间

对于计算机用户来说,会希望自己的提交的请求(比如通过键盘输入了一个调试命令)尽早地开始微系统服务、回应。
响应时间,指从用户提交请求到首次产生响应所用的时间。

6、总结

image-20221016091821876

2.2.4、调度算法1

FCFS 先来先服务算法、作业与进程同名

SJF 短作业优先

SPF 短进程优先调度算法(非抢占式短作业优先算法)

SRTN 最短剩余时间优先算法(抢占式短作业优先算法)

1、先来先服务(FCFS)

image-20221016093025927

例题:

image-20221016092728214

2、短作业优先(SJF)

image-20221016095816265

image-20221016095530263

非抢占式SJF:

image-20221016093548529

抢占式SJF:

image-20221016094029729

image-20221016094155825

3、高响应比优先(HRRN)

先来先服务算法只考虑了等待时间,而短作业优先算法只考虑了运行时间,两者都有自己的局限性;所以就产生了综合考虑等待时间和运行时间的高响应比算法

image-20221016102015968

image-20221016101857406

4、总结

image-20221016102544945

2.2.5、调度算法2
1、时间片轮转(RR)

2.2_5_调度算法:时间片轮转、优先级、多级反馈队列_哔哩哔哩_bilibili(4:40-10:00)时间片轮转算法的处理过程

image-20221016104522926

image-20221016104339265

2、优先级调度算法

image-20221016110239908

image-20221016110137369

非抢占式:

image-20221016105201535

抢占式:

image-20221016105433643

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

2.2_5_调度算法:时间片轮转、优先级、多级反馈队列_哔哩哔哩_bilibili(30:00-35:40)多级调度算法的处理过程

image-20221016111745782

4、总结

image-20221016112204109

2.3.1 进程同步、进程互斥

image-20220915095021435

2.3.2 进程互斥的软件实现方法
1、单标志法

image-20220915122428425

turn表示当前允许进入临界区的进程号,而只有当前允许进入临界区的进程在访问了临界区之后,才会修改turn 的值。也就是说,对于临界区的访问,一定是按PO→P1→PO→P1→…这样轮流访问。这种必须“轮流访问”带来的问题是,如果此时允许进入临界区的进程是Po,而PO一直不访问临界区,那么虽然此时临界区空闲,但是并不允许P1访问。
因此,单标志法存在的主要问题是:违背“空闲让进”原则

2、双标志先检查法

image-20220915125251756

可能存在两个进程同时进入处理机的情况,违反"忙则等待"原则

3、双标志后检查法

image-20220915130225663

若按照①⑤②⑥…的顺序执行,PO和P1将都无法进入临界区

因此,双标志后检查法虽然解决了“忙则等待”的问题,但是又违背了“空闲让进”和“有限等待”原则,会因各进程都长期无法访问临界资源而产生“饥饿”现象

4、Peterson算法

image-20220915131711161

image-20220915132227445

5、知识回顾

image-20220915101333669

2.3.3 进程互斥的硬件实现方法
1、中断屏蔽方法

image-20220915133140191

2、TestAndSet指令

image-20220915134322023

3、Swap指令

image-20220915134644239

4、知识回顾

image-20220915101443385

2.3.4 信号量机制

复习回顾+思考:之前学习的这些进程互斥的解决方案分别存在哪些问题?
进程互斥的四种软件实现方式(单标志法、双标志先检查、双标志后检查、Peterson算法)进程互斥的三种硬件实现方式(中断屏蔽方法、TS/TSL指令、Swap/XCHG指令)
1.在双标志先检查法中,进入区的“检查”、“上锁”操作无法一气呵成,从而导致了两个进程有可能同时进入临界区的问题;
2.所有的解决方案都无法实现“让权等待”
1965年,荷兰学者Dijkstra提出了一种卓有成效的实现进程互斥、同步的方法——信号量机制

  • 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。
  • 信号量:其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。
  • 原语:是一种特殊的程序段,其执行只能一气呵成,不可被中断。原语是由关中断/开中断指令实现的。软件解决方案的主要问题是由“进入区的各种操作无法一气呵成”,因此如果能把进入区、退出区的操作都用“原语”实现,使这些操作能“一气呵成”就能避免问题。
  • 一对原语: **wait(S)**原语和 signal(S)原语,可以把原语理解为我们自己写的函数,函数名分别为wait和signal,括号里的信号量s其实就是函数调用时传入的一个参数。
  • wait、signal原语常简称为P、V操作(来自荷兰语proberen和 verhogen)。因此,做题的时候常把wait(S)、signal(S)两个操作分别写为P(S)、v(S)
1、整型信号量

image-20220915143111296

2、记录型信号量

image-20220915144050688

2.3_4_信号量机制_哔哩哔哩_bilibili(16:10)

image-20220915150528856

3、知识回顾

image-20220915151257794

2.3.5、信号量的应用
信号量机制实现进程互斥

image-20220927132848237

信号量机制实现进程同步

image-20220927133153552

image-20220927135235834

信号量机制实现前驱关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值