IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 进一步学习操作系统 - 哈工大李治军老师 - 学习笔记 L13L14L15 -> 正文阅读

[系统运维]进一步学习操作系统 - 哈工大李治军老师 - 学习笔记 L13L14L15

L13 操作系统之树

建议二倍速观看

L14 CPU调度策略

参考 王道笔记:https://blog.csdn.net/tfnmdmx/article/details/119214333

好的调度算法:
1.尽快结束任务:周转时间(从任务进入到任务结束)短
2.用户操作尽快响应:响应时间(从操作发生到响应)短
3.系统内耗时间少:吞吐量(完成的任务量)大
总原则:系统专注于任务执行,又能合理调配任务…

在这里插入图片描述

IO约束型的任务指的是经常要进行IO操作的任务,这些任务每次使用CPU的时间短,但是频率高,相应的优先级就得高,这样才能实现CPU与IO的并行操作。
CPU约束型的任务每次使用CPU的时间都比较长,切换次数少,这样的任务就优先级就相对低一些。
参考https://blog.csdn.net/williamgavin/article/details/83099394

1.先来先服务FCFS: 平均周转时间可能会很长
2.短作业优先SJF:周转时间短,但是响应时间长
3.轮转调度RR:这种方式可以较好的满足响应时间,但是时间片的选取时间要好好考虑。
时间片大:响应时间太长;时间片小:吞吐量少,因为内耗大了。
4.优先级轮转:固定优先级,可能会造成有程序一直没法得到执行,需要动态调整优先级
在这里插入图片描述

但是这样会有很多问题?比如前台任务一直存在,那么后台任务是不是永远不执行了?执行一个后台任务的时间一般比较长,那么是不是这段时间就不响应前台任务?

对于第一个问题,给任务设置优先级,前台任务的优先级大于后台任务优先级,首先执行优先级高的任务,随着时间的增长,后台任务优先级动态升高,这样后台任务才有执行的机会。
对于第二个问题,采用时间片的方式,后台任务执行一段时间之后就跳到下一个任务。

除此之外还有很多其他的问题?例如:
我们怎么知道哪些是前台任务,哪些是后台任务,fork时告诉我们吗?
gcc就一点不需要交互吗? Ctrl+C按键怎么工作?
word就不会执行一段批处理吗? Ctrl+F按键?
SJF中的短作业优先如何体现? 如何判断作业的长度?

L15 一个实际的schedule函数

在这里插入图片描述

凡是已耗尽时间片(即counter=0)的,则立即退出本周期的竞争;当所有未被阻塞进程的时间片都耗尽,那就不等了。然后,由调度器重新为进程分配时间片,开始下一个调度周期。
参考https://zhuanlan.zhihu.com/p/342626101

schedule(){
死循环{c=-1(准备存储最大的counter);next=0(下一进程的下标);i=NR_TASKS(NR_TASKS是PCB数组的范围)
先将p指向PCB的最后一个元素
遍历整个数组{如果p指向进程的状态为就绪态 且 其优先级大于 c
令c=该优先级(目前最大优先级);next=该进程下标

}
如果c大于零,就跳出死循环,执行switch_to(next),即执行counter最大的那个进程。
重新为进程分配时间片:
counter = counter/2 + 优先级
}
switch_to(next)切换到下一进程
}


就绪进程的counter = 0,阻塞进程的counter > 0,所以重新分配时间片时,
就绪进程的counter = 0 + priority,阻塞进程的counter = counter/2 + priority

后台程序基本不和用户交互,优先级别稍微低一点
前台程序和用户交互,需要较高的响应速度,优先级别稍微高一点
参考https://blog.csdn.net/senvil/article/details/48915731
IO是前台进程的特征

在这里插入图片描述
1.counter保证了响应时间的界
时间片c(∞) <= 2p
若有n个进程,响应时间 <= 2np

2.IO就是阻塞,时间片到后,阻塞的counter=counter/2+priority,阻塞时间越长,counter越大
counter越大,也即优先级越大,照顾了IO进程,IO操作是前台进程的特征,也即变相照顾了前台进程

3.后台进程一直按照counter轮转,近似于SJF调度

4.每个进程只用维护一个counter变量,简单、高效。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:29:14  更:2021-08-07 12:31:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 12:55:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码