
unix
kobe8tracy
这个作者很懒,什么都没留下…
展开
-
自旋锁 死锁
以前在看linux操作系统时始终理解不了单CPU自旋锁导致死锁的问题.今天在网上搜了一下总算是理解了.摘录如下想象你的内核代码请求到一个自旋锁并且在它的临界区里做它的事情,在中间某处,你的代码失去了处理器。或许它已调用了一个函数(copy_from_user,假设)使进程进入睡眠。也或许,内核抢占发威,一个更高优先级的进程将你的代码推到了一边(注意,这都是假设,自旋锁其实不允许这些操作)。...原创 2013-04-12 14:21:36 · 292 阅读 · 0 评论 -
可重入内核与可重入函数
所有的内核都是可重入的.但可重入内核不只是包含可重入函数.也可以包含不可重入函数,这时候信号量,自旋锁之类的同步机制就派上用场了.原创 2013-04-12 16:04:52 · 167 阅读 · 0 评论 -
fgetc read缓冲机制区别
read属于系统调用,它的缓存是基于内核的缓冲,是记在内核空间的.而fgetc是标准函数, 是在用户空间I/O缓冲区的比如用fgetc读一个字节,fgetc有可能从内核中预读1024个字节到I/O缓冲区中,再返回第一个字节,这时该文件在内核中记录的读写位置是1024,而在FILE结构体中记录的读写位置是1.所以如果read一次读取的缓冲大小是1个字节,则1K的文件,read需要...2012-11-13 22:02:08 · 178 阅读 · 0 评论 -
linux优先级
进程调度优先级中PR 和NI的含义,用TOP可以看到PR 进程的优先级。在[b]Linux 2.6.23[/b]之前的版本中PR是一个动态值,在运行的过程中可能出现变化。大体策略是:如果一个进程sleep了比较多的时间,PR值会降低(即优先级提高);如果一个进程占用了大量的CPU时间,PR值会升高(即优先级降低)。在2.6.23版本之后,由于引进了CFS调度策略,不再简单根据一个进程sle...原创 2014-01-20 18:56:48 · 174 阅读 · 0 评论