你的电脑在开“外卖平台”?——作业管理全解析
你的电脑在开“外卖平台”?——作业管理全解析
操作系统系列文章导航(点击跳转)
- 程序员必看:揭开操作系统的神秘面纱 :从进程、内存到设备管理,全面解析操作系统的核心机制与日常应用。
- 告别电脑卡顿!一文读懂进程管理精华 :深入进程调度、同步与死锁问题,揭秘CPU如何高效管理多任务。
- 从寄存器到硬盘:存储结构分层艺术 :详解内存分页、虚拟地址与缓存机制,看操作系统如何玩转存储金字塔。
- 揭秘设备管理大师:I/O全流程解析 :从DMA到中断处理,带你看CPU与外设如何高效协作。
- 从图书馆到无序仓库:操作系统如何高效管理你的文件
- 作业管理:调度算法与资源优化
- 🌟 关注我,第一时间获取文章更新,解锁更多操作系统底层原理与实战技巧!
引言:你的电脑在开"外卖平台"?
想象一下,你的电脑其实是个24小时不打烊的"外卖平台",而你提交的每个任务(比如下载电影、运行程序、写文档)都像是一份外卖订单。这个"平台"需要一套高效管理系统,既要保证"订单"不积压,又要让"外卖小哥"(CPU)跑得更高效。这就是今天要聊的主角——作业管理!(PS:别担心,这里没有真正的外卖,只有计算机的浪漫)
一、作业:你的"电子外卖订单"
1.1 作业的三件套
每个作业就像一份外卖订单,必须包含:
- 程序:就像你点的"番茄炒蛋",是具体要执行的"菜谱";
- 数据:你需要的食材,比如"2个番茄+1个鸡蛋";
- 作业说明书:你的"特殊要求"(比如"少放盐,多放葱"),用作业控制语言(JCL)写成。
小剧场:
用户A:“我要下载《流浪地球3》!”
系统:“好的,已生成作业:程序=下载器,数据=电影链接,要求=不占用我追剧的网速。”
1.2 作业控制:两种点单方式
- 脱机控制:像提前写好外卖备注,用JCL写好所有步骤,提交后完全不管(适合批处理系统,比如深夜自动备份);
- 联机控制:像边看菜单边点餐,通过命令行实时交互(比如在终端敲命令"ls -l",边看结果边调整)。
冷知识:
Linux终端里的Ctrl+Z
(暂停作业)和bg
(后台运行)就是联机控制的"暂停续播"功能!
二、作业的"外卖流程":从提交到完成
2.1 四个必经状态
- 提交(Submit):你按下"下单"键,作业进入"输入井"(输入缓冲区);
- 后备(Back):作业在"厨房外排队"(存入磁盘后备队列),等待调度;
- 执行(Active):终于轮到你了!系统分配CPU、内存等资源,启动进程;
- 完成(Finish):作业结束,系统清理现场(回收资源),把结果放进"输出井"。
趣味对比:
- 传统批处理系统:像海底捞的"自助取餐柜",全程无人值守;
- 分时系统:像麦当劳的"得来速",直接把结果送到你面前;
- 实时系统:像救护车,必须立刻处理!
三、作业调度:外卖平台的"派单算法"
3.1 谁先吃上"第一口肉"?
系统需要根据算法从后备队列里选"幸运儿",常见算法有:
① 先来先服务(FCFS)
- 规则:按排队顺序派单,老老实实"先到先得";
- 缺点:长作业会"霸占"CPU,后面的小作业只能干瞪眼。
② 短作业优先(SJF)
- 规则:优先给"小份订单"(比如下载小文件),让CPU"吃细粮";
- 优点:减少平均等待时间,但可能饿死"大订单"(饥饿问题)。
③ 响应比高者优先(HRN)
- 公式:响应比 = (等待时间 + 运行时间) / 运行时间
- 策略:既照顾"等得久"的作业,又不亏待"跑得快"的;
- 例子:等了1小时的15分钟作业 vs 等了半小时的1小时作业,前者优先(1+0.25)/0.25=5 vs (0.5+1)/1=1.5)。
④ 优先级调度
- 玩法:给作业贴"VIP标签",比如系统任务永远排第一;
- 小心:可能导致低优先级作业永远等不到(优先级倒置问题)。
程序员的浪漫:
Linux的nice
值就是给进程加"优先级buff",nice -n 19
就是说"我这任务不着急,让CPU先忙别的"。
四、作业控制块(JCB):你的"电子身份证"
每个作业都有个专属"身份证"——作业控制块,记录:
- 用户信息:谁点的单(用户名);
- 订单详情:程序名、所需内存、外设类型(比如"需要GPU");
- 进度条:当前状态(排队/烹饪/送餐中);
- 账单信息:已用资源、预计完成时间。
灵魂拷问:
如果作业夭折了,JCB会默默记录"死亡原因"(比如"内存不足"),方便系统写"尸检报告"。
五、Linux里的"作业控制":终端里的魔法
在Linux终端,你可以像玩《动物森友会》一样管理作业:
jobs
:查看当前"在做"和"暂停"的作业;fg
:把后台作业"拉回来"到前台(比如暂停的下载继续);kill
:强行终止顽固作业(比如卡死的程序)。
实用技巧:
用nohup 命令 &
让作业"永不掉线",即使你关掉终端也能继续运行!
结语:做个聪明的"外卖用户"
下次当你在电脑前敲下命令时,不妨想象一下:
“我的作业正在和千万个’订单’竞争CPU的’外送服务’,系统会用什么算法给我派单呢?”
记住,理解作业管理不仅能让你的程序跑得更快,还能避免成为"系统资源的浪费型选手"!毕竟,谁不想当那个让CPU"又爱又恨"的高效用户呢?😉
互动时间:
你有没有遇到过作业被"卡单"的经历?欢迎在评论区吐槽你的"系统外卖"故事!
相关文章:
你的电脑在开“外卖平台”?——作业管理全解析
你的电脑在开“外卖平台”?——作业管理全解析 操作系统系列文章导航(点击跳转) 程序员必看:揭开操作系统的神秘面纱 :从进程、内存到设备管理,全面解析操作系统的核心机制与日常应用。告别电脑卡顿&#x…...
平均池化(Average Pooling)
1. 定义与作用 平均池化是一种下采样操作,通过对输入区域的数值取平均值来压缩数据空间维度。其核心作用包括: 降低计算量:减少特征图尺寸,提升模型效率。保留整体特征:平滑局部…...
JavaScript中的Event事件对象详解
一、事件对象(Event)概述 1. 事件对象的定义 event 对象是浏览器自动生成的对象,当用户与页面进行交互时(如点击、键盘输入、鼠标移动等),事件触发时就会自动传递给事件处理函数。event 对象包含了与事件…...
OSPF综合实验(HCIP)
1,R5为ISP,其上只能配置Ip地址;R4作为企业边界路由器, 出口公网地址需要通过ppp协议获取,并进行chap认证 2,整个OSPF环境IP基于172.16.0.0/16划分; 3,所有设备均可访问R5的环回&…...
Unreal 从入门到精通之如何接入MQTT
文章目录 前言MQTT 核心特性MQTT 在 UE5 中的应用场景在 UE5 中集成 MQTTMqtt Client 的APIMqtt Client 使用示例最后前言 MQTT(Message Queuing Telemetry Transport)是一种专为物联网(IoT)和低带宽、高延迟网络环境设计的轻量级消息传输协议。它采用发布/订阅(Pub/Sub)…...
数据结构实验6.2:稀疏矩阵的基本运算
文章目录 一,实验目的二,问题描述三,基本要求四、算法分析(一)稀疏矩阵三元组表示法存储结构(二)插入算法(三)创建算法(四)输出算法(五…...
BDO分厂积极开展“五个一”安全活动
BDO分厂为规范化学习“五个一”活动主题,按照“上下联动、分头准备 、差异管理、资源共享”的原则,全面激活班组安全活动管理新模式,正在积极开展班组安全活动,以单元班组形式对每个班组每周组织一次“五个一”安全活动。 丁二醇单…...
那就聊一聊mysql的锁
MySQL 的锁机制是数据库并发控制的核心,作为 Java 架构师需要深入理解其实现原理和适用场景。以下是 MySQL 锁机制的详细解析: 一、锁的分类维度 1. 按锁粒度划分 锁粒度特点适用场景全局锁锁定整个数据库(FLUSH TABLES WITH READ LOC…...
Python番外——常用的包功能讲解和分类组合
目录 1. Web开发框架与工具 2. 数据处理与分析 3. 网络请求与爬虫 4. 异步编程 5. 数据库操作 6. 图像与多媒体处理 7. 语言模型与NLP 8. 安全与加密 9. 配置与工具 10. 其他工具库 11.典型组合场景 此章节主要是记录我所使用的包,以及模块。方便供自己方…...
【mongodb】数据库操作
目录 1. 查看所有数据库2. 切换到指定数据库(若数据库不存在,则创建)3. 查看当前使用的数据库4. 删除当前数据库5.默认数据库 1. 查看所有数据库 1.show dbs2.show databases 2. 切换到指定数据库(若数据库不存在,则…...
四月下旬系列
CUHKSZ 校赛 期中考试 DAY -1。 省流:前 1h 切 6 题,后 3h 过 1 题,读错一个本来很【】的题,被大模拟构造创【】了。 本地除了 VSCode 没有 Extensions,别的和省选差不多。使用 DEVC。 前 6 题难度 < 绿&#x…...
计算机网络 3-4 数据链路层(局域网)
4.1 局域网LAN 特点 1.覆盖较小的地理范围 2.较低的时延和误码率 3.局域网内的各节点之间 4.支持单播、广播、多播 分类 关注三要素 (出题点) ①拓扑结构 ②传输介质 ③介质访问控制方式 硬件架构 4.2 以太网 4.2.1 层次划分 4.2.2 物理层标准…...
WebSocket介绍
在网页聊天项目中,为了实现消息的发送和及时接收,我们使用了WebSocket,接下来就简单介绍一下这个WebSocket。 了解消息的转发逻辑 当两个不同客户端在不同的局域网中互相发送消息时,假如这两个客户端分别是a和b,因为…...
rpcrt4!COMMON_AddressManager函数分析之和全局变量rpcrt4!AddressList的关系
第一部分: 1: kd> x rpcrt4!addresslist 77c839dc RPCRT4!AddressList 0x00000000 1: kd> g Breakpoint 2 hit RPCRT4!OSF_ADDRESS::CompleteListen: 001b:77c0c973 55 push ebp 1: kd> g Breakpoint 11 hit RPCRT4!COMMON_Addr…...
Java Web 之 Tomcat 100问
Tomcat 是什么? Tomcat 是一个开源的 Java Servlet 容器和 Web 容器。 Tomcat 的主要功能有哪些? 三大主要功能: 运行 Java Web 应用。处理 HTTP 请求。管理 Web 应用。 如何安装 Tomcat ? 下载 Tomcat 安装包(A…...
ESB —— 企业集成架构的基石:功能、架构与应用全解析
企业服务总线(Enterprise Service Bus,ESB)是一种重要的企业级集成架构,以下为你详细介绍: 一、概念与定义 ESB 是一种基于面向服务架构(SOA)的中间件技术,它充当了企业内部不同应…...
wordpress SMTP配置qq邮箱发送邮件,新版QQ邮箱授权码获取方法
新版的QQ邮箱界面不同了,以下是新版的设置方法: 1. 进入邮箱后,点右上角的设置图标: 2. 左下角的菜单里,选择“账号与安全” : 3. 然后如下图,开启SMTP 服务: 4. 按提示验证短信&am…...
【操作系统原理04】进程同步
文章目录 大纲一.进程同步与进程互斥0.大纲1.同步2.互斥 二.进程互斥的软件实现方法0.大纲1.单标志法2.双标志先检查法3.双标志后检查法4.Peterson算法 三.进程互斥的硬件实现方法0.大纲1.中断屏蔽方法2.TestAndSet指令3.Swap指令 四.互斥锁五.信号量机制0.大纲1.概念2.整形信号…...
Java ThreadPoolExecutor 深度解析:从原理到实战
在 Java 的多线程编程领域,ThreadPoolExecutor是一个至关重要的工具类,它为开发者提供了强大且灵活的线程池管理能力。合理使用ThreadPoolExecutor,不仅能够提升应用程序的性能和响应速度,还能有效控制资源消耗,避免因…...
MCP 协议——AI 世界的“USB-C 接口”:解锁智能协作的新时代
在过去十年中,科技的进步已经改变了我们日常生活的方方面面。从智能手机的普及到物联网的快速发展,人们的生活被各种创新的技术重新定义。今天,我们即将迎来另一个里程碑式的转折点——MCP 协议的推出,它将为人工智能世界的协作与…...
知识就是力量——一些硬件的使用方式
硬件平台 正点原子ATK-MD0430 V2.0(4.3寸TFT LCD电容触摸屏/使用cc2530控制)1.硬件连接2. 软件驱动实现3. 优化与注意事项4. 示例工程参考5. 常见问题 正点原子ATK-MD0430 V2.0(4.3寸TFT LCD电容触摸屏/使用cc2530控制) 1.硬件连…...
机器学习(1)— 开发环境安装
机器学习(1)— 准备开发环境 一、前言 二、Ubuntu开发环境安装 1、NumPy安装 使用如下命令安装: sudo apt-get install python3-numpy2、PyTorch 安装 由于我电脑暂时没有英伟达显卡,暂时安装CPU版: pip3 insta…...
深入实战:使用C++开发高性能RESTful API
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...
C++之虚函数 Virtual Function
1. 普通虚函数(Virtual Function) 定义:基类中用 virtual 声明,允许派生类 覆盖(Override)。特点: 基类可提供默认实现。派生类可选择性覆盖(若不覆盖,则调用基类版本&a…...
【java实现+4种变体完整例子】排序算法中【选择排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
以下是选择排序的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格: 一、选择排序基础实现 原理 每一轮遍历未排序部分,找到最小元素并交换到当前起始位置,逐步构建已排序序列。 代码示例 pu…...
DNS主从同步实验
dns域名解析原理 实验步骤1、主dns要完成dns解析:192.168.21.128 [rootlocalhost ~]# yum install bind -y [rootlocalhost ~]# systemctl start named [rootlocalhost ~]# vim /etc/named.conf options { listen-on port 53 { any; }; direct…...
UIjavaScritIU
1、直接执行js脚本:document.documentElement.scrollTop1000 document.getElementById(“su”).click() 弊端: js自己带的元素定位方法不如selenium的丰富 不支持xpath css 等 定位元素操作不是很灵活。 需要借助js脚本传入 -selenium定位 js 负责执行动…...
Manus技术架构、实现内幕及分布式智能体项目实战 线上高级实训班
Manus技术架构、实现内幕及分布式智能体项目实战 线上高级实训班 模块一:解密Manus分布式多智能体工作原理和架构内幕 基于Claude和Qwen的大模型智能体Manus为何能够迅速成为全球讨论热度最高、使用体验最好、产业界最火爆的大模型智能体产品? Ma…...
Java——二维数组
一、概念 二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器。 二、定义格式 1.数据类型[ ] [ ] 变量名; 2.数据类型 变量名 [ ] [ ]; 3.数据类型 [ ] 变量名 [ ]; 三、动态初始化 (一)书写 1.格式 数据…...
豆瓣图书数据采集与可视化分析(一)- 豆瓣图书数据爬取
文章目录 前言一、数据爬取步骤二、豆瓣图书页面分析1. 图书分类标签页面分析2. 图书页面分析 三、数据采集实现1. 图书分类标签数据采集2. 图书数据采集3. 把多个分类的CSV数据文件整合到一个CSV文件中 前言 在当今大数据时代,数据的获取与整理对于各个领域的研…...
车载诊断新架构--- SOVD初入门(上)
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...
test——自动化测试
目录 一概念 1自动化 2回归测试 3自动化分类 3.1接口自动化 3.2UI自动化 4自动化测试金字塔 5web自动化测试 6工作原理 二函数 1元素定位 1.1cssSelector 编辑1.2xpath 语法 2操作对象 2.1click() 2.2send_keys() 2.3clear() 2.4text 2.5get_attribu…...
Kubernetes相关的名词解释CoreDNS插件(2)
为什么需要DNS服务? service发现是k8s中的一个重要机制,其基本功能为:在集群内通过服务名对服务进行访问,即需要完成从服务名到ClusterIP的解析。 k8s主要有两种service发现机制:环境变量和DNS。没有DNS服务的时候&am…...
【记录】服务器用命令开启端口号
这里记录下如何在服务器上开启适用于外界访问的端口号。 方法 1 使用防火墙 1 su ,命令 输入密码 切换到root节点 2 开启防火墙 systemctl start firewalld3 配置开放端口 firewall-cmd --zonepublic --add-port8282/tcp --permanent4 重启防火墙 firewall-cmd…...
代码审计入门 原生态sql注入篇
前置知识: 漏洞形成的原因: 1、可控的参数 2、函数缺陷 代码审计的步骤: 1、全局使用正则搜索 漏洞函数 ,然后根据函数看变量是否可控,再看函数是否有过滤 2、根据web的功能点寻找函数,然后根据函数看…...
数据结构0基础学习堆
文章目录 简介公式建立堆函数解释 堆排序O(n logn)topk问题 简介 堆是一种重要的数据结构,是一种完全二叉树,(二叉树的内容后面会出), 堆分为大小堆,大堆,左右结点都小于根节点,&am…...
分析虚幻引擎编辑器中使用 TAA 或 TSR 时角色眨眼导致的眼睛模糊问题
1. 引言 用户反馈在使用虚幻引擎编辑器时,当抗锯齿方法设置为时间性抗锯齿 (TAA) 或时间性超级分辨率 (TSR) 时,角色的眼睛在眨眼时会出现模糊现象。时间性抗锯齿和时间性超级分辨率是现代游戏引擎(包括虚幻引擎)中常用的抗锯齿和…...
捋一遍Leetcode【hot100】的二叉树专题
二叉树专题 除了后面两个,都挺简单 二叉树的中序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int …...
【java实现+4种变体完整例子】排序算法中【堆排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
以下是堆排序的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格: 一、堆排序基础实现 原理 基于二叉堆结构(最大堆),通过以下步骤实现排序: 构建最大堆:将…...
量化交易 - RSRS(阻力支撑相对强度)策略研究 - 源码
一、介绍 RSRS(阻力支撑相对强度)是一种基于价格阻力位与支撑位动态变化的市场择时技术指标,由光大证券在2017年提出。其核心原理是通过量化最高价与最低价之间的线性关系,预测市场趋势变化。 原理: 线性回归建模&a…...
从FPGA实现角度介绍DP_Main_link主通道原理
DisplayPort(简称DP)是一个标准化的数字式视频接口标准,具有三大基本架构包含影音传输的主要通道(Main Link)、辅助通道(AUX)、与热插拔(HPD)。 Main Link:用…...
数据库备份-docker配置主从数据库
创建 Docker Compose 文件 创建一个 docker-compose.yml 文件,定义两个 MySQL 容器(一个主库,一个从库) services:mysql:image: mysql:8.0.27container_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiM…...
YOLO11改进-Backbone-使用MobileMamba替换YOLO backbone 提高检测精度
轻量化模型的技术瓶颈 CNN 的局限性:传统 CNN(如 MobileNet)依赖局部感受野,难以捕捉长距离依赖关系,在高分辨率任务(如语义分割)中需通过增加计算量提升性能,效率低下。 Transforme…...
JavaScript学习教程,从入门到精通,DOM 操作语法知识点及案例代码(20)
DOM 操作语法知识点及案例代码 一、DOM 介绍 1. 什么是 DOM DOM (Document Object Model,文档对象模型) 是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表示,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结…...
Vue3 + TypeScript中defineEmits 类型定义解析
TypeScript 中 Vue 3 的 defineEmits 函数的类型定义,用于声明组件可以触发的事件。以下是分步解释: 1. 泛型定义 ts <"closeDialog" | "getApplySampleAndItemX"> 作用:定义允许的事件名称集合,即组…...
Git命令归纳
初始化git git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中git config --global user.email xxxxxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中git init:先创建一个目录&am…...
Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
数据库异常断电,然后启动异常,我接手该库,尝试recover恢复 SQL> recover database; ORA-10562: Error occurred while applying redo to data block (file# 2, block# 63710) ORA-10564: tablespace SYSAUX ORA-01110: ???????? 2: H:\TEMP\GDLISNET\SYSAUX01.DBF O…...
ISO26262-浅谈用例导出方法和测试方法
目录 1 摘要2 测试方法3 测试用例导出方法4 测试方法与用例导出方法的差异和联系5 结论 1 摘要 ISO26262定义了测试方法和用例导出方法,共同保证产品的开发质量。但在刚开始学习ISO26262的时候,又不是非常清晰地理解它俩的区别和联系。本文主要对它俩的…...
小测验——已经能利用数据集里面的相机外参调整后看到渲染图像
文章目录 .1 外try——牛的显示.2 try——衣服的显示.3 原生R,T但是部分显示.4 在.3的基础上加上可视化界面.5 调参后能看到东西的.6 能看一点东西+可视化(pytorch3d).7 自己的代码可视化——需要调整.1 外try——牛的显示 import numpy as np import matplotlib.pyplot as …...
2024期刊综述论文 Knowledge Graphs and Semantic Web Tools in Cyber Threat Intelligence
发表在期刊Journal of Cybersecurity and Privacy上,专门讲知识图谱技术和语义Web工具在网络威胁情报领域的作用,还把本体和知识图谱放在相同的地位上讨论。 此处可以明确一点:本体和知识图谱都可以用于网络威胁情报的应用,当然也…...