操作系统:精髓与设计原理 虚拟内存

2024-05-05 18:58

本文主要是介绍操作系统:精髓与设计原理 虚拟内存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虚拟内存  在存储分配机制中 尽管备用内存是主内存的一部分,它可以被寻址  程序引用内存使用的地址与内存系统用于识别吴莉丽存储站点的地址是不同的,程序生成的地址会自动转换成机器地址。   虚拟存储的大小收到计算机系统寻址机制和可用的备用内存量的限制,而不受内存存储位置实际数量的限制

虚拟地址  在虚拟内存中分配给某一个位置使该位置可以被访问  仿佛它是主内存的一部分

虚拟地址空间   分配给进程的虚拟存储

地址空间  可用于某进程的内存地址范围

实地址  内存中存储位置的地址


进程的常驻集   进程在执行过程中任何时候都在内存的部分称为进程的常驻集

实存  real memory 进程只能在内存中执行    虚存  virtual memory 

虚存分页   

内存被划分成大小固定的小块 称为页框

程序被编译器或内存管理系统划分成页

页框中有内部碎片

没有外部碎片

操作系统必须为每个进程维护一个页表 以说明每个页对应的页框

操作系统必须维护一个空闲页框列表

处理器使用页号和偏移量来计算绝对地址

当进程运行时,并不是它的所有页都必须在内存页框中  只在需要时才读入页

把一页读入内存可能需要把另一页写出到磁盘


虚存分段

内存未被划分

由程序员为编译器制定程序段

没有内部碎片

有外部碎片

操作系统必须为每个进程维护一个段表 以说明每一段中的加载地址和长度

操作系统必须维护一个内存中的空闲的空洞列表

处理器使用段号和偏移量来计算绝对地址

当进程运行时,并不是它的多有段都必须在内存中  只在需要时 读入段

把一段读入内存可能需要把另外一个段或几个段写出到磁盘


操作系统的内存管理    虚存技术  分页还是分段还是二者结合    为各种存储管理特征采用算法

读取策略   确定一个页何时取入内存    请求分页   demand paging    只有当访问到某页中的一个单元时才将该页取入内存           预先分页 prepaging  

清除策略  确定在何时将一个被修改过的页写回辅存   请求式清除   预约式清除

置换策略   在计划置换的页集中 选择置换出哪一页

驻留集管理  每个活动进程分配多少页框   计划置换页的集合是局限与那些产生缺页中断的进程 还是所有页框都在内存中的进程

加载控制   加载控制会影响到驻留在内存中的进程数目  

这篇关于操作系统:精髓与设计原理 虚拟内存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962429

相关文章

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一