自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 存储器层级结构

注:以下所有内容均来自开源学习组织DataWhale存储器层级结构存储器的层次结构如下所示:其中,CPU寄存器保存最常用的数据。告诉缓存存储器作为主存储器的缓存,主存作为磁盘的缓存,磁盘作为网络中其他机器上数据的缓存。基本存储技术基本存储技术包括:SRAM存储器、DRAM存储器、ROM存储器、旋转硬盘、固态硬盘。随机访问存储器(Random-Access Memory,RAM)静态RAM(SRAM):SRAM将每个位存储在一个双稳态存储器单元中,每个单元用一个六晶体管电路实现。静态即该存储

2022-01-03 22:21:48 1123

原创 优化程序性能

注:以下所有内容均来自开源学习组织DataWhale优化程序性能编写高效程序需要满足以下条件:选择合适的算法和数据结构理解编译器的能力和局限性探索并行化编译器优化程序的局限性例C代码如下:void add1(long *xp, long *yp) { *xp += *yp; *xp += *yp;}void add2(long *xp, long *yp) { *xp += 2 * *yp;}两者功能相同,都是将指针yp指向的数两次加到指针xp指向的

2021-12-29 21:54:24 410

原创 处理器体系架构(Y86系统)

注:以下内容均来自开源学习组织DataWhale处理器体系架构1 指令系统结构根据“x86-64”指令集,定义了一个简化版“Y86-64”指令集。以下内容均基于“Y86-64”指令系统:15个寄存器:%rax %rsp %r8 %r12 %rcx %rbp %r9 %r13 %rdx %rsi %r10 %r14 %rbx %rdi %r11其中%rsp被定义为栈指针,其他14个无固定含义条件码:零标识(ZF)、负号标志(SF)、溢出标志(OF)程序计数器PC保存当前正在执行的

2021-12-27 22:39:16 1689

原创 程序的机器级表示(四)

注:以下所有内容均来自开源学习组织DataWhale程序的机器级表示(四)1 结构体对于C代码中的一个结构体:struct rec{ int i; int j; int a[2]; int *p;}其对应内存中的位置如下:可以看出数组的元素是嵌入到结构体中的。1.1 数据对齐对于结构体:struct S1{ int i; char c; int j;}其在内存中的占12个bytes,如下图示意:i为int类型占4个by

2021-12-25 22:50:39 195

原创 程序的机器级表示(三)

注:以下内容均来自开源学习组织DataWhale程序的机器级表示(三)1 过程在大型软件的构建过程中,需要对复杂功能进行切分,过程提供了一种封装代码的 方式,它可以隐藏某个行为的具体实现,同时提供清晰简洁的接口定义。C语言中的函数和Java中的方法都是一种过程。例如函数P调用函数Q,函数Q执行完毕返回函数P,这其中包含:传递控制传递数据分配和释放内存2 运行时栈栈为函数调用提供了后进先出的内存管理机制。以函数P调用函数Q为例,当函数Q正在执行时,函数P及相关调用链上的函数都会被暂时

2021-12-25 20:26:29 205

原创 Spark端口

一、4040端口spark任务运行后,会将Driver所在机器绑定到4040端口,提供当前任务的监控页面。此端口号默认为4040,展示信息如下:调度器阶段和任务列表RDD大小和内存使用情况环境信息正在运行的executors的信息演示如下:通过spark的java接口启动sparkSparkConf sc = new SparkConf(); // 创建一个SpakrConf对象用于配置Sparksc.setAppName("name") // 设定程序名字

2021-12-23 16:20:53 5377

原创 程序的机器级表示(二)

注:以下所有内容均来自开源学习组织DataWhale程序的机器级表示(二)1 加载有效地址leaq S, D →\rightarrow→ Load Effective Address注:x86-64位处理器地址长度都是64,因此都是leaq例如如下指令:leaq 7(%rdx, %rdx, 4), %rax:表示把有效地址复制到寄存器rax中。其中7(%rdx, %rdx, 4)表示有效地址(计算方式见程序的机器级表示(一)中4.0.1):形式符合公式Imm(rb,ri,s)→Imm+R[rb

2021-12-22 23:21:54 1447

原创 程序的机器级表示(一)

注:以下内容均来自开源学习组织DataWhale程序的机器级表示(一)1 由程序引入的基本概述程序main.c如下:#include <stdio.h>void mulstore(long x,long y,long *);int main() { long d; multstore(2,3,&d) ; printf(” 2∗ 3 −−>%1d \n”,d); return 0;}long mult2(long a,long b){ png s

2021-12-20 22:21:19 949 1

原创 信息的表示和处理

注:以下内容均来自开源学习组织DataWhale1 虚拟地址空间将内存视为一个数组,数组中的元素是由一个个字节组成,每个字节由一个唯一数字表示,这个数字称为地址,所有地址的集合称为虚拟地址空间。2 Byte(字节)与bit(位)1byte = 8bits对应二进制:00000000\~11111111;对应十进制:0\~255进制转换:对于 2n2^n2n(二进制表示为1后面n个0)这样的二进制数字,快速转为十六进制的方法:先根据n=i+4jn=i+4jn=i+4j计算i, j,最终十六进制

2021-12-18 00:09:19 1043

原创 计算机系统漫游

注:以下所有内容均来自开源学习组织DataWhale1. 编译系统的工作流程1 #include <stdio.h>23 int main(){4 printf(” hello , world ”);5 return 0;6 }通过 gcc -o hello hello.c生成可执行程序的工作流称如下:预处理(hello.c →\rightarrow→ hello.i) :根据#读取头文件中内容直接插入到源程序中,得到另外一个C程序编译(hello.i →\right

2021-12-14 21:10:21 1663

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除