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

WordPress电影资源分享下载站猎聘网招聘网页版

WordPress电影资源分享下载站,猎聘网招聘网页版,wordpress教程登陆,wordpress速度优化存对于每一个进程都会对应一个虚拟地址空间#xff0c;对于32位的操作系统#xff08;其指令的位数最大为32位#xff0c;因此地址码最多32位#xff09;#xff0c;虚拟地址空间的大小为B即0~4GB的虚拟地址空间#xff0c;其中内核空间为1GB#xff0c;如下所示#xff…        对于每一个进程都会对应一个虚拟地址空间对于32位的操作系统其指令的位数最大为32位因此地址码最多32位虚拟地址空间的大小为B即0~4GB的虚拟地址空间其中内核空间为1GB如下所示 每一个进程的进程控制块PCB都位于内核区在每一个进程的PCB中有一个文件描述符表是一个数组用于标记该进程所打开的所有文件。从文件描述符表可以看出每一个进程最多能打开1024个文件其中有三个文件默认是一直处于打开状态的即进程创建完成时就处于打开状态分别是标准输入 STDIN_FILENO其文件描述符为0标准输出 STDOUT_FILENO其文件描述符为1错误输出 STDERR_FILENO其文件描述符为2其中文件描述符0和1可以省略不写。供我们用户打开的文件只能够占据从3开始的位置即其文件描述符为3以后的数字3~1023。每打开一个文件就会占用一个文件描述符且使用的是空闲的最小的一个文件描述符。 Linux下可执行文件的格式为ELF[rootlocalhost Calc]# file zsx                                                                      zsx: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]0x14ef2d34126e7c54141b73c31968bd825ca522ba, not stripped           //可以看出zsx为64位即机器指令位数为64位OS位数的可执行文件其格式为ELF。 对于每一个程序在执行时如上图中的a.out此时会产生一个相应的进程系统都会自动为其分配一个0~4G的虚拟地址空间其中1G的内核空间用于进程管理、内存管理、设备管理和虚拟文件系统等。下面详细介绍0~3G的用户空间。 强调一点以下说明的各段都是与编程相关的不包括虚拟地址空间的全部。 0~3G的用户空间。从小到大从下往上依次为保留区受保护的地址、代码段、数据段.data段、.bss段、堆空间、内存映射段、栈空间、命令行参数和环境变量。下面依次对每一个段做简单的介绍 1.保留区受保护的地址 保留区即为受保护的地址大小为0~4K位于虚拟地址空间的最低部分未赋予物理地址不会与内存地址相对应因此其不会放任何内容。任何对它的引用都是非法的用于捕捉使用空指针和小整型值指针引用内存的异常情况。大多数操作系统中极小的地址通常都是不允许访问的如NULL。C语言将无效指针赋值为0也是出于这种考虑因为0地址上正常情况下不会存放有效的可访问数据。将指针赋值为0意味着该指针将永远不会被使用从而不会出现野指针情况。#define NULL 0 与 #define NULL (void*)0   在C语言中是等效的而在C中只能用#define NULL 0后面 #define NULL (void*)0的使用会出错。 2.代码段 代码段也称正文段或文本段通常用于存放程序执行代码(即CPU执行的机器指令)。一般C语言执行语句都编译成机器代码保存在代码段。通常代码段是可共享的因此频繁执行的程序只需要在内存中拥有一份拷贝即可。代码段通常属于只读以防止其他程序意外地修改其指令(对该段的写操作将导致段错误)。某些架构也允许代码段为可写即允许修改程序。   3.数据段.data段 数据段通常用于存放程序中已初始化的全局变量和静态局部变量。数据段属于静态内存分配(静态存储区)可读可写。由于全局变量未初始化时其默认值为0因此值为0的全局变量位于.bbs段不位于数据段。对于未初始化的局部变量其值是不可预测的。注意在代码段和数据段之间还包括其它段只读数据段和符号段等。 4..bbs段 该段用于存放未初始化的全局变量和静态局部变量包括值为0的全局变量。 数据段和.bbs段又称为全局数据区前者初始化后者未初始化。 ELF段包括代码段、其它段只读数据段和符号段等、.data段数据段和.bbs段都属于可执行程序部分。 5.堆空间 new( )和malloc( )函数分配的空间就属于对空间用于内存空间的分配其从下往上。  堆用于存放进程运行时动态分配的内存段可动态扩张或缩减。堆中内容是匿名的不能按名字直接访问只能通过指针间接访问。当进程调用malloc(C) 和new (C)等函数分配内存时新分配的内存动态添加到堆上(扩张)当调用free(C)/delete(C)等函数释放内存时被释放的内存从堆中剔除(缩减) 。 6.内存映射段共享库 此处内核将硬盘文件的内容直接映射到内存, 任何应用程序都可通过Linux的mmap()系统调用请求这种映射。内存映射是一种方便高效的文件I/O方式 因而被用于装载动态共享库。如C标准库函数fread、fwrite、fopen等和Linux系统I/O函数它们都是动态库函数其中C标准库函数都被封装在了/lib/libc.so库文件中都是二进制文件。这些动态库函数都是与位置无关的代码即每次被加载进入内存映射区时的位置都是不一样的因此使用的是其本身的逻辑地址经过变换成线性地址虚拟地址然后再映射到内存。而静态库不一样由于静态库被链接到可执行文件中因此其位于代码段每次在地址空间中的位置都是固定的。 7.栈空间 用于存放局部变量非静态局部变量C语言称为自动变量分配存储空间时从上往下。栈和堆都是后进先出的数据结构。 8.命令行参数 该段用于存放命令行参数的内容argc和argv。 9.环境变量 用于存放当前的环境变量在Linux中用env命令可以查看其值。 10.虚拟地址空间的作用好处 1.方面编译器和操作系统安排程序的地址2.方便实现各个进程空间之间的隔离互不干扰因为每个进程都对应自己的虚拟地址空间3.实现虚拟存储从逻辑上扩大了内存。 补充内容 代码段.text段与只读数据段和符号段.rodata段都属于只能读的部分在链接的时候这两部分会链接成为一个整体而.data段和.bbs段属于可读可写RW的部分。这四个部分都是以页每页4KB的形式存放在内存中。进程控制块PCB又叫进程描述符放于内核空间。 多个进程在并发执行时这些进程的用户空间都是彼此独立的因此各个进程的用户空间在映射为内存空间使都是独立的互不干扰这是MMU地址变换必须要能够保证的。例如各个进程的.text段、只读数据段和符号段、.data段和.bbs段等在用户空间中使用到的其它数据信息都会与页为基本单位放在内存中各个进程的映射是独立的。而对于内核空间由于只有一个操作系统内核空间主要是 机器指令、操作系统内核的各个模块等它们是公用的因此每个进程的映射方式一样。强调一点每个进程用到或即将用到的数据才会调入内存其余都在磁盘上。但是各个进程内核空间的进程控制块进程描述符映射的地点是不一样的也是相互独立的。共用的模块才是一样的。 这些都是MMU的实现机制所决定的。如果感兴趣可以看看MMU的实现机制。
http://www.pierceye.com/news/105667/

相关文章:

  • 网站建设如何不被忽悠做营销怎样才能吸引客户
  • 代写文章兼职济南公交优化
  • 商城开发网站建立公司网站步骤
  • 查询域名注册网站泰国做网站
  • 网站图片描述怎么写社区类网站有哪些
  • 网站竞争对手的选定一般参考什么标准的网站的推广方案的内容有哪些
  • 把别人的图片拿来做网站wordpress 覆盖原始图片对比效果
  • 江门市建设工程备案网站乌兰浩特网站开发
  • 个人介绍微电影网站模板免费下载一个网站的建设成本
  • 搬瓦工怎么做网站百度小程序开发教程
  • 织梦网站被攻击小型门户网站建设方案
  • 长沙网站托管公司排名静态网站结构如何更新
  • 网站建设 宜宾湖州网站建设培训教程
  • 网站建设脚本什么叫营销型网站
  • 沧州网站建设专业的公司4000-262-seo优化与品牌官网定制
  • 网页游戏推广网站怎么做如何创建平台类网站
  • 十堰英文网站建设学校教育网站模板
  • 学校网页网站模板免费下载微信的微网站
  • 网站开发的解决方案小型行业网站建设维护成本
  • 浏阳市网站建设百度中心人工电话号码
  • 高端外贸网站制作智慧团建网站没有验证码
  • 做网站需要买服务器么网站建设营销外包公司排名
  • 网站建设中要多使用图片258网站建设
  • 做多语言网站教程开网页慢是什么原因
  • 汽车商城网站模板seo公司网站推广
  • 网站备案查询工信部官网网站建设费用推荐网络专业
  • 网站开发费用是研发费用国内做seo最好公司
  • 什么是网站建设公司企业网站后台管理
  • 做网站阿里巴巴好还是百度好柠檬网络科技网站建设
  • 做个网站要多少钱网站建设工作 方案