今年十八,期末速刷(操作系统篇1)

马上期末了,想问问各位期末考几科

我家学校网安考7科呜呜呜

只能出点文章一把梭了。。。

争取只挂一科

 

先来先算法(FCFS)

算法思想

我今天学FCFS只有一个要求

公平、公平

还是tnd公平

算法规则

按照进程的先后顺序来进行服务。

是否会导致饥饿

不会(下面有解释)

是否可抢占

是非抢占式算法

个人理解

怎么说呢。。。

我个人的理解,就是食堂打饭。你先来,我就给你盛饭,不管你要多少菜,我都给你。

就算给你打饭需要1个小时,给别人打饭需要1秒,我也给你打,因为你是先来的。


不过这个打饭很有意思,我在看这个算法时有个疑问,就是:

明明我需要等前一个人打完饭我才可以打饭,那为什么我不会被饿死(导致饥饿)

当然放在现实里有点荒谬,不过注意,“饥饿”在算法里是这样解释的:

 在操作系统中,饥饿问题是指由于高优先级请求的不断涌入导致低优先级进程长时间被停滞,无法获得处理器或资源。通常情况下,当一个任务被无限期地推迟时,就会出现饥饿问题。操作系统需要以下资源来响应进程请求

什么意思捏,是指我去排队打饭,马上快到我的时候,一群牛马过来亲切地问我:同学我可以站在你前面嘛

好好好

然后我就被饿死了。(bushi

那为什么在FCFS中不会出现这种情况呢,是因为他有一个规则,即:

优先处理等待时间长的任务

什么意思?

等待时间长,就说明来得早。先来先算法顾名思义

优缺点

  • 优点:算法简单、公平
  • 缺点:对长作业有利,对短作业不利

为啥?

劳资几秒的事,非得拖到最后一个处理?人多也就不说啥了,人少不就是明摆着恶心人嘛。

然后有几个算式哈,理解一下就可。

算法

周转时间(打饭花费时间)=完成时间(打完饭)-到达时间(开始排队)

平均周转时间(平均每个人打饭时间)=各作业周转时间之和(总共打饭时间) / 作业数(打饭人数)

 带权周转时间=作业周转时间 / 作业实际运行的时间=(作业完成时间-作业提交时间)/ 作业实际运行的时间(编不下去了,自己理解吧qwq)

题目来自 _hacknet原创文章

最后一个进程是p4哈

周转时间=运行时间-到达时间

p1=7-0

p2=4-2........

仔细想想,这么写是不是错了

p2必须等p1打完饭才能开始打饭,所以从它到食堂开始排队到开始打饭等了多长时间?

p2等待时间:7-2=5

p2打饭时间:4

p2一共花费时间:5+4=9

那它的带权周转时间呢

根据公式:作业周转时间/作业实际运行时间

什么叫实际运行时间?

我去食堂为了干啥,打饭捏。那我排队能拿到一粒米吗?不能

所以实际运行时间即运行时间即开始打饭时间。一个意思,别问我为啥强调,问就是忘了。。。

所以:

周转时间/实际运行时间=9/4=2.25

剩下几个平均的整体算出来加一下除一下就行了,咱把剩下几个p简单说说。

p3周转时间:

p3到食堂的时间是4,这个时候,p1还没打完饭,那还得等个3,等完3之后,p2说他先来的,还得等他打饭花费的一个4。

问题来了,p3等了多长时间?

3+4=7

那咱打饭要多长时间?

咱饭量小,一个1就够

那7+1=8

咱的周转时间就是8

剩下的不说了,开另一个算法

RR调度算法

RR调度算法,也称时间片轮转。

算法思想

公平、平均(个人理解)

算法规则

按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。

是否会导致饥饿

不会(下面有解释)

是否可抢占

是抢占式算法

优缺点

优点:公平:响应快,适用于分时操作系统:
缺点:由于高频率的进程切换,因此有一定开销;不区分

不难,打个比方

我是一名班主任,带学生去做植树

分别有A,B,C,D,E,F六名学生,地面是这样的

这里只是画了部分树,还有很多树要被种

我选择按一排一排的形式植树。

啥意思捏,

每个人都有一个自己的任务进度,完不成一个任务进度禁止回家。而且每个人的任务进度都不一样,有人要种一个,有人要种两个

我先让6个人中的三个人去植树,给他们设个时间,好比是10分钟一次,等10分钟结束,不管他种没种完,都下来歇着。

如果,他种完了自己的任务进度,他直接放学回家。

如果,他没种完自己的任务进度,换另一个人种。

双人合作种一个树任务进度分开算。

那开始思考一下:

我是A,我先种了10分钟,可我没有种完,换B上来,B的手脚很麻利,种了5分钟就种完自己的任务进度回家了。

我就直接上去接着种我自己的任务进度,这就是抢占式。

如果是非抢占式,我就要等属于B的十分钟过完才能接着种。

那再想想,如果有15个学生,每列分到5名学生种树,这时候如果我在规定的十分钟之内没种完,我就只能排在队伍的后面重新等待了呜呜呜

看习题

图片来自 Devour123原创文章

没啥好讲的吧

周转时间是完成时间-到达时间

带权是周转/服务时间

如果就绪队列有 n 个进程,并且时间片为 q,那么每个进程会得到 1/n 的 CPU 时间,而且每次分得的时间不超过 q 个时间单元。每个进程等待获得下一个 CPU 时间片的时间不会超过 (n-1)q 个时间单元。例如,如果有 5 个进程,并且时间片为 20ms,那么每个进程每 100ms 会得到不超过 20ms 的时间。

 再来一个例题:

 由图可知,q=4,p1>q,p2,3<q,

开始p1先走4,余24-4=20,排至进程最后

接着CPU被p2抢占,p2<q,所以运行3后退出,CPU被p3抢占,p3<q,同样运行3后退出。

接着运行p1,20-4=16,排至就绪队列最后,但因就绪队列只剩p1,所以继续执行p1,16-4,12-4以此类推

SJF短作业优先

看这个名感觉就不用我说啥了

算法思想

追求最少的平均等待时间、最少的平均周转时间和平均带权周转时间。

不公平呜呜呜

算法规则

最短的作业/进程 优先得到服务。

是否可抢占

非抢占式

是否会导致饥饿

会,如果有源源不断的短作业到来,可能使长作业长时间得不到服务。

优缺点

优点:“最短的“平均等待时间、平均周转时间

缺点:不公平,对短作业有利,对长作业不利

例题

题目来自 四月天行健原创文章

 运行顺序,因为不公平先说一嘴

p1->p3->p2->p4

为啥p3不在p1前面,因为p1开始跑的时候p3还没进来

所以

周转时间:

p1=7-0

p3=7+1-4

p2=7+4+1-2

带权周转时间 = 周转时间 / 运行时间:没啥说的

等待时间 = 周转时间 - 运行时间也没啥说的

先发一篇,晚上接着写

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

获得忠实铁粉?你也可以

获得忠实铁粉&#xff1f;你也可以 何为铁粉铁粉与普通粉丝区别铁粉规则如何获得铁粉 何为铁粉 在CSDN中&#xff0c;铁粉通常指对某个知名开发者、博主或组织非常支持、崇拜、追随的粉丝。他们可能会关注该开发者或博主的所有文章、博客、视频等&#xff0c;积极参与讨论并分…

C++ 设计模式----“单一职责“模式

二、“单一职责”模式 在软件组件的设计中&#xff0c;如果责任划分的不清晰&#xff0c;使用继承得到的结果往往是随着需求的变化&#xff0c;子类急剧膨胀&#xff0c;同时充斥着重复代码&#xff0c;这时候的关键是划清责任。  典型模式 • Decorator • Bridge 【1】D…

基于Jeecg-boot的flowable流程支持拒绝同意流程操作

更多功能看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 因为看很多朋友需要…

easyui01(基本布局)

一.概述 1.What&#xff1f; jQuery EasyUI是一组基于jQuery的UI插件集合体&#xff0c;能帮助web开发者更轻松的打造出功能丰富并且美观的UI界面 2.Why&#xff1f; ①.使用easyui 不需要写很多代码&#xff0c;只需要编写一些简单 HTML 标记&#xff0c;就可以定义用户界…

使用docker部署ELK实战

目录 什么是ELKELK简介ElasticsearchLogstashKibana docker安装ELK安装es安装 Kibana安装logstash 什么是ELK ELK是一个开源的数据分析平台&#xff0c;由三个开源项目Elasticsearch、Logstash和Kibana组成&#xff0c;因此被称为ELK Stack。ELK Stack主要用于处理和分析大量的…

pytorch实现图像分类器

pytorch实现图像分类器 一、定义LeNet网络模型1&#xff0c;卷积 Conv2d2&#xff0c;池化 MaxPool2d3&#xff0c;Tensor的展平&#xff1a;view()4&#xff0c;全连接 Linear5&#xff0c;代码&#xff1a;定义 LeNet 网络模型 二、训练并保存网络参数1&#xff0c;数据预处理…

Exception in thread “main“ java.lang.UnsupportedClassVersionError 50报错处理

之间正常走jenkinsdocker自动化部署的项目&#xff0c;今天改了一个文件&#xff0c;点了一下&#xff0c;竟然没有部署上去&#xff0c;提示如上&#xff0c;如下 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/coocaa/tsp/sys/user/Use…

采用UWB定位技术开发的室内定位系统源码

UWB精准定位系统源码 UWB是什么&#xff1f; UWB(Ultra Wideband)超宽带技术是一种全新的、与传统通信技术有极大差异的通信新技术。它不需要使用传统通信体制中的载波&#xff0c;而是通过发送和接收具有纳秒或纳秒级以下的极窄脉冲来传输数据&#xff0c;实现精准定位。 技术…

机器鸟实现摆动尾巴功能

1. 功能说明 本文示例将实现R329样机机器鸟摆动尾巴的功能。 2. 电子硬件 在这个示例中&#xff0c;我们采用了以下硬件&#xff0c;请大家参考&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino Uno&#xff09;‍ 扩展板 Bigfish2.1扩展板‍ 电池7.4V锂电池 电路连接…

【头歌-Python】9.1 X射线衍射曲线绘制(project)第1~2关

第1关&#xff1a;X 射线衍射曲线 任务描述 本关任务&#xff1a;读文件中的数据绘制线图形。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.python 读取文件 2.使用 matplotlib 绘制图形 python 读取文件 python读取文件可以用以下函数实现&#xff1…

chatgpt赋能python:Python收费介绍

Python收费介绍 什么是Python? Python是一种高级的、解释性、面向对象、纯粹的动态语言&#xff0c;多用于快速应用程序开发、脚本编写、系统管理任务等。它有一个简单直观优美的语法&#xff0c;非常容易学习。 Python的收费形式 Python语言本身是免费的&#xff0c;任何…

如何使用Jmeter进行http接口测试?

目录 前言&#xff1a; 一、开发接口测试案例的整体方案&#xff1a; 二、接口自动化适用场景&#xff1a; 三、接口测试环境准备 四、创建工程&#xff1a; 总结&#xff1a; 前言&#xff1a; 本文主要针对http接口进行测试&#xff0c;使用Jmeter工具实现。 Jmter工具设…

1.2 Scala变量与数据类型

一、变量声明 (一&#xff09;、利用val声明变量 案例演示 &#xff08;二&#xff09;利用var声明变量 案例演示 &#xff08;三&#xff09;换行输入语句&#xff08;续行&#xff09; &#xff08;四&#xff09;同时声明多个变量 Scala还可以将多个变量放在一起…

射频电路layout总结

射频电路板设计由于在理论上还有很多不确定性&#xff0c;因此常被形容为一种“黑色艺术”&#xff0c;但这个观点只有部分正确&#xff0c;RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则。在实际设计时&#xff0c;真正实用的技巧是当这些准则和法则因各种设计约束…

RTU遥测终端机的应用场景有哪些?

遥测终端机又称智能RTU遥测终端机&#xff0c;是一种用于采集、传输和处理遥测数据的设备。在现代科技的发展中&#xff0c;遥测终端机扮演着重要的角色。它是一种能够实现远程监测和控制的关键设备&#xff0c;广泛应用于各个领域&#xff0c;包括水文水利、环境监测、工业自动…

创新案例|专注在线 协作平台 设计产品中国首家PLG独角兽企业蓝湖如何实现98%的头部企业渗透率

蓝湖起步于2015年&#xff0c;是一款服务于产品经理、设计师、工程师的产品设计研发在线协作工具&#xff0c; 2021年10月&#xff0c;蓝湖宣布完成C轮融资&#xff0c;融资额高达10亿人民币&#xff0c;称为中国2B市场中首家采用PLG发展的独角兽企业&#xff0c;并实现了从100…

Web 自动化测试Selenium 之PO 模型

目录 1. po 模型介绍 2. PageObject 设计模式 3. PO 的核心要素 4. 非PO 实现 5. PO 实现 6. 总结 7. PO 模式的特点 总结&#xff1a; 1. po 模型介绍 在自动化中&#xff0c;Selenium 自动化测试中有一个名字经常被提及 PageObject (思想与面向对象的特征相同)&#x…

MySQL数据库高级操作

目录 MySQL中6种常见的约束克隆表清空表的数据记录临时表创建外键约束&#xff0c;保证数据的完整性和一致性。 MySQL中6种常见的约束 主键约束&#xff08;primary key&#xff09;外键约束&#xff08;foreign key&#xff09;非空约束&#xff08;not null&#xff09;唯一…

安卓端Google隐私沙盒归因报告聚焦

自2022年2月Google首次提出将推出隐私沙盒至今已一年有余。现在&#xff0c;安卓端的隐私沙盒Beta测试已针对特定Android13设备正式开始。作为早期测试者&#xff0c;Adjust很高兴与 Google一同迈出增强用户隐私的第一步&#xff0c;并在接下来的旅程中继续携手同行。为帮助移动…

opencv初学记录

准备工作&#xff1a; 1.找一张图片 2.准备python运行环境&#xff0c;并导入库&#xff0c;pip install opencv-python 读取文件&#xff0c;并打印维度 import cv2 #为什么是cv2不是cv呢&#xff0c;这个2指的是c的api&#xff0c;是为了兼容老板&#xff0c;cv指的就是c&am…