关于linux0.12临界资源的一点理解和猜测
2012-03-12 20:00
435 查看
今天看代码时突然发现,好像看到linus在写代码时的一些准则了,再根据赵博士的一句话"内核开发者不可能总是关注这些细节问题的!“,然后参照自己的理解总结出来一些准则,本人初学,如果有问题还请留言指正。
1.在关于锁的操作上,希望是原子操作,所以不管什么先关中断再说
2.在互斥资源上,如果下面可能睡眠,那么先上锁再说,这点可以从inode.c中的read_inode函数中可以看出!
3.如果进程修改了某些indoe等一些公共内容,如果下面有bread之类可能睡眠的函数那么先把i_dirty置1,以免丢失数据。
4.貌似只要是进程打开的,不是用作公共有途的,如打开一个i_node用来添加目录,打开一块缓冲区用作他用,这些都算是私有的,不算是临界,共同使用同个i_node或同一个缓冲区的可能性很小?我只能这么解释他为什么在bread后在进程中不上锁了!
1.在关于锁的操作上,希望是原子操作,所以不管什么先关中断再说
2.在互斥资源上,如果下面可能睡眠,那么先上锁再说,这点可以从inode.c中的read_inode函数中可以看出!
3.如果进程修改了某些indoe等一些公共内容,如果下面有bread之类可能睡眠的函数那么先把i_dirty置1,以免丢失数据。
4.貌似只要是进程打开的,不是用作公共有途的,如打开一个i_node用来添加目录,打开一块缓冲区用作他用,这些都算是私有的,不算是临界,共同使用同个i_node或同一个缓冲区的可能性很小?我只能这么解释他为什么在bread后在进程中不上锁了!
相关文章推荐
- 关于DI容器UnityContainer的Dispose方法释放资源的一点理解
- 关于引用对象的使用的一点小理解
- 关于linux0.12中的add_entry中bread中的些猜测
- 关于linux系统环境变量的一点理解
- 关于”理爱德“(LinuxAid)商标的一点说明
- 关于汉诺塔的一点理解
- Xcode5.1.1关于Images.xcassets的一点理解
- 一天一点Zynq(1)xilinx-arm-linux交叉编译链 安装总结以及资源更新
- 关于深搜具体的过程一点理解
- MTD系列 - 关于linux MTD的一些理解
- 每天一点Linux --- 关于/etc/issue文件和自定义登录提示语
- 关于linux的cfs调度器的宏观理解
- 对linux中进程创建的一点理解(1)
- 关于在数据库中存储层次数据的一点看法与理解
- 关于linux特殊重定向的理解
- 关于面向对象的一点小理解
- 关于css样式 自适应和绝对定位 的一点理解
- 关于重定位的一点理解
- 关于卡尔曼滤波KF与粒子滤波的一点理解,刚刚接触,求指点。
- 关于ruby中求一串字符串中数字的和,小白的一点理解。