Linux知识点 -- 进程概念(补充)

Linux知识点 – 进程概念(补充)

文章目录

  • Linux知识点 -- 进程概念(补充)
  • 一、进程地址空间的堆区
  • 二、虚拟地址到物理地址之间的转化
  • 三、虚拟地址到物理地址之间的映射


一、进程地址空间的堆区

在用户每次使用malloc等函数在进程的堆区申请地址时,用户只需要指定空间的大小,并且会得到一个起始地址,而不会得到结束地址;

  • 因为堆区的结构都是由vm_area_struct管理的,每次malloc都会申请一个该结构体;在这里插入图片描述

  • malloc在堆上申请空间时,只需要知道起始地址,不需要知道结束地址,就是因为vm_area_struct中保存了start和end;

  • 堆区申请的空间都是连续的;

二、虚拟地址到物理地址之间的转化

  • 磁盘上的空间都是以4KB为单位的,我们的可执行程序存储在磁盘上,其实它本来就是按照地址空间的方式进行编译的,可执行程序也被划分成了以4KB为单位的区域,存储在磁盘上;
  • 物理内存也是按照4KB划分的,OS是通过struct page结构体对物理内存的各个单元进行管理的;
  • 磁盘上的一个4KB单位叫做页帧,物理内存上的一个4KB单位叫做页框;
  • IO的时候,基本单位就是4KB,就是将页帧装进页框;
  • 当OS通过页表进行寻址时,发现对应地址的文件不在内存中,就需要引发缺页中断
    (1)申请对应的内存;
    (2)在磁盘中查找对应的文件;
    (3)加载到内存中指定的位置;
    (4)重新填充页表;
    (5)返回到用户;

三、虚拟地址到物理地址之间的映射

页表中一个地址的映射叫做一个条目,假设一个条目大小为9byte(虚拟地址 + 物理地址 + 属性),32位地址下一共2^32个条目,就是4GB个条目,一共就是36GB的页表空间,内存中无法保存这么大的页表;

  • 实际上,OS在虚拟地址到物理地址的映射上,是将虚拟地址划分的:
    在这里插入图片描述
    虚拟地址的前十个bit位在一级页表进行索引,一级页表的映射关系一共2^10,就是1024个;
    一级页表映射到二级页表,再在对应的二级页表中检索中间的10bit地址;
    二级页表映射到物理内存的某个页的起始地址;
    后12位地址代表这个地址的页内偏移(因为2^12 = 4KB);

    这样就能够减小页表的空间消耗;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OBD接口引脚定义

汽车的OBD接口引脚定义分配如下图所示,OBD接口共有16个引脚(可参考 ISO 15031-3)。 1、引脚1,3,8,9,11,12,13 引脚1,3,8,9,11,12,13由主机厂进行分配。 2、引脚2 如果车辆中使用SAE J1850 10,4 VPW(可变脉冲)来提供…

小红书运营 变现方法总结(精)

大家好,我是网媒智星,今天跟大家分享一下小红书运营方面的知识,怎样利用小红书变现?全篇倾情干货输出,认真学习,保证您收获多多。 首先,让我们来分析一下小红书平台的优势。关于卖东西&#xff…

vue + less 实现动态主题换肤功能

文章目录 前言一、前提条件1. 初始化vue项目2. 安装插件 二、新建文件夹主题theme1.style.less文件2.model.js文件3.theme.js文件theme文件夹最终效果 三、修改vue.config.js文件四、页面上的具体使用1. index.vue 页面2. index.vue 页面注意点说明3. index.vue 效果 五、在js中…

VSCode使用SSH无密码连接Ubuntu

VSCode使用SSH无密码连接Ubuntu 前提条件: 1. 能够正常使用vscode的Remote-ssh连接Ubuntu 2. Ubuntu配置静态ip(否则经常需要修改Remote-ssh的配置文件里的IP) 链接-> ubuntun 18.04设为静态ip(.net模式,可连接…

如何解决docker中出现的“bash: vim: command not found”

目录 问题描述: 问题解决: 问题描述: 在docker中,想要执行vim编辑文件,弹出“docker bash: vim: command not found“(如下图),请问该如何解决? 问题解决: …

FPGA应用学习笔记------系统复位一(同异复位)

要满足复位恢复时间才能正常复位,不然会产生输出准稳态,输出逻辑错误 复位恢复时间只会存在复位释放时刻,不会出现在确立时刻,则不推荐完全异步复位 完全同步复位,肯定是同步于时钟滴,并将总是满足时钟条件…

【Spring MVC】Spring MVC基于注解的程序开发

目录 一、什么是Spring MVC 二、Spring MVC项目的创建和使用 1、实现客户端和服务器端之间的连接 1.1、RequsestMapping注解 1.2、RequestMapper的简单使用 1.3、使用GetMapping和POSTMapping注解来实现HTTP连接 三、获取参数 1、实现获取单个参数 2、实现获取对象 3…

解决ubantu驱动掉了的问题

这里写自定义目录标题 解决ubuntu驱动掉了的问题 解决ubuntu驱动掉了的问题 首先确定是否有驱动: ls /usr/src | grep nvidia若有,则大概率是驱动版本与内核版本对应不上,则把内核版本切换为初始版本即可。参照:https://blog.cs…

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类…

nodejs+vue+elementui+express智慧社区小区物业管理系统的设计与实现_2p760

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementuiexpress vue的文件结构其实就是一个index.html 中间的内容,用的是vue,但最终都会转…

OpenCV图像处理——形态学操作

目录 连通性形态学操作腐蚀和膨胀开闭运算礼帽和黑帽 连通性 形态学操作 形态学转换是基于图像形状的一些简单操作。它通常在二进制图像上执行。腐蚀和膨胀时两个基本的形态学运算符。然后它的变体形式如开运算,闭运算,礼帽黑帽等 腐蚀和膨胀 cv.erode…

Node.js学习笔记-04

这第九章也是个大重点 九、玩转进程 Node在选型时决定在V8引擎之上构建,也就意味着它的模型与浏览器类似。 本章关于进程的介绍和讨论将会解决如下两个问题: 单进程单线程并非完美,如今CPU基本均是多核的,真正的服务器&#xf…

轻薄的ESL电子标签有哪些特性?

在智慧物联逐渐走进千万家的当下,技术变革更加日新月异。ESL电子标签作为科技物联的重要组成部分,是推动千行百业数字化转型的重要技术,促进物联网产业的蓬勃发展。在智慧零售、智慧办公、智慧仓储等领域,ESL电子标签在未来是不可…

win11右下角图标(网络,音量,电量)点击无反应问题,两分钟解决!

win11系统用的好好的,突然有一天任务栏右下角的常用三件套(网络,音量,电量)左键单击没反应,无法方便的调节音量和连接wifi,如下图所示,但是右键好用,不过不方便。网上查了…

嵌入式 C 语言程序数据基本存储结构

一、5大内存分区 内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 ​…

【Windows API】获取卷标、卷名

1、卷->卷标 使用FindFirstVolume()和FindNextVolume()函数体系,枚举系统所有卷(Volume)的例子,然后获取卷标、卷类型。这个方式可以枚举出没有驱动器号(卷标)的卷。 int TestMode1() {HANDLE hVolume…

Failed to connect to bitbucket.org port 443

浏览器可以访问bitbucket,但是在终端或者sourcetree上死活无法进行pull, push等操作。 Root Cause:“【翻】【墙】软件”使用了http proxy,所以也得为git设置相同的http proxy。 所以,解决方法是: 1,查看“…

网络系统架构演变

1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架…

【Django】无法从“django.utils.encoding”导入名称“force_text”

整晚处理 Django 的导入错误。 我将把它作为提醒,希望处于相同情况的人数会减少。 原因 某些软件包版本不支持Django 4 请看下表并决定Django和Python的版本 方案 如果出现难以响应,或者更改环境麻烦,请尝试以下操作 例如出现以下错误 …

通过版本号控制强制刷新浏览器或清空浏览器缓存

背景介绍 在我们做 web 项目时,经常会遇到一个问题就是,需要 通知业务人员(系统用户)刷新浏览器或者清空浏览器 cookie 缓存的情况。 而对于用户而言,很多人一方面不懂如何操作,另一方面由于执行力问题&am…