首页 > 其他分享 >操作系统

操作系统

时间:2023-08-09 12:57:05浏览次数:35  
标签:操作系统 多级 虚拟地址 虚拟 内存 页表

虚拟地址:为了让每个进程都使用独立的物理内存,非必要时,不同进程之间不共享内存。虚拟地址就是实现这一功能的方案。

  • 进程运行时,操作系统为进程分配独立的一套「虚拟地址」,虚拟地址和物理地址的映射由操作系统完成。操作系统保证了不同的进程使用的物理内存都是不一样的。

页表:存在内部碎片,不存在外部碎片
段表:存在外部碎片,不存在内部碎片

页表

  • 32位系统中,每个虚拟地址都是一个32位的指针。假设页表项有2^20个,则代表虚拟地址的前20位代表页号,后12代表偏移量。
  • 页表中并不存储虚拟页号,虚拟页号相当于数组中的索引,物理页号相当于数组中的元素,所以数组的元素中是不存储索引的。

以二级页表为例介绍多级页表:
二级页表:原本一个页表中存储所有物理页号,虚拟页号用索引表示。现在将一个页表拆分成多个页表,虚拟页号前缀相同的在同一个页表中,比如虚拟页号前10位相同的放在同一个页表中,如下图。由于每个页表中的前缀都是相同的,所以使用另一个页表保存这些前缀,所以就有了两个页表,即二级页表。

  • 二级页表增加了一个页表,所以页表对内存的占用量升高了而不是降低了。二级页表通过如下方式减少内存消耗:如果存在最近一定时间未访问的页表,在物理内存紧张的情况下,操作系统会将页面换出到硬盘,也就是说不会占用物理内存。
  • 不使用多级页表就不能将页表项移出内存吗?答:可以的,只是多级页表是较为高效的内存管理方式。在没有多级页表的情况下,仍然可以采取一些内存管理策略来优化页表项的存储:
    • 页表划分: 将页表分为多个部分,每个部分负责一部分虚拟地址空间。这样可以将未使用的部分从内存中移出。
    • 懒加载页表: 不一次性将所有的页表项加载到内存中,而是在需要访问某个虚拟地址时再加载对应的页表项。
  • 多级页表需要访问多个页表,这就增加了访问内存的次数。

快表:把最常访问的几个页表项存储到cache中,这个cache就是TLB(快表)。有了 TLB 后,那么 CPU 在寻址时,会先查 TLB,如果没找到,才会继续查常规的页表。

段页式内存管理:先将程序进行分段(如代码段、数据段、栈段等),然后为每段构建一个页表。

标签:操作系统,多级,虚拟地址,虚拟,内存,页表
From: https://www.cnblogs.com/codingbigdog/p/17616568.html

相关文章

  • 操作系统概述
    2.1.1操作系统的概念操作系统 是一组控制盒管理计算机系统的硬件和软件资源、控制程序执行、改善人机界面、合理地组织计算机工作流程并未用户使用计算机提供良好运行环境的一种系统软件。 目的:提高计算机系统的效率,增强系统的处理能力,提高系统资源的利用率,方便用户使用计算机。2......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 操作系统
    目录操作系统操作系统干了什么为什么要有操作系统操作系统帮我们把内容保存到了硬盘操作系统帮我们解析了双击的指令操作系统干了什么文件:是操作系统转化的。操作系统干了什么:接受外部指令转化为0和1翻译你写的字符,把对文件的操作从繁(控制高低压电平)到简(你i想干嘛就干嘛)......
  • 操作系统基本知识点
     P1:自己动手写操作系统P2:  操作系统相关概念P3: 高级操作系统特性P4:时间片轮转与上下文切换 -------------来源参考B站黑马程序员操作系统入门 P5:  操作系统与资源调度P6:  资源调度与资源争抢P7:  中断和实时操作系统 P8: 操作系统概念总......
  • 复习笔记|第九、十章 Linux文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.Ext2文件卷的布局?各部分的作用是什么?Ext2文件卷的布局◼Ext2把磁盘块分为组,每组包含存放在相邻磁道的数据块和索引节点。块组的大小相等并顺序安排。◼Ext2用“块组描述符”来描述这些块组本身的结......
  • 复习笔记|第十四章 Windows操作系统模型《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.Windows采用什么样的体系结构?从图中看出,系统划分为两种状态,核心态和用户态。粗线上方代表用户态进程,下方是核心态的操作系统服务。用户态的进程只能运行在受保护的地址空间。因此,四种类型的用户态进......
  • 复习笔记|第十五章 Windows进程和线程管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.管理进程和线程的数据结构:执行体进程块EPROCESS、执行体线程块ETHREAD、内核进程块KPROCESS、内核线程块KTHREAD。structEPROCESS{P285KPROCESSPCB;内核进程块ObjectTable;进程的句......
  • 复习笔记|第十六章 Windows存储器管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.两种数据结构:虚拟地址描述符VAD、区域对象,这两种结构各有什么作用?◆P304◼Windows系统采用一棵由虚拟地址描述符(VAD)构成的平衡二叉树来管理进程私有地址空间。一个进程的一组VAD结构构成一棵自平衡二......
  • 复习笔记|第十七章 Windows文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.Windows所支持的文件系统类型有哪些?❖支持FAT12、FAT16和FAT32文件系统。12、16和32分别为描述磁盘块簇地址使用的位数。NTFS.sys,使用64位的簇编号。❖现在主要使用NTFS(支持最大文件256TB)和FAT64(最大......
  • 复习笔记|第四章 存储器管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.存储器管理的功能。名字空间、地址空间、存储空间、逻辑地址、物理地址。(1)存储器分配:解决多进程共享主存的问题(2)地址转换或重定位:研究各种地址变换方法及相应的地址变换机构。(3)存储器保护:防止故障程序......