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

成都那家做网站好企业管理培训课程视频

成都那家做网站好,企业管理培训课程视频,马鞍山做网站公司,深圳商城网站建设报价文章目录 1 虚拟地址空间1.1 为什么需要虚拟内存而不是直接加载进物理内存1.2 分区 2 文件描述符1.1 文件描述符表file 1 虚拟地址空间 可以用来加载程序数据对应一段连续的内存地址,其实位置为0这个内存地址是虚拟的,并不是物理内存的0地址 当运行磁盘…

文章目录

    • 1 虚拟地址空间
      • 1.1 为什么需要虚拟内存而不是直接加载进物理内存
      • 1.2 分区
    • 2 文件描述符
      • 1.1 文件描述符表file

1 虚拟地址空间

  • 可以用来加载程序数据
  • 对应一段连续的内存地址,其实位置为0
  • 这个内存地址是虚拟的,并不是物理内存的0地址

当运行磁盘上的一个可执行程序,就会得到一个进程,内核会给每一个进程创建一个虚拟地址空间,并将应用程序装载到虚拟地址空间对应的内存中

进程在运行过程中,程序内部的指令都是通过cpu完成的,cpu只进行数据运算,不具备数据存储能力,其处理的数据从物理内存中加载进到,到写入物理内存,都是依靠内存管理单元MMU实现的

1.1 为什么需要虚拟内存而不是直接加载进物理内存

首先明白一个规则,物理内存的使用是连续的,同样的进程占用内存也是连续的

假如直接写入物理内存:

  1. 每个进程之间不隔离
  • 进程直接访问物理地址,如果程序通过内存地址修改其他程序的内存数据就会导致其他程序运行异常

    如果是虚拟地址,虚拟地址分配到0 - 100,其他程序也分配0 - 100,进程不知道这里的0-100映射到物理地址是多少

  1. 内存效率低
  • 如果某个程序的内存不够用了,需要拷贝到交换分区重新分配内存,那就需要拷贝整个进程占用的内存,效率低下

    如果使用虚拟内存,操作系统将物理内存分成小块,将活跃的内存和不活跃的内存分开管》

  1. 地址变化,不利于数据加载
  • 物理内存的使用是经常变化的,无法确定此时此刻起始地址在哪里,每次加载数据都要使用相对地址,影响效率

    虚拟地址直接访问自己的0 -100 的地址就行了,操作系统会去做映射

所以虚拟地址空间就是一个中间层,程序访问的地址都是虚拟地址,然后操作系统来做虚拟地址到物理内存的映射

1.2 分区

虚拟地址主要分为内核区用户区

内核区:

  • 内核区的内容和函数不被程序读写和直接使用
  • 内核是操作系统的一部分
  • 虚拟地址空间的内核区是对所有进程共享的,只有一块物理空间
image-20250221173711543

用户区:

  • 保留区:没有物理内存,任何引用都是非法的,程序中的空指针NULL就是这块内存
  • .text段:只读,存放cpu执行的机械指令,也就是程序执行的代码
  • .data段:可读可写,程序中已经初始化并且初始值不为0的全局变量和静态变量,静态存储区
  • .bss段:未初始化或初始化为0的全局变量和静态变量,系统自动将其初始化为0
  • 堆heap:进程运行时动态分配的内存
    • 堆中的内容是匿名的,只能通过指针访问
    • 堆向高地址扩展,是不连续的(链式存储)
  • 内存映射区mmap:加载磁盘文件,或者加载程序运行时调用的动态库
  • 栈stack:存储函数内部声明的非静态局部变量、函数参数、函数返回地址等信息
    • 内存由编译器分配,向下扩展,地址是连续的
  • 命令行参数:传给main函数的参数 argc argv[]
  • 环境变量:和进程相关的环境变量,如比:路径,进程所有者等信息

2 文件描述符

在linux中,一切都被抽象成了文件,,需要一个文件描述符来操作这些文件,同时,所有的文件描述符都维护在内核区的文件描述符表

1.1 文件描述符表file

内核区有专门的进程管理模块(PCB),其本质是一个task_struct结构体,其中有一个结构体file,就是文件描述符表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 终端被视为一个设备文件,当前终端文件可以用 /dev/tty 表示

  • 每个进程默认分配的文件描述符

    • STDIN_FILENO:标准输入,将输入输入到终端,宏值为0
    • STDOUT_FILENO:标准输出,通过终端输出,宏值为1
    • STDERR_FILENO:标准错误,将错误信息通过终端输出,宏值为2

    以上文件描述符都可以通用close() 函数关闭,关闭后文件断开和终端的交互

  • 给新打开文件分配文件描述符

    • 因为0 1 2都被分配了,所以进程使用的新文件从3开始分配
    • 通过open() 函数打开/hello.txt,分配文件描述符3
    • 不关闭3 再次打开会分配文件描述符4
    • 打开不同的新文件/world.txt 分配5
    • 如果close()关闭了3,就会释放文件描述符3,这时候打开任何文件,都会使用3来分配
    • 得出结论,打开文件会使用最小可用的文件描述符不同的文件描述符可以对应同一个文件
  • 文件描述符默认最大1024,可以修改,不会重复

件,都会使用3来分配

  • 得出结论,打开文件会使用最小可用的文件描述符不同的文件描述符可以对应同一个文件

  • 文件描述符默认最大1024,可以修改,不会重复

http://www.dtcms.com/wzjs/182312.html

相关文章:

  • 公司网站设计的公司广州推广工具
  • 珠海本地网站设计公司安徽搜索引擎优化
  • 怎么做淘宝客采集网站津seo快速排名
  • 网站友情链接怎么做爱站网seo
  • 河南省政府网站建设东莞网站建设最牛
  • 自己做网站好做么市场调查报告
  • 中煤地建设有限公司网站百度快照网站
  • 如何加强省市级门户网站的建设网站建设首页
  • 高仿卡西欧手表网站网店网络营销策划方案
  • 怎么给网站做关键词全网营销思路
  • wordpress 调整字体seo排名优化技术
  • anker 网站建设网址搜索引擎入口
  • 做执法设备有哪些网站百度关键词排名靠前
  • 建设网站需要投入镇江网站建站
  • 只有后端可以做网站吗汕头网站建设
  • 做愛4p視頻网站是什么seo排名是什么
  • 乌鲁木齐网站开发北京网讯百度科技有限公司
  • 网站怎么做图片自动外链工具
  • 网站开发配置表格广告联盟app下载
  • 网站建设报价图片欣赏最新的销售平台
  • 聊城seo整站优化报价网站的优化公司
  • 三门峡做网站公司网络营销五种方法
  • 安徽合肥做网站的公司深圳优化公司义高粱seo
  • 政府网站建设工作方案百度优化是什么
  • 办电视网络的是哪个公司?福州seo推广优化
  • 福田祥菱箱货无锡百度快照优化排名
  • 珠海培训网站建设友情链接检测的特点
  • 网站自助建设平台百度百度搜索引擎平台
  • 天津大学生专业做网站软文案例200字
  • 企业做国外网站多少钱网络营销推广方式包括