磁盘

硬盘的物理结构
硬盘是以
扇区的方式进行管理的.以
簇为单位进行读写簇不是固定的大小
一般的,
1簇就是1扇区1扇区是512字节
如果一个文件是2byte, 那么这个文件存储后是512byte
因为最小单位就是1簇
1簇不能存储2个不同的文件, 否则会导致一个文件不能正确读取.
程序的执行
方式一: 直接从硬盘加载
方式二: 通过内存中缓存数据进行加载
加快程序的运行
磁盘缓存
最开始的时候, 计算机在使用数据时, 先从硬盘加载.
同时, 将数据放到内存中一份
那么下一次在使用的时候就从内存中取
这就是
早期的磁盘缓存技术
虚拟内存
虚拟内存就是在硬盘上划出一块空间来当做内存使用, 代替内存存储数据.
在执行的时候,物理内存和虚拟内存之间存在数据的互换
交换算法:
分页式互换: 将程序分为固定大小的好多页, 使用的时候加载某一页或某几页, 使用PAGEIN(放入物理内存), PAGEOUT(放入虚拟内存)操作来进行交换.
分段式互换: 将程序分成算法段,数据段等等各种段, 物理内存中只放我们需要用到的段, 用完了在和虚拟内存交换
置换的次数越少,运行的效率越高
节约内存的编程方式
函数共用
将公共方法形成动态链接库(dll或so文件)优点:
动态加载, 内存共享.
被调用方清理栈
清理栈操作是在函数调用完成之后进行的.Windows下是使用
_stdcall和其他函数两种方式_stdcall 的节省方法
在函数的最后加上一句
add esp, 8
压缩数据
压缩数据就是通过一定的压缩算法来把数据压缩存放可逆压缩
RLE算法
举个例子:
压缩 AAAAAABBBCCCCDDD --> A6B3C4D3
善于压缩图像 (传真使用的压缩算法)
但是极端情况下不能进行压缩
ABCDEFG 经过压缩会变成2倍, 压缩率200%.
哈夫曼压缩
使用出现的频率来压缩 然后以编码的方式(类似电报)
出现频次最多的, 用最短编码来表示
不可逆压缩
比如JPEG格式, 有损压缩, 不能还原.作业
整理错题, 复习之前的视频.如有错误,请提出指正!谢谢.
本文由 花心胡萝卜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2016-10-06 at 03:01 pm




关于RLE算法这里,自然语言算是极端环境吗?
不能说是完全的极端环境,但是自然语言,尤其是中文这种语言类型,不是很适合使用RLE,会造成反效果.
基本上自然语言都很少用连续相同的字符。所以RLE本身来说不适应在自然语言环境中压缩。