操作系统第三章——处理机调度与死锁

目录

1.处理机调度层次

2.作业调度

(1)FCSF算法(先来先服务)

(2)短作业优先(SJF)

(3)优先级调度算法(PSA)

(4)高响应比优先调度算法

3.实时调度

3.1 实时调度的基本条件

3.2 实时调度算法的分类

3.3 最早截止时间优先算法(EDF)

3.4 最低松弛优先算法(LLF)

4.死锁预防,死锁避免和死锁检测

5.银行家算法实例

6.死锁检测例题

case 1:

case 2:

case 3:


1.处理机调度层次

高级调度:高级调度的对象是作业,根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存。

低级调度(频率最高):低级调度的对象是进程(或者内核级线程);根据某种算法,决定就绪队列中的哪个进程应该获得处理机,并由分派程序将处理机分配给被选中的进程

中级调度:又叫内存调度,目的是为了提高系统的利用率和系统吞吐量

2.作业调度

(1)FCSF算法(先来先服务)

算法思想:当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是最优先考虑在系统中等待时间最长的作业,不管作业执行时间的长短。在进程调度中,采用FCFS算法时,每次调度就是从就绪队列中选择最先进入该队列的进程,为其分配处理机,运行。

优点:简单,容易实现。

缺点平均等待时间波动较大。 I/O资源和CPU资源的利用率低对短作业不利

(2)短作业优先(SJF)

算法思想:系统从进程队列中选择执行时间最短的进程优先执行,时间越短,优先级越高

优点 :降低了短作业的等待时间,平均周转时间减小了;系统吞吐量提高。

缺点:很难准确预估作业运行时间;对长作业不利,可能等待长时间得不到执行;也未考虑作业的紧迫程度。

(3)优先级调度算法(PSA)

算法思想:基于作业紧迫程度,赋予作业响应的优先级,系统从后备队列获取优先级高的进程优先执行。

优点:紧迫作业可以优先执行;适合分时、实时系统。

缺点:低优先级的进程需要等待很久或者永远执行不了。

(4)高响应比优先调度算法

算法思想:系统从后备队列中选择响应比高的进程优先执行

响应比:响应比 = (作业等待时间 + 作业运行时间)/ 作业运行时间 = 1 + 作业等待时间 / 作业运行时间.

优点:优先级动态变化,既可以考虑到作业进入系统的次序,又能考虑到作业运行的时间;保证长作业等待足够时间必然能执行.

缺点:每次调度都要计算相应比,开销大

3.实时调度

3.1 实时调度的基本条件

  • 提供必要的信息
  • 系统处理能力强大
  • 采用抢占式调度机制
  • 具有快速切换机制

3.2 实时调度算法的分类

  • 非抢占式调度算法
  • 抢占式调度算法
    ① 基于时钟中断的抢占式优先级调度算法
    ② 立即抢占式
好的!以下是关于《计算机操作系统》慕课版第三章处理机调度死锁”的内容总结,并生成类似思维导图的形式: --- ### **第三章处理机调度死锁** #### 核心知识点概述 **一、处理机调度** 1. **调度的基本概念** - 调度的目标是提高系统资源利用率用户满意度。 - 包括作业调度(高级调度)、进程调度(低级调度)以及中间层调度2. **调度层次** - **作业调度**:决定哪些作业进入内存运行,属于长期调度- **进程调度**:选择就绪队列中的某个进程占用CPU,属于短期调度- **中级调度**:将暂时不用的进程从内存换出到外存上挂起,减少对内存的竞争。 3. **常见的调度算法** - 先来先服务(FCFS) - 按照任务到达时间顺序依次执行- 短作业优先(SJF/SJN) - 优先安排预计完成时间短的任务。 - 时间片轮转法(RR) - 给每个进程分配固定的时间片,超时则切换下一个进程- 高响应比优先(HRRN) - 结合等待时间所需的服务时间综合计算优先级。 - 多级反馈队列调度 - 进程可以在不同优先级的队列间动态迁移。 4. **实时调度** - 强调满足时限约束的重要性。 - 常见算法如EDF(最早截止期优先),RM(速率单调调度等) --- **二、死锁** 1. **死锁的概念** - 死锁是指两个或多个进程因争夺有限资源而永久阻塞的现象。 2. **发生条件** - 同时满足四个必要条件: - 互斥条件:资源只能由一个进程占有。 - 请求并保持条件:已占有的资源又申请新的资源- 不剥夺条件:已经分配给进程使用资源不可强制回收。 - 循环等待条件:形成封闭循环链路导致互相等待。 3. **预防策略** - 打破其中一个必要条件即可避免死锁的发生。例如: - 单独破坏"请求持有”原则——采用一次性分配所有需要资源的方式; - 或者通过预估资源需求量提前规划好。 4. **检测及解除方法** - 使用银行家算法进行安全状态分析判断是否会发生潜在危险情况;若发现有冲突,则可以采取措施解决比如终止某些特定程序释放它们所持有的关键物品出来缓解压力等等办法恢复整个系统的正常运作流程。 5. **案例解析** - 提供具体的例子帮助理解实际应用过程中如何应对可能出现的各种复杂状况下的解决方案设计思路探讨分享经验教训学习借鉴意义重大价值非凡值得深入研究探索实践验证最终达到熟练掌握灵活运用的目的效果显著成果丰硕令人满意! --- ### 思维导图结构示意图 ``` 处理机调度死锁 ├── 处理机调度 │ ├── 调度基本概念 │ │ └── 目标:提升效率+用户满意度 │ ├── 调度层次 │ │ ├── 作业调度 (长期) │ │ ├── 中级调度 (中期) │ │ └── 进程调度 (短期) │ ├── 常见调度算法 │ │ ├── FCFS | SJF | RR | HRRN | 反馈队列... │ └── 实时调度 └── 死锁 ├── 死锁概念 ├── 发生条件(4个同时成立) │ ├── 互斥条件 │ ├── 请求并保持条件 │ ├── 不剥夺条件 │ └── 循环等待条件 ├── 预防策略 │ ├── 打破任一条件 │ └── 如一次性分配资源 ├── 检测解除 ├── 安全性算法 (银行家算法) └── 解决方案 (撤销进程 / 抢夺资源...) ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值