计算机基础系列一:计算机硬件
CPU的工作过程:取指(令),解码,执行
内核态与用户态及上下文切换
内核态(核心态):
1 | 获取 CPU所有的指令集 \\上课笔记:软件没有操作硬件的权限,需要CPU将用户态切换到内<br>核态,由操作系统去操作硬件;打开一个文档的过程:应用向操作系统发送指令(调用硬盘),然<br>后由用户态切换到内核态。然后由操作系统去硬盘调取数据。 |
用户态:
1 | 指非特权的执行状态。以防止给操作系统带来安全隐患。比如写入系统配置文件、杀掉其他用户<br>的进程、重启系统等;(获取CPU不包含硬件层面的指令集。) |
程序运行的过程:
1 | 输入设备发出指令,内存先将指令转发给寄存器,再由寄存器转发给CPU。由CPU调用,将用户态<br>切换为内核态。再通过内核态的指令去硬件设备进行相应操作。硬件设备处理完之后将数据交给内<br>存,然后显示结果。 |
用户态切换到内核态的3种方式:
1 2 3 | (1) 系统调用,这是用户态进程主动要求切换到内核态的一种方式。 (2) 异常,当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常。 (3) 外围设备的中断, 当外围设备完成用户请求的操作后,会向CPU发出相应设备的中断信号,<br>如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的<br>切换。 |
上下文切换:
1 | 所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变<br>量和寄存器值和当时的环境等 |
进程
概念:
1 | 程序是指令、数据及其组织形式的描述,进程是程序的实体,一段程序的执行过程。 |
一个进程可以有多个线程
进程和线程的关系:线程共享进程里面的资源;2核4线程:2x4虚拟CPU。
打个比喻:
1 2 3 | 北京地铁:进程 昌平线:线程 我们:资源 进程是资源单位,线程是CPU的执行单位。 |
二进制和十进制的转换:
1bit:一个二进制位。
磁道:每个磁头可以读取一段换新区域,称为磁道
每个磁道划成若干扇区,扇区典型的值是512字节
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间
硬盘由多张盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的"0"开始编号,具有相同编号的磁道形成一个圆柱,(柱面大小是所有盘面相同半径的磁道大小总和),称之为磁盘的柱面。
柱面数量与一个盘面上的磁道数量是相等的,每个柱面容量大小=磁道容量*盘面数量。
平均寻道时间:
1 | 磁头从开始移动到移动至数据所在的磁道所花费时间的平均值 |
平均旋转延迟
1 2 | 机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间 柱面:作用=划分分区。 |
如果硬盘一个一个字节的读取或写入,会导致效率低所以会将数据积累到一定数量在进行读写。
硬盘级别:扇区=512Bytes
操作系统级别:块=8个扇区
Inter: 4核共享一个L2缓存,由缓存控制器协调使用
AMD: 每个核心分配一个缓存,
研究技术的思路:
1、看名词(顾名思义) \\例如:进程,运行的过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现