lisp 标记形心_标记-整理算法

定义

该算法分为标记和整理两个阶段,标记阶段会遍历并标记活动对象,整理阶段通过数次搜索堆来重新装填活动对象,它们聚集到了堆的一端。

lisp2算法

forwarding指针表示活动对象的目标地址

过程概要

初始状态

标记结束后

整理结束后

整理阶段伪代码

compaction_phase() {

// 设定forwarding指针

set_forwarding_ptr();

// 更新指正

adjust_ptr();

// 移动对象

move_obj();

}

// 第一次遍历堆

// $head_start 堆起始地址

// $head_end 堆结束地址

set_forwarding_ptr() {

// 定义搜索堆的指针和指向目标地址的指针

scan = new_address = $head_start;

// 遍历堆,进行设置

while (scan < $head_end) {

// 若是活动对象,则设置forwarding指针

if (scan.mark == TRUE) {

scan.forwarding = new_address;

new_address += scan.size;

}

scan += scan.size;

}

}

// 第二次遍历堆

adjust_ptr() {

// 更新根对象forwarding指针

for (r : $roots) {

*r = (*r).forwarding;

}

scan = $head_start;

while (scan < $head_end) {

// 更新子对象forwarding指针

if(scan.mark == TRUE) {

for(child : children(scan)) {

*child = (*child).forwarding;

}

}

scan += scan.size;

}

}

// 第三次遍历堆

move_obj() {

scan = $free = $heap_start;

while(scan < $heap_end) {

if(scan.mark == TRUE) {

// 将找到的对象移动到 forwarding 指针的引用目标处

new_address = scan.forwarding;

copy_data(new_address, scan, scan.size);

new_address.forwarding = NULL;

new_address.mark = FALSE;

$free += new_address.size;

}

scan += scan.size;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js遍历json数组给html td赋值,JS实现给json数组动态赋值的方法示例

关注微信公众号JS实现给json数组动态赋值的方法示例转载 更新时间&#xff1a;2017年07月04日 10:19:00 作者&#xff1a;小魏的马仔这篇文章主要介绍了JS实现给json数组动态赋值的方法,结合实例形式分析了javascript针对json数组的遍历、赋值等常用操作技巧,需要的朋友可以…

甘肃民族师范学院计算机科学系,甘肃民族师范学院计算机科学与技术专业2016年在甘肃理科高考录取最低分数线...

类似问题答案衡阳师范学院计算机科学与技术专业2016年在甘肃理科高考录取最低分数线学校 地 区 专业 年份 批次 类型 分数 衡阳师范学院 甘肃 计算机科学与技术 2016 二批 理科 448 学校 地 区 专业 年份 批次 类型 分数 衡阳师范学院 甘肃 计算机科学与技术 2016 二批 理科 44…

python面试题百度云下载_分享三道Python经典面试题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼验证邮箱格式验证邮箱的格式&#xff0c;不同语言的实现大同小异&#xff0c;通过正则表达式是最快捷的匹配方式&#xff0c;但对于不熟悉正则的同学看着一长串匹配符还是比较头痛的&#xff0c;其实也没那么恐怖。熟悉python 中正…

计算机科学与技术专业实习招聘,中科院研究生院招聘GIS或计算机专业实习生

中科院研究生院招聘GIS或计算机专业实习生由于项目需要&#xff0c;中科院研究生院特招聘GIS或计算机方向实习生&#xff0c;具体要求如下&#xff1a;项目名称&#xff1a;油气田WebGIS系统招聘人数&#xff1a;1人(目前已有1人)主要工作是根据油气田生产需要,实现WebGIS支持下…

r语言regexpr函数_R语言学习笔记-文本挖掘之字符处理(1)

在挖掘分析的过程当中对字符串的处理是极为重要的&#xff0c;且出现也较为频繁&#xff0c;R语言作为当前最为流行的开源数据分析和可视化平台&#xff0c;虽然文本的处理并不是它的强项, 但是R语言还是包含大量的字符串操作工具&#xff0c;本章着重整理了部分常用字符处理函…

html div如何列对其,CSS:自适应N列布局如何解决两端对齐

关于每行N列的这种布局&#xff0c;存在一个两端对齐的问题&#xff0c;因为每一列都会存在一个margin-left或者margin-right&#xff0c;导致最后一个超出父元素的边界。通过一番努力&#xff0c;终于解决了这个遗留很久的问题&#xff0c;废话不多说&#xff0c;先看做完之后…

v380智能快配连接不上怎么办_Win7系统电脑设置连接远程桌面的操作方法

Win7系统电脑远程桌面无法连接怎么办&#xff1f;Win7怎么设置连接远程桌面&#xff1f;请看下文具体操作步骤。一般情况下&#xff0c;对Win7的远程连接只需要5步即可完成远程连接的设置&#xff1a;1)查询并记录远程计算机的IP&#xff0c;开始——运行——输入cmd&#xff0…

计算机专业买win,新买的电脑是win10系统,有的人却费尽心思重装成win7,为什么呢...

简单地说&#xff0c;现在的新电脑几乎都是最新的windows系统&#xff0c;而厂商通常预装的是windows10家庭版&#xff0c;虽说没有多强的功能&#xff0c;但也能够满足我们日常使用的需求。重要的是预装的win10系统是正版的&#xff01;但不难发现&#xff0c;即便是正版的win…

wireshark网卡权限_网络分析系列之六_Wireshark安装

Wireshark对常见操作系统都支持安装&#xff0c;包括Windows系统、Mac OS X以及基于Linux的系统。你可以在Wireshark的官方网站上&#xff0c;查找所有 Wireshark支持安装的操作系统列表&#xff0c;以及系统版本和硬件要求信息。Wireshark安装系统支持和要求截止Wireshark版本…

c# 替换html注释,C# 替换div标签

C# 替换div标签0fillm2013.11.06浏览24次分享举报estyle"BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; WIDTH: 300px; HEIGHT: 200px; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid"iddivMediaPlayer>codebase,http://download.ma…

使用物理硬盘_硬盘坏道的几种非专业修复方法介绍

在使用计算机的过程中&#xff0c;我们最担心的就是硬盘出现故障&#xff0c;因为一旦硬盘出现故障就意味着我们的数据受到了严重的威胁。在诸多的硬盘故障中&#xff0c;硬盘坏道是最常见也是最让人头疼的故障之一了。硬盘坏道介绍&#xff1a;引起坏道的原因很多&#xff0c;…

应理解计算机专业的学科特点,职业高中计算机专业测验试题编写的策略初探.doc...

职业高中计算机专业测验试题编写的策略初探职业高中计算机专业测验试题编写的策略初探摘 要 教学检测既是检验教学成败的重要工具,又是改进其教学工作,提高教学质量的保证;计算机专业教学检测的内容、难度、实施程序等都必须根据计算机专业教学目的、要求及其内容来制定;计算机…

jenkins vue 打包特别慢_从零开始 使用VUE开发桌面客户端

Electron 是一个非常强大的工具&#xff0c;它可以用来构建跨平台的桌面应用&#xff0c;编写一次到处运行。知乎视频​www.zhihu.com0. 准备工作安装好nodejs在终端中输入 node -v 看到版本号即为成功node -v # 输出 v14.11.0安装一个IDE&#xff0c;推荐使用vscode安装cnpm 包…

html input 上标,javascript – 文本类型的输入字段中的上标

插件怎么样&#xff1a;$.fn.superScript function() {var chars −()0123456789AaᴂɐɑɒBbcɕDdEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ,sup ⁺⁻…

从未在一起更让人遗憾_二十不惑强行悲伤结尾,我们本可以在一起,才最让人遗憾...

二十岁&#xff0c;本应该去尝试一下的。说真的&#xff0c;如果他们在一起了&#xff0c;后来分手&#xff0c;我都会释怀。但是他们本可以在一起却因为种种拒绝&#xff0c;太让人难过。看到他们就真的想起 “从未在一起和在一起之后分手&#xff0c;哪一个更遗憾&#xff1f…

计算机二级多少人优秀,计算机二级各科通过率是多少

摘要&#xff1a;计算机二级各科通过率每年有所差异&#xff0c;如2021年二级MS Office考试合格率为22&#xff05;&#xff0c;其他科目合格率为38&#xff05;&#xff0c;而2021年MS Office考试合格率为21.07&#xff05;&#xff0c;其他科目合格率为34.55&#xff05;。 计…

unity如何往下挖地形_Unreal Engine地形系统辨析(一)

Unreal Engine的地形系统称之为Landscape&#xff0c;每个level里面可以存放多个Landscape的Actor(但不能对它们进行连续编辑&#xff0c;也就是说相邻两个landscape是不能被同一个brush修改的)。地形被均匀的切割成多个小的地块&#xff0c;这些地块名为Landscape Component&a…

jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国

我们将使用 Linux 上的命令行工具解析并格式化打印 JSON。它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用。-- OstechnixJSON 是一种轻量级且与语言无关的数据存储格式&#xff0c;易于与大多数编程语言集成&#xff0c;也易于人类理解 ——…

计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)

计算机组成原理CPU单周期数据通路(MIPS)【计算机组成原理】CPU:单周期数据通路(MIPS)寄存器传送语言RTL1)R(r)表示寄存器r的内容2)M(address)表示主存储器地址address的内容3)传输方向“←”表示&#xff0c;从右向左传输4)程序计数器PC的内容直接用PC表示输出信号改变时机1)se…

gmp计算机系统课件,EU GMP附录11计算机系统◆问答

GMP关于计算机系统的法规Zhulikou431整理&#xff0c;丁香园首发EU GMP guide annexes - Supplementary requirements: Annex 11Computerised Systems1. Appropriate controls for electronic documents such as templates should be implemented. Are there any specific requ…