【操作系统】进程管理——调度基础(个人笔记)

news2024/11/17 15:28:21

学习日期:2024.7.3

内容摘要:调度的概念、层次,进程调度的时机,调度器和闲逛进程,调度算法的评价指标


调度的基本概念

有一堆任务需要处理,但由于资源有限,有的事情不能同时处理,这就需要按照某种规则决定处理顺序,这就是“调度”研究的问题。

作业

作业:用户提交给系统的一个任务。若干进程共同完成一个作业。作业可以包含一个或多个进程。

进程与作业的区别与联系
1.联系
一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。

2.区别
进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。

调度的三个层次

高级调度(作业调度)

按一定的原则从外存的作业后备队列中挑选一个调入内存,并创建进程,每个作业只调入调出一次。作业调入时建立PCB,调出时撤销。

简单理解为有好几个程序待启动,到底先启动哪个。

低级调度(进程调度)

按照某种策略从就绪队列中挑选一个进程,将处理机分配给它。

进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置,频率很高,通常几十毫秒一次。

中级调度(内存调度)

内存不够时,可以将某些进程的数据调出到外存,等内存空间空闲或者进程需要运行时再重新调入内存。暂时调到外存等待的进程状态为挂起状态,被挂起的进程PCB会被组织为挂起队列。

挂起和阻塞状态都是暂时不能获得CPU的服务,但是挂起态的进程映像被调到了外存当中,阻塞态还在内存中。

中级调度就是,按照某种策略决定将哪个处于挂起状态的进程重新调入内存,一个进程可能会被多次调出调入内存,因此中级调度发生的频率比高级调度更高。

进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

需要进行进程调度与切换的情况:

当前运行进程主动放弃处理机的

①进程正常终止 ②运行过程中发生异常终止 ③进程主动请求阻塞

当前运行进程被动放弃处理机的

①分给进程的时间片用完 ②有更紧急的事情需要处理 ③有更高优先级的进程进入就绪队列

不能进行进程调度与切换的情况:

①在处理中断的过程中。中断处理过程非常复杂,与硬件密切相关,很难做到在中断处理过程中切换进程。

②进程在操作系统内核临界区中。

③在原语操作过程中,原语不可中断,要一气呵成。(如在进程控制中提到的一些原语操作)

进程调度的方式

非剥夺调度方式

又称“非抢占调度方式”,在有的操作系统中,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

优缺点:实现简单,系统开销小,但是无法及时处理紧急任务,适用于早期的批处理操作系统。

剥夺调度方式

又称“抢占调度方式”。当一个进程正在处理机上执行时,如果有一个更重要或者更紧迫的进程需要使用处理机,就立即暂停正在执行的进程,将处理机分配给更加紧急重要的那个进程,

优缺点:可以优先处理更紧急的进程,也可以实现让各进程按时间片轮流执行的功能,(通过时钟中断)。适合于分时操作系统、实时操作系统。

进程切换是有时间代价的,如果过于频繁的进行进程的调度、切换,必然使得整个系统的效率降低,系统的大部分时间都花在进程切换上,真正用于执行进程的时间减少。并不是切换越多并发度就越高!

调度器和闲逛进程

如图所示,②和③都由调度程序引起,其决定运行的进程和分配的时间片大小。创建新进程、进程退出、运行进程阻塞、I/O中断发生都会触发调度程序。

非抢占式调度策略,只有运行阻塞或退出才会触发调度程序工作。

抢占式调度策略,每个时钟中断或k个时钟中断会触发调度程序工作。

调度程序处理的对象是进程(不支持内核级线程的操作系统)或内核级线程(支持内核级线程的操作系统)。

闲逛进程:调度程序在没有其它就绪进程时,运行闲逛进程(idle)

特性:①优先级最低,能耗也低  ②可以是0地址指令,占一个完整的指令周期,指令周期末尾例行检查中断

调度算法的评价指标

CPU利用率、系统吞吐量、周转时间、等待时间、响应时间,是调度算法的常见评价指标。

CPU利用率

因为CPU造价昂贵,人们希望让CPU尽可能多的工作。

CPU利用率:CPU忙碌的时间占总时间的比例。

系统吞吐量

对于计算机来说,希望能用尽可能少的时间处理完尽可能多的作业。

系统吞吐量:单位时间内完成作业的数量。

周转时间

对于使用计算机的用户来说,他很关心自己的作业从提交到完成花了多少时间。

周转时间:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。

 在周转时间相同的情况下,运行时间长的作业给用户的感觉会更好。

比如说两个作业,一个是等10分钟运行1分钟,一个是等1分钟运行10分钟,周转时间都是11分钟,但是显然等1分钟运行10分钟的感觉好一些。

带权周转时间

为了更客观的评价,引入了带权周转时间,就是作业的周转时间除以作业实际运行的时间。

带权周转时间必然≥1(刚交上去就运行就是1),带权周转时间与周转时间都是越小越好

同理,也有平均带权周转时间,就是带权周转时间之和除以作业数

等待时间

计算机的用户希望自己的作业尽可能少的等待处理机。

等待时间:进程/作业处于等待处理机状态时间之和,等待时间越长用户满意度越低。

对于进程来说,等待时间就是进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,所以不计入等待时间。

对于作业来说,不仅要考虑进程建立后的等待时间,还要加上作业在外存后备队列中的等待时间。

与前面指标类似,也有“平均等待时间”来评价整体性能。

响应时间

计算机的用户希望自己提出的请求尽快被系统响应。

响应时间:用户从提交请求到首次产生响应所用的时间。


 内容总结自王道计算机考研《操作系统》 和 人民邮电出版社《操作系统导论》

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

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

相关文章

virtualbox+Ubuntu部分窗口显示错乱

如下图: 窗口标题显示错乱,跟一般乱码不一样。 解决办法: 在virtualbox设置中,显示选项卡,取消勾选启用3D加速 也可参考此链接:linux ubuntu 中vscode中央窗口显示出现异常/显示错误_开发工具-CSDN问答

替换数据库是换肤还是换心?

上周末参加了自主可控数据库的沙龙。在会上我进行了主题演讲《围追堵截下,Oracle还能在国内立足么》 先听结论吧 我个人认为在很长一段时间还是你可以立足的。IDC最近公布的数据如下。本地部署中,Oracle居然是第一位的。这个数据是超出我想象的。去O都…

【机器学习】Datawhale-AI夏令营分子性质AI预测挑战赛

参赛链接:零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区 一、赛事背景 在当今科技日新月异的时代,人工智能(AI)技术正以前所未有的深度和广度渗透到科研领域,特别是在化学及药物研发中展现出了巨…

[我靠升级逆袭成为大师]韩漫日漫无删减完整版,免费在线观看漫画

[我靠升级逆袭成为大师]韩漫日漫无删减完整版,免费在线观看漫画 不能多说,怕审-核不过,自己看图吧。 目前统计【统计日期:2024-07-03】: 完结的有:420部。 连载的有:308部,持续更…

关于工时表软件,知道这四点就够了

在当今商业环境日益加快的节奏中,分秒必争。对于企业而言,了解内部时间的使用情况是确保效率、优化资源分配和提高生产力的关键。工时表在这里发挥着不可或缺的作用,它不仅是行政工作的组成部分,更是明确运营、加强项目管理和简化…

程序员的加油站,各类技术文章,可视化技术,在线源码资源,在线实用工具,数据爬虫接口持续集成更新中

先挂网址:https://wheart.cn 可视化大屏模板与设计,在线预览 上百例可视化模板 技术文章、资源下载等各类资源导航页 echart在线实用demo 各种在线工具提升开发效率 echart在线代码模板

Raylib 坐标系适应与GPU绘制参数

通过750 - 鼠标坐标&#xff0c;把原点在左上角的鼠标坐标变成左下角 实现输入数据后的坐标系同GPU原点在左下角坐标相同&#xff0c; 比数组0&#xff0c;0对应左上角好&#xff0c; 此时实际上数组0&#xff0c;0对应左下角 #include <raylib.h> // 感受&#xff1a…

8624 多项式系数累加和

这个问题可以通过使用数学的导数规则来解决。对于一个多项式&#xff0c;它的导数可以通过将每一项的系数乘以它的指数&#xff0c;然后降低该项的指数来得到。这个过程可以重复M次来得到多项式的M阶导数。然后&#xff0c;我们可以简单地将所有项的系数相加来得到结果。 以下…

Android Studio上传新项目到Gitee

一、在Gitee上创建仓库 首先需要再Gitee上创建仓库 1、在Gitee中新建仓库 2、输入仓库信息 3、生成仓库地址 创建成功会生成一个仓库地址&#xff0c;格式如下&#xff1a; https://gitee.com/test/compose_mvi_demo.git二、Android Studio 上传项目到Gitee 1、在Android …

GPT-4预测股票涨跌更更更准了!东京大学新框架LLMFactor提升显著 | ACL 2024

花一秒钟就看透事物本质的人&#xff0c;和花一辈子都看不清的人&#xff0c;注定是截然不同的命运。——唐柯里昂 除了少数天纵奇才&#xff0c;大多数人都是通过知识和阅历的不断积累&#xff0c;才逐渐锻炼出观察和判断事物变化规律的能力。而如果说有一件事&#xff0c;可以…

数据库系统概论 | MySQL | 数据定义 | 单表查询 | 嵌套查询 | 连接查询 | 带有谓词的查询

数据定义 模式的定义与删除 定义模式与删除模式&#xff1a; CREATE SCHEMA S_C_SC; DROP SCHEMA S_C_SC;进入模式&#xff1a; USE S_C_SC;建立学生表&#xff1a; CREATE TABLE Student (Sno CHAR(8) PRIMARY KEY, Sname VARCHAR(20) UNIQUE, Ssex CHAR(6), Sbirthdate …

从零构建vue3+ts项目(三):vite plugin与打包配置

一、Svg配置 每次引入一张 SVG 图片都需要写一次相对路径&#xff0c;并且对 SVG 图片进行压缩优化也不够方便。 vite-svg-loader插件加载SVG文件作为Vue组件&#xff0c;使用SVGO进行优化。 插件网站https://www.npmjs.com/package/vite-svg-loader 1. 安装 pnpm i vite-svg…

反射(通俗易懂)

一、反射(Reflection) 反射就是:加载类&#xff0c;并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等) 动态语言&#xff0c;是一类在运行时可以改变其结构的语言&#xff1a;例如新的函数、对象、甚至代码可以被引进&#xff0c;已有的函数可以被删除或是其他…

【软件测试】快速定位bug,编写测试用例

作为一名测试人员如果连常见的系统问题都不知道如何分析&#xff0c;频繁将前端人员问题指派给后端人员&#xff0c;后端人员问题指派给前端人员&#xff0c;那么在团队里你在开发中的地位显而易见 &#xff0c;口碑、升值、加薪那应该是你遥不可及的梦 但是作为测试人员来说&…

强化学习的数学原理:值迭代与策略迭代

概述 从课程地图上可以看出来&#xff0c;这是本门课程中第一次正式的介绍强化学习的算法&#xff0c;并且是一个 model-based 的算法&#xff0c;而在下一节课将会介绍第一个 model-free 的算法&#xff08;在 chapter 5&#xff09;。而这两节和之前所学的 BOE 是密切相关的&…

比较多种msvcr110.dll丢失的解决方法,哪一种更加方便?

当遇到“msvcr110.dll丢失”这种问题时&#xff0c;这通常意味着你的系统中缺少了Microsoft Visual C 2012 Redistributable的组件。下面我将详细介绍五种解决方法&#xff0c;并对比它们的优点。 一.多种msvcr110.dll丢失的解决方法 方法 1: 重新安装Microsoft Visual C 2012…

在CMD中创建虚拟环境并在VSCode中使用和管理

1. 使用Conda创建虚拟环境 在CMD或Anaconda Prompt中执行以下代码以创建一个新的虚拟环境&#xff1a; conda create -n my_env python 3.8 这样会创建一个名为 my_env 的环境&#xff0c;并在Anaconda环境目录下生成一个相应的文件夹&#xff0c;包含该虚拟环境所需的所有…

Steam夏促商店不是人民币/商店怎么改回人民币教程

游戏玩家们的狂欢节来了&#xff0c;steam夏促进行中&#xff0c;G胖真够舍得&#xff0c;好多游戏低到无法想象&#xff0c;steam其实也不止是游戏方面比较优秀&#xff0c;相关的拓展也非常全面&#xff0c;比如说创意工坊就是很强的一个功能&#xff0c;简单来说就是给玩家创…

【关注】科大睿智祝贺企业上榜2024年第六批CS资质名单公示

​ 近日&#xff0c;经审核拟定&#xff0c;现将中国电子信息行业联合会会员单位开展信息系统建设和服务能力贯标评估结果公示如下&#xff08;排名不分先后&#xff09;&#xff1a;拟授予基本级&#xff08;CS2级&#xff09;企业&#xff1a;22家&#xff0c;拟授予初始级&…

SSM中小学生信息管理系统-计算机毕业设计源码02677

摘要 随着社会的发展和教育的进步&#xff0c;中小学生信息管理系统成为学校管理的重要工具。本论文旨在基于SSM框架&#xff0c;采用Java编程语言和MySQL数据库&#xff0c;设计和开发一套高效、可靠的中小学生信息管理系统。中小学生信息管理系统以学生为中心&#xff0c;通过…