操作系统Day1地址空间与地址生成

1.地址空间
分成(1)物理地址空间 (2)逻辑地址空间
二者之间的关系:
*逻辑地址空间的生成:程序——》汇编--》linker——》loader
*物理地址的生成:内存的逻辑地址空间会有一个到物理地址的映射,cpu的mmu表示了一个逻辑地址对应的物理地址,操作系统最重要的功能使在其中做了一个对应地址的安全检测。

**连续内存的分配
内存碎片问题 (1)外部碎片 (2)内部碎片
内存分配算法:(1)首次适配 (2)最优适配 (3)最差适配
(1)首次适配:按地址排序的空间列表,容易产生外部碎片
(2)最优适配算法:选择差值最小的空闲块,容易产生很多没使用的微小碎片。
(3) 最差分配算法,选择差值最大的空闲块,破碎了大块的空闲块以至于无法被分配

**进一步处理使得内存碎片消失的办法
(1)压缩碎片整理:重置所有程序以合并空块,要求所有的程序是动态可以重置的,缺陷:重复拷贝,内存开销比较大
(2)交换式碎片整理:抢占等待的程序

**非连续物理内存的分配
(1)分段
(2)分页
(3)页表
连续内存分配的缺点:
(1)内存利用率低
(2)有外碎片和内碎片对的问题
非连续内存的分配优点:
(1)允许共享代码和数据
(2)支持动态链接和动态加载
缺点:从虚拟内存到物理地址之间转换的开销比较大

分段:(1)分段的寻址 (2)如何实现寻址
分段:分割成堆、栈、程序数据、库
分段寻址对方案: 段号+偏移(cpu MMU进行寻址)

原文地址:https://www.cnblogs.com/malixian/p/8858974.html

时间: 2024-10-16 04:54:01

操作系统Day1地址空间与地址生成的相关文章

(八)地址空间和地址生成

地址空间和地址生成 内容摘要 地址空间 & 地址生成 地址生成 地址检查 一.地址空间定义 物理地址空间 -- 硬件支持的地址空间 起始地址0,直到? 逻辑地址空间 -- 在CPU运行的进程看到的地址 起始地址0,直到? 二.逻辑地址生成 地址生成时机和限制 编译时 假设起始地址已知 如果起始地址改变,必须重新编译 加载时 如编译时起始位置未知,编译器需生成可重新定位的代码(relocatable code) 加载时,生成绝对地址 执行时 执行时代码可移动 需地址转换(映射)硬件支持 地址生成过

java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java

原文:仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java 源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm 仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java String sLongUrl = "http://www.zuidaima.com/share/1550463378934784.htm"; // 3BD768E58042156E54626860E241E9

linux安装操作系统以及配置ip地址

linux作者:毕业于芬兰赫尔辛基大学的linus torvalds linux是多用户,多进程,多线程,实时性能好,功能强大而稳定,完全开放源代码的系统 linux是一个树形结构的目录系统,任何设备任何程序都是由一个文件来表示 Linux系统组成 Linux操作系统=linux内核+gnu软件及系统软件+必要的应用程序 Linux系统核心组成原理 硬件---系统核心--命令解释器--外围应用程序 Linux内核官网:www.kernel.log Linux应用领域:企业服务器,嵌入式应用,li

thinkphp5.0 URL 地址生成

有两个方法 使用系统类 使用助手函数 <?phpuse think\Url;//输出首页地址Url::build('index/index/index');//这个也是输出首页地址url('index/index/index'); 带参数的URL地址 <?phpuse think\Url;//输出首页地址Url::build('index/index/index','id=5&name=lizhi');Url::build('index/index/index',['id'=>5

MAC地址生成回环IPv6地址

设备48位MAC地址为00-60-80-52-f9-d8 在第三字节和第四字节之间插入FF-FE,形成64位地址地址00-60-08-FF-FE-52-F9-D8 对首字节0X00的第二个最低位求反,则变成0X02. 在前面补充FE80::,填满16字节(128位),最后为FE80::0260:08FF:FE52:F9D8.

php中将地址生成迅雷快车旋风链接的代码

function zhuanhuan() { $urlodd=explode('//',$_GET["url"],2);//把链接分成2段,//前面是第一段,后面的是第二段 $head=strtolower($urlodd[0]);//PHP对大小写敏感,先统一转换成小写,不然 出现HtTp:或者ThUNDER:这种怪异的写法不好处理 $behind=$urlodd[1]; if($head=="thunder:"){ $url=substr(base64_deco

自定义destoon6.0的地址生成规则

在使用destoon的过程中需要对地址规则进行重写,那么如何实现,destoon的列表的地址规则是定义在/api/url.inc.php,然后又是在include/global.func.php中进行的listpages这个函数调用实现 if($page < 1 || $page > $total) $page = 1; $home_url = $MOD['linkurl'].$CAT['linkurl']; $demo_url = $MOD['linkurl'].listurl($CAT,

地址生成二维码

qrcodelib.toCanvas(document.getElementById('canvas'), qianbao, function (error) { if (error) console.error(error) console.log('success!'); }) <script type="text/javascript" src="qrcode.min.js"></script> qrcode有不少版本的插件,个人觉得这

MAC地址查询 Linux/Unix操作系统mac地址怎么查

Linux/Unix操作系统熟悉的人都通常是用console命令控制台来进行相应的操作.  Linux/Unix操作系统查看网卡mac地址的方法可以通过以下命令获得: 1.ifconfig -a 2.ip link show 3.ip address show