当前位置: 首页 > news >正文

【操作系统学习笔记】处理器管理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数据库的重要组成部分&#xff0c;日志文件中记录着MySQL数据库运行期间发生的变化。M…...

代码随想录刷题笔记-Day32

1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组&#xff1a;是数组中的一个连续…...

指针的学习5

目录 sizeof和strlen的区别 sizeof strlen 数组和指针笔试题解析 一维数组 字符数组 二维数组 指针运算笔试题解析 题目1&#xff1a; 题目2&#xff1a; 题目3&#xff1a; 题目4&#xff1a; 题目5&#xff1a; 题目6&#xff1a; 题目7&#xff1a; sizeof和…...

Dynamo——常用几何形体的创建与编辑(二)

上一次&#xff0c;我们简单整理了一些创建几何形体的节点用法&#xff0c;今天我们接着整理一些&#xff0c;几何形体的编辑方法。 一、坐标点的平移复制 [Point.Add] 使用节点 “Vector.ByCoordinates” 生成一个向量&#xff0c;将该向量连接到 “Point.Add” 节点的输入端 …...

uniapp富文本编辑-editor-vue2-vue3-wangeditor

前言 不管vue2还是vue3&#xff0c;都推荐官方的editor组件, 官方手册 https://uniapp.dcloud.net.cn/component/editor.html除了“微信小程序”&#xff0c;其他小程序想要使用editor组件实现富文本编辑&#xff0c;很难 ​​​​​​​第三方组件wangeditor在vue2&#xff0…...

【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)如果异常发生了&#xff0c;则异常发生后面的代码不会执行&…...

【C语言】linux内核ip_local_out函数

一、讲解 这个函数 __ip_local_out 是 Linux 内核网络子系统中的函数&#xff0c;部分与本地出口的 IPv4 数据包发送相关。下面讲解这段代码的每一部分&#xff1a; 1. 函数声明 int __ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb)&#xff1a; -…...

动态规划6,最大数组和,环形子数组最大和,乘积最大子数组

最大子数组和 思路&#xff1a; 1.经验题目要求 dp[i]表示&#xff1a;以 i 位置为结尾的所有子数组中的最大和 2.状态转移方程 按长度来划分&#xff0c;如果长度为1&#xff0c;那么dp[i] nums[i]; 如果长度大于1&#xff0c;那么当前位置的最大和就为 i-1 位置最大和 …...

js 清空数组的方法

1、直接赋值空数组 let array [1, 2, 3, 4, 5]; array []; 这种方法并不推荐&#xff0c;如下图所示&#xff1a; 虽然a数组确实变为了空数组&#xff0c;但这种方法只是修改了a的指向&#xff0c;把a指向一个新的空数组&#xff0c;然而[1,2,3,4,5]这个数组并没有被清除&a…...

QT中使用QProcess执行命令,实时获取数据,例如进度条

前言 因为之前写了一个接收和发送文件的脚本&#xff0c;然后又需要获取进度&#xff0c;同步到进度条中。 效果&#xff1a; 使用正则匹配&#xff0c;获取命令行命令中的以下数据&#xff0c;然后同步到进度条 源码demo&#xff1a; 非完整代码&#xff1a; #include <Q…...

绘图设计:用Draw.io绘制图形技巧大全(含统一建模语言UML模板)

一、常见UML模板 1.流程图 2.用例图 include是包含关系&#xff0c;extend是扩展关系 简而言之&#xff0c;include是子集指向父集&#xff1b;而extend是扩展用例指向基础用例&#xff08;基础用例可以理解为系统核心功能&#xff0c;扩展用例是可选的&#xff0c;不是必须…...

被唤醒的“第二十条”深入人心

近来张艺谋执导的电影《第二十条》&#xff0c;因为它与正在召开中的全国两会所发布的《最高人民法院工作报告》联系相当紧密&#xff0c;加之可免费收看&#xff0c;网民便相互转告&#xff0c;于是此信息条目立即冲上了网络热搜榜&#xff0c;观者如潮。因为最高人民法院工作…...

PHPInfo()信息泄漏原理以及修复方法

漏洞名称&#xff1a;PHPInfo信息泄漏、phpinfo()函数信息泄漏 漏洞描述&#xff1a; phpinfo()函数返回的信息中包含了服务器的配置信息&#xff0c;包括&#xff1a; 1&#xff09;PHP编译选项以及文件扩展名的相关信息&#xff1b; 2&#xff09;php的版本信息 3&#…...

202441读书笔记|《笠翁对韵》—— 金菡萏,玉芙蓉,酒晕微酡琼杏颊,香尘浅印玉莲双

202441读书笔记|《笠翁对韵》——金菡萏&#xff0c;玉芙蓉&#xff0c;酒晕微酡琼杏颊&#xff0c;香尘浅印玉莲双 《作家榜名著&#xff1a;笠翁对韵》作者李渔&#xff0c;霍俊明。是所有词句都有注音的一本书&#xff0c;轻松学不认识的字&#xff0c;非常朗朗上口的对偶词…...

避坑指南:MaixPy K210模型从训练到部署,我踩过的那些‘坑’(数据集、烧录、运行)

MaixPy K210模型开发实战&#xff1a;从数据准备到模型部署的深度避坑手册 当第一次拿到K210开发板时&#xff0c;那种兴奋感至今记忆犹新——终于可以体验边缘计算的魅力了&#xff01;但随之而来的是一连串的"为什么不行"&#xff1a;数据集上传失败、训练结果异常…...

React Forget 编译器:深度分析自动化 Memoization 对 React 手动性能调优的革命性影响

各位听众&#xff0c;把手里的咖啡放下&#xff0c;把那个正在闪烁的光标移到屏幕中央。欢迎来到今天的讲座。我是你们的向导&#xff0c;今天我们要探讨的主题是——React Forget&#xff1a;一场关于“记忆”与“遗忘”的叛乱。如果你是一名 React 开发者&#xff0c;哪怕你只…...

保姆级教程:在CentOS 7上从零部署RuoYi-Vue前后端分离项目(含Nginx+Tomcat10配置)

CentOS 7实战&#xff1a;RuoYi-Vue全栈部署指南与避坑手册 当你拿到一台全新的CentOS 7服务器&#xff0c;准备部署RuoYi-Vue这个流行的前后端分离框架时&#xff0c;是否曾被各种环境配置、服务联动和权限问题困扰&#xff1f;本文将带你从零开始&#xff0c;用最接地气的方式…...

用于分类基于因果性和局部相关性的网络

Causal and Local Correlations Based Network for Multivariate Time Series Classification代码&#xff1a;https://github.com/dumingsen/CaLoNet面向多元时间序列分类&#xff08;MTSC&#xff09;的深度学习模型&#xff0c;核心创新是融合因果空间关联 局部时序关联&am…...

20、未来展望:AI编程范式、AGI挑战与职业发展路径

020、未来展望:AI编程范式、AGI挑战与职业发展路径 从一次深夜调试说起 昨晚凌晨两点,我在给一个边缘计算设备部署模型时遇到了诡异的问题:TensorFlow Lite模型在x86模拟器上推理准确率97%,到了ARM板子上直接掉到63%。传统调试手段——查日志、看内存、分析指令集——折腾…...

硬盘空间不足怎么装HTML工具_精简安装与外接存储方案【说明】

MySQL触发器无法实现定期清理&#xff0c;因其仅响应INSERT、UPDATE、DELETE等DML事件&#xff0c;无时间调度能力&#xff1b;定期清理应使用Event Scheduler&#xff0c;需先启用&#xff08;SET GLOBAL event_scheduler ON或配置文件设event_scheduler ON&#xff09;&…...

如何在Windows上实现完全本地的实时语音识别:TMSpeech完整指南

如何在Windows上实现完全本地的实时语音识别&#xff1a;TMSpeech完整指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 你是否曾经在会议中因为忙着记录而错过了重要内容&#xff1f;或者为视频制作字幕而花费大…...

保姆级教程:在Ubuntu 20.04上为RISC-V芯片编译运行CoreMark(含多线程配置)

RISC-V平台CoreMark性能测试全流程实战指南 在嵌入式开发领域&#xff0c;处理器性能评估始终是硬件选型和系统优化的关键环节。CoreMark作为当前最权威的嵌入式CPU基准测试工具&#xff0c;其测试结果已成为衡量RISC-V处理器性能的黄金标准。本文将完整演示如何在Ubuntu 20.04…...

告别评估版限制:手把手教你用注册机激活Keil5 MDK(STM32开发环境搭建)

突破Keil5 MDK评估版限制的完整解决方案 在嵌入式开发领域&#xff0c;Keil MDK作为ARM处理器的主流开发环境&#xff0c;其评估版对代码大小的限制常常让开发者感到束手束脚。当你精心编写的STM32程序超过32KB时&#xff0c;那个刺眼的编译错误提示就像一堵无形的墙&#xff0…...

2026奇点大会唯一认证的AI摘要合规框架(ISO/IEC 5055-AI Level 3),你的团队达标了吗?

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI代码摘要 2026奇点智能技术大会(https://ml-summit.org) 核心发布&#xff1a;CodeLens-7模型架构 大会首次开源轻量级AI代码摘要模型CodeLens-7&#xff0c;专为多语言函数级语义压缩设计。该模型支持Python、Go、Rust…...