【OS】操作系统课程笔记 第四章 中断和处理机调度

news2024/9/25 21:29:40

什么是调度?

调度就是采用特定算法,安排多个作业或进程运行。

4.1 中断

中断对于操作系统的五个作用:(可能考简答题

  1. 实现多道程序设计与并发的基础
  2. 解决主机与外设的并行工作问题
  3. 具备控制和管理计算机,提高可靠性
  4. 实现多机联系
  5. 实现分时、实时控制等

4.1.1 中断和指令周期

中断响应的三个步骤:

  1. 终止当前程序执行
  2. 保存断点信息
  3. 转到相应的中断处理程序

中断和指令周期流程图:

4.1.2 中断处理

中断分为强迫性中断和自愿性中断,它们最主要的区别在于是否是程序自己安排的。

我们熟知的时间片到就是强迫性中断。

4.1.3 多个中断

处理方法:

  1. 在处理一个中断时,禁止再发生中断;
  2. 定义中断优先级。

4.1.6 三级调度

高级调度:将作业从外存移到内存,新建进程后进入就绪状态。

中级调度:属于交换功能的一部分,将就绪进程或阻塞进程挂起,或将处于外存的静止就绪和静止阻塞状态的进程激活。

低级调度:决定下次哪个就绪进程占用CPU。

中断与进程状态转换

时间片到 :这个中断表明状态转移,就是由于系统定时时间间隔时钟中断所引起的当前进程的一个时间片用完而从运行状态转移到就绪状态。

I / O 完成:I/O外设数据传输完成产生一个I/O完成中断信号而进入I/O中断处理。由于I/O外设完成中断信号所引起的从阻塞到就绪状态的转移。

申请I/O服务:运行中进程需要在某处执行有关I/O指令以进行数据输入输出。要么是访管指令,要么是某种系统调用,都属于自愿性中断而进入中断处理, 进入由于等待某类I/O的阻塞队列。

调度:当我们清楚了以上状态转移原因,这条边所表明的状态转移也很容易理解。这涉及到调度的时机;产生调度的因素有很多,但基本都与中断有关。

总而言之,进程状态变迁是由于中断,但中断不一定产生进程切换!

 4.2 处理机调度

4.2.1 进程调度方式

4.2.2 调度算法

评价算法的指标:

  1. CPU利用率:使CPU尽量处于忙碌状态。
  2. 吞吐率:单位时间内所处理的计算任务的数目。
  3. 周转时间:
  4. 响应时间:从任务就绪到处理开始,也称为等待时间。
  5. 系统开销:时间和空间开销。

1. 先来先服务 FCFS

先就绪的先运行,按照先后顺序依次运行,前一个作业的结束时间就是后一个作业的开始时间,周转时间 = 结束时间 - 到达时间,带权周转时间 = 周转时间 / 服务时间。

2. 短作业优先 SJF

第一个就绪的作业先运行,如果该作业结束后有多个作业已经就绪,那就选择服务时间最短的那个接着运行。

3. 高响应比 HRP

每次运行完作业后,都要看接下来已经就绪的作业中,哪一个响应比最高,选最高的那个接着运行。

4. 最短剩余时间 SRT

其实就是每次运行到一个作业的就绪时间点时,看一看现在已经就绪的作业里哪一个需要花的时间最短,选择需要花时间最短的那个接着运行。注意画图!

5. 轮转法 HPF

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

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

相关文章

深度探讨丨区块链领域企业的未来之路

发表时间:2022年8月4日 信息来源:bsvblockchain.org 随着公司越来越多地采用区块链和人工智能等新技术,他们也应当注意其中的一些机遇与挑战。这是近期在波兰华沙举行的“明日技术大会”上的一个主要圆桌讨论议题。 在圆桌讨论中&#xff0c…

wpf资源Resources探究性学习(一)

测试环境: vistual studio 2017 .net framework 3.5 window 10 新建WPF应用(.net framework),项目名称为:WpfDemo,如下图: 新建完项目后,默认带有一个名为MainWindow.xaml的代码 一 简单使用字符串资源…

《Java极简设计模式》第07章:装饰模式(Decorator)

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 源码地址:https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

十二、MySql的事务(下)

文章目录 一、事务隔离级别(一)如何理解隔离性(二)隔离级别1.读未提交【Read Uncommitted】:2.读提交【Read Committed】 :3.可重复读【Repeatable Read】:4.串行化【Serializable】: &#xff…

fabic.js Quadratic Curve /可控制的曲线

需要绘制一条可控制的贝塞尔曲线&#xff0c;发现fabic官网中一个demo有点类似。感兴趣的可以移步官网查看demo。 官网的demo是对于html 而言的&#xff0c;放在vue中需要变换一下&#xff0c;具体代码如下&#xff1a; <template><div class"dashboard-contai…

NuttX实时操作系统介绍(最详细)

比起安卓、iOS、鸿蒙等&#xff0c;NuttX知名度不算高&#xff0c;该系统于2007年由Gregory Nutt先生正式开源。发展至今&#xff0c;NuttX以功能丰富、性能稳定、商业化成熟度高赢得了市场的认可。 NuttX是一个成熟的实时操作系统&#xff0c;于07年由Gregory Nutt先生正式开源…

爬虫 — Js 逆向案例四网易云音乐评论

目标网站&#xff1a;https://music.163.com/#/song?id2054300084 需求&#xff1a;获取评论内容&#xff0c;用户名 案例分析 1、分析网站加载方式 动态加载&#xff0c;抓包 找到目标 url&#xff1a;https://music.163.com/weapi/comment/resource/comments/get?csrf_to…

zookeeper异常 Cannot open channel to 3 at election address

zookeeper异常 Cannot open channel to 3 at election address 今天在测试服务器搭建单机zookeeper集群的时候遇到了下面的问题&#xff0c;花费了很长的时间才解决掉 场景 首先来说一下场景吧&#xff1a;最近生产环境的zookeeper集群想做一个迁移&#xff0c;所以本着万无…

【算法练习Day1】二分查找移除元素

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 二分查找解决方法一&…

【pytest】 pytest拓展功能 pycharm PermissionError: [Errno 13] Permission denied:

目录 1. pytest-html 1.1 PermissionError: [Errno 13] Permission denied: D:\\software\\python3\\anconda3\\Lib\\site-packages\\pytest_html\\__pycache__\\tmp_ttoasov 1.2错误原因 2. 失败用例重试 3. 用例并行执行 pytest-parallel 1. pytest-html 管理员打开 A…

Java入门级基础教学(史上最详细的整合)

目录 一&#xff1a;基础语法 1.“Hello word” 2.Java的运行机制 3. Java基本语法 1.注释、标识符、关键字 2.数据类型&#xff08;四类八种&#xff09; 4.类型转换 1.自动转换 2.强制转换 5.常量和变量 1.常量 2.变量 3.变量的作用域 6.运算符 1.算数运算符 …

从零开始搭建成绩查询系统

在当前的数字化时代&#xff0c;教育行业借助技术手段不断推动教学效果的提升。作为教师&#xff0c;搭建一个专属的成绩查询系统可以更好地管理学生成绩&#xff0c;并即时向家长反馈。本文将详细介绍如何从零开始搭建一个成绩查询系统&#xff0c;以提升教学管理的便捷性和效…

Qt(day4)

思维导图 QT连接TCP网络通信 服务器 ser.h #ifndef SER_H #define SER_H#include <QWidget> #include<QTcpServer> //服务器头文件 #include<QTcpSocket> //客户端头文件 #include<QMessageBox> //消息对话框 #include<QList> …

已解决 ValueError: Found array with dim 3. Estimator expected <= 2.

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

“新”心相印 | 长沙市网络代表人士培训班“破冰”联谊“湘”味十足

搜狐网湖南&#xff08;文/莫谦&#xff09;9月18日至9月22日&#xff0c;首期长沙市网络代表人士专题培训班在北京大学举行&#xff0c;培训班学员主要是长沙网络名人联盟成员&#xff0c;涵盖抖音达人、微博博主、网络作家、网络大V等。 为了加强长沙网络名人联盟组织建设&a…

exec函数族

1.execl函数 #include <unistd.h> int execl(const char *path, const char *arg, ...); 参数&#xff1a; -path:需要指定的执行文件的路径或者名称 -*arg:是可执行文件所需要的参数列表 第一个参数一般没有什么作用&#xff0c;一般写的是执行的程序的名称 从第二个参…

鉴源实验室 | 系统逻辑漏洞挖掘实践

作者 | 林海文 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 前 言 当谈及安全测试时&#xff0c;逻辑漏洞挖掘一直是一个备受关注的话题&#xff0c;它与传统的安全漏洞&#xff08;如…

SSM整合(细节拉满)|将Mybatis、Spring、SpringMVC三个框架整合起来,通过一个demo来练习

环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库&#xff0c;Spring&#xff0c;JavaWeb及MyBatis知识&#xff0c;简单的前端知识; 数据库环境 创建一个存放书籍数据的数据库表&#xff0c;并插入一些示例数据 SSM整合 新建一个空的M…

网安须知|什么是护网行动?什么是红蓝对抗?

01 什么是护网行动 护网行动是以公安部牵头的&#xff0c;用以评估企事业单位的网络安全的活动。 具体实践中&#xff0c;公安部会组织攻防两方&#xff0c;进攻方会在一个月内对防守方发动网络攻击&#xff0c;检测出防守方&#xff08;企事业单位&#xff09;存在的安全漏洞…

深入学习 Redis - 分布式锁底层实现原理,以及实际应用

目录 一、Redis 分布式锁 1.1、什么是分布式锁 1.2、分布式锁的基础实现 1.2.1、引入场景 1.2.2、基础实现思想 1.2.3、引入 setnx 1.3、引入过期时间 1.4、引入校验 id 1.5、引入 lua 脚本 1.5.1、引入 lua 脚本的原因 1.5.2、lua 脚本介绍 1.6、过期时间续约问题&…