番外篇 中国古代的操 作系统

番外篇中国古代的操作系统


在这里插入图片描述

在古代中国,仿佛已经存在一套古老而神秘的操作系统机制。
这个东方国度中,有一位名叫小李子的忙碌人物,他的工作就如同是执行各种指令的“人肉CPU”。

这个国家还有一个特殊的人物,即皇帝,他就像整个国家系统的管理者,可以看作是操作系统的内核。而普通的大臣们则扮演着各种应用程序的角色,偶尔对小李子提出一些“命令”。

小李子的工作状态可以分为两种:用户态和内核态。在用户态时,他为大臣服务,执行各种各样的指令,从端茶送水到偶尔的特权指令。

值得一提的是,小李子是一个正直的人,当他在用户态收到特权指令时,会毫不犹豫地拒绝执行,并且这个拒绝会引发一个中断信号,俗称内中断或者异常。

这时,他会立即切换到内核态,内核程序会根据中断信号的类型来制定后续处理方案。

如果小李子处于内核态,说明他正在为皇帝服务。此时,他会接收来自皇帝的各种指令,无论是特权指令还是非特权指令。

但是,如果他在用户态时收到了一个特权指令,他会果断地拒绝执行,这将引发一个中断信号。这个中断信号会让他立即从用户态转为内核态,内核程序将针对这个异常情况进行处理。

举例来说,外中断可能在小李子为应用程序服务时发生,但一旦他听说皇帝要发布紧急指令时,外中断信号就会让他暂停为当前应用程序服务,立即转为内核态,然后内核程序将告诉他如何处理这个外部中断信号。

最后,让我们通过一个生动的故事来理解系统调用。尽管普通的命令不能让小李子执行特权指令,但在一些紧急情况下,比如战争时需要分配粮食,大臣可能会向小李子提出这个需求。这时,小李子会把系统调用的类型和参数记录在寄存器中,最后执行一个陷入指令,引发异常。

于是,小李子从用户态转到内核态,内核程序会根据系统调用的类型和参数来处理这个请求。这就是这个古代中国操作系统的精彩故事。希望这个轻松幽默的视角能为大家带来欢笑,切莫当真。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.4.1机器学习——梯度下降+α学习率大小判定

1.4.1梯度下降 4.1、梯度下降的概念 ※【总结一句话】:系统通过自动的调节参数w和b的值,得到最小的损失函数值J。 如下:是梯度下降的概念图。 我们有一个损失函数 J(w,b),包含两个参数w和b(你可以想象成J(w,b) w*x…

服务器配置SSL证书到nginx基于Fdfs存储服务器或者直接阿里云绑定SSL

1.如果用FDFS存储服务器内置nginx设置SSL证书 1.验证当前nginx是否存在 http_ssl_modulehttp_ssl_module模块 如果存在直接配置就行 server {listen 80 default backlog2048;listen 443 ssl; server_name 域名; ssl_certificate /usr/local/nginx_fdfs/ssl/xxxx.top.crt; ssl…

leetcode滑动窗口问题总结 Python

目录 一、理论 二、例题 1. 最长无重复字符串 2. 长度最小的子数组 3. 字符串的排列 4. 最小覆盖子串 5. 滑动窗口最大值 一、理论 滑动窗口是一类比较重要的解题思路,一般来说我们面对的都是非定长窗口,所以一般需要定义两个指针 left 和 right&…

Unity报错:[SteamVR] Not Initialized (109)的解决方法

问题描述 使用HTC vive 头像进行SteamVR插件的示例场景进行测试,发现头显场景无法跳转到运行场景(Unity 项目可以运行,仅出现警告)。 具体如下: [SteamVR] Not Initialized (109) [SteamVR] Initialization failed…

面试宝典之消息中间件面试题

RabbitMq: 1、RabbitMQ有啥用处? (1)服务间异步通信 (2)顺序消费 (3)定时任务 (4)请求削峰 2、RabbitMQ有哪些常用的工作模式? 工作模式(Work…

常用接口抓包以及接口测试工具总结

接口 统称为API,程序与程序之间的对接、交接。 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,主要是为了检验不同组件(模块)之间数据的传递是否正确,同时接口测试还要测试当前系统与第三方…

OpenHarmony自定义Launcher

前言 OpenHarmony源码版本:4.0release 开发板:DAYU / rk3568 DevEco Studio版本:4.0.0.600 自定义效果: 一、Launcher源码下载 Launcher源码地址:https://gitee.com/openharmony/applications_launcher 切换分支为OpenHarmony-4.0-Release,并下载源码 二、Launcher源…

2024.1.9 基于 Jedis 通过 Java 客户端连接 Redis 服务器

目录 引言 RESP 协议 Redis 通信过程 实现步骤 步骤一 步骤二 步骤三 步骤四 引言 在 Redis 命令行客户端中手敲命令并不是我们日常开发中的主要形式而更多的时候是使用 Redis 的 API 来实现定制化的 Redis 客户端程序,进而操作 Redis 服务器即使用程序来操…

mysql生成到当前时间的时间序列,报表按时间补0

生成本月每日的时间序列 SELECT DATE_FORMAT(date_add( CONCAT(YEAR(Date(curdate())),‘-0’,MONTH(Date(curdate())),‘-’,‘01’), INTERVAL ( cast( help_topic_id AS signed) ) DAY ) ,‘%Y-%m-%d’ ) FROM mysql.help_topic WHERE help_topic_id < DAY ( curdate( ) …

利用Type类来获得字段名称(Unity C#中的反射)

使用Type类以前需要引用反射的命名空间&#xff1a; using System.Reflection; 以下是完整代码&#xff1a; public class ReflectionDemo : MonoBehaviour {void Start(){A a new A();B b new B();A[] abArraynew A[] { a, b };foreach(A v in abArray){Type t v.GetTyp…

SaaS先驱Salesforce发展史

Salesforce是云计算和SaaS领域的先驱&#xff0c;大致经过5个不同发展阶段 第一个阶段&#xff1a;SaaS CRM发展初期 Salesforce成立时间是1999年&#xff0c;其SaaS业务的Idea的灵感起源于IaaS巨头亚马逊。初期标榜的竞品Siebel早期投入高、很难上手、功能过于复杂、实用性不强…

使用Excel批量给数据添加单引号和逗号

表格制作过程如下&#xff1a; A2表格暂时为空&#xff0c;模板建立完成以后&#xff0c;用来放置原始数据&#xff1b; 在B2表格内输入公式&#xff1a; ""&A2&""&"," 敲击回车&#xff1b; 解释&#xff1a; B2表格的公式&q…

【React系列】ES6学习笔记(一)let与const、解构赋值、函数参数默认值\rest参数\箭头函数、数组和对象的扩展、Set和Map等

本文参考自电子书《ECMAScript 6 入门》&#xff1a;https://es6.ruanyifeng.com/ let 和 const 命令 1. let 命令 尽量使用 let 声明变量&#xff0c;而不是 var。let 声明的变量是块级作用域&#xff0c; var 声明的变量是全局作用域。使用 let 变量必须先声明再使用&#…

WebRTC实现1对1音视频通信原理

什么是 WebRTC &#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是 Google于2010以6829万美元从 Global IP Solutions 公司购买&#xff0c;并于2024年01月10日将其开源&#xff0c;旨在建立一个互联网浏览器间的实时通信的平台&#xff0c;让 WebRTC…

如何使用PHP开发缓存优化图片加载速度

一淘模板发现随着互联网的快速发展&#xff0c;网页加载速度成为用户体验的重要因素之一。而图片加速是影响网页加载速度的重要因素之一。为了加速图片的加载&#xff0c;我们可以使用PHP开发缓存来优化图片加载速度。本文将介绍如何使用PHP开发缓存来优化图片加载速度&#xf…

Java-文件操作-FAQ-新建目录

1 需求 需求1&#xff1a;如果目录不存在新建目录&#xff1b; 需求2&#xff1a;如果目录存在&#xff0c;先删除目录&#xff0c;再新建目录&#xff1b; 2 接口 File类 mkdirmkdirsFiles类 createDirectories 3 示例&#xff1a;File类创建目录 import java.io.File;pu…

计算机毕业设计---ssm实验室设备管理系统

项目介绍 ssm实验室设备管理系统。前台jsplayuieasyui等框架渲染数据、后台java语言搭配ssm(spring、springmvc、mybatis、maven) 数据库mysql8.0。该系统主要分三种角色&#xff1a;管理员、教师、学生。主要功能学校实验设备的借、还、修以及实验课程的发布等等&#xff1b;…

windows配置电脑网络IP的方法

通过控制面板配置IP地址&#xff1a; 打开控制面板&#xff1a; 可以通过在开始菜单中搜索“控制面板”来打开控制面板。选择“网络和Internet”或“网络和共享中心”&#xff1a; 在控制面板中&#xff0c;根据 Windows 版本不同&#xff0c;选中对应的选项进入网络设置。点击…

再不收藏就晚了,Axure RP Pro 各版本大集合

Axure RP Pro下载链接 https://pan.baidu.com/s/1hRJRY6t0ZONKhdwvykAc3g?pwd0531 1.鼠标右击【Axure RP Pro9.0】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;选择【解压到 Axure RP Pro9.0】。 2.打开解压后的文件夹&#xff0c;鼠标右击【Axu…

2024啦,致敬最可爱的技术人!!

大家可以关注我的公众号和视频号“架构随笔录”。 ​作为一个开源爱好者&#xff0c;我花费了大概1整天的时间去整理了国内外主流的互联网公司在Java后端领域的开源输出成果&#xff0c;顿时感悟太多&#xff0c;总是觉得这些贡献开源的技术人及对应技术公司确实太不容易了&am…