计算机操作系统(慕课版)第三章学习笔记

第三章 处理机调度与死锁

在这里插入图片描述
1.1 调度的层次
高级调度、低级调度和中级调度。
中级调度:在内存和外存对换区之间按照给定的原则和策略选择进程对换。
目的:

  • 提高主存利用率,调节系统负荷
  • 进行程序的调试、检查和改正;
  • 当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。

1.2 进程调度的方式
非抢占方式和抢占方式(允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程)

1.4 批处理系统的目标

  • 平均周转时间短:每个任务运行时等待的时间尽量短。
  • 系统吞吐量大:单位时间内系统完成的作业数尽量多。(与作业的长度有关,作业越短越好)
  • CPU利用率高:保持CPU尽可能忙碌(与作业的计算量有关,作业计算量越大越好)
    在这里插入图片描述
    2.1 关于周转时间等概念
    周转时间:从作业提交给系统开始,到作业完成为止的这段时间间隔。
    周转时间=完成时刻-提交时刻
    平均周转时间=周转时间/n
    带权周转时间:权值为作业周转时间T与系统为之服务时间TS之比

2.2 进程调度算法
先来先服务调度算法(FCFS)
短作业优先调度算法(SJF)
优先级调度算法(PR)
高响应比优先调度算法(HRRN)
教材P79

2.3 先来先服务(FCFS)调度算法
在这里插入图片描述
假定作业到达顺序如下: J1 , J2 , J3 该调度的甘特图(Gantt)为:
在这里插入图片描述
平均等待时间 = (0 + 24 + 27)/3 = 17
平均周转时间 = (24 + 27 + 30)/3 = 27
FCFS算法有利于长作业,不利于短作业
FCFS有利于CUP繁忙的作业,不利于I/O繁忙的作业

2.4 短作业优先(SJF)调度算法
(1)非抢占式SJF举例
在这里插入图片描述
在这里插入图片描述
平均等待时间 = (0 + 6 + 3 + 7)/4 = 4
平均周转时间=(7+10+4+11)/4= 8

(2)抢占式SJF举例
在这里插入图片描述
在这里插入图片描述
平均等待时间 = (9 + 1 + 0 +2)/4 = 3
平均周转时间 = (16+ 5 +1+ 6)/4 = 7

优点:缩短作业的等待时间; 提高吞吐量;
缺点:对长作业不利,可能长时间得不到执行;未能依据作业的紧迫程度来划分执行的优先级;难以准确估计作业的执行时间

2.5 优先级调度算法PR

  • 优先级类型
    • 静态优先级
      -创建进程时确定优先数(整数),在进程的整个运行期间保持不变
      • 简单易行,系统开销小
      • 不够精确,可能会出现优先级低的进程长期没有被调度的情况
    • 动态优先级
      • 创建进程时先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变

(1) 非抢占式静态优先级调度算法举例
在这里插入图片描述
在这里插入图片描述
平均周转时间=((7-0)+(15-2)+(16-4)+(11-5))/4=8.5
平均等待时间=(0+9+11+2)/4 = 5.5

(2) 抢占式优先权算法—静态优先权例
在这里插入图片描述
在这里插入图片描述
平均周转时间=((11-0)+(9-2)+(16-4)+(8-5))/4=8.25
平均等待时间=(7+3+11+0)/4 = 5.25

优点:实现简单,考虑了进程的紧迫程度;灵活
缺点:饥饿——低优先级的进程可能永远得不到运行
解决方案:老化——视进程等待时间的延长提高其优先级

2.6 高响应比优先权调度算法
响应比公式:
在这里插入图片描述

例题:
在一个单道的程序设计系统中,有3个作业J1、J2、J3,它们到达输入井的时间分别为8:50、9:00、9:30,它们需要执行的时间分别为1.5小时、0.4小时、1小时。
系统在10:00按响应比高者优先算法对它们进行调度,请回答:
(1)作业被选中执行的次序是什么?
(2)三个作业被选中时的响应比分别是多少?

响应比=等待时间+要求服务时间/要求服务时间=作业周转时间/作业运行时间=1+作业等待时间/作业运行时间
以J1为例,它的作业计算时间是1.5小时,即90分钟;J1从8:50到达输入井,在10:00时刻,J1的等待时间为70分钟,因此响应比为
J1:1+70分钟/90分钟=1.77
J2:1+60分钟/24分钟=3.5
J3:1+30分钟/60分钟=1.5
因此按照响应比高者优先算法,优先调度J2。
在10:24,J2完成。这时计算J1、J3的响应比:
J1:1+(70+24)分钟/90分钟=2.04 J3:1+(30+24)分钟/60分钟=1.9
按照响应比高者优先算法,优先调度J1。
在11:54,J1完成,系统调度J3,
J3的响应比为1+(30+24+90)分钟/60分钟=3.4
因此,作业被选中执行的次序是J2、J1、J3。

2.7 时间片轮转(RR)调度算法 教材P81
在这里插入图片描述
举例:
在这里插入图片描述
时间片为1
在这里插入图片描述
平均周转时间=((15-0)+(12-2)+(6-4)+(16-5))/4=9.5
平均等待时间=(8+6+1+7)/4 = 5.5

时间片为4
在这里插入图片描述
平均周转时间=((12-0)+(8-2)+(9-4)+(16-5))/4=8.5
平均等待时间=(5+2+4+7)/4 = 4.5

时间片为7
在这里插入图片描述
平均周转时间=((7-0)+(11-2)+(12-4)+(16-5))/4=8.75
平均等待时间=(0+5+7+7)/4 = 4.75

优点:
所有进程时间相等,一定程度上提高响应时间
缺点:
不利于I/O繁忙的型进程,不利于紧迫型进程

3 死锁
死锁(Deadlock):指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,这些进程都将永远不能再向前推进。

3.1 产生死锁的原必要条件
1,互斥条件
2,请求和保持条件
3,不可抢占条件
4,循环等待条件

3.2 死锁原因
1,竞争不可抢占性资源引起死锁
2,竞争可消耗资源引起死锁
3,进程间推进顺序不当引起死锁
注意:只要发生死锁四个条件必然全部成立,若任意一个条件不满足,则不会发生死锁。

3.3 死锁的定义
死锁:如果一组进程中的每个进程都在等待仅由该组进程中的其他进程才能引发的事件发生,那么该组进程死锁的。

3.4 处理死锁的方法
预防死锁;避免死锁;检测死锁;解除死锁

3.5 死锁的预防
破坏死锁的四个必要条件中的一个或几个
破坏互斥条件:互斥条件是共享资源必须的,不仅不能改变,还应加以保证。
1,破坏“请求和保持”条件,资源一次性分配
2,破坏“不可抢占”条件 ,可剥夺资源:
采用的策略:一个已经保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请
3,破坏“循环等待”条件,资源有序分配法:
基本思想是:把系统中所有资源类型线性排队,并按递增规则赋予每类资源以唯一的编号。进程申请资源时,必须严格按资源编号的递增顺序进行

3.6死锁的避免
死锁避免定义:在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则予以分配。

3.7 避免死锁的算法-银行家算法

  • 最具有代表性的避免死锁算法是银行家算法。
    教材P100 详细写了,内容较多,看书。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2812048.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

vue + koa + 阿里云部署 + 宝塔:宝塔前后端部署

接上篇,我们已经完成了宝塔的基本配置,下面我们来看如何在宝塔中部署前后端 一、上传前后端代码文件 在www > wwwroot目录下创建了一个demo文件,用来存放前后端代码 进入demo中,点击上传 这里前端我用的打完包的 dist文件&am…

08_第八章 微头条项目开发(PostMan测试工具)

文章目录 第八章 微头条项目开发一 项目简介1.1 微头条业务简介1.2 技术栈介绍1.3 功能展示 二 前端项目环境搭建三 后端项目环境搭建3.1 数据库准备3.2 MVC项目架构模式3.3 搭建项目3.3.1 创建WEB项目3.3.2 导入依赖3.3.3 准备包结构 3.5 准备工具类3.5.1 异步响应规范格式类3…

Jquery中的事件与动画

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 使用常用简单事件制作网页特效使用鼠标事件制作主导航特效使用hover()方法制作下拉菜单特效使用鼠标事件及动画制作页面特效 一.Jquery事件概述 二.基础事件 鼠标事件 演示案例&…

.NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】

设计模式是软件工程中常用的解决特定问题的通用设计方法。它们提供了经过验证的解决方案,可用于解决在软件开发过程中经常遇到的一些常见问题。设计模式不是一种具体的编程语言特性或语法,而是一种通用的设计思想或模板,可以帮助开发人员设计…

如何在项目中考虑非功能需求

软件的非功能需求指的是除了软件的功能需求以外,软件需要满足的一些其他需求。常见的非功能需求包括: 性能需求:软件需要在特定的时间内完成特定的任务,例如响应时间、吞吐量等。可靠性需求:软件需要在各种环境下都能…

pclpy VoxelGrid 滤波器 (降体素化)

[TOC](pclpy VoxelGrid 滤波器 (降体素化)) 一、算法原理 使用体素化网格方法对点云数据集进行下采样(即减少点数)。VoxelGrid类。在输入点云数据上创建一个3D 体素网格(将体素网格视为空间中的一组微小的 3D 框)。然后在每个体…

RK3568平台开发系列讲解(基础篇)如何快速学习一套 Linux开发板源码

🚀返回专栏总目录 文章目录 一、基础代码二、驱动代码沉淀、分享、成长,让自己和他人都能有所收获!😄 拿到一份源码和一块评估板,如何快速找到与这块板相关的源码,是很多研发人员都曾遇到过的问题。如果对内核源码结构有大概了解,要完成这些事情也不难,通常可按照基础…

AVL树简介及其四种旋转

AVL树由二叉搜索树进化而来。在二叉搜索树中如果出现特殊情况:所有插入的数据均为有序,根据二叉搜索树的插入原理,其会退化为单枝斜向下的而二叉树,此时插入,查找,删除的效率也就退化成了O(n),效…

CUDA编程 - 用向量化访存优化 elementwise 核函数 - 学习记录

Cuda elementwise 一、简介1.1、ElementWise1.2、 float4 - 向量化访存 二、实践2.1、如何使用向量化访存2.2、Cuda elementwise - Add2.3、Cuda elementwise - Sigmoid2.3.1、简单的 Sigmoid 函数2.3.2、ElementWise Sigmoid float4(向量化访存) 2.4、C…

js里面有引用传递吗?

一:什么是引用传递 引用传递是相对于值传递的。那什么是值传递呢?值传递就是在传递过程中再复制一份,然后再赋值给变量,例如: let a 2; let b a;在这个代码中,let b a; 就是一个值传递,首先…

从零开始学Spring Boot系列-Hello World

欢迎来到从零开始学Spring Boot的旅程!我们将从一个非常基础但重要的示例开始:创建一个简单的Spring Boot应用程序,并输出“Hello World”。 1. 环境准备 首先,确保你的开发环境已经安装了以下工具: Java Development …

读人工不智能:计算机如何误解世界笔记04_数据新闻学

1. 计算化和数据化的变革 1.1. 每一个领域都在进行计算化和数据化的变革 1.1.1. 出现了计算社会科学、计算生物学、计算化学或其他数字人文学科 1.1.2. 生活已走向计算化,人们却一点也没有变 1.2. 在如今的计算化和数据化世界中,调查性新闻的实践必须…

掌握ChatGPT润色绝技:什么是人工智能写作以及如何使用它来完成写作任务

如对AI写论文感兴趣,欢迎添加作者wx讨论 : ryan_2982 人工智能 (AI) 的出现开创了技术进步的新时代,彻底改变了包括写作和内容创作在内的各个行业。人工智能写作和人工智能提示已成为可以简化和增强写作任务的强大工具。在这篇博文中,我们将…

2018-02-14 新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】

2018-02-14新闻内容爬虫【上学时做论文自己爬新闻数据,原谅我自己懒发的图片】资源-CSDN文库https://download.csdn.net/download/liuzhuchen/88878591爬虫过的站点: 1QQ新闻 1,准备爬取滚动新闻页面 2 通过F12 开发工具查找发现&#xff…

k8s节点负载使用情况分析命令kubectl describe node [node-name]

1.到任意安装了kubectl节点命令的节点上执行kubectl describe node [node-name] 上面的Requests最小分配 Limits最大分配是所有pod之和,最小分配之和不能超过服务器实际参数,否则新的pod会因为资源不够起不来,最大分配是预设之和&#xff0…

office word保存pdf高质量设置

1 采用第三方pdf功能生成 分辨率越大质量越好

leetcode(算法) 83.删除排序链表中的重复元素(python版)

需求 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2] 示例 2: 输入:head [1,1,2,3,3] 输出&…

Android WebView访问网页+自动播放视频+自动全屏+切换横屏

一、引言 近期,我发现电视家、火星直播等在线看电视直播的软件都已倒闭,而我奶奶也再无法通过这些平台看电视了。她已六十多岁,快七十岁啦。这些平台的倒下对我来说其实没有多大的影响,但是对于文化不多的她而言,生活中…

大模型学习笔记四:LangChain开发框架解析

文章目录 一、langChain核心组件介绍二、模块I/O封装1)多轮对话 Session 封装2)模型的输入(1)Prompt模板封装(2)从文件加载Prompt模板 3)模型的输出(1)Pydantic (JSON) P…

c入门第二十四篇: 学生成绩管理系统优化(可执行文件传参)

前言 我:“师弟,review完你的代码之后,你觉得有没有什么地方可以优化?” 师弟一脸懵。 我:“比如,你把客户端和服务端的可执行文件生成之后,我把服务端部署到我的测试机器上,客户端…