计算机系统漫游

本文以helloworld程序为例,深入解析计算机系统从编译到执行的全过程。介绍了信息表示、程序编译、处理器工作原理、高速缓存作用、存储层次结构等核心概念,并探讨了操作系统管理和系统间通信机制。

计算机系统漫游读书笔记

本章通过一个helloworld源程序从编译到执行的的流程来说明系统的运行机制。

  • 信息就是位+上下文
  • 程序被其他程序翻译成不同的格式
  • 了解编译系统如何工作是大有益处的
  • 处理器读并解释存储在存储器中的指令
  • 高速缓存至关重要
  • 存储设备形成层次结构
  • 操作系统管理硬件
  • 系统之间利用网络通信
  • 重要主题
  • 小结

1.1 信息就是位+上下文

  • 系统中所有的信息都 是由一连串的位(01) 表示,这些位所代表的意义由上下文决定。
我是如何记忆的:一千个读者(上下文)就有一千个哈姆雷特(位)
我是如何拓展的:同样的符号在不同场景中代表的意义不同, 如+可表示为数字上的加,也可表示为字符串连接。

1.2 程序被其他程序翻译成不同格式

  • 以人类能看懂的源代码形式存在的程序并不能让机器执行,需要经过一系列的“翻译”过程,这个过程就叫编译。
  • 编译的过程进一步分解为:
    1. 预处理: 处理头文件,从头文件中提取需要的内容
    2. 编译:将源码翻译成汇编代码
    3. 汇编:将汇编代码翻译成对应的机器码
    4. 链接:将用到的库函数通过一定的方法提取到上一步生成的文件中

我如何记忆: 想象成流水线加工
铁矿清洗(预处理)-> 融化成铁汁(编译)->变成零件(汇编)->组装成汽车(链接)

我如何扩展: 看病流程
预约->看病/出处方->处方处理,打针还是吃药->药店拿药/去打针

1.3 了解编译系统如何工作是大有益处的

  1. 优化程序性能
  2. 理解链接时出现的错误
  3. 避免安全问题

记忆与拓展:知道汽车的原理可更好地使用车子、知道汽车抛锚时问题所在、避免出事故。

1.4 处理器读并解释存储在存储器中的指令

计算机硬件组成

以上图为例 ,硬件是怎么执行./hello的:
1. 输入命令 ./hello: USB控制器->I/O桥->寄存器->内存
记忆: 收到开会通知->去会议室的通道->到达会议室
2. 加载文件(DMA): 磁盘->I/O桥->内存
记忆: 从抽屉拿出相关资料->带到会议室
3. 运行并输出: 内存->CPU->显示器
记忆: 在会议室取出准备的资料->组织语言->汇报

1.5 高速缓存至关重要

  • 高速设备跟低速设备之间设立一个小容量缓存,利用局部性原理,把最近访问到的内容放进去。

我如何记忆: 经常用到的东西放在容易拿到的地方
拓展: 从网络上传来的数据会先放到高速缓冲区中, 内核再从中取出处理,而并不是一直等待。

1.6 存储设备形成层次结构

存储器层次图
- 将一层上的存储器作为低一层的高级缓存
记忆: 权力金字塔 超高的人类越少权力越大

1.7 操作系统管理硬件

  • 进程 正在运行的程序的抽象
    记忆: 做饭的一系列流程(洗菜、切菜、炒菜….)
    拓展: 写博客时突然肚子饿了,先保存文稿,去吃完东西再回来继续。

  • 线程 轻量级的进程,进程包含多个线程,线程共享进程内的资源
    记忆: 做饭的时候可能有多个人一起合作,有人负责洗菜,有人负责切菜,他们共享厨具。

  • 虚拟存储器 对内存和硬盘的抽象(简化)
    虚存使得进程看到的地址空间是一致的。
    地址空间布局
    这里写图片描述

记忆: 公司内部有办公区、休息区、会议室……

  • 文件: I/O设备的抽象。 文件本质上就是字节序列,仅此而已。
    记忆: 打小人?

1.8 系统之间利用网络通信

  • 将1.4节中USB输入和显示器输出变成网络通信。

1.9 重要主题

  • 并发 通用概念,指同时存在多个活动的系统

  • 并行 用并发使系统运行得更快

  • 线程级并发
    多核: 仅共享L3, 其实的每个核独有(ALU、L1、L2、寄存器…..)
    记忆: 请多个人来干活

超线程:CPU某些硬件有多个备份(PC、寄存器)
记忆: 替补球员不能闲着,也要做事, 比如呐喊….

  • 指令级并行: 同时执行多秫指令
    超标量: 比一个时钟周期一条指令还快的执行速度
    记忆: 超人可以同时干多个人才能干的活

  • 单指令、多数据并行(SIMD): 通过特殊的硬件来允许一条指令产生多个并行操作的方式。

独立储能的现货电能量与调频辅助服务市场出清协调机制(Matlab代码实现)内容概要:本文围绕“独立储能的现货电能量与调频辅助服务市场出清协调机制”展开,提出了一种基于Matlab代码实现的优化模型,旨在协调独立储能系统在电力现货市场与调频辅助服务市场中的联合出清问题。文中结合鲁棒优化、大M法和C&CG算法处理不确定性因素,构建了多市场耦合的双层或两阶段优化框架,实现了储能资源在能量市场和辅助服务市场间的最优分配。研究涵盖了市场出清机制设计、储能运行策略建模、不确定性建模及求解算法实现,并通过Matlab仿真验证了所提方法的有效性和经济性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事电力市场、储能调度相关工作的工程技术人员。; 使用场景及目标:①用于研究独立储能在多电力市场环境下的协同优化运行机制;②支撑电力市场机制设计、储能参与市场的竞价策略分析及政策仿真;③为学术论文复现、课题研究和技术开发提供可运行的代码参考。; 阅读建议:建议读者结合文档中提供的Matlab代码与算法原理同步学习,重点关注模型构建逻辑、不确定性处理方式及C&CG算法的具体实现步骤,宜在掌握基础优化理论的前提下进行深入研读与仿真调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值