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

学习日期: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完成的期间其实进程也是在被服务的,所以不计入等待时间。

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

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

响应时间

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

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


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

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

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

相关文章

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…

什么牌子的充电宝最好耐用?多款热门无线磁吸充电宝推荐

在现代生活中,手机、平板等电子设备已成为我们日常工作的必需品,而充电宝则是这些设备的续航神器!无论是长途旅行、外出办公,还是日常通勤,一个耐用且高效的充电宝都是必不可少的选择。然而,市场上充电宝品…

如何选择适合自己的虚拟化技术?

虚拟化技术已成为现代数据中心和云计算环境的核心组成部分。本文将帮助您了解如何选择适合自己需求的虚拟化技术,以实现更高的效率、资源利用率和灵活性。 理解虚拟化技术 首先,让我们了解虚拟化技术的基本概念。虚拟化允许将一个物理服务器划分为多个虚…

探讨命令模式及其应用

目录 命令模式命令模式结构命令模式适用场景命令模式优缺点练手题目题目描述输入描述输出描述题解 命令模式 命令模式是一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其…

玩玩快速冥(LeetCode50题与70题以及联系斐波那契)

一.算法快速幂 今天刷到两个题,比较有意思,还是记录一下. 先来讲讲50题. LeetCode50(Pow(x,n)) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 这道题一看很平常啊,不就一直乘嘛,循环走一次就够了.但是很抱歉,单纯的想…

ArcTs布局入门04——相对布局 媒体查询

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧 扫描下面的二维码关注公众号。 本文将探讨相对布局与媒体查询,为啥把他们放到一起呢?主要是因为相对布局在响应式的场景下做得不太好,一般情况下和媒体查询(不同尺…

移动智能终端数据安全管理方案

随着信息技术的飞速发展,移动设备已成为企业日常运营不可或缺的工具。特别是随着智能手机和平板电脑等移动设备的普及,这些设备存储了大量的个人和敏感数据,如银行信息、电子邮件等。员工通过智能手机和平板电脑访问企业资源,提高…

zed_ros2_wapper colcon 报错

问题一: CMake Error at CMakeLists.txt:129 (find_package): By not providing “Findnmea_msgs.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “nmea_msgs”, but CMake did not find one. Co…

jdk17卸载后换jdk1.8遇到的问题

过程: 1、找到jdk17所在文件夹,将文件夹进行删除。(问题就源于此,因为没删干净) 2、正常下载jdk1.8,按照网上步骤配置环境变量,这里我参考的文章是: http://t.csdnimg.cn/Svblk …

乘用车副水箱浮球式液位计传感器

浮球式液位计概述 浮球式液位计是一种利用浮球在液体中浮动的原理来测量液位的设备,广泛应用于各种工业自动化控制系统中,如石油化工、水处理、食品饮料等行业。它通过浮球的上下运动来测量液位的高低,具有结构简单、安装方便、测量范围广、…

[Leetcode 136][Easy]-只出现一次的数字

目录 题目描述 具体思路 题目描述 原题链接 具体思路 ①首先看到数组中重复的数字,想到快慢指针,但是数组的元素是乱序的不好求。因此先对数组排序。使用了STL库的sort函数,时间复杂度O(nlogn)不符合题目要求,空间复杂度O(1)。…

大陆ARS548使用记录

一、Windows连接上位机 雷达是在深圳路达买的,商家给的资料中首先让配置网口,但我在使用过程中一直出现无法连接上位机的情况。接下来说说我的见解和理解。 1.1遇到的问题 按要求配置好端口后上位机无连接不到雷达,但wireshark可以正常抓到数…

ESP32-C3模组上跑通MQTT(6)—— tcp例程(1)

接前一篇文章:ESP32-C3模组上跑通MQTT(5) 《ESP32-C3 物联网工程开发实战》 一分钟了解MQTT协议 ESP32 MQTT API指南-CSDN博客 ESP-IDF MQTT 示例入门_mqtt outbox-CSDN博客 ESP32用自签CA进行MQTT的TLS双向认证通信_esp32 mqtt ssl-CSDN博客 特此致谢! 本回开始正式讲…

上海站圆满结束!MongoDB Developer Day深圳站,周六见!

在过去两个周六的北京和上海 我们见证了两站热情高涨的 MongoDB Developer Day! 近200位参会开发者相聚专业盛会 经过全天的动手实操和主题研讨会 MongoDB技能已是Next Level! 最后一站Developer Day即将启程 期待本周六与各位在深圳相见&#xff0…

线程池666666

1. 作用 线程池内部维护了多个工作线程,每个工作线程都会去任务队列中拿取任务并执行,当执行完一个任务后不是马上销毁,而是继续保留执行其它任务。显然,线程池提高了多线程的复用率,减少了创建和销毁线程的时间。 2…

创建kset

1、kset介绍 2、相关结构体和api介绍 2.1 struct kset 2.2 kset_create_and_add kset_create_and_addkset_createkset_registerkobject_add_internalkobject_add_internal2.3 kset_unregister kset_unregisterkobject_delkobject_put3、实验操作 #include<linux/module.…

代码随想录第42天|动态规划

198.打家劫舍 参考 dp[j] 表示偷盗的总金额, j 表示前 j 间房(包括j)的总偷盗金额初始化: dp[0] 一定要偷, dp[1] 则取房间0,1的最大值遍历顺序: 从小到大 class Solution { public:int rob(vector<int>& nums) {if (nums.size() < 2) {return nums[0];}vector&…

[译]Reactjs性能篇

英文有限&#xff0c;技术一般&#xff0c;海涵海涵&#xff0c;由于不是翻译出身&#xff0c;所以存在大量的瞎胡乱翻译的情况&#xff0c;信不过我的&#xff0c;请看原文&#xff5e;&#xff5e; 原文地址&#xff1a;https://facebook.github.io/react/docs/advanced-per…

Java环境变量的设置

JAVA环境变量的设置 1.设置环境变量的作用2.如何设置环境变量2.1 找到系统的环境变量2.2 设置环境变量 1.设置环境变量的作用 说明&#xff1a;在Java中设置环境变量主要是为了能够让Java运行时能够找到Java开发工具包&#xff08;JDK&#xff09;的安装位置以及相关的库文件。…

Zabbix 配置端口监控

Zabbix 端口监控简介 在Zabbix中配置端口监控&#xff0c;可以帮助你实时监控服务器或网络设备上的特定端口是否开放和可访问。Zabbix提供了多种方式来监控端口&#xff0c;主要包括简单的端口可用性检查和更复杂的服务监控。 在Zabbix中进行端口监控时&#xff0c;不一定需要…