最近要读Professional Linux Kernel Architecture 。。。参考一下

《Professional Linux Kernel Architecture》读书笔记 (1)

2011年08月13日 12:59:38 StevenCoder 阅读数:1195 标签: linux读书linux内核任务调度tablesystem 收起

个人分类: OS

个人觉得读Linux内核架构是理解操作系统最好的方式,于是在实习之余开始读这本书。估计要很久才能读完。这是上周的笔记。

1. 当Linux在中断模式的情况下,内核没有权限访问用户的内存空间。

 

2. 对于32bit的操作系统,每个进程眼中的虚存都是4G,64位的会小于2的64次方,大约用其中的47位。。。因为用的字长越多,映射寻址时越慢。

 

3. 虚存往往大于实际内存。虚存和实际内存都切分成很多大小相同的pages。两个进程的虚存可能共享实际内存中的同一个Page。虚存的page中可能有一些没有对应内存中Page。

 

4. 实际的内存页 也叫 page frames. In contrast, 而虚存的页叫做 page 。

 

5. 海量数组处理: 如果需要的数组很大,但数组对应的distinct 值却没有那么多,可以把数组切成多个。例如数组长度本为1000,可以切成三层,每层长度为10的三个数组。缺点是访问多级数组比访问一个数组要慢。.

 

6. 在内核的抢占调度模型中,system call 是不能被一般进程抢占的。但可以被中断暂停。中断具有最高的优先级。

 

7. Copy on Write方法: 即在需要修改时才进行实际数据的copy。例如Linux 中 在fork时,父进程的所有资源需复制给新建的子进程,而现在linux使用Copy on Write, 即fork时只复制page table(即一张映射表),所以父子进程的page table 指向同一块 physical pages,但只读,当父子进程中的任何一个需要write或update 这块physical pages时,再进行physical pages copy。

 

8. 由于fork 现在使用 Copy on Write,vfork已经没有效率的优势,一般不用了。

 

9. 在linux进程调度中,不用复杂的时间片机制,所有进程按其等待时间构建红黑树上,最左边的结点就是等待时间最长的,也就是下一个被调度到的。

 

总结

Linux的任务调度如果除去优先级等等,还是采用了较简单直接的方法。 

Copy On Write和多级数组是通用的高效数据处理方法。

终于搞清楚虚存的定义。想知道如果是share-memory,虚存的映射是如何实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值