当前位置: 首页 > news >正文

杭州网络科技网站建设网站没有域名设置

杭州网络科技网站建设,网站没有域名设置,创建全国文明城市的目的,网站建网站建设seo帮帮您虚拟地址空间布局架构(Linux内核学习) 1.Linux内核整体架构及子系统 内核对下管理硬件,对上通过运行时库对应用提供服务 用户空间 使用malloc()分配内存通过free()释放内存 内核空间 虚拟进程负责从进程的虚拟地址空间分配虚拟页,sys_brk来扩大或收缩堆,sys_mmap负责在内存映…虚拟地址空间布局架构(Linux内核学习) 1.Linux内核整体架构及子系统 内核对下管理硬件,对上通过运行时库对应用提供服务 用户空间 使用malloc()分配内存通过free()释放内存 内核空间 虚拟进程负责从进程的虚拟地址空间分配虚拟页,sys_brk来扩大或收缩堆,sys_mmap负责在内存映射区分配虚拟页, 页分配器负责分配物理页 不连续内存分配器提供分配内存的接口vmalloc和释放内存接口vfree,申请连续的物理页的成功率比较低,可以申请不连续的物理页,r然后映射到连续的虚拟页,及虚拟地址连续而物理地址不连续 内存控制组来控制进程占用的资源,当内存碎片化的时候,找不到连续的物理页,内存碎片整理通过迁移方式得到连续的物理页,当内存不足的时候,负责回收物理页 硬件 MMU1包含一个页表缓存,保存最近使用过的页表映射,避免每次都要查询虚拟页对应的物理页,解决了CPU执行速度与内存速度不匹配的问题 来个例子: #include iostream #include stdio.h #include stdlib.h #include unistd.h constexpr int MAX 1024;int main(int argc, char const *argv[]) {/*sbrk函数在内核的管理下将虚拟地址空间映射到内存供malloc函数使用。*/void *p sbrk(0);void *old p;p (int *)sbrk(MAX * MAX);if (p (void *)(-1)){std::cout sbrk error\n;exit(0);}printf(old:%p\tp%p\n, p, old);void *new_ sbrk(0);printf(new:%p, new_);sbrk(-MAX * MAX);return 0; } 输出 old:0x55555557a000 p0x55555557a000 new:0x55555567a000可见成功分配了新的内存. 那我们如何更加具体的看到是否获取了内存呢? 更改代码如下: #include iostream #include stdio.h #include stdlib.h #include unistd.h constexpr int MAX 1024;int main(int argc, char const *argv[]) {/*sbrk函数在内核的管理下将虚拟地址空间映射到内存供malloc函数使用。*/void *p sbrk(0);void *old p;p (int *)sbrk(MAX * MAX);if (p (void *)(-1)){std::cout sbrk error\n;exit(0);}printf(old:%p\tp%p\n, p, old);void *new_ sbrk(0);printf(new:%p\n, new_);printf(pid %d\n, getpid());while (true){}sbrk(-MAX * MAX);return 0; } 运行,不要停止 输出为: old:0x55555557a000 p0x55555557a000 new:0x55555567a000 pid 1193打开新终端输入cat /proc/1193/maps(一切皆文件)查看内存情况: 后续就不在演示了(懒) 2.虚拟内存空间内存架构 linux-4.4.4\arch\arm64\include\asm\memory.h #define TASK_SIZE_64 (UL(1) VA_BITS)//64位操作系统 //VA_BITS 编译内核的时候选择的虚拟地址的位数#ifdef CONFIG_COMPAT #define TASK_SIZE_32 UL(0x100000000) //32位操作系统进程的用户虚拟地址空间包含区域:代码段、数据段、未初始化数据段; 动态库的代码段、数据段和未初始化数据段;存放动态生成的数据的堆; 存放局部变量和实现函数调用的栈; 把文件区间映射到虚拟地址空间的内存映射区域;存放在栈底部的环境变量和参数字符串。 部分内核代码: struct mm_struct {struct vm_area_struct *mmap;//虚拟内存区域链表 /* list of VMAs */struct rb_root mm_rb;//虚拟内存区红黑树u32 vmacache_seqnum; /* per-thread vmacache */ #ifdef CONFIG_MMU //在内存映射区找到一个没有映射的区域unsigned long (*get_unmapped_area) (struct file *filp,unsigned long addr, unsigned long len,unsigned long pgoff, unsigned long flags);unsigned long mmap_base; //内存映射区起始地址 /* base of mmap area */unsigned long mmap_legacy_base; /* base of mmap area in bottom-up allocations */unsigned long task_size; //用户虚拟空间长度 /* size of task vm space */unsigned long highest_vm_end; /* highest vma end address */pgd_t * pgd;atomic_t mm_users; //共享一个用户虚拟空间的进程数量,进程包含的线程的数量 /* How many users with user space? */atomic_t mm_count; /* How many references to struct mm_struct (users count as 1) */atomic_long_t nr_ptes; unsigned long hiwater_rss;//进程所拥有的最大页框数 /* High-watermark of RSS usage */unsigned long hiwater_vm; // 最大页数/* High-water virtual memory usage */unsigned long total_vm; //进程页数 /* Total pages mapped */unsigned long locked_vm;//锁住不能交换的页数 /* Pages that have PG_mlocked set */unsigned long pinned_vm; /* Refcount permanently increased */unsigned long shared_vm; /* Shared pages (files) */unsigned long exec_vm; /* VM_EXEC ~VM_WRITE */unsigned long stack_vm; /* VM_GROWSUP/DOWN */unsigned long def_flags;unsigned long start_code, end_code, start_data, end_data;//代码段起始结束,数据段起始结束unsigned long start_brk, brk, start_stack;//堆 栈的起始地址**我所有的学习笔记都在Github仓库里:https://github.com/fanxing-6/CPP-learning-notes ** ,如果访问Github有问题也可以访问Gitee:CPP-learning-notes: C学习笔记 (gitee.com) 本人能力有限,笔记难免有疏漏,如果有错误,欢迎各位关注公众号与我交流,一定会及时回复
http://www.yutouwan.com/news/379568/

相关文章:

  • 怎么做自己的发卡网站6南昌做网站需要多少钱
  • 建设黑彩网站网站建设中 图片
  • 网站建设开发原代码归属网络搭建比赛
  • 政务公开做的好的网站有哪些企业qq邮箱登录入口
  • 建设个人网站赚钱的经历wordpress自动添加视频播放
  • 企业做网站找谁智慧团建系统官方网站
  • 兰州网站建设程序网络设计课程什么专业有学
  • 亦庄建设局网站怎么做一个网站
  • 做普通网站需要服务器吗wordpress怎么添加用户中心页面
  • 做捕鱼网站北京vi设计
  • 宁波海曙建设局网站阿城区建设小学网站
  • 企业网站建设三网合一做应用级网站用什么语言好
  • 做阀门销售在哪个网站上做好建筑工程网上超市
  • dwcc2017怎么做网站建行个人网上银行登录入口官网
  • vue企业门户网站模板屏蔽蜘蛛网站还会被收录吗
  • asp网站没有数据库企业管理咨询是做什么的
  • 宽屏绿色新闻资讯网站织梦模板温州做网站最好的
  • 解决方案网站网站建设容易出现的问题
  • php做网站切换语言iphone手机网站建设
  • wordpress 关闭网站中国智力技术合作公司官网
  • 网站你懂我意思正能量晚上不用下载直接进入计算机前端和后端哪个好就业
  • 淘宝做网站的嵌入式软件开发基础
  • 个人网站设计首页外包网易
  • 自助建设视频网站企业网站建站价格
  • 莱州网站建设制作wordpress教程pdf
  • 个人网站可以注册com域名吗网站建设亿码酷适合5
  • 泉州惠安网站建设网页设计需要哪些软件
  • 网站馆店精准引流怎么推广网站建设方案范文
  • 现在用什么cms做网站好电子商城网站建设方案
  • 网站开发项目实训总结个人网站运营怎么做