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

建设局网站功能简介罗湖专业做网站公司

建设局网站功能简介,罗湖专业做网站公司,深圳医院网站建设,辽宁建设工程信息网上报名流程目录 一、定义 二、问题引出 三、虚拟地址和物理地址 #xff08;一#xff09;问题解释 #xff08;二#xff09;什么是进程地址空间 #xff08;三#xff09;为什么要有进程地址空间 一、定义 #include stdio.h #include stdlib.h//geten…目录 一、定义 二、问题引出 三、虚拟地址和物理地址 一问题解释 二什么是进程地址空间 三为什么要有进程地址空间 一、定义 #include stdio.h #include stdlib.h//getenv的头文件 int un_gval; int init_gval2; int main() { printf(代码地址 %p\n, main); const char *str hello world; printf(常量地址 %p\n, str); printf(已初始化数据地址%p\n, init_gval); printf(未初始化数据地址%p\n, un_gval); char *heap (char*)malloc(100); printf(堆区地址 %p\n, heap); printf(栈区地址 %p\n, str); return 0; } #include stdio.h #include stdlib.h//getenv的头文件 int main() { const char *strhello world; char *heap1 (char*)malloc(100); char *heap2 (char*)malloc(100); char *heap3 (char*)malloc(100); char *heap4 (char*)malloc(100); printf(heap1 address%p\n, heap1); printf(heap2 address%p\n, heap2); printf(heap3 address%p\n, heap3); printf(heap4 address%p\n, heap4); printf(Stack1 address: %p\n, str); printf(Stack2 address: %p\n, heap1);//变量heap1是在main函数内部定义 printf(Stack3 address: %p\n, heap2); printf(Stack4 address: %p\n, heap3); return 0; } 栈整体向下增长但是一旦全部开辟好以后局部向上使用例如一个数组int a[10] a[0]a[9] 二、问题引出 fork以后的父子进程输出地址是一致的但是变量内容不一样 #includestdio.h#includeunistd.hint g_val 100;int main(){pid_t id fork();if(id 0){perror(fork);return 0;}else if(id 0)//子进程{int cnt 5;while(1){printf(child , pid: %d, ppid: %d, g_val: %d, g_val: %p\n, getpid(),getppid(),g_val,g_val);sleep(1);if(cnt 0){g_val 200;printf(child change g_val: 100-200\n);} cnt--;}}else{//父进程while(1){printf(father, pid: %d, ppid: %d, g_val: %d, g_val: %p\n,getpid(),getppid(),g_val,g_val);sleep(1);}}return 0;}三、虚拟地址和物理地址 一问题解释 每一个进程运行之后都会有一个进程地址空间的存在在系统层面都要有自己的页表映射结构 二什么是进程地址空间 进程地址空间本质上是内存中的一种内核数据结构在Linux当中进程地址空间具体由结构体mm_struct实现 进程地址空间是一个虚拟的内存空间可以看做是一条从 0x00000000 到 0xffffffff 的线这条线上被划分成不同的区域。每个区域在进程地址空间中都有一定范围的地址划分。在实际运行中这些虚拟地址会被操作系统内核映射到实际的物理内存地址上 struct mm_struct {struct vm_area_struct * mmap; /* list of VMAs */struct rb_root mm_rb;struct vm_area_struct * mmap_cache; /* last find_vma result */unsigned long (*get_unmapped_area) (struct file *filp,unsigned long addr, unsigned long len,unsigned long pgoff, unsigned long flags);void (*unmap_area) (struct vm_area_struct *area);unsigned long mmap_base; /* base of mmap area */unsigned long free_area_cache; /* first hole */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) */int map_count; /* number of VMAs */struct rw_semaphore mmap_sem;spinlock_t page_table_lock; /* Protects page tables, mm-rss, mm-anon_rss */struct list_head mmlist; /* List of maybe swapped mms. These are globally strung* together off init_mm.mmlist, and are protected* by mmlist_lock*/unsigned long start_code, end_code, start_data, end_data;unsigned long start_brk, brk, start_stack;unsigned long arg_start, arg_end, env_start, env_end;unsigned long rss, anon_rss, total_vm, locked_vm, shared_vm;unsigned long exec_vm, stack_vm, reserved_vm, def_flags, nr_ptes;unsigned long saved_auxv[42]; /* for /proc/PID/auxv */unsigned dumpable:1;cpumask_t cpu_vm_mask;/* Architecture-specific MM context */mm_context_t context;/* Token based thrashing protection. */unsigned long swap_token_time;char recent_pagein;/* coredumping support */int core_waiters;struct completion *core_startup_done, core_done;/* aio bits */rwlock_t ioctx_list_lock;struct kioctx *ioctx_list;struct kioctx default_kioctx;unsigned long hiwater_rss; /* High-water RSS usage */unsigned long hiwater_vm; /* High-water virtual memory usage */ }; 页表中的其他字段 三为什么要有进程地址空间 进程以统一的视角看待内存所以任意一个进程可以通过地址空间页表将乱序的内存数据变成有序存在虚拟地址空间可以有效的进行进程访问内存的安全检查将进程管理和内存管理进行解耦互不干扰通过页表让进程映射到不同物理内存上从而实现进程的独立性
http://www.w-s-a.com/news/150247/

相关文章:

  • 关于网站建设交易流程的描述一句话哪些网站用户体验好
  • 男女做暖暖的网站大全深圳平台网站建设外包
  • 凯里展示型网站设计抖音代运营收费详细价格
  • 外包网站会自己做原型吗网站制作怎样盈利
  • 为什么在百度搜不到我的网站电商网站开发过程
  • 什么是网站反链网页设计页面链接
  • 佛山企业网站制作韩国seocaso
  • 微信公司网站vue做社区网站
  • 蒙阴网站优化五核网站建设
  • 企业微商城网站建设wordpress新闻是哪个表
  • 重庆网站开发培训机构电商网站创办过程
  • 企业建网站得多少钱长沙财优化公司
  • 网站开发api平台扒完网站代码之后怎么做模板
  • PHP网站建设选择哪家好动画设计师月薪多少
  • 网站如何做市场推广网站开发主要步骤
  • 浏览器正能量网站网页文章导入wordpress
  • 江西中国建设银行网站首页永久免费自助建网站
  • 创建自己网站的步骤吸引人的微信软文
  • 网站建设与网页设计论述题软件开发公司在哪里
  • 二级网站建设方案模板亚马逊网站建设案例
  • 网站开发兼职团队门户网站如何制作
  • 高州市网站建设开发区招聘信息
  • 上海专业网站制作设计公司企业邮箱怎样注册
  • 网站建设在商标第几类网站建设 设计创意
  • 做一网站APP多少钱重庆中色十二冶金建设有限公司网站
  • 网上做效果图网站有哪些软件徐州泉山区建设局网站
  • 凯里网站制作网站篡改搜索引擎js
  • 如何使用凡科建设网站武安城乡建设网站
  • 网站建设网站及上传wordpress火车头发布
  • 有没有做网站的团队电脑版传奇网站