Lecture 5: Processes 2, Scheduling

基于PCA的故障诊断方法(matlab) 1. PCA原理分析 PCA的原理主要是将原始数据进行降维。其具体工作原理参照:CodingLabs - PCA的数学原理 2. 数据预处理 训练数据集(只有正样本)为维数据,即有n个采样值,每个采样值有m个特征。 2.1 数据归一化 将数据X针对每个特征归一化为均值为0,均方根为1的数据。 其中: 3. PCA降维 3.1 首先求取协方差矩阵 协方差矩阵的公式为: 计算出来的协方差矩阵为特征m*m维矩阵。 3.2 求取特征值和特征向量 求取协方差矩阵R的特征值. 阅读详情

回顾:

  1. 进程有与之相关联的“控制结构”,即进程控制块和进程表。
  2. 进程可以有不同的状态,内核触发这些状态之间的转换。
  3. 操作系统维护多个进程队列。
  4. 操作系统代表用户管理进程。

本章小结:

  • 进程调度简介
  • 进程调度程序的类型
  • 调度算法的评价标准
  • 典型的进程调度算法

进程调度(Process Scheduling)

操作系统负责管理和调度进程:

  • 决定何时允许进程进入系统(new→ready)
  • 决定接下来运行哪个进程(ready→run)
  • 决定何时中断哪些进程((running→ready)

它依赖于调度程序(scheduler / dispatcher)来决定下一个运行哪个进程,它使用调度算法来执行此操作
调度程序使用的算法类型受操作系统类型的影响(例如,实时还是批处理)

进程调度程序(Process Schedulers)

按时间范围分类

长期:适用于新进程,并通过决定何时允许哪些进程进入系统来控制多道程序设计的程度

  • CPU和I/O绑定进程的良好组合有利于保持所有资源尽可能繁忙
  • 通常在流行的现代操作系统中不存在

中期:控制交换和多编程的程度

短期:决定接下来运行哪个进程

  • 管理就绪队列
  • 调用非常频繁,因此必须快速
  • 通常在响应时钟中断、I/O中断或阻塞系统调用时调用
操作系统中的队列

按方法分类 

非抢占式(Non-preemptive):进程只被自愿中断(例如,I/O操作或“nice”系统调用- yield())

  • Windows 3.1和DOS是非抢占性的 

抢占式(Preemptive):进程可以强制中断,也可以自愿中断

  • 通常由来自系统时钟的中断驱动。
  • 需要额外的上下文切换,这会产生开销,应该避免过多的上下文切换(回想上一讲)
  • 防止进程独占CPU
  • 大多数流行的现代操作系统都是抢占式的

性能评估标准

面向用户(User oriented)的标准:

  • 响应时间 Response time:尽量减少从创建作业到首次执行作业之间的时间
  • 周转时间 Turnaround time:尽量缩短从创造作业到完成作业的时间
  • 可预测性:尽量减少处理时间的差异

面向系统(System oriented)的标准:

  • 吞吐量:最大限度地提高每小时处理的作业数量
  • 公平:处理能力/等待时间是否均匀分配?是否有些进程等待的时间过长(饥饿,starvation)

进程饥饿(starvation)

进程饥饿是操作系统中因资源分配策略不公导致特定进程长期无法获得必需资源的运行状态。其核心特征是等待时间超过可接受阈值,致使进程无法正常推进任务。该现象常发生于短作业优先调度算法、非公平锁机制等场景,与死锁存在本质差异:死锁涉及多个进程的循环阻塞,而饥饿可由单个资源被持久占用引发

评估标准可能是相互冲突的,例如,改进响应时间可能需要更多的上下文切换,从而降低吞吐量并增加周转时间

调度算法

算法考虑:

  1. 先到先得(FCFS)/先进先出(FIFO)
  2. 以最短作业优先
  3. 循环赛
  4. 优先队列

使用的绩效衡量标准:

  • 平均响应时间:所有进程启动所需时间的平均值
  • 平均周转时间:所有工序完成所需的平均时间

先到先得(FCFS)

概念:一种非抢占式算法,作为一种严格的排队机制,按照加入队列的顺序对进程进行调度

优点:位置公平,易于实现

缺点:

  • 喜欢长过程而不是短过程(想想超市结账!)
  • 是否会损害资源利用率,即CPU vs. I/O设备
First Come First Served

 

最短作业优先

概念:一种非抢占式算法,使用已知的预估处理时间,按处理时间升序启动处理(根据任务的长度来确定执行顺序,任务越短,优先级越高)

优点:总能获得最佳的周转时间

缺点:

  • 可能会发生饥饿
  • 公平性和可预测性受到了损害
  • 处理时间必须事先知道
Shortest Job First

循环赛 (轮询)

概念:FCFS的抢占式版本,强制以周期性间隔或时间片进行上下文切换

  • 进程按照添加到队列中的顺序运行
  • 进程被计时器强制中断

优点:

  • 改进的响应时间
  • 有效的一般用途的互动/时间共享系统

时间共享(time sharing)

一种情况,即中央计算机系统允许不同用户同时访问不同程序的情况。

缺点:

  • 增加上下文切换,从而增加开销
  • 优先使用CPU绑定进程(通常运行时间长)而不是I/O进程(运行时间短);可以通过使用多个队列来防止吗?
  • 能减少到FCFS

时间片的长度必须仔细考虑!

例如,假设一个多编程系统具有抢占式调度,上下文切换时间为1ms:

  • 一个好的(低)响应时间是用一个小的时间片(例如:1ms)⇒低吞吐量
  • 通过大时间片(例如1000ms)实现高吞吐量⇒高响应时间

如果一个时间片只被部分使用,那么下一个进程将立即启动

Round Robin

优先队列

概念:按优先级调度进程的抢占式算法(高→低)

  • 在相同的优先级级别内使用轮询
  • 进程优先级保存在进程控制块中

优点:可以对I/O绑定作业进行优先级排序

缺点:低优先级进程可能遭受饥饿(当优先级是静态的时候)

Priority Queues

给出使用优先级队列时调度进程的顺序,以及它们启动、结束和中断的时间(所有进程在调度时都可用);您可以假设时间片为15毫秒;计算平均响应和周转时间

解决方案:

  • 序列: A(15)⇒B(15)⇒A(15)⇒B(15)⇒A(15)⇒B(7)⇒A(15)⇒A(7)⇒C(14)⇒D(15)⇒D(1)
  • 平均响应时间= (0 + 15 + 104 + 118) / 4
  • 平均周转时间= (82 + 104 + 118 + 134) / 4 

注意:我们忽略了上下文切换时间

【读代码】从claude skills到superpowers项目 最近claude skills成了大热门,今天一起看下GitHub 上的开源技能框架,他将“工作流”封装为“技能” (Skills)。本文尝试剖析该项目的技能粒度定义、多技能关联架构、应用逻辑等。与传统的 Function Calling 不同,Superpowers 中的 Skill 定义粒度并非“原子操作”,而是**“认知模式” (Cognitive Mode) 或“工作阶段”**。 阅读详情

相关推荐

自动化测试-自愈技术

随着人工智能的发展,作为一名软件测试工程师,相信大家都会思考如何把这一前沿技术引入到我们的自动化测试当中,想一万遍不如做一遍。,传递当前页面状态,获取之前成功的定位器路径,比较它们,并生成修复的定位器列表。如果修复成功,我们可以使用 Healenium Idea 插件更新我们的自动化测试代码:插件使用修复定位器寻找修复和更新测试代码。的旧定位器去定位按钮的时候,脚本就会报错,提示 “NoSuchElement”的错误异常。现在,我们假设开发人员变更了应用程序的UI界面,改变了这个按钮的id属性,从。

qq_58223744的博客 2660

Lecture 7: Processes 4, Further Scheduling

写T(v,r)来表示任务T有v个单位的虚拟运行时间和r个单位的实时运行时间。在 CPU 上记录的虚拟时间实际上是经过权重调整后的 CPU 实际运行时间。在完成该任务所占用虚拟时间中1/N的目标延迟后,我们会将其替换为虚拟运行时间最短的下一个任务。——想想看,如果一个长时间被阻塞的任务没有这个设置,它在 CPU 上运行的时间会有多长啊!请注意,任务将获得不同的运行时间窗口——这与传统的时间分割方式不同。——在考虑替换之前,我们允许任务在CPU上运行的最小时间。,因此它将被选为下一个在 CPU 上运行的任务。

Dead_Simba的博客 808

【AI平台】n8n入门2:第一个工作流,调用本地大模型

n8n是一款开源的,专注于AI工作流构建,支持灵活的自定义与集成。就是可以把大模型和其他工具联合起来,这就厉害了。而且,免费功能又强大,目前很火,来研究一下。

正经教主是个热衷于正经学习分享的教主。 4531

鸿蒙操作系统实现应用接续跨设备流转实战

应用接续的落地成本很低:一个配置、一个onContinue回调、一处 launchReason 判断,合计不足百行代码,就能让任务在手机、平板、鸿蒙电脑之间无缝续接。随着互助通信共享等组网能力在更多机型下放,这条能力的实用价值会持续放大,建议交互密集型应用尽早接入。

NJPJI_Yang的博客 358

Vmware 17保姆级教程:从零部署华为enspPro模拟器(附镜像下载+配置优化)

本文提供了一份详尽的Vmware 17部署华为eNSP Pro模拟器的保姆级教程。内容涵盖从镜像下载、虚拟机导入、网络配置到深度性能调优的全过程,并针对常见启动失败、设备卡顿等故障提供了实用的排查方案,旨在帮助网络工程师和华为认证备考者快速搭建稳定高效的实验环境。

arduino9maker的博客 636

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 110

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 426

3D Slicer隐藏技巧:这样玩转医学影像分割与3D建模(含DICOM处理)

本文深入探讨3D Slicer在医学影像分割与3D建模中的高级应用技巧,包括多模态分割策略、三维可视化优化及DICOM数据处理。通过专业配置和Python脚本示例,帮助医疗AI开发者和影像科医师提升工作效率,实现精准的医学图像分析与建模。

weixin_28559803的博客 433

技术拆解:Mentalab Explore Signals v0.4.0 OpenGL绘图引擎性能实测,BIN转BIDS与CSV转BDF转换向导全解读

Mentalab在GitHub发布Explore Signals v0.4.0,这是面向Mentalab Explore Pro配套的桌面端波形浏览与数据转换工具。本文按更新日志逐条拆解本版本在渲染、交互、转换管线与兼容性上的变化。

欣佰特cnbestec的博客 90

【TELEMAC V8P4】TELEMAC-2D 用户手册核心概念与应用场景速览

本文深入解析了TELEMAC-2D水动力模型的核心概念与应用。作为基于二维浅水方程的开源数值模拟工具,TELEMAC-2D广泛应用于河流动力学、洪水演进、污染物输运及泥沙运动模拟。文章结合用户手册与实战经验,详细拆解了其理论框架、关键物理过程(如湍流模型、干湿网格处理),并提供了从模型搭建、文件配置到典型场景(如工程评估、污染应急、洪水模拟)的实用指南,帮助用户快速掌握这一强大工具。

weixin_29200741的博客 163

vue - 网站接入微信扫码登录功能详细教程,完整详细流程及完整功能示例源代码(附常见问题的解决方案与二维码样式修改方案)

vue.js项目植入微信登录,vue网页项目怎么做微信扫码登录,VUE项目中的微信扫码登录,VUE中最简单的js调用微信扫一扫功能,vue:如何设计网页的微信扫码登录功能,微信扫码功能官方文档,通过vue方式实现二维码扫码功能,vue调用微信扫码,vue H5 调用微信扫描二维码,Vue前端实现微信扫码登录,vue-wxlogin 微信授权登录组件,网站引入的微信登录框如何修改宽高或其他样式,wxlogin 组件插件怎么改变宽高,vue-wxlogin组件怎么自定义样式,微信网页授权,vue调用微信JSDK

✅ 精选推荐文章 6365

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 231

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

ARM64-GNU汇编器

o伪指令分配大小例子伪指令分配大小例子.byte1 字节.byte 0x412 字节.word / .long 4 字节8 字节.ascii字符串(不加 \0)字符串(自动加 \0).byte:把 8位数当成数据插入汇编代码中。.hword和 .short:把16 位数当成数据插入汇编代码中。.long和 .int:这两个伪指令的作用相同,都把 32位数当成数据插入汇编代码中。.word:把 32位数当成数据插入汇编代码中。

weixin_43903002的博客 196

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

第一章 Shell 概述

本文介绍了Shell编程的基础知识,包括Shell的起源与发展、常见Shell类型及查看方式,阐述了Shell作为命令解释器连接用户与操作系统内核的作用。强调其作为解释型脚本语言的优势,适用于系统管理自动化任务。内容涵盖Shell脚本基本结构、注释规范、编写风格、执行方法及常用命令(如echo、printf、history、管道等),并讲解了命令执行顺序、退出状态码等核心概念,为初学者提供系统学习路径。

sbjdhjd的博客 290

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux基本使用和程序部署

Linux是一个操作系统,和Windows是并列的关系。

LYYstudying的博客 96

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 268

鸿蒙沉浸光感开发适配

设备材质档位:EXQUISITE(精致,全光效,高性能设备)、GENTLE(均衡,默认)、SMOOTH(轻量,仅基础效果,低算力设备)、ADAPTIVE(自适应,系统自动识别算力选档,业务首选);用户系统设置三档(强/均衡默认/弱):本质是对透明度、反色率、折射强度的精细调控。用户的三档偏好由系统底层自动映射到渲染参数,应用只需一次定义材质,界面就会随用户设置平滑过渡,完全不需要针对三档分别写适配。

qq_63223749的博客 421

Windows 10/11 彻底禁用更新防止反弹完全指南:设置、服务、任务计划与批处理实战

Windows 10已于2025年10月14日终止支持,本文以22H2版本为例,系统性介绍通过设置、组策略、注册表、服务禁用及任务计划管理等多层手段彻底关闭自动更新。操作需管理员权限,可有效避免强制重启、节省资源并阻止Win11推送,但需手动处理安全补丁。文末提供完整批处理脚本与调试检查方法,实现一键禁用与验证。

seahahacsdn的博客 232

Linux篇(五)

本文系统梳理了Linux常用终端快捷键、软件包管理(yum/apt)、服务管理(systemctl)、软链接(ln)、时间与IP配置、域名解析、固定IP设置及网络命令(ping/wget/curl),涵盖日常运维核心操作,助力高效管理Linux环境。

wykyzdq的博客 202

Linux网络编程:TCP多线程远程命令执行与线程池改造

前面已经实现了 TCP Echo Server,并且通过多进程和多线程解决了多个客户端连接的问题。不过目前服务器的业务还是比较简单,客户端发送什么,服务器就返回什么。这次在原来的多线程服务器上继续做一些改动,实现一个简单的远程命令执行功能。这次主要学习了两个内容。第一个是多线程远程命令执行。通过 Command 类封装命令的接收、检查、执行和结果返回,并使用 set 对允许执行的命令进行限制。第二个是线程池版本的 TCP Echo Server。通过和std::bind。

2501_93388101的博客 367

Linux的渲染与显示系统链路

Linux渲染与显示链路核心为DRM/KMS + EGL直连模式,绕过传统X11/Wayland中间层,实现低延迟、高效率的直接帧提交。相比X11的粗粒度权限控制与Wayland的合成开销,该方案链路短、资源消耗低,但仅支持单进程独占显示,缺乏窗口管理与系统级兜底。EGL作为跨平台桥梁,连接OpenGL ES与原生显示系统,通过Display、Surface、Context三要素构建渲染环境。内核层DRM管理GPU资源,KMS配置显示模式,用户态GDM负责登录会话,共同构成从硬件到应用的完整图形栈。

微小的鱼的博客 411

windows服务主进程已停止工作怎么解决?我把服务控制器的报错码和启动链路拆开跑了一遍

windows服务主进程已停止工作怎么解决,先把 SCM 的报错码读明白:服务起不来,先抓报错码再动手——1060名字错、1058被禁用、1056已运行、1053超时、1067起来又死、1069账户、1075依赖、25路径权限。读配置用sc qc、看状态用sc query、列服务用,这三件套能定位大部分启动失败。把服务放到云上,阿里云 ECS、腾讯云 CVM、华为云 ECS 都给你一台能用sc管理的机器,排障逻辑不变。我在这台 Windows 10 上把106010581056和sc qc。

2601_97101189的博客 265

CentOS 下大容量 U 盘挂载

在 CentOS 下操作大容量 U 盘(exFAT)需先确认设备识别(lsusb -t、lsblk),安装 exfat-utils 和 fuse-exfat 支持 exFAT 文件系统。挂载时使用 mount -t exfat -o flush /dev/sdb2 /mnt/usb,避免用 FAT32 格式化大容量盘(耗时极长)。数据迁移推荐 rsync -avh --progress 保持进度与完整性,移动操作慎用 mv 跨盘。最后务必执行 sync 后 umount,确保数据安全。

353

QT 版翻译者资料库

- 本项目是用 Qt6(C++/Widgets)重写的【翻译者资料库】,功能对齐原 VB6 版本,涵盖资料管家、词库句库整理、文本处理、对照制作、备份恢复及旧版 Access 数据自动迁移等模块。存储由 Access 改为 SQLite,界面采用原生配色,支持多库分类管理、增删改查、导入导出与全屏阅读,并已在 Qt 6.7.2 环境编译验证通过,15 项核心逻辑测试全部通过。

howard2005的专栏 338

微软输入法标点乱跳解决方案

微软拼音输入法常因“中文输入时使用英文标点”开关被意外开启,导致标点自动切换为英文且快捷键失效。本文提供一键批处理脚本,通过修改注册表(HKCU\Software\Microsoft\InputMethod\Settings\CHS)强制锁定中文标点,覆盖多个相关键值,确保设置持久生效。相比手动操作,该方案可抵御更新、同步等导致的配置重置,提升稳定性。执行后需重启输入法或系统以使更改生效,建议提前备份注册表。

谙弆悕博士的技术博客! 351
上一篇: Lecture 4: Processes 1
下一篇: Lecture 6: Processes 3, Threads
Dead_Simba
博客等级 码龄2年 172粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值