【操作系统】第三章内存管理之——非连续分配管理方式(分页管理、分段管理)

【操作系统】第三章内存管理之——⾮连续分配管理⽅式(分页管理、分段管
理)
⾮连续分配管理⽅式
前⾔:
连续分配⽅式会形成许多“碎⽚”,虽然可通过“紧凑”⽅法将许多碎⽚拼接成可⽤的⼤块空间,但须为之付出很⼤开销。
如果允许将⼀个进程直接分散地装⼊到许多不相邻接 的分区中,则⽆须再进⾏“紧凑”。基于这⼀思想⽽产⽣了离散分配⽅式。如果离散分配的 基本单位是页,则称为分页存储管理⽅式;如果离散分配的基本单位是段,则称为分段存 储管理⽅式。 在分页存储管理⽅式中,如果不具备页⾯对换功能,则称为基本的分页存储管理⽅式,或称为纯分页存储管理⽅式,它不具有⽀持实现虚拟存储器的功能,它要求把每个作业全 部装⼊内存后⽅能运⾏
1. 分页管理
1.1 页⾯
1. 页⾯和物理
分页存储管理是将⼀个进程的逻辑地址空间分成若⼲个⼤⼩相等的⽚,称为页⾯或页, 并为各页加以编号,从 0 开始,如第 0 页、第 1 页等。相应地,也把内存空间分成与页⾯ 相同⼤⼩的若⼲个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、 1#块等等。在为进程分配内存时,以块为单位将进程中的若⼲个页分别装⼊到多个可以不相
邻接的物理块中。由于进程的最后⼀页经常装不满⼀块⽽形成了不可利⽤的碎⽚,称之为 “页内碎⽚”。
2. 页⾯⼤⼩
在分页系统中的页⾯其⼤⼩应适中。页⾯若太⼩,⼀⽅⾯虽然可使内存碎⽚减⼩,从 ⽽减少了内存碎⽚的总空间,有利于提⾼内存利⽤率,但另⼀⽅⾯也会使每个进程占⽤较
多的页⾯,从⽽导致进程的页表过长,占⽤⼤量内存;此外,还会降低页⾯换进换出的效 率。然⽽,如果选择的页⾯较⼤,虽然可以减少页表的长度,提⾼页⾯换进换出的速度,
但却⼜会使页内碎⽚增⼤。因此,页⾯的⼤⼩应选择适中,且页⾯⼤⼩应是 2 的幂,通常
为 512 B~8 KB。
1.2 地址结构
分页地址中的地址结构如下:
1.3 页表
在分页系统中,允许将进程的各个页离散地存储在内存不同的物理块中,但系统应能保证进程的正确运⾏,即能在内存中到每个页⾯所对应的物理块。
为此,系统⼜为每个进程建⽴了⼀张页⾯映像表,简称页表。
在进程地址空间内的所有页(0~n),依次在页表中 有⼀页表项,其中记录了相应页在内存中对应的物理块号,见图 4-12 的中间部分。在配置 了页表后,进程执⾏时,通过查该表,即可到每页在内存中的物理块号。可见,页表 的作⽤是实现从页号到物理块号的地址映射。
2、地址变换机构
ocd为了能将⽤户地址空间中的逻辑地址变换为内存空间中的物理地址,在系统中必须设 置地址变换机构。
该机构的基本任务是实现从逻辑地址到物理地址的转换。由于页内地址
陈宜国和物理地址是⼀⼀对应的(例如,对于页⾯⼤⼩是 1 KB 的页内地址是 0~1023,其相应的物理块内的地址也是 0~1023,⽆须再进⾏转换),因此,地址变换机构的任务实际上只是 将逻辑地址中的页号,转换为内存中的物理块号。
2.1 分页管理——基本的地址变换机构
页表的功能可以由⼀组专门的寄存器来实现。⼀个页表项⽤⼀个寄存器。由于寄存器具有较⾼的访问速度,因⽽有利于提⾼地址变换的速度;但由于寄存器成本较⾼,且⼤多 数现代计算机的页表⼜可能很⼤,使页表项的总数可达⼏千甚⾄⼏⼗万个,显然这些页表 项不可能都⽤寄存器来实现,因此,页表⼤多驻留在内存中。
在系统中只设置⼀个 页表寄存器 PTR(Page-Table Register),在其中存放页表在内存的始址和页表的长度。
例题
2.2 具有快表的地址变换机构
由于页表是存放在内存中的,这使 CPU 在每存取⼀个数据时,都要两次访问内存。第 ⼀次是访问内存中的页表,从中到指定页的物理块号,再将块号与页内偏移量 W 拼接, 以形成物理地址。第⼆次访问内存时,才是从第⼀次所得地址中获得所需数据(或向此地址中写⼊数据)。因此,采⽤这种⽅式将使计算机的处理速度降低近 1/2。可见,以此⾼昂代价
工作要求来换取存储器空间利⽤率的提⾼,是得不偿失的。
数据库界面
为了提⾼地址变换速度,可在地址变换机构中增设⼀个具有并⾏查寻能⼒的特殊⾼速缓冲寄存器,⼜称为“联想寄存器”(Associative Memory),或称为“快表”,在 IBM 系统中⼜取名为 TLB(Translation Lookaside Buffer),⽤以存放当前访问的那些页表项。
变换过程是:
在 CPU 给出有效地址后,由地址变换机构⾃动地将页号 P 送⼊⾼速缓冲寄存器,并将此页号与⾼速缓存中的所有页号进⾏⽐较,若其中有与此相匹配的页号,便表⽰
热顶结晶器
所要访问的页表项在快表中。于是,可直接从快表中读出该页所对应的物理块号,并送到 物理地址寄存器中。如在块表中未到对应的页表项,则还须再访问内存中的页表,到 后,把从页表项中读出的物理块号送地址寄存器;同时,再将此页表项存⼊快表的⼀个寄
存器单元中,亦即,重新修改快表。但如果联想寄存器已满,则 OS 必须到⼀个⽼的且已 被认为不再需要的页表项,将它换出。
2.3 两级和多级页表
3. 分段系统的基本原理
3.1 分段
在分段存储管理⽅式中,作业的地址空间被划分为若⼲个段,每个段定义了⼀组逻辑信息。
例如,有主程序段 MAIN、⼦程序段 X、数据段 D 及栈段 S 等,如图 4-17 所⽰。每 个段都有⾃⼰的名字。为了实现简单起见,通常可⽤⼀个段号来代替段名,每个段都从 0开始编址,并采⽤⼀段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因⽽ 各段长度不等。整个作业的地址空间由于是分成多个段,因⽽是⼆维的,亦即,其逻辑地 址由段号(段名)和段内地址所组成。 分段地址中的地址具有如下结构:
在该地址结构中,允许⼀个作业最长有 64 K 个段,每个段的最⼤长度为 64 KB。 分段⽅式已得到许多编译程序的⽀持,编译程序能⾃动地根据源程序的情况⽽产⽣若⼲个段。
例如,Pascal 编译程序可以为全局变量、⽤于存储相应参数及返回地址的过程调⽤ 栈、每个过程或函数的代码部分、每个过程或函数的局部变量等等,分别建⽴各⾃的段。
类似地,Fortran 编译程序可以为公共块(Common block)建⽴单独的段,也可以为数组分配 ⼀个单独的段。装⼊程序将装⼊所有这些段,并为每个段赋予⼀个段号.
连云港 核废料
3.2 段表

本文发布于:2024-09-22 06:50:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/231511.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:页表   地址   内存   物理   进程
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议