互不相同正整数的压缩算法:分页式多比特流

先记着,等实现完毕后再写
测试表明:压缩比跟数据特征有关
有的能达到170,有的只能达到18

不管怎么样,满足开发要求了

分页
将整数按照65536进行分组,每组叫做一个页面,压缩处理都在此页面内进行;
好处:4字节的整数全变成2字节的short了

多比特流
将每个页面再次按照一定长度进行分块
base:此块的基数
bits:此块内整数的比特流,1表示对应整数存在,0表示不存在
gate:bits中每固定个数个bit记作一个单元,此单元的bit全部为0,那么gate中对应的单个bit为0,否则为1
bits压缩:将全部为0的单元删除;

合并缓冲区
最终,将上述三类数据分别编码到各自内存中,然后最终合并到此页面对应的内存中,再次将多个页面的内存进行合并即可;

时间: 2024-10-18 08:16:16

互不相同正整数的压缩算法:分页式多比特流的相关文章

分页式存储管理方式AND请求分页式存储管理

先说下什么是页(页面):就是将用户的程序的的地址空间分成固定大小的区域,称为”页“,或者”页面“ 之后将这些页离散的放进内存中,这样解决了内存的碎片问题 记得老师上课说了下这两个概念不能混,现在区分下: 在第4章存储器管理,学习了分页式存储管理方式(是为了解决内存的碎片问题) 在第5章虚拟存储器,学习了请求分页式管理方式(除了解决碎片问题外,又“扩充”了内存的大小(虚拟)) 在这里为了使得固定数目的内存来运行较多的进程,增加了调页功能和页面置换功能. (在这可以看书或者笔记上的例题更好理解) 请

操作系统之分页式内存管理2

1.分页的内存管理克服了交换系统的缺点:外部碎片,程序不能大于物理内存等.但付出的代价是页面更换.在交换系统下,一个程序作为一个整体加载到内存,这样,在程序运行时,无须在从磁盘上加载任何东西,而分页系统下,一个程序的所有页面不一定都在内存中,所以可能会产生缺页中断,缺页中断的服务程序负责把位于磁盘上的数据加载到物理内存中来,如果物理内存中有空闲的页面,那就直接使用空闲的页面,但如果物理内存已满,就需要挑选某个已经使用过的页面进行替换.这里就出现一个问题,如何挑选? 2.如果挑选的页面是之后很快又

操作系统之分页式内存管理1

1.分页内存管理的核心就是:页面的翻译. 对于任何一个虚拟页面,系统要知道该页面是否在物理内存中?如果在的话,对应的物理页面是哪一个?如果不在,就会产生一个缺页中断,并将该虚页从磁盘转到内存,然后将分配给它的物理页面号返回.虚拟页面到物理页面的映射,这个翻译过程由内存管理单元MMU完成.MMU接收CPU发出的虚拟地址,将其翻译为物理地址后发给内存.MMU对虚拟地址的翻译只是对页面号的翻译,而对于偏移值则不进行任何操作,这是因为虚拟页表和物理页表大小完全一样,虚拟页面里的偏移值和物理页面里的偏移值

操作系统——存储管理:分区、分页、分段、请求式分页和虚拟内存

操作系统——存储管理:分区.分页.分段.请求式分页和虚拟内存 1. 综述 突然把这么多概念弄到一起,让人有点儿困惑.自己的一些理解: 分区式管理:最简单直观的方式,在内存中分配一个区,将整个进程放入这个区.缺点是会产生外碎片,即时间长了会在分区之间产生难以被利用的小空间. 分页式管理:将内存分成固定大小的页,分配若干页将整个进程载入.页面可以不连续是其重要优点,不会产生外碎片,更有效地利用了内存,不过会产生一些内碎片,即分配给进程的最后一个页往往不能正好用完,不过在页面大小不是很大的时候可以接受

操作系统笔记(十)内存管理之分页,分段和段页式

基本内存管理: 进程占用空间必须连续,导致外部碎片以及附加的compaction 整个进程的swap in 和 swap out十分耗时. 解决:分页 ->内存空间不必连续,无外部碎片,有内部碎片.可以部分swap in 和 out. 分页式内存管理 重定位 物理内存:帧 <==> 逻辑内存:页 页表管理页和帧的映射关系,每条记录称作PTE.即输入page number,输出frame number. 逻辑地址:page number和page offset. 物理地址:frame nu

WordPress主题开发:实现分页功能

一.使用内置方法 (WordPress 4.1以前无效) the_posts_pagination 输出分页式导航,用法: <?php the_posts_pagination( array( 'mid_size' => 3, 'prev_text' =>'上一页', 'next_text' =>'下一页', 'before_page_number' => '<span class="meta-nav screen-reader-text">第

ZIP压缩算法详细分析及解压实例解释

最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,两者本质上没啥区别,在数学家看来,都是映射.一方面在进行通信的时候,有必要将待传输的数据进行压缩,以减少带宽需求:另一方面,计算机存储数据的时候,为了减少磁盘容量需求,也会将文件进行压缩,尽管现在的网络带宽越来越高,压缩已经不像90年代初那个时候那么迫切,但在很多场合下仍然需要,其中一个原因是

操作系统-页式虚拟存储器管理系统设计

(大三下学期开学)操作系统课程设计 题外话: 介个系统的算法啊其实很简单很好理解,就是当时自己实践的时候整了好久,各种调bug各种惆怅啊! 但是此乃100%原创哇!真是老老实实光啃操作系统书自己设计出来的,啥参考都没有 写完的时候真是太有成就感了(流泪) 还为此特别手写了算法研究了好久,刚刚翻出笔记本发现自己为了研究地址变换画了个小漫画!(见最下页) 当时的计划:2/27实现的目标:能够根据作业大小为作业分配空间,建立页表.2/28实现的目标:完成两种算法的设计与调试3/1实现的目标:完善展示界

内存管理笔记(分页,分段,逻辑地址,物理地址)【转】

本文转载自:http://www.cnblogs.com/felixfang/p/3420462.html 1. 物理地址和逻辑地址 物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址.在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端.这些数字被北桥(Nortbridge chip)映射到实际的内存条上.物理地址是明确的.最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privile