操作系统(5.2)--请求分页储存管理模式

news2024/11/26 4:49:55

目录

 请求分页的硬件支持

1.页表机制

2.缺页中断机构

3.地址变换机构

 请求分页中的内存分配

1.最小物理块数的确定

2.内存分配策略

3.物理块分配算法(采用固定分配策略时)

页面调度策略 

1.何时调入页面

2.从何处调入页面

3.页面调入过程


 

 请求分页的硬件支持

内存、外存、页表机制、缺页中断机构、地址变换机构

1.页表机制

在请求分页系统中所需要的主要数据结构是页表。为支持请求分页,须在页表中再增加若干项,供程序(数据)在换进、换出时参考。在请求分页系统中的每个页表项如下所示:

现对其中各字段说明如下:

(1) 状态位P:用于指示该页是否已调入内存,供程序访问时参考。

(2)访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供选择换出页面时参考。

(3)修改位M:表示该页在调入内存后是否被修改过,供置换页面时参考。

(4)外存地址:用于指出该页在外存上的地址,通常是​物理块号,供调入该页时参考。

2.缺页中断机构

在请求分页系统中的缺页中断与一般中断区别,主要表现在下面两个方面:

(1) 在指令执行期间产生和处理中断信号。

(2)一条指令在执行期间,可能产生多次缺页中断。

在图中示出的例子,可能要产生6次缺页中断。

3.地址变换机构

请求分页中的地址变换过程

 请求分页中的内存分配

1.最小物理块数的确定

这里所说的最小物理块数,是指能保证进程正常运行所需的最小物理块数。当系统为进程分配的物理块数少于此值时,进程将无法运行。

2.内存分配策略

1)内存分配策略

  • 固定分配是指为每个进程分配一固定页数的内存空间,在整个运行期间都不再改变。
  • 可变分配:是指一个进程所拥有的物理块数是不定的,这种分配方式称之为可变分配。

2)页面置换方式

  • 全局置换:页面淘汰可以在整个内存空间范围内进行。
  • 局部置换:只在一个进程空间范围内考虑。

由内存分配策略和页面置换方式的不同,可以组合出以下四种策略:

  • 固定分配局部置换
  • 固定分配全局置换  不可能
  • 可变分配局部置换
  • 可变分配全局置换

3.物理块分配算法(采用固定分配策略时)

1)平均分配算法

这是将系统中所有可供分配的物理块平均分配给各个进程。

2)按比例分配算法

这是根据进程的大小按比例分配物理块的算法。如果系统中共有n个进程,每个进程的页面数为Si,则系统中各进程页面数的总和为:

又假定系统中可用的物理块总数为m,则每个进程所能分到的物理块数为bi,将有:应该取整,它必须大于最小物理块数。

3)考虑优先权的分配算法

通常采取的方法是把内存中可供分配的所有物理块分成两部分:①一部分按比例地分配给各进程;②另一部分则根据各进程的优先权,适当地增加其相应份额后,分配给各进程。在有的系统中,如重要的实时控制系统,则可能是完全按优先权来为各进程分配其物理块的。

页面调度策略 

1.何时调入页面

1)预调页策略可采用一种以预测为基础的预调页策略,将那些预计在不久之后便会被访问的页面预先调入内存。如果预测较准确,那么,这种策略显然是很有吸引力的。

2)请求调页策略当进程在运行中需要访问某部分程序和数据时,若发现其所在的页面不在内存,便立即提出请求,由OS将其所需页面调入内存。

2.从何处调入页面

在请求分页系统中的外存分为两部分:①用于存放文件的文件区和②用于存放对换页面的对换区。通常,由于对换区是采用连续分配方式,而文件区是采用离散分配方式,故对换区的磁盘I/0速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内存,可分成如下三种情况:

(1)从交换区调入

系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。为此,在进程运行前,便须将与该进程有关的文件从文件区拷贝到对换区

(2)从交换区及文件区调入

系统缺少足够的对换区空间,这时凡是不会被修改的文件都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出,以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时,再从对换区调入。

(3)UNIX方式

由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入。

3.页面调入过程

4.缺页率

假设一个进程的逻辑空间为n页,系统为其分配的内存物理块数为m(m≤n)。如果在进程的运行过程中,访问页面成功(即所访问页面在内存中)的次数为S,访问页面失败(即所访问页面不在内存中,需要从外存调入)的次数为F,则该进程总的页面访问次数为A=S+F,那么该进程在其运行过程中的缺页率即为:

影响缺页率的因素:

  • 页面大小
  • 进程所分配物理块的数目
  • 页面置换算法
  • 程序固有特性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础知识学习---牛客网C++面试宝典(四)C/C++基础之STL

1、本栏用来记录社招找工作过程中的内容,包括基础知识学习以及面试问题的记录等,以便于后续个人回顾学习; 暂时只有2023年3月份,第一次社招找工作的过程; 2、个人经历: 研究生期间课题是SLAM在无人机上的应…

TCP协议流程详解,抓包分析

目录 TCP概念TCP工作层TCP协议头部解析TCP抓包解析TCP三次握手,数据收发,四次挥手抓包TCP状态迁移 TCP概念 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议&…

MyBatis操作数据库(查询功能)

目录 一、MyBatis的概念 二、配置MyBits环境 三、 MyBatis连接数据库查询操作(示例) 创建MySQL数据库表 配置MyBatis 配置连接数据库和MyBatis xml文件 ​编辑 四、添加业务代码 实体类entity 数据持久层mapper 创建接口类 创建xml文件 服务层…

偏向锁、轻量级锁、重量级锁、自旋锁、自适应自旋锁

1. 偏向锁 偏向锁就是在运行过程中,对象的锁偏向某个线程。即在开启偏向锁机制的情况下,某个线程获得锁,当该线程下次再想要获得锁时,不需要重新申请获得锁(即忽略synchronized关键词),直接就可…

python 房价数据可视化以数据缺失处理、及回归算法

基本信息概述 房价数据为他国地区使用工具为JupyterLab、python3用到的包 绘图包:seaborn、matplotlib数据处理包:numpy、pandas统计计算包:math、scipy回归模型包:make_pipeline、 RobustScaler、ElasticNet,Lasso、KernelRidge…

设计模式(十四):行为型之策略模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

1、pyinstaller的说明: pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支…

进程管道:父进程和子进程

在接下来的对pipe调用的研究中,我们将学习如何在子进程中运行一个与其父进程完全不同的另外一个程序,而不是仅仅运行一个相同程序。我们用exec调用来完成这一工作。这里的一个难点是,通过exec调用的进程需要知道应该访问哪个文件描述符。在前…

设计模式(十三):行为型之模板方法模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

S200, S1700, S5700交换机忘记密码怎么办(huawei)

目录 交换机忘记密码怎么办?如何修改或清除密码? 简介 一:修改了所有默认密码,还忘记了所有密码 二:忘记了Console口登录密码 方法一:通过STelnet/Telnet登录设备修改Console口密码 方法二&#xff1…

RV1126笔记三十六:PaddleOCR环境搭建一

若该文为原创文章,转载请注明原文出处。 在前面测试过PaddleOCR的文字识别功能,现在自己搭建训练模型并测试。 这篇主要是环境搭建,环境为win10无GPU. 1、创建环境 # 创建paddle环境 conda create -n paddle python=3.8 # 查看环境 conda env list # 切换环境 conda acti…

第三章 模型篇:模型与模型的搭建

写在前面的话 这部分只解释代码,不对线性层(全连接层),卷积层等layer的原理进行解释。 尽量写的比较全了,但是自身水平有限,不太确定是否有遗漏重要的部分。 教程参考: https://pytorch.org/tutorials/ https://githu…

RK3588平台开发系列讲解(以太网篇)SGMII和RGMII接口特性

文章目录 一、MAC 与 PHY的连接二、MAC 与 PHY 在OSI 中位置2.1、网络层2.2、数据链路层2.3、物理层三、RGMII四、SGMII沉淀、分享、成长,让自己和他人都能有所收获!😄 一、MAC 与 PHY的连接 从硬件的角度看,以太网接口电路主要由MAC控制器和物理层PHY芯片两部分组成。 以…

Redis 五大数据类型/结构

Redis 五大数据类型/结构 操作文档 官方文档: https://redis.io/commands 中文文档: http://redisdoc.com/ Redis 数据存储格式 一句话: redis 自身是一个Map,其中所有的数据都是采用key : value 的形式存储 key 是字符串,value 是数据,数…

流媒体接入服务的一般模型

0x00 背景说明 媒体接入服务用来实现媒体资源(resource)的接收和发送,在有限范围内实现不同接入协议的转换。 0x01 一般模型 媒体传输通道的建立步骤通常分为两个阶段: 握手/协商媒体传输 其中,握手/协商操作通常包含: 媒体…

【GD32F303CCT6BlueBill开箱点灯教程】

【GD32F303CCT6BlueBill开箱点灯教程】 1. 搭建环境1.1 官方资料1.2 安装Keil 51.3 安装芯片选型插件pack包 2. 编译2.1 Keil4转换为Keil5工程2.2 选择芯片型号2.3 存储器类型2.4 选择下载器2.5 内存下载设置 3. 烧录3.1 Keil内烧录3.1.1 J-Link烧录3.1.2 ST-Link烧录3.1.3 CMS…

读书笔记:《远见:如何规划职业生涯3大阶段》

《远见:如何规划职业生涯3大阶段》,作者布赖恩. 费瑟斯通豪,豆瓣链接:https://book.douban.com/subject/27609489/ 主旨:描述职业生涯中3个截然不同但相互关联的阶段,教会我们如何不断储备职场燃…

【linux指南--命令大全】

系统的学习linux常用的命令,命令很全所以篇幅很长,可以作为你查阅命令的手册。也欢迎大佬们评论区补充。 文章目录 常见目录介绍配置文件系统操作帮助命令man 帮助help 帮助info 帮助 显示当前的目录名称文件查看建立目录删除空目录复制文件移动文件删除…

Qt下面窗口嵌套,嵌套窗口中包含:QGraphicsView、QGraphicsScene、QGraphicsIte

Qt系列文章目录 文章目录 Qt系列文章目录前言一、嵌套窗口二、注意事项 前言 我们有一个主窗口mainwindow,需要向其中放入新的界面,你可以自己定义里面内容。 Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,…

vmware设置centos客户机和windows宿主机共享文件夹

一、安装内核 kernel-devel 包 yum install gcc yum install kernel-devel-$(uname -r) 注意,如果自己修改过内核版本,需要确保 uname -r 显示的版本和实际使用的内核版本一致。 二、安装 vmware-tools 在vmware上点击菜单:虚拟机->安…