如何利用小游戏开发框架提升企业小程序的用户体验与运营效率
848
2022-11-17
OS学习笔记-5(清华大学慕课)计算机体系结构与内存层次
计算机体系结构与内存层次
操作系统采用的内存管理方式
重定位:段地址+偏移分段:分成代码、数据、堆栈分页:把内存分成最基本的单位虚拟存储:把数据存到硬盘上,使得逻辑地址空间大于物理内存空间
逻辑地址生成
静态重定位是指装入时把逻辑地址转换成物理地址,装入后不变动态重定位指装入后地址在执行中,模块地址会改变编译:生成若干模块链接:将模块和库函数链接到一起,形成一个完整的装入模块,此时生成逻辑地址运行:将完整的模块装入内存
编译和链接后每个目标模块都以0号单元开始编址,不同进程有相同的逻辑地址
MMU地址转换模块
连续内存分配
连续内存分配有两种实现方式:固定分区分配,动态分区分配进程内部无法利用的碎片叫内碎片,分配单元之间无法利用的碎片叫外碎片
动态分配下,进程大小可变,由操作系统确定那些是可用的那些是不可用的区域分配策略有三个:First-fit,Best-fit,Worst-fitFirst-fit:找到第一个合适的分区就装进去,简单,但有外碎片,高地址有大块内存空间,但大块内存空间分配就要找比较久,较慢Best-fit:找到比它大,而且大得最小的分区,相对简单,大的分区不会被拆开,但还是有外碎片,释放分区较慢Worst-fit:找到比它大,而且大得最多的分区,不喜欢,不记
碎片整理
将进程间的外碎片整理起来只有可动态重定位的程序可以移动整理一般在进程等待状态下时移动小个的外碎片会选择跳过,避免开销
分区兑换
内存不够用时,会把等待状态的进程先放到外存
伙伴系统
不断将分区分成两个小的部分,直到装不下进程的前一次大小,最多空2^i-1内碎片外碎片合并时如果不能合成空间大小2的整数幂,将不合并目前unix和linux都有对伙伴系统的相关实现
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~