《程序是怎样跑起来的》第五章与第六章

第五章讲解了计算机的主要存储部件磁盘和硬盘的作用以及其相互之间的关系。第六章对压缩数据方面进行了讲解。
第五章
计算机主要的存储部件为内存和磁盘。CPU在解析和运行时需要通过内部程序计数器器来指定内存地址才能读取程序。因此,磁盘中存储的程序需要在内存中加载后才能够运行。且相较于直接在磁盘中读取运行来说,内存比磁盘读取运行的速度更加快捷、高效。
在内存不足也可以通过虚拟内存的方式运行程序。虚拟内存,即将磁盘内存假想为内存来使用。虚拟内存在使用是需要与内存进行数据置换,将需要运行的部分读取出而不需要运行的部分写入。虚拟内存的方法有分页式和分段式两种。windows所使用的为分页式。即将程序分为页来分割,并以页为单位放入虚拟内存或内存中。
使用DLL文件可以实现函数共用从而减少内存的占用。也可调用_stdcall来减小文件大小。
磁盘在写入文件时是以簇为单位的进行的。
第六章
文件以字节为单位进行储存。
RLE
RLE是通过字符*重复次数的表现方式来进行压缩的。通常情况被用于传真图像类压缩。然而在文本文件中多次重复的字符并不多见,因此此方法不适合文本文件。
哈夫曼算法,是使用特殊编码来代替八位存储的方式。将出现次数多的以少的位数编码代替,次数少的则以位数多的编码代替。

在压缩时使用哈德曼树的方式进行数据的处理。如图。
哈德曼算法可以大幅度提升压缩比例。也避免了在数据解压缩时出现无法正确识别的问题。
可逆压缩与非可逆压缩
在图像压缩时,起初以BMP的形式存储,对其进行不同算法的压缩后会出现不同的格式如JPEG、GIF格式等。其中JPEG为非可逆压缩,GIF为可逆压缩,但因其有色像素不超过256个色的限制还是会导致图像模糊。

posted @ 2024-02-21 12:02  咲张  阅读(7)  评论(0)    收藏  举报