博客
关于我
进程虚拟地址空间
阅读量:389 次
发布时间:2019-03-05

本文共 627 字,大约阅读时间需要 2 分钟。

1.PCB内存管理结构:

img

PCB对内存的管理结构,页表指针 + List<段信息>。
一次内存的分配其实就是分配逻辑地址更改段信息,逻辑地址的合法性也是通过这个结构检测的。

2.页表结构 radix tree:

image-20210427171856361

物理地址需要和虚拟地址建立映射管理,假设映射关系为 物理地址 = f(虚拟地址)。那么页表就是函数f()。 页表使用radix tree结构。

3.页表项结构:

img

4.内存查找过程:

img

计算机指令使用的是虚拟地址,虚拟地址是连续的更容易管理使用。物理内存存储在页表中计算机中的一块硬件接收来自虚拟内存的请求,然后访问页表以找到数据的物理内存位置。这种硬件称为内存管理单元(MMU)或动态地址转换(DAT)单元。为了使数据访问尽可能快,MMU存储了一个在一个名为translation lookaside buffer的表中,有有限数量的常用映射。如果地址不在TLB中,MMU将直接访问页表。它扫描表直到找到地址。然后将地址返回到TLB。如果虚拟内存和物理内存之间没有映射,产生一个缺页中断,中断处理函数检测是否是合法的地址,如果合法分配内存、读取数据填充内存、建立映射。

如果分配内存时内存不足,那么会进行swap,根据策略将内存中的数据写到磁盘上。下次操作内存时,产生缺页中断再重新都会内存。

时,产生缺页中断再重新都会内存。

https://blog.csdn.net/qq_38410730/article/details/81036768

你可能感兴趣的文章
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>