《计算机操作系统》学习笔记(三)---存储器管理
一、程序的装入和链接
程序的装入分绝对装入方式和可重定位装入方式两种;
程序的链接可分为:静态链接,即程序运行之前,已将各目标模块及它们所需的函数库连接成一个完整的装配模块;装入时动态链接,即 程序装入时,将各目标模块及它们所需的函数库连接成一个完整的装配模块;运行时动态链接,即程序运行时,将各目标模块及它们所需的函数库连接成一个完整的 装配模块;
二、储存器的分配方式
1、单一连续分配
把内存分为系统区和用户区两部分,系统区仅提供给OS使用,用户区提供给用户使用;这种方式只用于单用户、单任务的操作系统。
2、固定分区分配
把内存的用户空间划分为若干个固定大小的分区,并为之建立一张分区使用表,当一用户程序要装入时,由内存分配程序检索该表,从中找出一个能满足要求的、尚未分配的分区,将其分配之。
3、动态分区分配
根据进程的是以需要,动态的为之分配内存空间,大小刚适,因而不会浪费存储空间。分区分配中的数据结构包括空闲分区表和空闲分区链两种。分区分配算法包括首次适应算法、循环首次适应算法、最佳适应算法。
4、可重定位分区分配
由于动态分配会造成许多不能使用的小的空闲区,称为“零头”或“碎片”,这时,可以将多个分散在内存中的作业的地址重定位,将它们“拼接”或“紧 凑”起来,这样,那些“零头”或“碎片”也就会连接成更大的连续存储空间以便分配之。可重定位分区分配与动态分区分配基本相同,仅仅是前者增加了紧凑功 能。
5、对换与覆盖
对换技术:把内存中暂时不能运行的进程或暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间;
覆盖技术:一个程序被分为若干功能上相对独立的程序段,让那些不会同时执行的程序段共享一块内存。
三、储存器的管理方式
1、分页管理方式
页面与页表:将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面;系统又为每个进程建立一张页面映射表,简称页表。
地址变换机构:
基本的:通过逻辑地址的页号与页表寄存器的页表始地址相加,得出该页号在页表中的页表项,从而得出该页号相对应的物理块号,根据物理块号与通过逻辑地址的页内地址可得出物理地址。
有快表的:在基本的地址变换机构中增加了“联想寄存器”或“快表”,将页表放在快表中,如果快表中没有该页号对应的页表项,再从内存中的页表查找,之后再将此快表项加入快表中。
2、请求分页管理方式
请求分页是建立在基本分页基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。
(1)硬件支持
页表机制:比基本页表增加了(状态位P,访问字段A,修改位M,外存地址位);
缺页中断机构:与一般中断不同,它是在指令执行期间产生和处理中断信号的,并且一条指令在执行期间可能要产生多次缺页中断;
地址变换机构:比基本分页系统地址变换机构增加了某些功能,如:产生和处理缺页中断,以及从内存中换出一页功能等等。
(2)内存分配策略
物理块的分配策略包括:
固定分配局部置换,即为每个进程固定分配一定数目的物理块,页面置换时,只能从该进程在内存的n个页面中选出一个进行置换;
可变分配全局置换,即先为每个进程固定分配一定数目的物理块,OS也保持一个空闲物理块队列,当哪个进程缺页时,OS再为之分配,直至用完再进行置换,置换时,可以选择全部进程的所有页中的一页进行置换;
可变分配局部置换,即先为每个进程固定分配一定数目的物理块,OS也保持一个空闲物理块队列,当哪个进程缺页时,OS再为之分配,直至用完再进行置换,置换时,只能选择请求调页的那个进程的其中一页进行置换。
(3)内存分配算法
物理块的分配算法包括:
平局分配算法,即将系统中所有可供分配的物理块,平均分配各个进程;
按比例分配算法,即根据进程的大小按比例分配物理块给各个进程;
考虑优先权的分配算法,一部分按比例地分配给各进程,另一部分即根据各进程的优先级,适当地增加相应份额后,分配给各进程。
(4)页面置换策略
在请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页的对换区,通常由于对换区常使用连续分配方式,而文件区采用离散分配方式,所以对换区的磁盘I/O速度比文件区的高。
*系统有足够对换区空间,可以全部从对换区调入所需页面;
*系统没有足够对换区空间,不会被修改的页面,从文件区调入,会被修改的,从对换区调入;
*UNIX方式,未运行过的页面,从文件区调入,曾经运行过的,从对换区调入。
(5)页面置换算法
*最佳置换算法(Optimal):所选择的被淘汰页面,将是以后永不使用或最长时间不被访问的页面;
*先进先出置换算法(FIFO):先进的页面先被置换;
*最近最久未使用置换算法(LRU):每个页面增加一个访问字段,记录该页面有多久没被访问过了,最近最久未使用的页面先被置换;
*Clock置换算法:每个页面增加两个访问字段A和M,A记录最近是否被访问(0表示未被访问),M记录是否被修改(0表示未被修改);分三步寻 找淘汰页面:第一步首先寻找(A=0,M=0)的页面,第二步寻找(A=0,M=1)的页面,并将所有A置0,第三步重复第一步,必要时重复第二步,此时 一定能找到淘汰页面(A=0,M=0)或(A=0,M=1);
3、分段管理方式
段与段表:将一个作业按照逻辑关系分成若干个段,称为段;系统又为每个进程建立一张段映射表,简称段表。
地址变换机构:通过逻辑地址的段号与段表寄存器的段表始地址相加,得出该段号在段表中的段表项,从而得出该段号相对应内存的基址,根据内存的基址与通过逻辑地址的段内地址可得出物理地址。
4、请求分段管理方式
请求分段也是建立在基本分段基础上的。
(1)硬件支持
段表机制:比基本段表增加了(状态位P,访问字段A,修改位M,外存地址位,存取方式,增补位);
缺段中断机构:同样是在指令执行期间产生和处理中断信号的,并且一条指令在执行期间可能要产生多次缺段中断,但分段信息是逻辑单位,不可能出现一条指令或一组信息被分割在两个分段中;
地址变换机构:比基本分段系统地址变换机构增加了某些功能,如:产生和处理缺段中断,以及从内存中换出一段功能等等。
(2)分段的共享和保护
可在系统中配置一张共享段表,所有共享段在该段表中占有一个表项,每个表项包括共享进程计数,即该段有多少个进程在共享;存取控制字段,即不同进程可以有不同的存取权限;段号,即不同进程可以以不同的段号去共享该段;还有段长,内存始地址,存在位等信息。
分段保护包括越界检查和存取控制检查。
5、分页与分段的主要区别
(1)页是信息的物理单位,而段则是信息的逻辑单位;
(2)页的大小固定且有系统决定,而段的长度不定,用户编写的程序不同而不同;
(3)分页的作业地址是一维的,而分段的作业地址空间则是二维的,程序员在标识一个地址时,既得给出段名,又得给出段内地址。
6、段页式管理方式
段页式既能够像分页系统一样有效地提高了内存的利用率,又能够像分段系统一样很好地满足用户需要:如图
地址变换机构:
转载于:https://blog.51cto.com/2494093/651618
《计算机操作系统》学习笔记(三)---存储器管理相关推荐
- 计算机操作系统学习笔记_6_进程管理 --死锁
一.死锁的概念 1.死锁的概念 系统中两个或两个以上的进程无限期地相互等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁. 2.死锁产生的原因 (1)进程推进顺序不当 (2)对互斥资源的分 ...
- 计算机操作系统 学习笔记(第四版 汤小丹)(上)
第一章-操作系统概述 操作系统基本概念 操作系统(Operation System),简称OS,是管理计算机『硬件』与『软件』资源的计算机程序.它负责计算机的全部软.硬资源的分配.调度工作,控制和协调 ...
- 计算机操作系统——学习笔记(下)
文章目录 第六章 文件管理 文件系统模型 文件逻辑结构的类型 外存分配方式 目录管理 文件存储空间的管理 文件共享与文件保护 数据一致性 第七章 操作系统接口 第八章 网络操作系统 计算机网络概述 网 ...
- 计算机操作系统——学习笔记(上)
文章目录 第一章 操作系统引论 1. 目标 2. 作用 3.发展过程 4.基本特征 5.主要功能 6.系统调用 7.OS结构设计 8.中断分类 第二章 进程管理 进程的基本概念 进程控制 进程同步 进 ...
- 计算机操作系统学习笔记 第一章、操作系统概论
文章目录 1 操作系统的基本概念 1.1 操作系统的概念 1.2 操作系统的特征 1.3 操作系统的目标和功能 1.4 综合应用题 2 操作系统发展历程 2.1 手工操作阶段(此阶段无操作系统) 2. ...
- 计算机操作系统学习笔记----进程管理
进程与线程 进程是资源分配的基本单位,也是独立运行的基本单位.进程是资源分配的基本单位,这是与线程的主要区别. 程序的顺序执行具有如下特征: 顺序性:处理器的操作严格按照程序所规定的顺序执行. 封闭性 ...
- 现代操作系统学习笔记三、死锁
死锁 操作系统相关的内容可以分为内存管理.进程和线程.死锁三个部分.本篇文章记录死锁部分. 内存管理 进程和线程 在计算机系统中,有很多独占性资源,在任一时刻,它们都只能被一个进程使用,如打印 ...
- web.config文件访问物理路径_计算机操作系统学习笔记(五):文件管理
五.设备管理 -- 文件管理 文件和进程是 OS 引入的两个重要概念. 5.1 文件的概念 5.1.1 文件概述 概念 文件是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列 文件(docum ...
- 怎样查找共享文件_计算机操作系统学习笔记(五):文件管理
五.设备管理 -- 文件管理 文件和进程是 OS 引入的两个重要概念. 5.1 文件的概念 5.1.1 文件概述 概念 文件是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列 文件(docum ...
- 计算机操作系统——(第四章) 存储器管理/内存管理
目录 Previously on OS... 存储器的层次结构 操作系统的内存管理 程序运行的步骤 地址绑定 Previously on Experiment 内核的编译 gdb调试[1] Stopp ...
最新文章
- python之functools partial
- Self-reflection for career
- json及JavaBean转json
- Anaconda配置多spyder多python环境
- Atitit.实现反向代理(1)----url rewrite 配置and内容改写 and -绝对路径链接改写 java php...
- 数据挖掘与数据化运营实战. 3.2 目标客户的预测(响应、分类)模型
- 如何才能降低真机测试成本和建议所使用平台
- Java设计模式与实践
- 海量数据挖掘MMDS week1: Link Analysis - PageRank
- 7款让你时刻涨知识越变越强的在线网站分享,相见恨晚!
- jsp mysql超市管理_基于WEB的小型超市管理系统的设计与实现(JSP,MySQL)
- Au 音频效果参考:混响
- 三菱凌云3故障代码_三菱.凌云故障代码
- 没火多久就停业,故宫火锅店咋了?
- 7.07亿TPC-C背后的技术突破,OceanBase研究成果入选VLDB
- APOLLO 6.0安装教程
- 什么是中台系统以及挑战和解决方案?
- Ionic3安装和项目创建
- Oracle报ORA-01722错误的排查经验
- 2014年最新前端开发面试题(转自markyun)
热门文章
- linux镜像文件太大不好下载_Linux系统挂接命令的使用方法
- get请求可以传body吗_面试必备:GET和POST的区别详细解说
- android app报错log,Android studio 解决logcat无过滤工具栏的操作
- labelme制作数据集:将标注好的json文件,转换成类似VOCdevkit数据集中的SegmentationClass(标注技巧)
- linux内核计算次方,linux内核中的循环缓冲去的设计与实现
- linux的相关网站,与Linux相关的一些网站
- Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增
- Scrapy分布式、去重增量爬虫的开发与设计
- 如何使用wordnet
- c# selenium chrome 文件下载_使用selenium从网站下载文件