首页 > 其他分享 >操作系统基础第四讲

操作系统基础第四讲

时间:2024-10-08 12:34:38浏览次数:10  
标签:操作系统 装入 分区 基础 链接 地址 页表 第四 内存

操作系统第四讲 存储器管理

第一讲:内存管理概述

1. 内存管理的基本概念

  1. 逻辑地址及物理地址

    img

  2. 外部碎片

    内存中划分给进程剩下太小的无法分配的空间

    img

  3. 内部碎片

    进程进入分配的块,剩下的

    img

2. 内存管理的基本功能

img

img

3. 程序的链接与装入

  1. 程序的运行过程

    img

    img

  2. 绝对装入

    img

    将程序装入装入到指定位置

    仅适用单道程序

  3. 可重定位装入

    img

    多道程序中不能预知应放到内存何处,因此采取可重定位装入模式,放到内存中任何允许位置,根据内存情况将目标模块存放;需要根据相对地址更改绝对地址

    目标模块起始地址一般从0开始

  4. 动态运行时装入方式

    装入后还能移动位置;把绝对地址转换推迟到程序真正执行的时候

4. 程序的链接

  1. 静态链接

    img

    程序运行前就链接好

  2. 装入时动态链接

    img

    img

  3. 运行时动态链接

    img

考点二:内存连续分配管理方式

1. 单一连续分配

img

2. 固定分区分配

img

img

3. 动态分区分配

img

img

4.动态分区分配算法

img

img

  1. 首次适应算法FF First Fit

    每次从链头开始,直到找到第一个适合的空闲分区

    img

  2. 循环首次适应NF Next Fit

    每次从上一次结束地方再寻找

    img

    img

  3. 最佳适应BF Best Fit

    优先使用满足要求又是满足要求分区中最小的适合分区

    即使用内部碎片最小的分区

    img

    img

  4. 最坏适应WF Worst Fit

    优先使用最大的分区

    img

    img

  5. 对比

    img

    img

5. 内存回收

img

考点三:基本分页存储管理方式

1. 基本概念

  1. 页面和(物理块/页框)

    img

    进程分成:页

    内存分成:物理块/页框

    萝卜和坑的关系

    最后一页可能放不满页框,造成页内碎片

  2. 页面大小

    img

    页框大小与完整页面大小一致

  3. 页表

    用于记录进程每一页再内存中对应的物理块号(即页框)

    存储对应关系

    img

    img

  4. 页表项

    页表的基本单元,一条对应关系

    由页号和页框号组成

2. 地址结构

  1. 结构图

    img

  2. 页号和页内地址计算

    img

  3. 页面大小

    img

    img

    img

3. 地址变换机构

页表对应关系的实现方式

img

img

img

要访问某个逻辑地址中的数据

  • 将有效地址(相对地址)分为页号和页内地址
  • 检索前先判断越界,将页号和页表长度比较
  • 用页号检索页表,找到物理块对应关系
  • 计算该表项在页表中位置,将页表项开始地址与页号和页表项长度的乘积相加
  • 得到物理块号,装入物理地址寄存器
  • 将有效地址寄存器中页内地址送入地址寄存器的块内地址字段
  • 完成逻辑地址到物理地址的变换

img

4. 快表TLB(Translation Looksaide Buffer)

相当于一个页表缓存,先查快表如果页号存在直接使用缓存的物理块地址,免去一次查找整个页表时间

img

img

5. TLB的实现方式(使用Cache来实现)

  1. 直接相联映射

    img

    img

  2. 全相联映射

    img

  3. 组相联映射

    img

6. 两级页表和多级页表

页表太长需要将页表进行分页,需要建立一张表用于记录页表项对应的物理块地址。

img

img

img

考点四:基本分段内存管理方式

1. 分段系统的基本原理

img

img

img

img

img

img

img

标签:操作系统,装入,分区,基础,链接,地址,页表,第四,内存
From: https://www.cnblogs.com/JUANFENHUI/p/18451419

相关文章

  • 操作系统基础第三讲
    操作系统基础第三讲处理机调度与死锁考点一:处理机调度1.处理机调度的基本概念处理机调度的引入处理机调度的层次高级调度低级调度中级调度2.处理机调度的方式抢占式方式非抢占式3,选择调度算法的若干准则面向用户的准则COU利用率:......
  • 操作系统基础第二讲
    操作系统基础第二讲进程管理考点一:进程的基本概念1.进程的顺序执行概念前驱图2.程序并发执行的特征间断性失去封闭性不可再现性考点二:进程的特征与状态1.特征的定义2.进程的三种基本状态就绪态已经分配好除CPU以外所有必要资源,可......
  • 操作系统基础第一讲
    操作系统基础第一讲考点一:操作系统的概念1.操作系统的定义2.操作系统的作用2.操作系统的特征并发性多线程,不能同时运行,在同一时间间隔内交替发生,我走一段你走一段,谁先结束未知共享性虚拟性异步性考点二:操作系统的发展历程1.无操作系统的......
  • 操作系统错误点
    一:操作系统概述1.用户界面是指用户接口命令接口程序接口操作环境2.从用户观点看操作系统就是用户与计算机硬件之间的接口3.从资源管理观点看操作系统是计算机资源的管理者4.图形用户接口采用图形化操作界面用于查看和操作应用程序或文档的是对话框5.用户程......
  • 24南邮科协电子部笔试题 模拟基础
    第一题仅用KVL做题步骤:1.规定正方向。不妨规定顺时针为正方向。规定方向的主要目的是确定各个元器件的电压是降压还是升压。2.假设各个未知元器件的电压值和正负方向。如图3.数清回路数量,以回路为单位列KVL方程以回路1列KVL方程,升压为负,降压为正,代数和为0。不妨按照......
  • Python 字符串基础知识
    字符串是计算机编程中非常重要的数据类型。在Python中,字符串是一系列字符的集合,可以包含字母、数字、符号和空格。Python提供了强大的字符串处理功能,使得操作字符串变得简单而直观。本文将深入探讨Python字符串的基本知识,包括字符串的创建、操作、常用方法以及字符串格式......
  • 系统开发基础错题解析一【软考】
    目录前言1.开发模型1.1快速原型模型优点1.2敏捷统一模型1.3增量模型的优缺点1.4极限编程1.5螺旋模型2.软件开发方法3.数据流图与数据字典3.1判定表3.2数据流图绘制3.3决策树4.概要设计和详细设计5.内聚性6.耦合性前言本文专门用来记录本人在做软考中有关系统开发基......
  • Linux基础命令uptime详解
    uptime 命令在Linux中用于显示系统的运行时间、当前登录用户数以及系统负载信息。这个命令非常简单,但是它提供的信息对系统管理员和用户来说非常有用。基本语法uptime[OPTION...]输出说明当你运行 uptime 命令时,输出通常包含以下几个部分:当前时间:系统当前的时间。......
  • 第四章 本章习题
    1.使用HBuilder编写符合以下要求的文档:在浏览器窗口中显示超链接文字“WELCOME”。其中上边div的背景颜色为#FF99CC,文字居中显示;水平分割线粗细为5,颜色为#FF99CC;超链接文字的字体为“arialblack”,字号为60px,颜色为#FFF,无下划线;当鼠标滑过文字变为#FF00FF;当鼠标按下文字变为#......
  • Java基础语法
    一入Java情几许?大家好,我是深山夕照深秋雨。本文主要介绍Java的基础语法第二部分变量,类型转换和运算符。一、变量详解变量里的数据在计算机中的底层原理1、数据在计算机底层都是采用二进制:使用0、1,按照逢2进1的规则表示数据来存储。2、算出一个数据的二进制形式:除二取余法......