本荣数码网,分享日用电子产品资讯,数码科技电脑类测评。
您现在的位置是:首页 > 产品评测

设置一页式存储,基本分页存储管理

vnshog9462 2024-05-10

一、基本分页存储管理

  阅读前请先阅读内存管理基础。从本文开始就介绍不连续分配的几种方式,本文主要介绍基本分页存储管理。

  假设进程A的大小为23MB,但是每个分区的大小只有10MB,如果进程只能占用一个分区,显然是放不下的。

  解决思路:如果允许进程占用多个分区,那么可以把进程拆分成 10MB+ 10MB+ 3MB三个部分,再把这三个部分别放在三个分区中(这些分区不要求连续).....

  将内存空间分为一个个大小相等的分区(如每个分区4KB,每个分区就是一个“页框”,或称“内存块”、“物理块”。每个页框有一个编号,即“页框号”,或“内存块号”、“物理块号”,页框号从0开始)。将用户进程的地址空间也分为与页框大小相等的一个个区域,称为页面或页。页框的大小不能太大,否则可能会产生过大的内存碎片。

  操作系统以页框为单位为各个进程分配内存空间。进程的每个页面分别放入一个页框中,即进程的页面和内存的页框有一一对应的关系。

  进程分页后,进程的各个页面可以放在不连续的页框中,所以如何实现逻辑地址到物理的地址的转换?

  如下图,将下面的进程分页,假设每页大小为50B,那么就分为4个页面。

  手动计算方法:

  页号=逻辑地址/页面长度(取整数部分)。

  页内偏移量=逻辑地址%页面长度

  页面在内存中的起始位置:操作系统需要用某种数据结构记录进程各个页面的起始位置。

  对于计算机,通常将页面的大小划分为2的整数次幂。假设用32个二进制位表示逻辑地址,页面大小为取2 12 B= 4096B= 4KB。

  如逻辑地址2,用二进制表示00000000 00000000 0000 0000 00000010,前24位二进制对应的十进制值就是逻辑地址2对应的页号,即0号页,而后12二进制位对应的十进制值就是偏移量。如果0号页在内存中的起始地址为X,那么逻辑地址2对应的物理地址就是 X+ 2.

  同理,逻辑地址4097,用二进制表示00000000 00000000 0001 0000 00000001,前24位二进制对应的十进制值就是逻辑地址4097对应的页号,即1号页,而后12二进制位对应的十进制值就是偏移量。如果0号页在内存中的起始地址为Y,那么逻辑地址4097对应的物理地址就是 Y+ 1.

  结论:如果每个页面的大小为2 k B,用二进制表示逻辑地址,则末尾的K位表示页内偏移量,其余部分就是页号。

  因此,如果让每个页面的大小为2的整数次幂,计算机就可以很方便的得出一个逻辑地址对应的页号和页内偏移量。

  如果一个页面的大小为2KB,那分页存储管理的逻辑地址结构为:

  地址结构包括两个部分:前一个部分表示页号,后一个部分表示页内偏移量W。

  在知道如何计算页号和偏移量后,要计算实际的物理地址,还需要知道页号在内存中的起始地址,如何知道每个页面在内存中存放的位置——操作系统要为每个进程建立一张页表。

  按照之前的方法计算出逻辑地址所对应的页号N,然后根据页表区查询实际的内存块号M,由于每个内存块号的大小都是相等的,所以实际地址= M*内存块大小+偏移量。

  在实际上,页表中是没有页号的,那怎么找到实际对应的内存块号呢?

  假设某系统物理内存大小为4GB,页面大小为4KB,则每个页表项至少应该占用多少字节?

  各页表项会按顺序连续地存放在内存中,如果该页表在内存中存放的地址为X,则M号页对应的页表项存放的地址为:X+ M* 3B

  因此,页表的页号可以是隐含的。只需要知道页表存放的起始地址和页表项长度,即可找到各个页号对应的页表项存放的位置,找到位置后就可以读取该位置的值,即实际内存块号。

  举个例子,如果按照逻辑地址计算出了偏移量为20,页号为1,页表中的页号是隐藏的,那么根据页表在内存中的起始地址20(假设的值),以及页表项长度3B,那么页号为1所对应的实际内存块号的值所在的地址就是:20+ 3* 1= 23的位置,然后在该位置的值,该值就是实际内存块号,如果是4的话,那么实际地址就是: 4*页面大小(4096B)+ 20= 16404。

  基本地址变换结构可以借助进程的页表将逻辑地址转换为物理地址。

  通常在系统中设置一个页表寄存器(PTR Page-Table Register),存放页表在内存中起始地址F和页表长度M。

  进程在未执行时,页表的起址和页表长度放在进程控制块(PCB)中,当进程被调度时,操作系统内核会把它们放在页表寄存器中。

  逻辑地址到物理地址变换的过程:

  比较页表长度,页表项长度和页面大小三个概念:

  在分页存储管理(页式管理)系统中,只要确定了每个页面的大小,逻辑地址结构就确定了。因此,页式管理中地址是一维的。即只要给出一个逻辑地址,系统就可以自动算出页号、页内偏移量两个部分,并不需要显示告系统这个逻辑地址中,页内偏移量占多少位。

  基本地址变换结构需要访问两次内存:第一次访问内存查找页表;第二次访问物理内存对应的内存单元。

  对于上图,会很频繁地访问10号块中的指令、23号块。

  时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行:如果某个数据被访问过,不久之后该数据很有可能再次被访问。(因此程序中存在大量循环)。

  空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放的。如上面的数组,每次循环一次都会访问邻近的下一个元素地址)。

  在基本地址变换机构中,每次访问一个逻辑地址,都需要查询内幕才能中的页表。由于局部性原理,可能连续很多次查找到的都是一个页表项。既然如此,就可以利用这个特性减少访问页表的次数——快表。

  快表,又称联想寄存器(TLB),是一种访问速度比内存快很多的高速缓冲存储器,用来存储当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表常称为慢表。

  快表的地址包换过程:

  (1) CPU给出逻辑地址,由某个硬件算得页号、页内偏移量,将页号与快表中的所有页号进行比较。

  (2)如果找到匹配的页号,说明要访问的页表项在快表中有副本,则直接从中取出该页对应的内存块号,再根据内存块号中与页内偏移量算地物理地址。最后访问该物理地址对应的内存单元。因此如果快表命中,则访问某个逻辑地址只需一次访问内存即可。

  (3)如果没有找到匹配的页号,则就需要访问页表,需要两次访问内存,在第一次访问内存查询得到页号后,需要将页号添加到快表中,以便后面再次被访问。如果快表已满,则必须按照一定的算法对旧的页表项进行替换。

  由于查询快表比查询页表的速度快很多,因此只要快表命中,就可以节省很多时间。因为局部性原理,一般来说快表的命中率可以达到90%以上。

二、电脑怎么设置储存路径

问题一:怎样设置电脑的默认保存途径为D盘把所有的盘符都改成D

问题二:如何更改电脑储存位置安装软件可以选择啊~按错了可以卸载重新安装、360有个C盘搬家、可以把C盘的东西搬到其他的地方、

问题三:电脑怎么修改储存路径呢???下载工具内设置项里有文件下载路径选择,即时下载时也有选择!可在下载目录框旁边选择“浏览”后,选择文件将要去的地盘!

问题四:如何更改电脑默认存储地址?这些都是要修改注册表的。

你可以参阅windows注册表管理手册。

摘选:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

显示所有启动组的重要文件夹位置,某些键值含有%USERPROFILE%变量,这个文件为系统指向C:\Documents and Settings\bootuser(启动用户)文件夹(不含引号),修改之,对所有用户有效。

一些文件夹的作用:AppData一些应用软件存放配置的目录,在其下可以看到熟悉QQ、360safe、Adobe等文件夹。

Cache浏览器临时目录,存放浏览internet过程中网页图片、脚本、音乐等相关文件。

Cookies存放一些小文件,这些小文件记录上网是用户的ID、密码、浏览过的网页、停留的时间等信息,此文件为加密存储,普通用户无法读取。某些网站如读不到用户的Cookie信息将禁止访问,所以此文件夹要注意备份。

Desktop桌面,没什么多说的,存放桌面文件,一些快捷方式等。一些人习惯在桌面存放一些重要文件,尤其一些MM,所以此文件夹需要重点备份。

Favorites收藏夹,存放用户收藏的网站快捷方式,注意备份。

History记录一些对本机的操作过程,还有一些应用软件的操作记录。

Local AppData存储的是某些软件的MSI安装文件,一般不需要删除它们,因为有些软件运行时会对此有需要。

Local Settings文件夹是NT系统中用来存放用户配置信息的文件夹。存放了有关用户当前桌面环境、应用程序设置和个人数据的一些信息。

My Pictures不用多说,我的图片,个人认为转移到“D盘\我的文档”比较好。

NetHood缓存网上邻居信息,包括网上的一些开共享的计算机和共享文件夹。

Personal个人文件夹,桌面显示为“我的文档”,应重点备份之。

PrintHood打印缓阀,无特殊意义。

Programs指向“[开始]菜单\程序”文件夹。

SendTo右键“发送到”菜单,可添加应用程序和文件夹快捷方式。发送到应用程序,将用该软件打开目标文件。发送到文件夹,同盘符将目标文件移动制定文件夹,异盘符复制目标文件到文件夹。

Start Menu指向“「开始」菜单”文件夹。

Startup指向“「开始」菜单\程序\启动”文件夹,添加应用程序或应用程序快捷方式,可实现开机自启动。如将“宽带连接”快捷方式复制到该文件夹下,开机够将自动弹出“宽带连接”窗口。

Templates存储着常用程序的模板文件,如winword.doc、powerpnt.ppt、excel.xls等,模板就是包含有段落结构、字体样式和页面布局等元素的样式。它决定了文档的基本结构和设置的样式。...>>

问题五:电脑怎么设置默认存储位置用讯雷下呀,把图片往讯雷的悬浮窗上一拖就行了,在讯雷上知道怎么设默认吧!

问题六:如何设置电脑下载文件时默认储存路径?是PC就用迅雷(简单直观)。是平板提供型号,是手机去浏览器里面设置。

问题七:怎样设置电脑下载器的储存位置?可以在下载工具的设置选项卡里选择默认下载路径。

问题八:怎样修改电脑的默认的储存路径更改电脑默认保存路径的方法如下:

1、点击“另存为”出现窗口,下拉三角符号找到想保存的位置,然后在右上角的工具下拉菜单中选择“将当前文件夹添加到“位置”列表中”选项即可。这样每次单击一下位置列表的图标就直接转到想保存的位置了。

2、右击屏幕下方的DYN(动态输入)--设置--选项--打开和保存--修改另存为路径--选择需要保存的路径,最后确定即可。

问题九:计算机如何设置下载默认保存目录?把你的下载工具打开,找到设置管理页面,然后看到下载文件目录,更改目录,设置到你想设置场盘里面就OK了!

问题十:怎么将电脑桌面的储存路径改为D盘或者其他盘?第一步:首先进入计算机,如下图所示:

第二步:进入计算机后,再进入系统【C盘】,然后依次进入【用户】、【系统账号文件夹】,然后在里面找到【桌面】文件夹。并右键点击,然后选择属性,如下图所示:

第三步:进入桌面属性后,再切换到【位置】选项卡,然后再点击底部的【移动】,如下图所示:

第四步:之后会弹出需要移动到其他的桌面文件夹位置,比如我们可以移动到E盘(当然也可以使D盘或者其他非系统盘均可)。

选择确定将桌面文件夹放置在E盘的桌面文件夹后,再点击底部的“确定”即可。

第五步:上面点击确定会,会再次弹出一个移动文件夹提示对话框,主要确认是否要将所有文件从原位置移动到新位置,这里点击底部的“是”即可,如下图所示:

三、vivo手机怎么设置存储位置

vivo手机设置存储位置操作方法:

1、按“HOME”键也就是VIVO手机外屏中间的“房屋”图标按键回到手机桌面,再按左边的键点击【设置】,然后再点击“基本设置”下面的【更多设置】进入相关设置页面。

VIVO手机的设置也可以在自带软件里面找,直接点击软件进入就可以。

2、用下面的两个主要步骤来设置把SD卡优先作为下载和安装位置。

软件数据存储位置:优先在“更多设置”里面找到【存储】,这里面可以看到SD卡和手机系统内存都有多少空间,还可以进行格式化处理,先点击最下面的【数据存储位置】。

3、然后选择非系统软件的数据存储路径为【SD卡优先】,手指一点后面的圆点变成蓝色就可以了。

下面的温馨提示:选择SD卡优先后,请确保SD卡的正常使用;无SD卡时应用程序产生的数据会自动保存到手机上,当SD卡恢复后应用程序将无法访问此数据(可以在文件管理找到),可能会出现数据不连续或程序无法使用的问题。

4、首选安装位置:还是在“更多设置”里面,点击上面存储下面【应用程序】,再点击接下来的【首选安装位置】,然后选择【SD卡优先】。

手机说明:一些第三方应用软件由于有挂件或者应用本身需要,必须安装在系统空间中,如输入法、桌面等。也就是说,系统软件就是在系统空间优先存储,无法转移到SD卡上面。

5、可以查看系统外带软件有哪些,这些都是需要直接下载到手机系统内存里面的,我们根本无法转移到SD卡。

点击“更多设置”里面的【应用程序】,选择下面的【出厂应用程序管理】以后,我们就可以看到好多自带软件,直接点击一个就可以进入下载软件了。

在VIVO手机里面,QQ、新浪微博、百度地图、百度音乐、乐视等等软件都是属于系统的,下载安装之后数据直接保存到手机内存,不会到SD卡里面。

文章版权声明:除非注明,否则均为本荣数码网原创文章,转载或复制请以超链接形式并注明出处。