第五章 虚拟存储器【操作系统】3

简介: 第五章 虚拟存储器【操作系统】3

5.4.3 “抖动”的预防方法

这些方法几乎都是采用调节多道程序度来控制“抖动”发生的。

1.采取局部置换策略。
即使该进程发生了“抖动”,也不会对其它进程产生影响,于是可把该进程“抖动”所造成的影响限制在较小的范围内。但在某进程发生“抖动”后,它还会长期处在磁盘 I/O 的等待队列中,使队列的长度增加,这会延长其它进程缺页中断的处理时间。
2.把工作集算法融入到处理机调度中
当调度程序发现处理机利用率低下时,它将试图从外存调入一个新作业进入内存,在从外存调入作业之前,必须检查每个进程在内存的驻留页面是否足够多。如果都足够多,此时便可以从外存调入新的作业,不会因新作业的调入而导致缺页率的增加;反之,如果有些进程的内存页面不足,则应首先为那些缺页率居高的作业增加新的物理块,此时将不再调入新的作业。

3.利用“L=S”准则调节缺页率
其中L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。如果是L远比S大,说明很少发生缺页,磁盘的能力尚未得到充分的利用;反之,如果是L比S小,则说明频繁发生缺页,缺页的速度已超过磁盘的处理能力。只有当L与S接近时,磁盘和处理机都可达到它们的最大利用率。理论和实践都已证明,利用“L=S”准则,对于调节缺页率是十分有效的。

4.选择暂停进程

基于某种原则选择暂停某些进程。将它们调出到磁盘上,以便腾出内存空间分配给缺页率发生偏高的进程。

5.5 请求分段存储管理方式

5.5.1 请求分段中的硬件支持

1.请求段表机制
除了段名(号)、段长、段在内存中的起始地址外,还增加了以下诸项:

1)存取方式:根据信息的属性对分段实施保护。如果该字段为两位,则存取属性是只执行、只读和允许读/写。

2)访问字段 A:记录该段被访问的频繁程度。

3)修改位 M:表示该段在进入内存后是否已被修改过。

4)存在位 P:指示本段是否已调入内存。

5)增补位:表示本段在运行过程中是否做过动态增长。

6)外存始址:指示本段在外存中的起始地址,即起始盘块号。

2.缺段中断机构
每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入 OS 后由缺段中断处理程序将所需的段调入内存。缺段中断机构与缺页中断机构类似,它同样需要在一条指令的执行期间,产生和处理中断,以及在一条指令执行期间,可能产生多次缺段中断。但由于分段是信息的逻辑单位,因而不可能出现一条指令被分割在两个分段中和一组信息被分割在两个分段中的情况。由于段不是定长的,这使对缺段中断的处理要比对缺页中断的处理复杂。


3.地址变换机构


上图中的段表的的起始编号是从 1 开始的。

5.5.2 分段的共享与保护

1.共享段表

为了实现分段共享,可在系统中配置一张共享段表,所有各共享段都在共享段表中占有一表项。记录了共享段的信息和共享

此分段的某个进程的情况。

1)共享进程计数 count。非共享段仅为一个进程所需要。而共享段是为多个进程所需要的,当某进程不再需要而释放它时,系统并不立即回收该段所占内存区,而是检查 count 是否为 0,若不是 0,则表示还有进程需要它,仅当所有共享该段的进程全不再需要它使,此时 count 为 0,才由系统回收该段所占的内存区。

2)存取控制字段。对于一个共享段,应给不同的进程以不同的存取权限。

3) 段号。对于一个共享段,在不同的进程中可以具有不同的短号,每个进程可用自己进程的段号去访问该共享段。

2.共享段的分配与回收
1)共享段的分配。

在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把 count 置为 1。之后,当

又有其它进程需要调用该共享段时,由于该共享段已被调入内存,故此时无须再为该段分配内存,而只需在调用进程的段表中增加一表项,填写该共享段的物理地址;以及在共享段的段表中,填上调用进程的进程名、存取控制等,再执行 count = count+1 操作。

2)共享段的回收。

当共享此段的某进程不再需要该段时,应将该段释放,包括撤消在该进程段表中共享

段所对应的表项,以及执行 count = count-1 操作。若结果为 0,表明此时已没有进程在使用该段,则须由系统回收该共享段的物理内存,以及取消在共享段表中当前调用进程所对应的表项。否则(减 1 结果不为 0),只是取消调用者进程在共享段表中的有关记录。

3.分段保护
1)越界检查。

越界检查时利用地址变换机构来完成的。①短号和段表长度的比较。②段内地址和段长的比较。

2)存取控制检查。

存取控制检查是以段为基本单位进行的。在段表的每个表项中都设置了一个“存取控制”字段,用于规定对该段的访问方式。对于共享段而言,存取控制就显得尤为重要。

3)环保护机构。

这是一种功能较完善的保护机制。在该机制中规定:低编号的环具有高优先权。OS 核心处于 0 环内;某些重要的实用程序和操作系统服务占居中间环;而一般的应用程序则被安排在外环上。在环系统中,程序的访问和调用应遵循以下规则:

1)一个程序可以访问驻留在相同环或较低特权环中(较之编号高的环)的数据。类似于读。

2)一个程序可以调用驻留在相同环或较高特权环中(较之编号低的环)的服务。类似于执行。




相关文章
|
4月前
|
机器人 数据安全/隐私保护 开发者
【简单详细教程】OpenClaw 钉钉机器人配置与使用实操指南(技术分享)
本文详解OpenClaw v2.6.4对接钉钉企业内部机器人的完整流程:创建应用→添加机器人能力→配置信息(推荐Stream模式)→发布版本→获取Client ID/Secret并配置网关。步骤清晰、零公网依赖,适合内网部署,助你快速实现钉钉内高效任务处理与信息交互。
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
JSON API 开发者
解密小红书详情API接口:获取与运用
小红书作为热门社交媒体平台,吸引了大量用户和创作者。企业或开发者可以通过调用小红书API接口,高效、合法地获取内容数据,提升业务效率。本文详细介绍如何获取和使用小红书笔记详情API接口,涵盖注册账号、创建应用、获取API密钥、查阅文档、构建请求、解析响应等步骤,以及应用场景和注意事项。
4892 2
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
632 1
|
数据库
树的分类有哪些?
本文介绍了树的多种类型,包括二叉树、二叉搜索树、完全二叉树、AVL树、红黑树、B树和B+树,并解释了每种树的特点和用途。
866 0
树的分类有哪些?
|
监控 负载均衡 算法
JVM工作原理与实战(三十二):GC调优
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了GC调优、GC调优的核心指标等内容。
483 0
|
安全 Ubuntu 网络协议
在Linux中,如何配置DHCP服务器?
在Linux中,如何配置DHCP服务器?
|
机器学习/深度学习 自然语言处理 Ubuntu
FunAudioLLM 技术评测报告
【7月更文第31天】随着人工智能技术的迅速发展,语音识别和语音合成技术已经成为日常生活中不可或缺的一部分。FunAudioLLM 作为一款开源的语音大模型,致力于提供高质量的语音服务,支持多种应用场景。本次评测将重点评估 FunAudioLLM 在性能、功能及技术先进性方面的能力,并将其与国际知名的大规模语音模型进行比较。
717 2
|
存储 关系型数据库 MySQL

热门文章

最新文章