IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 操作系统实战(四) -> 正文阅读

[系统运维]操作系统实战(四)


一、分段还是分页

1、从表示方式和状态确定角度考虑

段的长度大小不同。
页的大小固定,只需要位图就能表示页的分配与释放。

2、从内存碎片利用率看

由于段的长度大小不一,更容易产生内存碎片。
页的大小固定分配的最小单位是页,页也会产生碎片。可以通过修改页表的方式,将连续的虚拟页面映射到非连续的物理页面。

3、从内存和硬盘的数据交换效率看

当内存不足时,操作系统希望将内存的一部分数据写回硬盘,来释放内存。这就涉及内存和硬盘之间的交换数据。
由于段长度大小不一,不同段写回硬盘的时间也不同,硬盘的空间分配也会有这样的问题,这样会导致系统性能抖动。每次交换一个页,则没有这些问题。
段最大的问题是使得虚拟内存地址空间,难于实施。

二、如何表示一个页

使用分页模式来管理内存。首先把物理内存空间分成4KB大小页,这页表示从地址x开始到x+0xFFF这段物理内存空间,x必须是0x1000对齐的,这段内存空间成为内存页。‘
在这里插入图片描述
真实的物理内存地址空间不是连续的,中间可能有空洞,可能是显存,也可能是外设寄存器。
如果使用位图或者整形变量数组,用其中一个位代表一个页,或者用整形数组中的一个元素表示一个页。如果这样分配的话,分配释放内存页的算法就确定了,就是扫描位图或者数组。但这样效率比较低。这是因为我们仅仅保存了内存页空闲和已分配的信息,这是不够的,可以用C语言结构体将页的状态、页的地址、页分配计数、页的类型、页的链表封装起来。

三、内存区

内存区只是逻辑上的概念,没有内存区,不影响硬件正常工作,但是没有内存页是绝对不行的。
在这里插入图片描述
根据上面的图片,将物理内存分为三个区,分为硬件区、内核区、应用区。
硬件区占用物理内存低端区域,虚拟地址主要依赖于CPU中的MMU,但有很多外部硬件能与内存直接交换数据,例如DMA。所以说很多内存页不能随便分配给这些设备,但是只要规定硬件区分配内存页就好。
内核区,也需要使用内存,内核区同样需要运行在虚拟地址空间,需要一段物理内存空间和内核的虚拟地址空间是线性映射关系。很多时候内核使用内存需要大的、连续的物理内存空间,我们就需要在这个内核区分配内存。
应用区主要是给应用用户态程序使用,应用程序使用虚拟内存空间,一开始并不会为应用一次性分配完所需的所有物理内存,而是按需分配,即应用到一页就分配一个页。
如果访问到一个没有与物理内存建立映射关系的虚拟内存页,这时CPU就会产生缺页异常。最终这个缺页异常由操作系统处理,操作系统会分配一个物理内存页,并建立好映射关系。

四、组织内存页

组织内存页,就是组织msadsc_t结构,而msadsc_t结构中就有一个链表,我们组织msadsc_t结构正是通过另一个数据结构中的链表,将msadsc_t结构串联其中。需要更加科学合理的组织msadsc_t结构,需要定义一个挂载msadsc_t结构的数据结构,他其中需要锁、状态、msadsc_t结构数量,挂载的链表和一些统计数据。有了bafhlst_t数据结构,只是有了挂载的地方,需要将bafhlst_t数据结构放在一个更高的数据结构中,这个数据结构就是内存分割合并数据结构memdivmer。
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:31:17  更:2021-08-26 12:33:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:47:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计