网页模板源代码,上海牛巨微seo关键词优化,网站开发考什么证,宁波大型网站制作平常总说cpu的位数#xff0c;其实说的是cpu一次能运算的最长整数的宽度#xff0c;既ALU(算术逻辑单元)的宽度。cpu的位数也是数据总线的条数数据总线#xff1a;数据线的总和#xff0c;数据线就是cpu与内存进行数据传递的通道#xff0c;一条数据线#xff0c;一次可以…平常总说cpu的位数其实说的是cpu一次能运算的最长整数的宽度既ALU(算术逻辑单元)的宽度。cpu的位数也是数据总线的条数数据总线数据线的总和数据线就是cpu与内存进行数据传递的通道一条数据线一次可以传送1位二进制数8条数据线一次就可以传8位(1个字节)地址总线CPU是通过地址总线来指定存储单元的地址总线决定了cpu能访问的最大内存大小比如10位的地址线能访问的内存为1024位(1B)二进制数据操作系统为了屏蔽I/O底层的差异创建了VFS(虚拟文件系统)为了屏蔽I/O层与内存之间的差异产生了虚拟内存。为了屏蔽cpu与内存之间的差异创建了进程。每个程序运行起来都会拥有一个自己的虚拟地址空间32位cpu的操作系统其地址线也为32位所以虚拟地址空间为2^32 -1 4G一个进程在运行时不可能会用如此大的虚拟地址空间它们只会用到其中的一部分而且并不一定连成一片可能会被分割成几块每一块连续的虚拟内存块被称为虚拟内存段。Linux虚拟内存空间布局如下.reserve(预留)段一共占用128M属于预留空间进程是禁止访问的.text(代码段)可执行文件加载到内存中的只有数据和指令之分而指令被存放在.text段中一般是共享的编译时确定,只读不允许修改.data存放在编译阶段(而非运行时)就能确定的数据,可读可写。也就是通常所说的静态存储区,赋了初值的全局变量和赋初值的静态变量存放在这个区域,常量也存放在这个区域.bss段通常用来存放程序中未初始化以及初始化为0的全局/静态变量的一块内存区域在程序载入时由内核清0.heap(堆)用于存放进程运行时动态分配的内存可动态扩张或缩减这块内存由程序员自己管理通过malloc/new可以申请内存free/delete用来释放内存heap的地址从低向高扩展是不连续的空间.stack(栈)记录函数调用过程相关的维护性信息栈的地址从高地址向低地址扩展是连续的内存区域共享库(libc.so)静态库和动态库的区别(1)、不同操作系统下后缀不一样windows linux静态库 .lib .a动态/共享库 .dll .so(2)、加载方法的时间点不同*.a 在程序生成链接的时候已经包含(拷贝)进来了*.so 程序在运行的时候才加载使用(3)静态库把包含调用函数的库是一次性全部加载进去的动态库是在运行的时候把用到的函数的定义加载进去所以包含静态库的程序所以用静态库编译的文件比较大如果静态库改变了程序得重新编译相反的动态库编译的可执行文件较小但.so改变了不影响程序动态库的开发很方便(4)程序对静态库没有依赖性对动态库有依赖性。cat命令可以查看进程的虚拟地址空间布局cat /proc/pid/maps该输出命令一共有六列分别为虚拟内存开始地址-结束地址、访问权限(r读-w写-x可执行-s共享-p私有) 、偏移量 、主设备号次设备号、映像文件i节点 、映像文件路径