操作系统概念 -第七版-重要概念的理解-(124-144)

124.用户进程可以向内核进程索要空闲内存,但是为了减少内部碎片,内核内存不按照“页替换算法”的“按页分配”,而是采用直接访问物理内存,通过内存池去管理内存,采用“按需分配原则(要多少B内存就分配多少)”,内核内存管理不需要经过“虚拟内存接口”,而是直接采用“物理内存接口”。


125.buddy算法去分配连续的内核内存的优点在于回收物理内存的速度很快,缺点就是:最差的情况下会产生50%的碎片。


126.大部分的用户程序都是大花洒,经常耗费大量内存(连续),所以不需要太在意内存碎片,而是关注分配效率,所用分页分段管理。而内核程序就一个穷人,他们用到的都是一些小对象小内存,如果采用“分段分页机制”,简直就是浪费内存,所以他们选择较为直接简单的内存分配机制,比如“buddy系统”,但是由于buddy系统仍然存在浪费内存的嫌疑,所以后来采用了更加节约内存的分配方式“slab管理”.


127.什么是slab的着色和对齐呢?这是一个用于排版对象在内存中的位置,从而提高CPU对内存的访问速度,他是一种用空间换取时间的算法(整整齐齐和乱七八糟相比肯定快很多)。


128.预调用页,就是需要知道“工作集合”的大小,然后在程序运行前,先调入“工作集合”需要的页。如果处理“预调页”的成本大于处理“页错误”的成本,则不采用预调页机制。


129.TLB越大,命中率就越高,但是TLB内存的又昂贵又费电。


130.内存拥有禁止“全局页置换”的锁,这种锁可以用于保护IO时,缓存页被换出引起IO控制器读写内存时发生页错误。通常内核内存不允许发生页错误,所以涉及到锁内核的“空闲帧池”时可能会被忽略。


131.分段分页是在“虚拟内存技术”的基础上实现的,“虚拟内存技术”依赖“页分配算法”和“页置换算法(调度算法)”。


134.slab算法不会产生内存碎片,而且内存请求可以很快速的处理,他是一种直接分配连续物理内存的做法


135.文件系统是操作系统的一个子系统,文件系统对底层的磁盘设备做了逻辑抽象----文件,同时提供了一些逻辑接口提供给用户层对文件进行操作。


136.文件系统将逻辑的“文件路径”映射为磁盘驱动上定义的物理位置。


137.操作系统维护着两张种表用于管理文件是否被打开(类似于引用表),一种是“进程文件表”(表示该进程拥有的文件引用),一种是“系统文件表”(表示系统所有被创建的文件引用),进程表中的所有引用都能在系统表中找到,系统文件引用是多个内存共享的,而且还维护着一个引用计数器。


138.磁盘的最小存储(分配)单位是块,而文件的最小分配单位通常为(Byte字节),所以通常情况下会文件存储会出现内部碎片(由于文件是以字节流的形式存在磁盘的,所以内部碎片位于最后一个块),同时块越大,碎片越大。


139.open操作会将文件的属性读取到内存,同时创建“系统文件表”的引用和“进程文件表”的引用,当进行read()操作时候,操作系统才会对磁盘数据读入到内存中。


140.直接访问是数据库常用的访问方式,直接访问不需要将磁盘的物理存储单元(块)映射问逻辑存储单元(如:字节),这样可以实现快速访问,直接访问是直接指定要读取的磁盘块,但是块号是相对的,即每一个文件的第一块号都是0或1,这是为了防止访问越界。


141.非直接访问的读写操作需要经过“块打包”和“块解包”的过程。


142.直接访问的速度比顺序访问的速度快很多,有时候为了满足用户的使用习惯会用直接访问模拟顺序访问(反之,顺序访问模拟直接访问是低效和笨拙的行为)。


143.其他文件访问方式可以使用直接访问去模拟,而且常常涉及去创建文件索引,对文件定位会先去访问索引,再进行文件访问。


144.一个逻辑概念“分区”,一个“分区”上只可以创建一个文件系统,可以将一个磁盘分割成多个分区,也可以将多个磁盘合并成一个分区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值