首页 > 其他分享 >操作系统(14)请求分页

操作系统(14)请求分页

时间:2024-12-17 23:29:02浏览次数:7  
标签:14 请求分页 置换 算法 内存 该页 缺页 操作系统 页面

前言

       操作系统中的请求分页,也称为页式虚拟存储管理,是建立在基本分页基础上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能的一种内存管理技术。

一、基本概念

  1. 分页:将进程的逻辑地址空间分成若干个大小相等的页,同时也将物理内存空间分成若干个大小相等的页框(或帧)。每个页和页框都有一个唯一的编号,称为页号和框号。
  2. 页表:页表是操作系统用于记录进程的逻辑页号与物理页框号之间映射关系的表。在请求分页系统中,页表项通常还包含其他信息,如状态位、访问字段、修改位和外存地址等。

二、工作原理

  1. 地址变换

    • 当进程访问某个逻辑地址时,系统首先将该逻辑地址分解为页号和页内偏移量。
    • 然后,根据页号查找页表,获得该页的描述信息。
    • 如果该页已经在内存中(即状态位为0),则直接利用页框号和页内偏移量计算出物理地址,并进行访问。
    • 如果该页不在内存中(即状态位为1),则产生缺页中断,请求操作系统将该页调入内存。
  2. 缺页中断处理

    • 当产生缺页中断时,操作系统会暂停当前进程的执行,并检查内存中是否有空闲页框。
    • 如果有空闲页框,则分配一个页框给该页,并将其从外存调入内存。
    • 如果没有空闲页框,则根据某种页面置换算法选择一个页面将其置换出内存,然后将所需页面调入内存。
    • 更新页表项中的相关信息,如页框号、状态位等。
    • 最后,恢复当前进程的执行,并继续访问该页。
  3. 页面置换算法

    • 页面置换算法用于在内存空间不足时选择哪个页面被置换出内存。常用的页面置换算法包括FIFO、LRU、CLOCK等。
    • FIFO算法按照页面进入内存的先后顺序进行置换。
    • LRU算法选择最近最少被使用的页面进行置换。
    • CLOCK算法则结合了FIFO和LRU的特点,通过环形链表和访问位来实现页面的置换。

三、优点与缺点

  1. 优点

    • 有效地解决了外部碎片问题,提高了内存的利用率。
    • 提供了虚拟存储器,使得进程可以访问比物理内存更大的地址空间。
    • 提高了多道程序的并发运行能力。
  2. 缺点

    • 增加了硬件成本,如需要额外的硬件支持地址转换机构、缺页中断机构和页面置换算法等。
    • 可能因逻辑地址空间过大或多道程序的个数过多而造成系统抖动现象。
    • 虽然消除了外部碎片,但进程的最后一页还存在内部碎片问题。

四、实现与应用

  1. 实现方式:请求分页系统通常通过硬件和软件的结合来实现。硬件方面需要提供页表基址寄存器、地址转换机构、缺页中断机构等;软件方面则需要实现页面置换算法、缺页中断处理程序等。
  2. 应用领域:请求分页系统广泛应用于各种操作系统中,如Windows、Linux等。它使得操作系统能够更好地管理内存资源,提高系统的性能和稳定性。同时,在数据库系统、云计算等领域也有广泛的应用。

总结 

       综上所述,请求分页是操作系统中一种重要的内存管理技术。它通过分页和请求调页的方式实现了虚拟存储器的功能,提高了内存的利用率和系统的并发运行能力。然而,它也存在一些缺点和限制,需要在实际应用中根据具体情况进行权衡和选择。

 结语       

把别人的经验变成自己的

他的本事就大了

!!!

标签:14,请求分页,置换,算法,内存,该页,缺页,操作系统,页面
From: https://blog.csdn.net/m0_73399576/article/details/144546933

相关文章

  • 操作系统(13)虚拟存储器
    前言    操作系统中的虚拟存储器是一项关键技术,它为用户提供了一个远大于实际物理内存容量的逻辑内存空间。一、定义与原理    虚拟存储器是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统。其逻辑容量由内存容量与外存容量之和决定......
  • Windows ANSI API 是指 Windows 操作系统 提供的一组 应用程序编程接口 (API),它们使用
    WindowsANSIAPI是指Windows操作系统提供的一组应用程序编程接口(API),它们使用ANSI字符集来处理字符串和文本数据。ANSI字符集是较为老旧的字符编码标准,通常对应的是Windows-1252编码(又称Latin-1)。这些API主要用于与字符串和字符数据交互。1. WindowsANSI......
  • 【教学类-83-02】20241214立体书三角嘴2.0——青蛙(扁菱形嘴)
    背景需求:制作小鸡立体贺卡三角嘴,它的嘴是正菱形(四条边长度相等,类似正方形)【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)-CSDN博客文章浏览阅读744次,点赞22次,收藏11次。【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)https://blog.csdn.net/reasonsum......
  • MSKSSRV.SYS 是一个系统文件,通常与 Microsoft Kernel-Streaming 服务相关。它是 Windo
    MSKSSRV.SYS是一个系统文件,通常与MicrosoftKernel-Streaming服务相关。它是Windows操作系统中的一个驱动程序文件,主要用于处理音频、视频流媒体的传输与处理,尤其是涉及到多媒体设备时的音频和视频流控制。详细解释:文件名称: MSKSSRV.SYS文件类型: 驱动程序文件位置: 通......
  • 常见操作系统中安装Elasticsearch 2.10的步骤
    一、前提条件Java环境:Elasticsearch是基于Java开发的,所以需要先安装JavaDevelopmentKit(JDK)。推荐安装JDK8,确保java-version命令在终端中可以正确执行,并且版本符合要求。二、在Linux系统(以Ubuntu为例)中安装Elasticsearch2.10下载Elasticsearch访问Elasticsearch官方网......
  • 不同操作系统下安装Tomcat的详细步骤
    Windows系统下载Tomcat访问ApacheTomcat官方网站(https://tomcat.apache.org/)。在下载页面中,选择适合你系统的版本。一般来说,选择比较稳定的版本,如Tomcat9或10。点击下载链接,将安装包(通常是.zip格式)下载到本地计算机。解压安装包下载完成后,找到安装包文件并将其解压到......
  • 不同操作系统中安装Visual Studio Code(以下简称VS Code)的详细步骤
    Windows系统下载安装包打开浏览器,访问VSCode官方网站(https://code.visualstudio.com/)。在官网首页找到“DownloadforWindows”按钮并点击,下载安装程序(.exe文件)。运行安装程序下载完成后,找到安装程序文件并双击运行它。在安装向导中,你可以选择安装路径。默认路径是“......
  • 常见操作系统中安装MySQL的详细步骤
    一、在Windows系统中安装MySQL下载MySQL安装包访问MySQL官方网站(https://dev.mysql.com/downloads/mysql/)。根据你的操作系统版本(32位或64位)选择合适的MySQLCommunityServer安装包,如MySQLCommunityServer8.0。点击下载按钮开始下载。运行安装程序找到下载好的安装......
  • 五种处理找不到vcruntime140.dll的方法,分析vcruntime140.dll错误原因
    当您在运行某个应用程序或游戏时遇到提示“找不到vcruntime140.dll”,这通常意味着系统中缺少了VisualC++RedistributableforVisualStudio2015或更高版本的一个重要组件。这个错误通常发生在运行某些程序时,系统无法找到所需的动态链接库文件。小编将介绍五种处理找不到vcr......
  • docker 搭建redis一主两三哨兵(redis:6.2.14-alpine)
     前言   一般来说,因为性能,安全,持久化等问题,docker搭建的环境时很少推荐用来当生产环境的,但是最近公司的一个项目居然要用docker来搭建生产环境,没办法,客户就时上帝,客户说啥就是啥。  当然这次部署还有用docker部署nacos集群、minio集群、mysql主从、rabbitmq集群,......