【操作系统笔记一】程序运行机制CPU指令集

news2024/11/18 3:37:29

内存地址

指针 / 引用

指针、引用本质上就是内存地址,有了内存地址就可以操作对应的内存数据了。

在这里插入图片描述

不同的数据类型

在这里插入图片描述

字节序

  • 大端序(Big Endian):字节顺序从低地址到高地址顺序存储的字节序
  • 小端序(Little Endian):字节顺序从高地址到低地址顺序存储的字节序

对于人类来说,大端序比较好理解,字节序从低地址到高地址,对于计算机来说,小端序比较容易操作。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进制转换

二进制和十进制之间的转换

十进制转成二进制:整数除2取余;小数乘2取整

在这里插入图片描述

二进制转成十进制:按权求和方法

在这里插入图片描述

十进制和十六进制之间的转换

将十六进制转成十进制:按权展开求和方法,不过权的基数是16

在这里插入图片描述

十进制转成十六进制和十进制转成二进制的方法是一样的。

在这里插入图片描述

二进制和十六进制之间的转换

十六进制转成二进制:

  • 每一位十六进制数字转换为四位二进制数字,
  • 运算的顺序也是从低位向高位依次进行

在这里插入图片描述

二进制转成十六进制:

  • 每四位二进制数字转换为一位十六进制数字,
  • 运算的顺序是从低位向高位依次进行,
  • 高位不足四位用零补齐

在这里插入图片描述

CPU的控制器、运算器、寄存器

在这里插入图片描述

  • 寄存器用来暂存指令、数据等处理对象,可以将它看做是内存的一种,一个CPU的内部一般有20~100个寄存器。

  • 控制器负责把内存中的指令、数据读入寄存器,并根据指令的执行结果来控制整个计算机。

  • 运算器负责运算从内存中读入寄存器的数据。

CPU的执行流程

在这里插入图片描述
在这里插入图片描述

  1. 程序计数器内存 中读取出的指令是放入 指令寄存器 中的
  2. 指令接下来由 指令解码器(一种寄存器)解码,接着由运算器计算结果
  3. 计算的结果最终可能返回到内存,也可能被写入某个寄存器中,在计算过程中也可能从内存中读取数据

程序计数器

在这里插入图片描述

程序计数器又叫指令指针寄存器,是寄存器的一种。

  • 程序计数器负责从内存中获取指令,一开始指向第一条指令的内存地址,当这条指令被执行后,指针会自动指向下一条指令的内存地址(根据当前指令本身的字节大小计算偏移,如字节大小是3,则下一条地址就是从当前地址往后偏移3个字节)。

  • 不同计算机程序计数器的实现不同,一般它就是一个寄存器

CPU的指令集

不同架构的 CPU 的指令集不同,不同架构的 CPU 中相同名字的指令的含义也不一定相同。

在这里插入图片描述

指令

在这里插入图片描述

在这里插入图片描述

  1. 一条指令就是一串二进制码,它的前几位一般是 操作码, 如 movadd

  2. 操作码 后面跟着的一般是 操作数,操作数可以是寄存器,也可以是某个内存地址,或者是常量

  3. 不管什么样架构的CPU,CPU指令基本上都是按照 操作码 + 操作数 的实现方式

在这里插入图片描述
在这里插入图片描述

函数调用栈

函数调用栈中的每个元素是一个栈帧栈帧包含了参数值局部变量返回地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

栈内存

在这里插入图片描述

在这里插入图片描述

计算机状态交互和系统调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户态 & 内核态

  • 内核态:可以完全访问所有的硬件,也可以执行机器能够运行的任何指令
  • 用户态:只能执行一部分机器指令,对于那些会影响机器的控制或者可进行IO操作的指令,在用户态中的程序中是禁止的

在这里插入图片描述
在这里插入图片描述

用户态:是指应用程序在运行时 CPU 所处的状态,这个时候的 CPU 所处的状态的级别特别低,不能直接访问某些机器指令,或者不能直接访问 I/O (读写磁盘)。

内核态:是指操作系统在运行时 CPU 所处的状态,这个时候的 CPU 可以执行任何的一条的指令,包括特权指令,包括访问 I/O 指令等。

应用程序、操作系统、硬件之间的关系:

在这里插入图片描述

操作系统、CPU、内存之间的关系:

在这里插入图片描述

系统调用

系统调用是如何从用户态陷入内核态的?

  • 在 32 位Linux操作系统中是通过 80 软中断实现的
  • 在 64 位Linux操作系统中是通过 syscall 汇编指令实现的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

64 位操作系统用户态发起系统调用的过程:

  1. 将参数保存到寄存器
  2. 根据系统调用名称得到系统调用号,并将其存储到CPU的 rax 寄存器中
  3. 执行 syscall 指令
  4. CPU会根据 rax 寄存器中的系统调用号到sys_call_table中找到对应的系统调用函数并执行该函数的指令代码,将运算结果写到 rax 寄存器中
  5. rax 寄存器中获取系统调用的结果值返回给用户态应用程序

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

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

相关文章

stm32之智能垃圾桶实战

之前用过51做过一个垃圾桶的小项目,这里用32重新搞了一下。视频的效果和之前一样,可参考这个垃圾桶效果 。 一、项目描述(同51) 项目主要是模拟不用手动打开垃圾桶盖,而进行自动操作。自动打开的条件如下&#xff1a…

基于微信小程序的学生选课系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言学生小程序端的主要功能有:教师的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 &#x1f4…

PHP自动识别采集何意网址文章正文内容

在做PHP采集内容时,用过querylist采集组件,但是这个插件采集页面内容时,都必须要写个采集选择器。这样比较麻烦,每个文章页面都必须指定一条采集规则 。就开始着手找一个插件可以能自动识别任意文章url正文内容并采集的&#xff0…

完整答题小程序源码/支持流量主/激励广告强点(答题小程序模板+题库)

源码简介: 完整答题小程序源码/支持流量主/激励广告强点(答题小程序模板题库),完整答题小程序源码有题库,无加密,带激励广告强制点击可提升广告收益。是积分激励的小程序,作为答题小程序开发,是很实用的操…

分库分表MySQL

目录 Mycat入门 分片配置 分片配置(配置Mycat的用户以及用户的权限) 启动服务 登录Mycat Mycat配置 schema.xml 1.schema标签:配置逻辑库,逻辑表的相关信息 1-1.核心属性 1-2.table标签 2.datanode标签:配置数据节点的相关信息 核心属性 3.datahost标签:配置的是节…

机器学习笔记 - 维度诅咒的数学表达

1、点之间的距离 kNN分类器假设相似的点也可能有相同的标签。但是,在高维空间中,从概率分布中得出的点往往不会始终靠近在一起。 我们可以用一个简单的例子来说明这一点。 我们将在单位立方体内均匀地随机绘制点(如图所示),并研究该立方体内测试点的 k 个最近邻将占用多少…

全套配置细节:缺省路由实验配置

1、实验目的 掌握默认路由的适用场合和配置方法 2、实验拓扑 默认路由的配置 3、实验步骤 &#xff08;1&#xff09;配置网络连通性如下。 1&#xff09;R1 的配置如下 &#xff1a; <Huawei>system-view Enter system view, return user view with CtrlZ. [Huaw…

MySQL学习笔记6

MySQL数据库如何存放数据&#xff1f; 注明&#xff1a;我们平常说的MySQL&#xff0c;其实主要指的是MySQL数据库管理软件。 一个MySQL DBMS可以 同时存放多个数据库&#xff0c;理论上一个项目就对应一个数据库。 如博客项目blog数据库&#xff0c;商城项目shop数据库&#…

【剑指Offer】23.链表中环的入口结点

题目 给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。 数据范围&#xff1a; n ≤ 10000&#xff0c;1 < 结点值 < 10000 要求&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度O(n) 例如…

CTF 全讲解:[SWPUCTF 2021 新生赛]jicao

文章目录 参考环境题目index.phphighlight_file()include()多次调用&#xff0c;多次执行单次调用&#xff0c;单次执行 $_POST超全局变量HackBarHackBar 插件的获取 $_POST打开 HackBar 插件通过 HackBar 插件发起 POST 请求 GET 请求查询字符串超全局变量 $_GET JSONJSON 数据…

使用xshell操控VM下的centos虚拟机时,解压出现以下错误:“unable to detect graphics environment”

这个错误产生的原因是因为使用xshell远程操控了 解决的方法是&#xff1a;别用xshell远程操控centos虚拟机了&#xff0c;直接通过VM去操控centos虚拟机就行了&#xff0c;在VM中直接调出centos虚拟机的终端&#xff0c;然后输入你要输入的指令即可。

华为云云耀云服务器L实例评测|centos7.9在线使用cloudShell下载rpm解压包安装mysql并开启远程访问

文章目录 ⭐前言⭐使用华为cloudShell连接远程服务器&#x1f496; 进入华为云耀服务器控制台&#x1f496; 选择cloudShell ⭐安装mysql压缩包&#x1f496; wget下载&#x1f496; tar解压&#x1f496; 安装步骤&#x1f496; 初始化数据库&#x1f496; 修改密码&#x1f4…

32 随机链表的复制

随机链表的复制 题解1 哈希表题解2 回溯哈希哈希思路精简 题解3 优化迭代 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点…

DBRichEdit关联ClientDataSet不能保存的Bug

ClientDataSet的最大好处&#xff0c;就是建立能内存表&#xff0c;特别DataSnap三层运用中&#xff0c;主要使用ClientDataSet与运程的服务器中的数据表&#xff0c;建立读取存贮关系。 在软件的使用中&#xff0c;总有客户反映&#xff0c;一些数据不能保存。 发现都是使用DB…

LeetCode讲解篇之347. 前 K 个高频元素

347. 前 K 个高频元素 文章目录 347. 前 K 个高频元素题目描述题解思路题解代码 题目描述 题解思路 根据数组频率倒序排序, 然后返回前k的个数据 题解代码 func topKFrequent(nums []int, k int) []int {m : make(map[int]int, 0)for i : len(nums) - 1; i > 0; i-- {m[n…

前端框架之争:Vue.js vs. React.js vs. Angular

文章目录 Vue.js - 渐进式框架的魅力简单易用组件化开发生态系统和工具适用场景 React.js - 高性能的虚拟DOM虚拟DOM单向数据流社区和生态系统适用场景 Angular - 一站式框架完整的框架双向数据绑定类型安全适用场景 如何选择&#xff1f;项目规模生态系统技能和经验性能需求 结…

win11 允许使用脚本Set-ExecutionPolicy

目录 Set-ExecutionPolicy RemoteSigned notepad.exe $PROFILE Set-ExecutionPolicy RemoteSigned Set-ExecutionPolicy RemoteSigned 如果报错&#xff0c;执行&#xff1a; Set-ExecutionPolicy -Scope CurrentUser 然后就会提示我们输入&#xff0c;我们把刚刚的 Remot…

【RocketMQ】(五)消息的消费

消费者从Broker拉取到消息之后&#xff0c;会将消息提交到线程池中进行消费&#xff0c;RocketMQ消息消费是批量进行的&#xff0c;如果一批消息的个数小于预先设置的批量消费大小&#xff0c;直接构建消费请求ConsumeRequest将消费请求提交到线程池处理&#xff0c;否则需要分…

Codeforces Round #898 (Div. 4)

首先庆祝自己上了绿名&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384; 1873A - Short Sort 1873B - Good Kid c…

Verilog 不同编码风格对综合电路的影响

文章目录 示例 #1示例 #2示例 #3 Verilog是一种硬件描述语言&#xff08;HDL&#xff09;&#xff0c;用于设计数字电路和系统。统一、良好的代码编写风格&#xff0c;可以提高代码的可维护性和可读性。 同样的功能&#xff0c;不同的Verilog 编码风格也会对综合过程产生重大影…