【操作系统学习笔记】处理器管理1.3
【操作系统学习笔记】处理器管理1.3
参考书籍: 王道考研
视频地址: Bilibili
进程控制
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换的功能。简而言之,进程控制就是要实现进程的状态转换
进程控制需要使用原语实现。原语是一种特殊的、原子性的程序,它的执行必须一气呵成,不可中断
可以使用关中断指令和开中断指令这两个特权指令实现原语
进程的创建
流程:
- 申请空白 PCB
- 为新进程分配所需资源
- 初始化 PCB
- 将 PCB 插入就绪队列
事件:
- 用户登录: 分时系统中,用户登录成功,系统会为其建立一个新的进程
- 作业调度: 多道批处理系统中,有新的作业放入内存中,会为其建立一个新的进程
- 提供服务: 用户向操作系统提出某些请求,会新建一个进程处理这些请求
- 应用请求: 由用户进程主动请求创建一个子进程
进程的终止
流程:
- 从 PCB 集合中找到终止进程的 PCB
- 若进程正在运行,立即剥夺 CPU,将 CPU 分配给其他进程
- 终止其所有子进程
- 将该进程拥有的所有资源归还给父进程或操作系统
- 删除 PCB
事件:
- 正常结束: exit 系统调用
- 异常结束: 分母为零
- 外界干预
进程的阻塞
流程:
- 找到要阻塞的进程对应的 PCB
- 保护进程运行现场,将 PCB 状态信息设置为阻塞态,暂时停止该进程运行
- 将 PCB 插入相应事件的等待队列
因何事被阻塞,就应该由何事来唤醒
进程的唤醒
流程:
- 在等待队列中找到 PCB
- 把 PCB 从等待队列移除,设置为就绪态
- 将 PCB 插入就绪队列,等待被调度
进程的切换
流程:
- 将运行环境存入 PCB
- PCB 移入相应队列
- 选择另一个进程执行,并更新其 PCB
- 根据 PCB 恢复新进程所需的运行环境
事件:
- 当前进程时间片到
- 有更高优先级的进程到达
- 当前进程主动阻塞
- 当前进程终止
相关文章:
【操作系统学习笔记】处理器管理1.3
【操作系统学习笔记】处理器管理1.3 参考书籍: 王道考研 视频地址: Bilibili 进程控制 进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换的功能。简而言之,进程控制就是要实现进程的状态转换…...
AndroidUI--setContentView
我们的Activity通常继承自Activity或者AppCompatActivity,这两个setContentView流程是不同的 一、继承自Activity 1、Activity.setContentView Activity中setContentVIew调用了getWindow().setContentView(view, params); getWindow返回的是mWindow,mWi…...
编程笔记 Golang基础 047 mysql数据库连接与操作
编程笔记 Golang基础 047 mysql数据库连接与操作 一、连接与操作1. 安装MySQL驱动2. 导入驱动包3. 连接数据库4. 执行SQL查询和操作5. 使用连接池6. 处理事务 二、连接字符串三、应用示例四、比较 MySQL凭借其开源、高效、稳定、灵活、安全以及广泛的社区支持等诸多优势&#x…...
.jsonl 格式文件的解释
根据 CHATGPT .jsonl 文件格式是一种文本文件格式,通常用于存储每行一个JSON对象的数据。.jsonl 文件的每一行都是一个独立的JSON对象,这些对象之间没有任何分隔符。 以下是一个示例.jsonl文件的内容: {"name": "John"…...
nodejs web服务器 -- 搭建开发环境
一、配置目录结构 1、使用npm生成package.json,我创建了一个nodejs_network 文件夹,cd到这个文件夹下,执行: npm init -y 其中-y的含义是yes的意思,在init的时候省去了敲回车的步骤,如此就生成了默认的pac…...
laravel-admin 头部添加操作
新建html 样式及js namespace App\Admin\Extensions\Nav;class Links {public function __toString(){return <<<HTML<li><a href"" οnclick"js_method();return false;"><i class"fa fa-floppy-o"></i><s…...
mysql笔记:10. 日志
文章目录 一、日志概述二、错误日志1. 启动2. 查看3. 删除 三、二进制日志1. 启动2. 查看3. 删除 四、通用查询日志1. 启动2. 查看3. 删除 五、慢查询日志1. 启动2. 查看3. 删除 日志是MySQL数据库的重要组成部分,日志文件中记录着MySQL数据库运行期间发生的变化。M…...
代码随想录刷题笔记-Day32
1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组:是数组中的一个连续…...
指针的学习5
目录 sizeof和strlen的区别 sizeof strlen 数组和指针笔试题解析 一维数组 字符数组 二维数组 指针运算笔试题解析 题目1: 题目2: 题目3: 题目4: 题目5: 题目6: 题目7: sizeof和…...
Dynamo——常用几何形体的创建与编辑(二)
上一次,我们简单整理了一些创建几何形体的节点用法,今天我们接着整理一些,几何形体的编辑方法。 一、坐标点的平移复制 [Point.Add] 使用节点 “Vector.ByCoordinates” 生成一个向量,将该向量连接到 “Point.Add” 节点的输入端 …...
uniapp富文本编辑-editor-vue2-vue3-wangeditor
前言 不管vue2还是vue3,都推荐官方的editor组件, 官方手册 https://uniapp.dcloud.net.cn/component/editor.html除了“微信小程序”,其他小程序想要使用editor组件实现富文本编辑,很难 第三方组件wangeditor在vue2࿰…...
【java】22:try-catch 异常处理
try-catch 方式处理异常说明 public static void main(String[] args) { int num1 10; int num2 0; try { int res num1 / num2; } catch (Exception e) { System.out.println(e.getMessage()); } } 注意事项 1)如果异常发生了,则异常发生后面的代码不会执行&…...
【C语言】linux内核ip_local_out函数
一、讲解 这个函数 __ip_local_out 是 Linux 内核网络子系统中的函数,部分与本地出口的 IPv4 数据包发送相关。下面讲解这段代码的每一部分: 1. 函数声明 int __ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb): -…...
动态规划6,最大数组和,环形子数组最大和,乘积最大子数组
最大子数组和 思路: 1.经验题目要求 dp[i]表示:以 i 位置为结尾的所有子数组中的最大和 2.状态转移方程 按长度来划分,如果长度为1,那么dp[i] nums[i]; 如果长度大于1,那么当前位置的最大和就为 i-1 位置最大和 …...
js 清空数组的方法
1、直接赋值空数组 let array [1, 2, 3, 4, 5]; array []; 这种方法并不推荐,如下图所示: 虽然a数组确实变为了空数组,但这种方法只是修改了a的指向,把a指向一个新的空数组,然而[1,2,3,4,5]这个数组并没有被清除&a…...
QT中使用QProcess执行命令,实时获取数据,例如进度条
前言 因为之前写了一个接收和发送文件的脚本,然后又需要获取进度,同步到进度条中。 效果: 使用正则匹配,获取命令行命令中的以下数据,然后同步到进度条 源码demo: 非完整代码: #include <Q…...
绘图设计:用Draw.io绘制图形技巧大全(含统一建模语言UML模板)
一、常见UML模板 1.流程图 2.用例图 include是包含关系,extend是扩展关系 简而言之,include是子集指向父集;而extend是扩展用例指向基础用例(基础用例可以理解为系统核心功能,扩展用例是可选的,不是必须…...
被唤醒的“第二十条”深入人心
近来张艺谋执导的电影《第二十条》,因为它与正在召开中的全国两会所发布的《最高人民法院工作报告》联系相当紧密,加之可免费收看,网民便相互转告,于是此信息条目立即冲上了网络热搜榜,观者如潮。因为最高人民法院工作…...
PHPInfo()信息泄漏原理以及修复方法
漏洞名称:PHPInfo信息泄漏、phpinfo()函数信息泄漏 漏洞描述: phpinfo()函数返回的信息中包含了服务器的配置信息,包括: 1)PHP编译选项以及文件扩展名的相关信息; 2)php的版本信息 3&#…...
202441读书笔记|《笠翁对韵》—— 金菡萏,玉芙蓉,酒晕微酡琼杏颊,香尘浅印玉莲双
202441读书笔记|《笠翁对韵》——金菡萏,玉芙蓉,酒晕微酡琼杏颊,香尘浅印玉莲双 《作家榜名著:笠翁对韵》作者李渔,霍俊明。是所有词句都有注音的一本书,轻松学不认识的字,非常朗朗上口的对偶词…...
SITS2026圆桌闭门纪要首度公开(含未删减技术分歧与路线图投票原始数据)
第一章:SITS2026圆桌:智能代码生成未来 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026圆桌论坛中,来自GitHub Copilot、Tabnine、CodeWhisperer及开源社区代表的工程师与AI语言模型研究者共同探讨了智能代码生成从“辅助补全”迈…...
3分钟搞定Windows安卓应用安装:告别模拟器的终极指南
3分钟搞定Windows安卓应用安装:告别模拟器的终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上运行Android应用…...
别再只用翻转和裁剪了!PyTorch实战:用CutMix和Mixup让你的ResNet50在CIFAR-10上再涨几个点
突破传统数据增强瓶颈:PyTorch中CutMix与Mixup的实战调优指南 当你在CIFAR-10上反复调整学习率和权重衰减却始终无法突破准确率瓶颈时,是否想过问题可能出在数据层面?传统的数据增强方法如随机翻转、裁剪虽然能提供基本的正则化效果ÿ…...
【智能代码生成×代码度量双引擎实战指南】:20年架构师亲授如何用AI写代码+量化质量,规避97%的交付返工风险
第一章:智能代码生成代码度量双引擎协同范式 2026奇点智能技术大会(https://ml-summit.org) 传统AI编程辅助工具常将代码生成与质量评估割裂为独立流程:生成模型输出后,再由静态分析器进行滞后性度量。双引擎协同范式则打破这一时序壁垒&…...
AGI决策黑箱正在吞噬信任:5个致命可解释性漏洞,今天不修复明天就合规崩盘
第一章:AGI决策黑箱正在吞噬信任:5个致命可解释性漏洞,今天不修复明天就合规崩盘 2026奇点智能技术大会(https://ml-summit.org) 当医疗AI单方面否决肿瘤手术建议、信贷模型在无明确依据下拒绝千万级企业贷款申请、自动驾驶系统突然接管却无…...
手把手教你搞定DP83822I网口异常:从硬件Strap Pin到软件排查的完整实战
深度解析DP83822I网口异常:从硬件Strap Pin到软件协同排查的全链路实战 当嵌入式系统中的两个相同PHY芯片出现"一好一坏"的诡异现象时,往往意味着硬件设计与软件配置之间存在微妙的耦合关系。本文将以TI的DP83822I以太网PHY芯片为例࿰…...
DETR + SAM 实例分割集成中 SAM 精度低的全面诊断与解决方案:从问题定位到系统优化的完整技术指南
DETR + SAM 实例分割集成中 SAM 精度低的全面诊断与解决方案:从问题定位到系统优化的完整技术指南 摘要 Segment Anything Model (SAM) 作为图像分割领域的基础模型,凭借其强大的零样本泛化能力,已被广泛集成到各种下游任务中。DETR (Detection Transformer) 作为端到端目…...
如何用Nikto进行企业级Web安全评估?这些高级参数和技巧你必须知道
企业级Web安全评估实战:Nikto高级参数与深度防御策略 在数字化转型浪潮中,Web应用已成为企业核心业务的重要载体,但同时也是攻击者最常瞄准的目标。作为安全从业人员,我们需要像攻击者一样思考,却要以建设者的身份行动…...
CS32L010芯片烧录实战:用Keil+Jlink一键搞定hex文件(附常见错误排查)
CS32L010芯片烧录实战:用KeilJlink一键搞定hex文件(附常见错误排查) 在嵌入式开发领域,芯片烧录是每个工程师必须掌握的基础技能。CS32L010作为一款性价比极高的32位微控制器,广泛应用于物联网终端设备、智能家居和工业…...
别再等上线报错!构建零信任兼容性门禁:1小时接入、3分钟反馈、支持17种语言版本矩阵校验
第一章:智能代码生成代码兼容性检查 2026奇点智能技术大会(https://ml-summit.org) 智能代码生成工具(如Copilot、CodeWhisperer、Tabnine)在提升开发效率的同时,常因上下文理解偏差或训练数据时效滞后,产出与目标运…...
