一起来读书51- 计算机操作系统:第四章 存储器管理_空闲分区链中的n+2是什么意思-程序员宅基地

技术标签: 一起来读书  操作系统  

                                                                                第四章 存储器管理

存储器分层:

  1. cpu: 寄存器;
  2. 主存:高速缓存,主存,磁盘缓存;
  3. 辅存:磁盘,可移动介质;

 

程序处理:

编译->链接->装入

 

链接方式:

SL<静态链接>:事先进行链接,以后不再拆开;

LDL<装入时动态链接>:装入过程中去链接所需要的模块;

DRL<动态运行时装入>:运行的过程中查找和装入模块,有利于节省内存空间;

 

装入方式:

ALM<绝对装入>:按照指定的绝对地址装入程序;

RLM<可重定位转入>:在装入时对地址指令进行修改,装入后不再修改,又叫做静态重定位;

DRL<动态运行时装入>:运行时再修改地址;

 

连续分配方式:

1.单一连续分配:

只能用于单用户,单任务的OS,分为系统区和用户区;

2.固定分区分配:

将内存中的用户空间分为固定大小的若干分区,每个分区装入一道作业;

分区方法:

  1. 大小相等的分区;
  2. 大小不相等的分区;

内存分配:

将分区按大小排队,并建立一张分区使用表(例):

 

分区号

大小(KB)

起始地址(KB)

状态

1

12

20

已分配

2

32

32

未分配

3.动态分区分配:

分区分配的数据结构:

  1. 空闲分区表;
  2. 空闲分区链:位于分区的起始部分,包含一个前指针和后指针,如:

{前指针,N+2,状态位}

数据区

{后指针,N+2,状态位}

分区分配算法:

顺序搜索法

FF<首次适应算法>:在链表中从头开始找,找到为止;

NF<循环首次适应算法>:从上一次找到的位置开始找,找到合适的为止,到了链尾还没有找到的话,再从链头开始找;

BF<最佳适应算法>:将空间从小到大排列,从头开始找,每次找到的都是最接近要求的大小;

WF<最坏适应算法>:将空间从大到小排列,从头开始找,有利于减少碎片的产生;

 

分类搜索法

QF<快速适应算法>:将空闲空间按大小分类,建立一张管理索引表,每一项对应一种大小类型,每个空闲分区放一个进程;

 

分区分配操作:

1.分配内存:找到分区,如果请求的空间小于分区空间,将分区空间一块等于请求空间大小的空间分割出去;

2.回收内存:如果回收区与(上一个或下一个)空闲区相邻,则合并回收区域相邻区;

伙伴系统;

哈希算法(常用);

动态重定位分区方式:

动态重定位分区方式的寻址必须依靠重定位寄存器;

4.分页存储:

页面大小一般为512B~8KB;

页号和页内地址的计算公式:P=INT(A/L),  d=(A)MOD(L)

INT:整除; P:页号; d:页内地址; L:页面大小; A:逻辑地址空间中的地址; MOD:取余;

页号

->

页号

块号

->

物理地址

页表:用于从页号到物理块号的地址映射:

存储方式的进化:固定分区->动态分区->分页存储;

5.分段存储:

分段地址:(段号|段内地址)(内部结构:段号31~16位,段内地址15~0位), 允许最多有64K个段,每段最大长度为64KB;

段表寄存器:用于从进程的逻辑地知道物理地址的变换;

 

注意点:

控制寄存器->段->页表->主存;

重入代码<pure code>:不允许任何进程对它进行修改,可以配置局部数据区,通过对数据区的修改来完成对pure code的修改;

虚拟存储器三大特征:1.多次性:一个作业分的多次调入;2.对换性:运行中将不用的内容调出;3.虚拟性:突破实际大小限制;

内存分配步骤:1.最小物理块数确定。2.物理块的分配方法。3.物理块分配算法。

置换算法:1.最佳置换算法。2.先进先出置换。3.最近最久未使用置换(LRU)。4.clock置换算法。5其他。

段表结构:段名 + 段长 + 段基址 + 存取方式 + 访问字段A + 修改位M + 存在位P + 增补位 +外存始址;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27304213/article/details/81461993

智能推荐

linux系统怎样配置IP,LINUX操作系统的IP地址如何配置-程序员宅基地

文章浏览阅读743次。虽然不是每一家用户都会使用LINUX操作系统,但是要学好计算机技术,每一个学生都必须要学会它!因为它很重要,那么今天学习啦小编就给大家说说LINUX操作系统的基本知识-IP地址如何配置吧!下面就跟着学习啦小编一起来看看配置方法吧!LINUX操作系统的IP地址如何配置的方法打开一个terminal,切换到root用户用root用户编辑网卡命令如下:vi /etc/sysconfig/network-..._linux操作系统怎么配置ip地址

CentOS7.6系统OpenSSH升级到openssh-9.3p2(漏洞修复)_openssh 9.3p2之前版本存在安全漏洞-程序员宅基地

文章浏览阅读2.2k次,点赞69次,收藏21次。CentOS 7.6系统自带的ssh版本太老了,存在漏洞,为了避免这些漏洞被利用,需要进行升级修复。_openssh 9.3p2之前版本存在安全漏洞

MPI 和OPENMP 混合编程 实现矩阵LU分解_矩阵lu分解 openmp-程序员宅基地

文章浏览阅读6.3k次,点赞3次,收藏31次。LU分解  将系数矩阵A转变成等价两个矩阵L和U的乘积 ,其中L和U分别是下三角和上三角矩阵。当A的所有顺序主子式都不为0时,矩阵A可以分解为A=LU,且分解唯一。其中L是单位下三角矩阵,U是上三角矩阵。方法: 使用openMP和MPI混合编程现实代码如下:#include "stdio.h"#include "stdlib.h"#i_矩阵lu分解 openmp

sql注入解决方案_if test= sql注入怎么改-程序员宅基地

文章浏览阅读773次。sql注入解决方案mybatis Sql:<if test="safetyPageParam.caseStatus !=null and safetyPageParam.caseStatus != ''"> AND t2.channel_status in (${safetyPageParam.caseStatus})</if>问题: 使..._if test= sql注入怎么改

Properties转换成Map_properties转map-程序员宅基地

文章浏览阅读1.2w次。Properties转换成Mapimport java.util.HashMap;import java.util.Map;import java.util.Properties;import java.util.Set;public class Test { public static void main(String args[]){ Properties prope_properties转map

抓紧收藏学习,新手小白,如何做好短视频自媒体?_在这个人人都是自媒体的时代,只有内容的吸引才能-程序员宅基地

文章浏览阅读165次。在这个人人都是自媒体的时代,每个人都可以通过自媒体展示自己,一部分人做自媒体的动力就是想展现自己好的一面,分享内容,既可以满足自己的心理需求,还能有不错的收入。还有一种人做短视频就是为了赚钱,刚开始需要学习很多东西,也并不是一上来就可以赚钱的。(多用点空闲时间,把它当成自己的一种兴趣爱好去做,只要你肯用心花时间去做,最终肯定会有不错的收益)很多新手小白在刚开始进入短视频行业中时,不知道该如何起步,今天大周就来给大家简单分析一下。无论你是兴趣爱好还是纯粹的想赚钱,刚开始都需要注意这几点:一、用适合自己_在这个人人都是自媒体的时代,只有内容的吸引才能

随便推点

Android在Java获取组件,获取Android activity上所有的控件-程序员宅基地

文章浏览阅读681次。下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。/*** @note 获取该activity所有view* @author liuh* */public List getAllChildViews() {View view = this.getWindow().getDecorView();return getAllChildViews(v..._android项目的主控java程序中是通过什么方法找到对应的基本组件

Web-Components学习与实践_web component 实践-程序员宅基地

文章浏览阅读1.9k次。前两天看到了前端的Web Components学习了一下。组件是前端的发展方向。而Web Components是浏览器的原生组件。相比第三方框架,其简单直接,不用加载任何外部模块,代码量小。现在其还在不断发展,但已经可用于生产环境。Web Components 包含的内容很多,我只是做了一个简单的弹框案例。其他的功能则需要你自己去学习、去扩展了。1、静态弹框(以前的写法)<!DOCTYPE html><html lang="en"><head> <_web component 实践

【脚本】realtime定时重启脚本_定时重启程序的脚本-程序员宅基地

文章浏览阅读260次。背景由于这个服务每天1点多假死,临时解决,使用定时重启脚本,临时解决问题。脚本#!/bin/bash#2020年11月18日#auto realtime restart#by author sytu####################################################3TIME=`date +%Y-%m-%d_%H`proc_name="realtime-1.0.jar"realtime_DIR="/tpdata/iflytek/realtime/"p_定时重启程序的脚本

关于”点九”-程序员宅基地

文章浏览阅读49次。关于”点九” | 百度MUX“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被...

java.net.ConnectException: Connection refused: no further information解决方式-程序员宅基地

文章浏览阅读5.3k次。java api远程调用hdfs时出现了连接被拒绝的问题hadoop Api提供的地址 + 端口号!!!注意端口号:查看linux下 /hadoop/etc/hadoop/ 的 core-site.xml 下 的端口号:9000在编写.java 时 端口号要一致..._java.net.connectexception: connection refused: no further information

配置Apache实现url转发_apache配置转发-程序员宅基地

文章浏览阅读1.3w次。本文主要测试通过配置Apache httpd实现url转发,以及配置ssl协议实现支持https转发。_apache配置转发